2 次代码提交 aaabee0f93 ... 3fc582d98d

作者 SHA1 备注 提交日期
  wzy 3fc582d98d mc批量更新指定数量的实例 1 月之前
  wzy 6e8650fc3b 卡倍亿一期接口停用 1 月之前

+ 18 - 15
mjava-kabeiyi/src/main/java/com/malk/kabeiyi/controller/KabeiyiController.java

@@ -59,18 +59,6 @@ public class KabeiyiController {
         return McR.success(UtilMap.map("data, nextToken",result,rsp.get("nextToken")));
     }
 
-    //审批实例推送到宜搭(卡倍亿)
-    @PostMapping("pushProcInstToYD")
-    public McR pushProcInstToYD(@RequestBody Map map){
-        return kabeiyiService.pushProcInstToYD(map);
-    }
-
-    //审批实例推送到宜搭(特充)
-    @PostMapping("pushProcInstToYD2")
-    public McR pushProcInstToYD2(@RequestBody Map map){
-        return kabeiyiService.pushProcInstToYD2(map);
-    }
-
     //发起问题整改审批
     @PostMapping("addQuestionApproval")
     public McR addQuestionApproval(@RequestBody Map map){
@@ -90,16 +78,31 @@ public class KabeiyiController {
     }
 
     //每天0点定时同步出库单信息
-    @Scheduled(cron = "0 30 15 * * ?")
+    @Scheduled(cron = "0 0 0 * * ?")
     @GetMapping("getSaleoutInfo")
     public McR getSaleoutInfo(){
         return kabeiyiService.getSaleoutInfo();
     }
 
+
+    //============================================== 一期接口停用 =====================================================
+
+    //审批实例推送到宜搭(卡倍亿)
+    /*@PostMapping("pushProcInstToYD")
+    public McR pushProcInstToYD(@RequestBody Map map){
+        return kabeiyiService.pushProcInstToYD(map);
+    }*/
+
+    //审批实例推送到宜搭(特充)
+    /*@PostMapping("pushProcInstToYD2")
+    public McR pushProcInstToYD2(@RequestBody Map map){
+        return kabeiyiService.pushProcInstToYD2(map);
+    }*/
+
     //新增一张凭证
-    @PostMapping("addVoucher")
+    /*@PostMapping("addVoucher")
     public McR addVoucher(@RequestBody Map map){
         kabeiyiService.addVoucher(map);
         return McR.success();
-    }
+    }*/
 }

+ 10 - 0
mjava-mc/src/main/java/com/malk/mc/controller/McYdController.java

@@ -122,6 +122,16 @@ public class McYdController {
         return McR.success();
     }
 
+    /**
+     * 批量更新符合条件的指定数量的实例(批量上限100条)
+     * @param map
+     * @return
+     */
+    @PostMapping("/batchUpdateSpecifiedQuantityData")
+    public McR batchUpdateSpecifiedQuantityData(@RequestBody Map map){
+        return mcYdService.batchUpdateSpecifiedQuantityData(map);
+    }
+
     /**
      * 发起审批
      * @param map

+ 2 - 0
mjava-mc/src/main/java/com/malk/mc/service/McYdService.java

@@ -22,4 +22,6 @@ public interface McYdService {
     McR ProductReturn(Map map);
 
     McR allocateTransfer(Map map);
+
+    McR batchUpdateSpecifiedQuantityData(Map map);
 }

+ 66 - 0
mjava-mc/src/main/java/com/malk/mc/service/impl/McYdServiceImpl.java

@@ -597,6 +597,72 @@ public class McYdServiceImpl implements McYdService {
         return McR.success();
     }
 
+    @Override
+    public McR batchUpdateSpecifiedQuantityData(Map map) {
+        String formInstId = UtilMap.getString(map, "formInstId");//当前表实例id
+
+        //查询当前表formData
+        Map formData = ydClient.queryData(YDParam.builder()
+                .formInstanceId(formInstId)
+                .build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
+
+        //目标表筛选字段唯一标识
+        String[] searchFields = UtilMap.getString(map, "searchFieldStr").split(",");
+        //目标表筛选字段值
+        String[] searchFieldValues = UtilMap.getString(map, "searchFieldValueStr").split(",");
+
+        Map searchCondition = new HashMap();
+
+        if (searchFields.length == searchFieldValues.length){
+            for (int i = 0; i < searchFields.length; i++) {
+                searchCondition.put(searchFields[i],searchFieldValues[i]);
+            }
+        }else {
+            return McR.errorUnknown("筛选字段和筛选值数量不一致");
+        }
+
+        int quantity = UtilMap.getInt(map, "quantity");//指定更新数量
+        if (quantity > 100){
+            return McR.errorUnknown("更新数量不能大于100");
+        }
+
+        String formUuid = UtilMap.getString(map, "formUuid");//目标表uuid
+
+        List<Map> data = (List<Map>) ydClient.queryData(YDParam.builder()
+                .searchCondition(JSONObject.toJSONString(searchCondition))
+                .formUuid(formUuid)
+                .pageSize(quantity)
+                .build(), YDConf.FORM_QUERY.retrieve_list).getData();
+
+
+
+        //目标表更新字段唯一标识
+        String[] fieldStrs = UtilMap.getString(map, "fieldStr").split(",");
+        //当前表字段唯一标识
+        String[] currentFieldStrs = UtilMap.getString(map, "currentFieldStrs").split(",");
+
+        Map updateFormData = new HashMap();
+
+        if (fieldStrs.length == currentFieldStrs.length){
+            for (int i = 0; i < fieldStrs.length; i++) {
+                updateFormData.put(fieldStrs[i],YDConf.getDataByCompId(formData,currentFieldStrs[i]));
+            }
+        }else {
+            return McR.errorUnknown("更新字段和当前表字段数量不一致");
+        }
+
+        for (Map datum : data) {
+            String formInstanceId = UtilMap.getString(datum, "formInstanceId");
+
+            ydClient.operateData(YDParam.builder()
+                    .formInstanceId(formInstanceId)
+                    .updateFormDataJson(JSONObject.toJSONString(updateFormData))
+                    .build(), YDConf.FORM_OPERATION.update);
+        }
+
+        return McR.success();
+    }
+
 
     private static void extractOperatorIds(JSONArray array, List<String> result) {
         for (Object item : array) {