Kaynağa Gözat

医保局二期打卡护理计划代码更新

fyz 5 ay önce
ebeveyn
işleme
2d045226fe

+ 32 - 2
mjava-yibaoju/src/main/java/com/malk/yibaoju/controller/YBJController.java

@@ -330,6 +330,7 @@ public class YBJController {
 
         log.info("createPlan 护理计划:{}",data);
         LocalDate currentDate = LocalDate.now();
+        log.info("日期:{}",currentDate);
         //获取当前日期是本月几号
         int dayOfMonth = currentDate.getDayOfMonth();
         if ("2".equals(data.get("status"))){
@@ -339,7 +340,7 @@ public class YBJController {
         //获取当前日期是本月几号
 //        Thread.sleep(2000);
         //生成当月数据库护理计划
-        ybjService.thisMonthDataBase(data.get("formInstId").toString());
+        ybjService.thisMonthDataBase(data.get("formInstId").toString(),data.get("status").toString());
         if (dayOfMonth>24){
             Thread.sleep(2000);
             ybjService.insertDatabaseNextMonth(data.get("formInstId").toString());
@@ -348,7 +349,7 @@ public class YBJController {
     }
 
     @RequestMapping("testApi")
-    McR testApi(String code) {
+    McR testApi(@RequestBody String code) {
         log.info("code:{}",code);
 //        Map data = UtilServlet.getParamMap(request);
         if (ObjectUtil.isNotNull(code)){
@@ -380,6 +381,7 @@ public class YBJController {
             }
         });
         planQuery.eq("is_delete",0);
+        planQuery.orderByAsc("care_start_time");
         IPage<Plan> selectPage = planMapper.selectPage(planPage, planQuery);
         return McR.success(selectPage);
     }
@@ -436,5 +438,33 @@ public class YBJController {
     void breakPersonUpdate(@RequestBody Map<String,Object> data) {
         ybjService.breakPersonUpdate(data);
     }
+    /**
+     * 新增单条护理计划
+     * @param data
+     */
+    @PostMapping("insertDatabaseOne")
+    void insertDatabaseOne(@RequestBody Map<String,Object> data) {
+        log.info("新增单条数据:{}",data);
+        ybjService.insertDatabaseOne(data);
+    }
 
+    /**
+     * 护理计划修改单个
+     * @param data
+     */
+    @PostMapping("updateDatabaseOne")
+    void updateDatabaseOne(@RequestBody Map<String,Object> data) {
+        log.info("新增单条数据:{}",data);
+        ybjService.updateDatabaseOne(data);
+    }
+
+    /**
+     * 护理计划删除单个
+     * @param data
+     */
+    @PostMapping("deleteDatabaseOne")
+    void deleteDatabaseOne(@RequestBody Map<String,Object> data) {
+        log.info("删除单条数据:{}",data);
+        ybjService.deleteDatabaseOne(data);
+    }
 }

+ 5 - 5
mjava-yibaoju/src/main/java/com/malk/yibaoju/schedule/ScheduleTask.java

@@ -36,9 +36,9 @@ public class ScheduleTask {
     }
 
     /**
-     * 每天凌晨00点05分更新计划护理的任务状态
+     * 每天凌晨00点30分更新计划护理的任务状态
      */
-    @Scheduled(cron = " 0 5 0 * * ? ")
+    @Scheduled(cron = " 0 20 0 * * ? ")
     public void syncDingTalkStatus() {
         try {
             ybjService.syncUpdatePlanStatus();
@@ -91,7 +91,7 @@ public class ScheduleTask {
     /**
      * 每天晚上八点执行定时任务删除数据库逻辑删除的数据及宜搭
      */
-    @Scheduled(cron = "0 0 20 * * ?")
+    @Scheduled(cron = "0 0 6/1 * * ?")
     public void deleteBothTask() {
         try {
             ybjService.deleteBothInfo();
@@ -101,9 +101,9 @@ public class ScheduleTask {
         }
     }
     /**
-     * 每天凌晨04点10分更新计划护理的任务状态
+     * 每天凌晨00点05分更新计划护理的任务状态
      */
-    @Scheduled(cron = " 0 10 3 * * ? ")
+    @Scheduled(cron = " 0 5 0 * * ? ")
     public void updateDBStatus() {
         log.info("开始执行更新护理计划状态任务");
         try {

+ 17 - 1
mjava-yibaoju/src/main/java/com/malk/yibaoju/service/YBJService.java

@@ -71,7 +71,7 @@ public interface YBJService {
      * 编辑保存生成本月月数据库护理计划
      * @param formInstId
      */
-    void thisMonthDataBase(String formInstId);
+    void thisMonthDataBase(String formInstId, String status);
 
     /**
      * 编辑保存生成下月数据库护理计划
@@ -87,6 +87,22 @@ public interface YBJService {
     void insertHistory();
     void insertHistory2();
 
+    /**
+     * 新增护理计划新增单个
+     * @param data
+     */
+    void insertDatabaseOne(Map<String,Object> data);
+    /**
+     * 护理计划修改单个
+     * @param data
+     */
+    void updateDatabaseOne(Map<String,Object> data);
+    /**
+     * 护理计划删除单个
+     * @param data
+     */
+    void deleteDatabaseOne(Map<String,Object> data);
+
     /**
      * 每3分执行定时任务同步宜搭到数据库更新是否已同步字段和流程id
      */

+ 194 - 82
mjava-yibaoju/src/main/java/com/malk/yibaoju/service/impl/YBJServiceImpl.java

@@ -67,6 +67,8 @@ public class YBJServiceImpl implements YBJService {
     @Autowired
     private PlanService planService;
 
+    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
     LocalDate currentDate = LocalDate.now();
     //获取下月1号的日期
     LocalDate firstDayOfNextMonth = currentDate.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth());
@@ -296,7 +298,6 @@ public class YBJServiceImpl implements YBJService {
                 .formUuid("FORM-RK966E7105DFD27FA7EQHAOH9IFS2RN6MP3OL2")  //获取护理计划
                 .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lo2b6bvf", "正常")))//护理对象暂停和正常、月度计划创建只查询正常的护理计划
                 .build();
-
         //获取日期是几号
         int dayOfMonth = firstDayOfNextMonth.getDayOfMonth();
         //获取月天数
@@ -319,7 +320,6 @@ public class YBJServiceImpl implements YBJService {
             List<Map> dataList = ydService.queryFormData_all(ydParam);
 //                log.info("dataList:{}-----page:" + page + "---", dataList.size());
 
-            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             dataList.forEach(dataItem -> {
 //                    Map formMap = (Map) dataItem.get("formData");
                 List<Map> mapList = (List<Map>) dataItem.get("tableField_lo3pmohx");
@@ -344,6 +344,8 @@ public class YBJServiceImpl implements YBJService {
                             ps[0].setObject(6,map.get("textField_lo3pmoi3"));  //护理人员手机号
                             if (dataItem.get("departmentSelectField_lxztlnnx_id") != null) {
                                 ps[0].setObject(7,String.valueOf(dataItem.get("departmentSelectField_lxztlnnx_id")));  //部门
+                            }else {
+                                ps[0].setObject(7,null);  //部门
                             }
                             ps[0].setObject(8,dataItem.get("associationFormField_lo3pmohw_id").toString());//护理对象姓名(关联表单)
                             ps[0].setObject(9,dataItem.get("textField_lo55rupj"));  //护理对象姓名-文本
@@ -428,7 +430,6 @@ public class YBJServiceImpl implements YBJService {
                     .build();
             Map formMap = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id).getFormData();
             List<Map> mapList = (List<Map>) formMap.get("tableField_lo3pmohx");
-            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             for (int i = 0; i <= (daysInMonth - dayOfMonth); i++) {
                 //获取是周几
                 String dayOfWeek = firstDayOfNextMonth.plusDays(i).getDayOfWeek().getDisplayName(TextStyle.FULL, new Locale("zh", "CN"));
@@ -450,8 +451,10 @@ public class YBJServiceImpl implements YBJService {
                         ps[0].setObject(6,map.get("textField_lo3pmoi3"));  //护理人员手机号
                         if (formMap.get("departmentSelectField_lxztlnnx_id") != null) {
                             ps[0].setObject(7,String.valueOf(formMap.get("departmentSelectField_lxztlnnx_id")));  //部门
+                        }else {
+                            ps[0].setObject(7,null);  //部门
                         }
-                        ps[0].setObject(8,map.get("associationFormField_lo3pmohw_id").toString());  //护理对象姓名(关联表单)
+                        ps[0].setObject(8,formMap.get("associationFormField_lo3pmohw_id").toString());  //护理对象姓名(关联表单)
                         ps[0].setObject(9,formMap.get("textField_lo55rupj"));  //护理对象姓名-文本
                         ps[0].setObject(10,formMap.get("textField_lnyhv5tn")); //护理对象身份证
                         ps[0].setObject(11,formMap.get("selectField_lnyhv5tp"));  //护理对象等级
@@ -472,7 +475,7 @@ public class YBJServiceImpl implements YBJService {
                         ps[0].setObject(24, String.valueOf(nextDay));  //护理日期-文本
                         ps[0].setObject(25, String.valueOf(nextDay) + " " + map.get("selectField_lr1uxpu3")); //护理开始时间。 用当前日期+护理计划的  时分
                         ps[0].setObject(26, String.valueOf(nextDay) + " " + map.get("selectField_lr1uxpu4")); //护理结束时间。 用当前日期+护理计划的  时分
-                        ps[0].setObject(27, formMap.get("formInstanceId").toString()); //护理结束时间。 用当前日期+护理计划的  时分
+                        ps[0].setObject(27, formInstId); //护理结束时间。 用当前日期+护理计划的  时分
                         ps[0].setObject(28, nextDataMonth); //下月数据日期
                         ps[0].setObject(29, "否"); //是否已同步宜搭
                         ps[0].setObject(30,map.get("selectField_lr1uxpu3"));
@@ -481,13 +484,13 @@ public class YBJServiceImpl implements YBJService {
                         ps[0].setObject(32,0);
                         ps[0].addBatch();
                     }
-                    ps[0].executeBatch();
-                    ps[0].clearBatch();
                 } catch (SQLException e) {
                     log.info("sql或插入数据库执行失败:{}",formMap.get("formInstanceId"));
                     e.printStackTrace();
                 }
             }
+            ps[0].executeBatch();
+            ps[0].clearBatch();
             // 关闭资源
             ps[0].close();
             connection.close();
@@ -518,7 +521,6 @@ public class YBJServiceImpl implements YBJService {
                     "`execute_status`, `task_status`, `plan_id`, `care_object_id`, `certificate_type`, `is_choose`, `care_date_text` , `start_time_text` ," +
                     " `end_time_text` ,`form_inst_id`, `data_month`, `is_cogradient`, `start_time`, `end_time`, `is_delete`) " +
                     "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ";
-            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             dataList.forEach(dataItem -> {
 //                Map formMap = (Map) dataItem.get("formData");
                 List<Map> mapList = (List<Map>) dataItem.get("tableField_lo3pmohx");
@@ -611,7 +613,6 @@ public class YBJServiceImpl implements YBJService {
 
 //        dataList = ydService.queryFormData_all(ydParam);
         List<Plan> planCopies = new ArrayList<>();
-        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         for (int page = 1; page <= Math.ceil(totalCount / pageSize); page++) {
             ydParam.setCurrentPage(page);
             //创建护理计划  1次获取50条
@@ -717,7 +718,6 @@ public class YBJServiceImpl implements YBJService {
     }
     @Override
     public void insertHistory2() {
-        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 //        Date date = new Date();
         long lastTime = 1735660800000L;
         List<String> dateList = new ArrayList<>();
@@ -859,6 +859,156 @@ public class YBJServiceImpl implements YBJService {
         }
     }
 
+    @Override
+    public void insertDatabaseOne(Map<String, Object> data) {
+
+        YDParam ydParam = YDParam.builder()
+                .formInstId(data.get("formInstId").toString())
+                .build();
+        Map formMap = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id).getFormData();
+        List<Plan> planCopies = new ArrayList<>();
+        //护理人员
+        Object parse = JSON.parse(formMap.get("associationFormField_lo3pmohz_id").toString());
+        JSONArray jsonArray = JSON.parseArray(parse.toString());
+        JSONObject jsonObject = (JSONObject) jsonArray.get(0);
+        Plan plan = new Plan();
+        plan.setDataMonth(dateFormat.format(new Date(Long.parseLong(formMap.get("dateField_lred6eoj").toString()))).substring(0, 7));
+        //planCopy.setFormInstId();
+        plan.setPlanInstId(data.get("formInstId").toString());
+        plan.setCaregiverForm(formMap.get("associationFormField_lo3pmohz_id").toString());
+        plan.setCaregiverName(jsonObject.get("title").toString());
+        plan.setCaregiverMember(ObjectUtil.isNotNull(formMap.get("employeeField_lo3pmoi6_id")) ? formMap.get("employeeField_lo3pmoi6_id").toString() : "");
+        plan.setCaregiverDepartment(formMap.get("textField_lo3pmoi0").toString());
+        plan.setCaregiverCard(formMap.get("textField_lombve2g").toString());
+        plan.setCaregiverPhone(formMap.get("textField_lo3pmoi3").toString());
+        if (formMap.get("departmentSelectField_lxzto1e1_id") != null) {
+            plan.setDepartment(formMap.get("departmentSelectField_lxzto1e1_id").toString());
+        }
+        //护理对象
+        parse = JSON.parse(formMap.get("associationFormField_lo3pmohw_id").toString());
+        jsonArray = JSON.parseArray(parse.toString());
+        jsonObject = (JSONObject) jsonArray.get(0);
+        plan.setCareObjectForm(formMap.get("associationFormField_lo3pmohw_id").toString());
+        plan.setCareObjectName(jsonObject.get("title").toString());
+        plan.setCareObjectCard(formMap.get("textField_lnyhv5tn").toString());
+        plan.setCareObjectLevel(ObjectUtil.isNotNull(formMap.get("selectField_lnyhv5tp")) ? formMap.get("selectField_lnyhv5tp").toString() : "");
+        plan.setCareObjectAddress(ObjectUtil.isNotNull(formMap.get("textField_lnyhv5tr")) ? formMap.get("textField_lnyhv5tr").toString() : "");
+        plan.setCareObjectLongitude(ObjectUtil.isNotNull(formMap.get("textField_lvae7q5n")) ? formMap.get("textField_lvae7q5n").toString() : "");
+        plan.setCareObjectLatitude(ObjectUtil.isNotNull(formMap.get("textField_lvae7q5o")) ? formMap.get("textField_lvae7q5o").toString() : "");
+        plan.setWithinTheWeek(formMap.get("selectField_lo3pmohy").toString());
+        plan.setCareStartTime(Long.parseLong(formMap.get("dateField_lred6eoj").toString()));
+        plan.setCareEndTime(Long.parseLong(formMap.get("dateField_lred6eok").toString()));
+        plan.setStartTime(dateFormat.format(new Date(Long.parseLong(formMap.get("dateField_lred6eoj").toString()))).substring(11, 16));
+        plan.setEndTime(dateFormat.format(new Date(Long.parseLong(formMap.get("dateField_lred6eok").toString()))).substring(11, 16));
+
+        plan.setExecuteStatus(formMap.get("selectField_lqcgsbw2").toString());
+        plan.setTaskStatus(formMap.get("textField_m5adz7wx").toString());
+        plan.setPlanId(formMap.get("textField_lpgi8scj").toString());
+        plan.setCareObjectId(formMap.get("textField_lq9llmhl").toString());
+        plan.setCertificateType(ObjectUtil.isNotNull(formMap.get("textField_lo3pmoi4")) ? formMap.get("textField_lo3pmoi4").toString() : "");
+        plan.setIsChoose(formMap.get("selectField_lr36z6hd").toString());
+        plan.setIsDelete("0");
+        plan.setIsCogradient("是");
+        plan.setCareDateText(dateFormat.format(new Date(Long.parseLong(formMap.get("dateField_lred6eoj").toString()))).substring(0, 10));
+        plan.setStartTimeText(dateFormat.format(new Date(Long.parseLong(formMap.get("dateField_lred6eoj").toString()))));
+        plan.setEndTimeText(dateFormat.format(new Date(Long.parseLong(formMap.get("dateField_lred6eok").toString()))));
+
+        planCopies.add(plan);
+
+//            });
+//        }
+        if (planCopies.size() > 0) {
+            planService.saveBatch(planCopies);
+            planCopies.clear();
+        }
+
+    }
+
+    /**
+     * 单条数据修改
+     * @param data
+     */
+    @Override
+    public void updateDatabaseOne(Map<String, Object> data) {
+        Plan plan = new Plan();
+        String id = data.get("id").toString();
+        YDParam ydParam = YDParam.builder()
+                .formInstId(data.get("formInstId").toString())
+                .build();
+        Map formMap = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id).getFormData();
+        UpdateWrapper<Plan> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id",id);
+
+        Map<String, Object> updateMap = new HashMap<>();
+        Object parse = JSON.parse(formMap.get("associationFormField_lo3pmohz_id").toString());
+        JSONArray jsonArray = JSON.parseArray(parse.toString());
+        JSONObject jsonObject = (JSONObject) jsonArray.get(0);
+        plan.setDataMonth(dateFormat.format(new Date(Long.parseLong(formMap.get("dateField_lred6eoj").toString()))).substring(0, 7));
+        //planCopy.setFormInstId();
+        plan.setPlanInstId(data.get("formInstId").toString());
+        plan.setCaregiverForm(formMap.get("associationFormField_lo3pmohz_id").toString());
+        plan.setCaregiverName(jsonObject.get("title").toString());
+        plan.setCaregiverMember(ObjectUtil.isNotNull(formMap.get("textField_m58abv3j")) ? formMap.get("textField_m58abv3j").toString() : "");
+        plan.setCaregiverDepartment(formMap.get("textField_lo3pmoi0").toString());
+        plan.setCaregiverCard(formMap.get("textField_lombve2g").toString());
+        plan.setCaregiverPhone(formMap.get("textField_lo3pmoi3").toString());
+        //部门id
+        if (formMap.get("textField_m58abv3l") != null) {
+            plan.setDepartment(formMap.get("textField_m58abv3l").toString());
+        }
+        //护理对象
+        parse = JSON.parse(formMap.get("associationFormField_lo3pmohw_id").toString());
+        jsonArray = JSON.parseArray(parse.toString());
+        jsonObject = (JSONObject) jsonArray.get(0);
+        plan.setCareObjectForm(formMap.get("associationFormField_lo3pmohw_id").toString());
+        plan.setCareObjectName(jsonObject.get("title").toString());
+        plan.setCareObjectCard(formMap.get("textField_lnyhv5tn").toString());
+        plan.setCareObjectLevel(ObjectUtil.isNotNull(formMap.get("selectField_lnyhv5tp")) ? formMap.get("selectField_lnyhv5tp").toString() : "");
+        plan.setCareObjectAddress(ObjectUtil.isNotNull(formMap.get("textField_lnyhv5tr")) ? formMap.get("textField_lnyhv5tr").toString() : "");
+        plan.setCareObjectLongitude(ObjectUtil.isNotNull(formMap.get("textField_lvae7q5n")) ? formMap.get("textField_lvae7q5n").toString() : "");
+        plan.setCareObjectLatitude(ObjectUtil.isNotNull(formMap.get("textField_lvae7q5o")) ? formMap.get("textField_lvae7q5o").toString() : "");
+        plan.setWithinTheWeek(formMap.get("selectField_lo3pmohy").toString());
+        plan.setCareStartTime(Long.parseLong(formMap.get("dateField_lred6eoj").toString()));
+        plan.setCareEndTime(Long.parseLong(formMap.get("dateField_lred6eok").toString()));
+        plan.setStartTime(dateFormat.format(new Date(Long.parseLong(formMap.get("dateField_lred6eoj").toString()))).substring(11, 16));
+        plan.setEndTime(dateFormat.format(new Date(Long.parseLong(formMap.get("dateField_lred6eok").toString()))).substring(11, 16));
+
+        plan.setExecuteStatus(formMap.get("selectField_lqcgsbw2").toString());
+        plan.setTaskStatus(formMap.get("textField_m5adz7wx").toString());
+        plan.setPlanId(formMap.get("textField_lpgi8scj").toString());
+        plan.setCareObjectId(formMap.get("textField_lq9llmhl").toString());
+        plan.setCertificateType(ObjectUtil.isNotNull(formMap.get("textField_lo3pmoi4")) ? formMap.get("textField_lo3pmoi4").toString() : "");
+        plan.setIsChoose(formMap.get("selectField_lr36z6hd").toString());
+        plan.setIsDelete("0");
+        plan.setIsCogradient("是");
+        plan.setCareDateText(dateFormat.format(new Date(Long.parseLong(formMap.get("dateField_lred6eoj").toString()))).substring(0, 10));
+        plan.setStartTimeText(dateFormat.format(new Date(Long.parseLong(formMap.get("dateField_lred6eoj").toString()))));
+        plan.setEndTimeText(dateFormat.format(new Date(Long.parseLong(formMap.get("dateField_lred6eok").toString()))));
+//        }
+//        if (data.containsKey("planInstId")){
+//            String planInstId = data.get("planInstId").toString();
+//            ydClient.operateData(YDParam.builder()
+//                    .formInstanceId(planInstId)
+//                    .updateFormDataJson(JSON.toJSONString(updateMap))
+//                    .useLatestVersion(true)
+//                    .build(), YDConf.FORM_OPERATION.update);
+//        }else {
+//            plan.setIsCogradient("是");
+//        }
+        planMapper.update(plan,updateWrapper);
+    }
+
+    @Override
+    public void deleteDatabaseOne(Map<String, Object> data) {
+        Plan plan = new Plan();
+        String id = data.get("id").toString();
+        UpdateWrapper<Plan> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id",id);
+        plan.setIsDelete("1");
+        planMapper.update(plan,updateWrapper);
+
+    }
+
     @Override
     public void afterDatabaseToYiDaTask() {
         log.info("开始执行同步宜搭是否同步和流程id到数据库");
@@ -902,10 +1052,10 @@ public class YBJServiceImpl implements YBJService {
     @Override
     public void breakPersonUpdate(Map<String, Object> data) {
         long now = new Date().getTime();
-        String name = data.get("name").toString();
+        String card = data.get("card").toString();
         Plan plan = new Plan();
         UpdateWrapper<Plan> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("care_object_name",name);
+        updateWrapper.eq("care_object_card",card);
         updateWrapper.ge("care_start_time",now);
         updateWrapper.eq("task_status","待上报");
         plan.setIsDelete("1");
@@ -915,67 +1065,27 @@ public class YBJServiceImpl implements YBJService {
 
     @Override
     public void testApi(String code) {
-        List<Map> from = ydService.queryFormData_all(YDParam.builder()
-                .appType("APP_HJJ3X3QN4WEWDHU2BJR2")
-                .systemToken("7X866C81QPIHJKBFFM1QW4S8BV1U3U4MFO5RLY1")
-                .formUuid("FORM-BB6F88F6B6C340948FD98160EB26A0726CQT")
-//
-                .build());
-        List<Map> maps = ydService.queryFormData_all(YDParam.builder()
-                .appType("APP_HJJ3X3QN4WEWDHU2BJR2")
-                .systemToken("7X866C81QPIHJKBFFM1QW4S8BV1U3U4MFO5RLY1")
-                .formUuid("FORM-E83C9E307FFB4A978E0CB8DE1B899E9DXTXB")
-                .build());
-        for (int i = 0; i < from.size(); i++) {
-            String formCode = from.get(i).get("textField_lu9l6otz").toString();
-            for (int j = 0; j < maps.size(); j++) {
-                if (formCode.equals(maps.get(j).get("textField_lu9l6otz"))){
-                    List<Map> sonList = (List<Map>) maps.get(j).get("tableField_lvuku8m3");
-                    if (ObjectUtil.isNotNull(sonList)){
-                        List<Map> newList = new ArrayList<>();
-                        newList.add(sonList.get(0));
-                        ydClient.operateData(YDParam.builder()
-                                .appType("APP_HJJ3X3QN4WEWDHU2BJR2")
-                                .systemToken("7X866C81QPIHJKBFFM1QW4S8BV1U3U4MFO5RLY1")
-                                .formInstanceId(maps.get(j).get("formInstanceId").toString())
-                                .useLatestVersion(true)
-//                    目标修改字段
-                                .updateFormDataJson(JSON.toJSONString(UtilMap.map("tableField_lvuku8m3",newList)))
-                                .build(), YDConf.FORM_OPERATION.update);
-                        break;
-                    }
-                }
-            }
+        LocalDate currentDate = LocalDate.now();
+        int dayOfMonth = currentDate.getDayOfMonth();
+        YDParam ydParam = new YDParam();
+
+        ydParam = YDParam.builder()
+                .formUuid("FORM-RK966E7105DFD27FA7EQHAOH9IFS2RN6MP3OL2")  //获取护理计划
+                .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lo2b6bvf, textField_lryk5xa3", "正常","上海市奉贤区四团社区居家养老服务中心")))//护理对象暂停和正常、月度计划创建只查询正常的护理计划
+                .build();
+
+        List<Map> dataList = ydService.queryFormData_all(ydParam);
+
+        log.info("时间:{}",dayOfMonth);
+        if (dayOfMonth>24){
+            log.info("开始");
+            dataList.forEach(e->{
+                deleteDatabaseInfo(e.get("formInstanceId").toString());
+//                log.info("流程id:{}",e.get("formInstanceId").toString());
+                log.info("护理对象:{}",e.get("textField_lo55rupj").toString());
+                insertDatabaseNextMonth(e.get("formInstanceId").toString());
+            });
         }
-//        from.forEach(f->{
-//            String formCode = f.get("textField_lu9l6otz").toString();
-//            maps.forEach(e->{
-//                if (formCode.equals(e.get("textField_lu9l6otz"))){
-//                    List<Map> sonList = (List<Map>) e.get("tableField_lvuku8m3");
-//                    if (ObjectUtil.isNotNull(sonList)){
-////                List<Map<String,Object>> arrayList = new ArrayList<>();
-////                HashMap<String, Object> s = new HashMap<>();
-////                        sonList.forEach(s->{
-////                            s.put("textField_m50e071h","");
-////                            s.put("selectField_lw4jf0ys","");
-////                            s.put("textField_m1ajkyj0","");
-////                        });
-//                        List<Map> newList = new ArrayList<>();
-//                        newList.add(sonList.get(0));
-////                arrayList.add(s);
-//                        ydClient.operateData(YDParam.builder()
-//                                .appType("APP_HJJ3X3QN4WEWDHU2BJR2")
-//                                .systemToken("7X866C81QPIHJKBFFM1QW4S8BV1U3U4MFO5RLY1")
-//                                .formInstanceId(f.get("formInstanceId").toString())
-//                                .useLatestVersion(true)
-////                    目标修改字段
-//                                .updateFormDataJson(JSON.toJSONString(UtilMap.map("tableField_lvuku8m3",newList)))
-//                                .build(), YDConf.FORM_OPERATION.update);
-//                    }
-//                }
-////            String code = e.get("textField_lu9l6otz").toString();
-//            });
-//        });
     }
 
     /**
@@ -1003,7 +1113,8 @@ public class YBJServiceImpl implements YBJService {
                         "`care_date_text`,`start_time_text`,`end_time_text`,`sign_in_photo`, `sign_in_photo_down`, `sign_in_photo_name`, `sign_out_photo`, " +
                         "`sign_out_photo_down`, `sign_out_photo_name`, `sign_in_longitude`, `sign_in_latitude`, `sign_in_time`, `sign_in_position`, " +
                         "`sign_out_longitude`, `sign_out_latitude`, `sign_out_time`, `sign_out_position`, `sign_in_distance`, `sign_out_distance` " +
-                        "FROM `yida_plan_details` where  data_month = '" + dataMonths.get(j) + "' AND is_cogradient = '否' ORDER BY id ASC LIMIT 400";
+                        "FROM `yida_plan_details` where  data_month = '" + dataMonths.get(j) + "' AND is_cogradient = '否' AND care_date_text = '2024-12-31' " +
+                        "AND is_delete = '0' ORDER BY care_date_text ASC,id ASC LIMIT 400";
                 ps = connection.prepareStatement(selectSql);
                 ResultSet rs = ps.executeQuery(selectSql);
                 while (rs.next()){
@@ -1117,7 +1228,7 @@ public class YBJServiceImpl implements YBJService {
     @Override
     public void deleteDatabaseInfo(String formInstId) {
 
-        log.info("开始执行数据库更新到宜搭护理计划");
+        log.info("开始逻辑删除下月数据库护理计划");
         try {
             Class.forName(driver);
             Connection connection = DriverManager.getConnection(url, username, password);
@@ -1173,7 +1284,7 @@ public class YBJServiceImpl implements YBJService {
      * @param formInstId
      */
     @Override
-    public void thisMonthDataBase(String formInstId){
+    public void thisMonthDataBase(String formInstId, String status){
         log.info("开始生成当月数据库未上报护理计划:{}",new Date());
         //根据实例ID  查询护理计划
         YDParam ydParam = YDParam.builder()
@@ -1185,13 +1296,15 @@ public class YBJServiceImpl implements YBJService {
         Connection connection = null;
         //获取当前日期是本月几号
         int dayOfMonth = currentDate.getDayOfMonth();
+        log.info("dayOfMonth:{}",dayOfMonth);
         //获取本月天数
         int daysInMonth = currentDate.lengthOfMonth();
+        log.info("daysInMonth:{}",daysInMonth);
+
         try {
             Class.forName(driver);
             connection = DriverManager.getConnection(url, username, password);
             final PreparedStatement[] ps = {null};
-            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             String insertSql = "INSERT INTO `yida_plan_details`( `caregiver_form`, `caregiver_name`, `caregiver_member`, `caregiver_department`, " +
                     "`caregiver_card`, `caregiver_phone`, `department`, `care_object_form`, `care_object_name`, `care_object_card`, `care_object_level`, " +
                     "`care_object_address`, `care_object_longitude`, `care_object_latitude`, `within_the_week` , `care_start_time`, `care_end_time`, " +
@@ -1199,7 +1312,7 @@ public class YBJServiceImpl implements YBJService {
                     " `end_time_text` ,`form_inst_id`, `data_month`, `is_cogradient`, `start_time`, `end_time`, `is_delete`) " +
                     "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ";
             ps[0] = connection.prepareStatement(insertSql);
-            for (int i = 0; i <= daysInMonth - dayOfMonth; i++) {
+            for (int i = 1; i <= daysInMonth - dayOfMonth; i++) {
                 //获取当前日期是本月几号
                 //获取是周几
                 String dayOfWeek = currentDate.plusDays(i).getDayOfWeek().getDisplayName(TextStyle.FULL, new Locale("zh", "CN"));
@@ -1361,10 +1474,9 @@ public class YBJServiceImpl implements YBJService {
     @Override
     public void updateFromClock(Map<String, Object> data) {
         Plan plan = new Plan();
-        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        String id = data.get("planInstId").toString();
+        String id = data.get("id").toString();
         UpdateWrapper<Plan> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("plan_inst_id",id);
+        updateWrapper.eq("id",id);
 
         List<Map<String,Object>> image = (List<Map<String, Object>>) data.get("imageField_lp7obkee");
         String remoteUrl = "https://xvuk8m.aliwork.com" + image.get(0).get("previewUrl");
@@ -1489,11 +1601,12 @@ public class YBJServiceImpl implements YBJService {
      */
     @SneakyThrows
     public void syncPlanStatus() {
+        String formId = getFormId(dataMonth);
 
         LocalDate currentDate = LocalDate.now();
         //获取需要更新的护理任务   护理日期是当天      且状态为未上报
         YDParam ydParam = YDParam.builder()
-                .formUuid("FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM")
+                .formUuid(formId)
                 .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lo56u5fn, dateField_lred6eoj","待上报",Arrays.asList(UtilDateTime.parse( currentDate+ " 00:00:59","yyyy-MM-dd HH:mm:ss"),UtilDateTime.parse( currentDate+ " 23:59:59","yyyy-MM-dd HH:mm:ss")))))
                 .build();
         //pagesize设为1获取总数
@@ -1557,7 +1670,6 @@ public class YBJServiceImpl implements YBJService {
             LocalDate nextDay = currentDate.plusDays(i);
             List<Map> maps =  mapList.stream().filter(item -> item.get("selectField_lo3pmohy").equals(dayOfWeek.replace("星期","周"))).collect(Collectors.toList());
             for (Map map : maps) {
-
                 //通过护理时间  护理对象ID    证数据是否已经存在
                 YDParam ydParam1 = YDParam.builder()
                         .formUuid("FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM")

+ 2 - 1
mjava/src/main/java/com/malk/server/aliwork/YDConf.java

@@ -73,6 +73,7 @@ public class YDConf {
         delete,             // 传入为body, 文档为param
         update,
         upsert,
+        upsert_v2,                  // 新版本 searchCondition 条件精准匹配
         multi_create,               // 批量操作
         delete_batch,               // 批量删除
         multi_update,               // 批量更新
@@ -83,7 +84,7 @@ public class YDConf {
     /**
      * 关联表单处理
      *
-     * @param formType: "receipt" 跳转为表单【若是流程,则权限体系会失效,但也会显示审批节点】; formType: "process" 为流程
+     * @param : "receipt" 跳转为表单【若是流程,则权限体系会失效,但也会显示审批节点】; formType: "process" 为流程
      * @apiNote ppExt 接口更新, 传入jsonString或List都可以. 返回数据都是两层json解析, 组件 + _id格式
      */
     public List<Map> associationForm(String formUuid, String formInstanceId, String title, String subTitle, boolean isProcess) {

+ 6 - 1
mjava/src/main/java/com/malk/service/aliwork/impl/YDClientImpl.java

@@ -42,7 +42,9 @@ public class YDClientImpl implements YDClient {
     private String getRequestUrl(String uri) {
         return "https://api.dingtalk.com/v1.0/yida" + uri;
     }
-
+    private String getRequestUrl_v2(String uri) {
+        return "https://api.dingtalk.com/v2.0/yida" + uri;
+    }
     // 请求地址 [实例]
     private String getRequestUrl(String uri, String instanceId) {
         return getRequestUrl(uri) + "/" + instanceId;
@@ -80,6 +82,9 @@ public class YDClientImpl implements YDClient {
             case upsert:
                 ddr_new = (DDR_New) UtilHttp.doPost(getRequestUrl("/forms/instances/insertOrUpdate"), ddClient.initTokenHeader(), bodys, DDR_New.class);
                 break;
+            case upsert_v2:
+                ddr_new = (DDR_New) UtilHttp.doPost(this.getRequestUrl_v2("/forms/instances/insertOrUpdate"), this.ddClient.initTokenHeader(), bodys, DDR_New.class);
+                break;
             default:
                 break;
         }