wzy 7 meses atrás
pai
commit
7ec9ab2f2d

+ 13 - 10
mjava-kabeiyi/src/main/java/com/malk/kabeiyi/controller/KabeiyiController.java

@@ -64,12 +64,6 @@ public class KabeiyiController {
         }
         return McR.success(UtilMap.map("data, nextToken",result,rsp.get("nextToken")));
     }
-    //新增一张付款单
-    @PostMapping("addPayment")
-    public McR addPayment(@RequestBody Map map){
-        return kabeiyiService.addPayment(map);
-
-    }
 
     //审批实例推送到宜搭(卡倍亿)
     @PostMapping("pushProcInstToYD")
@@ -96,21 +90,28 @@ public class KabeiyiController {
     }
 
     //ocr识别
-    @GetMapping("/ocr")
+    @GetMapping("ocr")
     public McR ocr(String downloadUrl,String name,String type){
         return kabeiyiService.ocr(downloadUrl,name,type);
     }
 
     //每天0点定时同步发货单信息
     @Scheduled(cron = "0 0 0 * * ?")
-    @GetMapping("/getDeliveryInfo")
+    @GetMapping("getDeliveryInfo")
     public McR getDeliveryInfo(){
         return kabeiyiService.getDeliveryInfo();
     }
 
-    /*@Autowired
+    //新增一张凭证
+    @PostMapping("addVoucher")
+    public McR addVoucher(@RequestBody Map map){
+        kabeiyiService.addVoucher(map);
+        return McR.success();
+    }
+
+    @Autowired
     private YDClient ydClient;
-    @GetMapping("deleteAllData")
+    /*@GetMapping("deleteAllData")
     public McR deleteAllData(){
         MDC.put("MDC_KEY_PID","1019");
         DDR_New ddrNew;
@@ -164,4 +165,6 @@ public class KabeiyiController {
         log.info("失败列表:{}",errorList);
         return McR.success();
     }*/
+
+
 }

+ 2 - 7
mjava-kabeiyi/src/main/java/com/malk/kabeiyi/service/KabeiyiService.java

@@ -7,13 +7,6 @@ import org.springframework.stereotype.Service;
 import java.util.Map;
 
 public interface KabeiyiService {
-    /**
-     * 新增付款单
-     * @param map
-     * @return
-     */
-    McR addPayment(Map map);
-
     /**
      * 审批实例推送到宜搭(卡倍亿)
      * @param map
@@ -43,4 +36,6 @@ public interface KabeiyiService {
     McR getDeliveryInfo();
 
     McR testInnerTable();
+
+    void addVoucher(Map map);
 }

+ 90 - 54
mjava-kabeiyi/src/main/java/com/malk/kabeiyi/service/impl/KabeiyiServiceImpl.java

@@ -171,23 +171,6 @@ public class KabeiyiServiceImpl implements KabeiyiService {
         SCHEMA_MAP2.put("信息化建设用章流程","1.7、信息化建设用章流程");
     }
 
-    @Override
-    public McR addPayment(Map map) {
-        try {
-            String tradeid = U8Util.getTradeid();
-
-            map.put("tradeid",tradeid);
-
-
-            U8Util.sendPost(map,"https://api.yonyouup.com/api/voucher/add","voucher");
-
-        }catch (Exception e) {
-            return McR.errorUnknown(e.getMessage());
-        }
-
-        return McR.success();
-    }
-
     @Override
     public McR pushProcInstToYD(Map map) {
         MDC.put("MDC_KEY_PID","1002");
@@ -616,9 +599,9 @@ public class KabeiyiServiceImpl implements KabeiyiService {
 
         String yesterday = "2024-10-09";*/
         for (Integer dsSequence : factory.keySet()) {
-            if (dsSequence != 5){
+            /*if (dsSequence != 5){
                 continue;
-            }
+            }*/
             List<String> errorCodes = new ArrayList<>();
 
             Map<String,Object> param = new HashMap<>();
@@ -648,9 +631,9 @@ public class KabeiyiServiceImpl implements KabeiyiService {
                 //查询单个发货单详情
                 String id = getString(consignment.get("code"));
 
-                if (!id.equals("南通9月份")){
+                /*if (!id.equals("南通9月份")){
                     continue;
-                }
+                }*/
 
                 Map<String, Object> param2 = new HashMap<>();
                 param2.put("from_account", fromAccount);
@@ -708,59 +691,95 @@ public class KabeiyiServiceImpl implements KabeiyiService {
 
                 List<Map> entry = (List<Map>) consignment2.get("entry");
 
-                //精准匹配
-                List<Map> jsonString = new ArrayList<>();
-                jsonString.add(UtilMap.map("key, value, type, operator, componentName", "textField_m18nvp87",getString(consignment2.get("code")),"TEXT","eq","TextField"));
-                jsonString.add(UtilMap.map("key, value, type, operator, componentName", "numberField_m18wkih7",new int[]{dsSequence,dsSequence},"DOUBLE","between","NumberField"));
 
-                String searchCondition = JSONObject.toJSONString(jsonString);
 
-                //当子表明细超过500条时,需删除原实例再新增
-                try {
-                    if (entry.size() > 500){
-                        DDR_New ddrNew1 = ydClient.queryData(YDParam.builder()
-                                .formUuid(PRODUCT_REAL)
-                                .searchCondition(searchCondition)//精准查询
-                                .build(), YDConf.FORM_QUERY.retrieve_list_all);
-                        List<Map> data1 = (List<Map>) ddrNew1.getData();
-
-                        if (data1.size() > 0){
-                            String formInstanceId = data1.get(0).get("formInstanceId").toString();
+                //collect拆分成三个list  每个list长度为500
+                List<List<Map>> collectList = new ArrayList<>();
+                for (int i = 0; i < entry.size(); i += 500) {
+                    collectList.add(entry.subList(i, Math.min(i + 500, entry.size())));
+                }
 
-                            ydClient.operateData(YDParam.builder()
-                                    .formInstId(formInstanceId)
-                                    .build(), YDConf.FORM_OPERATION.delete);
-                        }
-                    }
-                }catch (Exception e){
-                    log.info("",e);
+                if (collectList.size() > 3){
+                    log.error("发货单:{} 发货明细超过1500个, 请检查",id);
+                    errorCodes.add(id + "发货明细超过1500");
                 }
 
-                List<Map> collect = entry.stream().map(item -> {
+                //发货明细
+                List list1 = collectList.get(0).stream().map(item -> {
                     Map detail = new HashMap();
                     detail.put("textField_m18nvp8c", getString(item.get("socode")));//销售订单号
                     detail.put("textField_m18nvp8d", getString(item.get("warehouse_name")));//仓库名称
-                    detail.put("textField_m18nvp8e", getString(item.get("inventory_name")));//存货名称
                     detail.put("textField_m22mkwzk", getString(item.get("define29")));//客户存货码
+                    detail.put("textField_m18nvp8e", getString(item.get("inventory_name")));//存货名称
+                    detail.put("textField_m21b1bhg", getString(item.get("free2")));//产品颜色
                     detail.put("textField_m18nvp8f", getString(item.get("cinvm_unit")));//单位
-                    detail.put("numberField_m18nvp8h", getString(item.get("quantity")));//发货长度
+                    detail.put("numberField_m18nvp8h", getString(item.get("quantity")));//发货数量
                     detail.put("numberField_m18nvp8j", getString(item.get("price")));//未税单价
                     detail.put("numberField_m18nvp8l", getString(item.get("money")));//未税总价
                     detail.put("numberField_m18nvp8k", getString(item.get("taxprice")));//含税单价
                     detail.put("numberField_m18nvp8m", getString(item.get("sum")));//含税总价
                     detail.put("numberField_m18nvp8n", getString(item.get("taxrate")));//税率
                     detail.put("numberField_m18nvp8o", getString(item.get("tax")));//总税价
-                    detail.put("dateField_m18yzlob", DateUtil.parseDate(getString(consignment.get("date"))).getTime());//发货日期
-                    detail.put("textField_m18z3yn8", getString(consignment2.get("cusname")));//客户名称
-                    detail.put("textField_m219zpzg", getString(item.get("free1")));//客户码
-                    detail.put("textField_m21b1bhg", getString(item.get("free2")));//产品颜色
-
-                    detail.put("textField_m1odluob", factory.get(dsSequence));//工厂名称
+                    detail.put("textField_m219zpzg", getString(item.get("free1")));//发货客户码
 
                     return detail;
                 }).collect(Collectors.toList());
 
-                formData.put("tableField_m18nvp82",collect);//发货明细
+                List<Map> list2 = new ArrayList<>();
+                if (collectList.size() > 1){
+                    list2 = collectList.get(1).stream().map(item -> {
+                        Map detail = new HashMap();
+                        detail.put("textField_m2j0wj8m", getString(item.get("socode")));//销售订单号
+                        detail.put("textField_m2j0wj8n", getString(item.get("warehouse_name")));//仓库名称
+                        detail.put("textField_m2j0wj8o", getString(item.get("define29")));//客户存货码
+                        detail.put("textField_m2j0wj8p", getString(item.get("inventory_name")));//存货名称
+                        detail.put("textField_m2j0wj8q", getString(item.get("free2")));//产品颜色
+                        detail.put("textField_m2j0wj8r", getString(item.get("cinvm_unit")));//单位
+                        detail.put("numberField_m2j0wj8s", getString(item.get("quantity")));//发货数量
+                        detail.put("numberField_m2j0wj8t", getString(item.get("price")));//未税单价
+                        detail.put("numberField_m2j0wj8u", getString(item.get("money")));//未税总价
+                        detail.put("numberField_m2j0wj8v", getString(item.get("taxprice")));//含税单价
+                        detail.put("numberField_m2j0wj8w", getString(item.get("sum")));//含税总价
+                        detail.put("numberField_m2j0wj8x", getString(item.get("taxrate")));//税率
+                        detail.put("numberField_m2j0wj8y", getString(item.get("tax")));//总税价
+                        detail.put("textField_m2j0wj8z", getString(item.get("free1")));//发货客户码
+
+                        return detail;
+                    }).collect(Collectors.toList());
+                }
+                List<Map> list3 = new ArrayList<>();
+                if (collectList.size() > 2){
+                    list3 = collectList.get(2).stream().map(item -> {
+                        Map detail = new HashMap();
+                        detail.put("textField_m2j0wj91", getString(item.get("socode")));//销售订单号
+                        detail.put("textField_m2j0wj92", getString(item.get("warehouse_name")));//仓库名称
+                        detail.put("textField_m2j0wj93", getString(item.get("define29")));//客户存货码
+                        detail.put("textField_m2j0wj94", getString(item.get("inventory_name")));//存货名称
+                        detail.put("textField_m2j0wj95", getString(item.get("free2")));//产品颜色
+                        detail.put("textField_m2j0wj96", getString(item.get("cinvm_unit")));//单位
+                        detail.put("numberField_m2j0wj97", getString(item.get("quantity")));//发货数量
+                        detail.put("numberField_m2j0wj98", getString(item.get("price")));//未税单价
+                        detail.put("numberField_m2j0wj99", getString(item.get("money")));//未税总价
+                        detail.put("numberField_m2j0wj9a", getString(item.get("taxprice")));//含税单价
+                        detail.put("numberField_m2j0wj9b", getString(item.get("sum")));//含税总价
+                        detail.put("numberField_m2j0wj9c", getString(item.get("taxrate")));//税率
+                        detail.put("numberField_m2j0wj9d", getString(item.get("tax")));//总税价
+                        detail.put("textField_m2j0wj9e", getString(item.get("free1")));//发货客户码
+
+                        return detail;
+                    }).collect(Collectors.toList());
+                }
+
+                formData.put("tableField_m18nvp82",list1);
+                formData.put("tableField_m2j0wj90",list2);
+                formData.put("tableField_m2j0wj9f",list3);
+
+                //精准匹配
+                List<Map> jsonString = new ArrayList<>();
+                jsonString.add(UtilMap.map("key, value, type, operator, componentName", "textField_m18nvp87",getString(consignment2.get("code")),"TEXT","eq","TextField"));
+                jsonString.add(UtilMap.map("key, value, type, operator, componentName", "numberField_m18wkih7",new int[]{dsSequence,dsSequence},"DOUBLE","between","NumberField"));
+
+                String searchCondition = JSONObject.toJSONString(jsonString);
                 int i=1;
                 boolean flag = false;
                 while (i<=5 && !flag){
@@ -860,6 +879,23 @@ public class KabeiyiServiceImpl implements KabeiyiService {
         return null;
     }
 
+    @Override
+    public void addVoucher(Map map) {
+        if (Objects.isNull(map.get("formInstId"))){
+            log.info("formInstId不能为空!");
+            return;
+        }
+        String formInstId = map.get("formInstId").toString();
+
+        DDR_New ddrNew = ydClient.queryData(YDParam.builder()
+                .formInstId(formInstId)
+                .build(), YDConf.FORM_QUERY.retrieve_id);
+        Map formData = ddrNew.getFormData();
+
+        System.out.println(formData);
+
+    }
+
     /**
      * 封装GET请求
      *