lfx 18 小时之前
父节点
当前提交
dce3af0735

+ 2 - 1
src/main/java/com/malk/eastar/conf/EastarParam.java

@@ -10,6 +10,7 @@ public class EastarParam {
     public static String YD_FORMUUID_PROJECT="FORM-D8DFF1F8C07A4869BCC850090F3A3B4EE0AV"; // 立项流程
     public static String YD_FORMUUID_RECOD="FORM-64A758B8173341879B24D612E180BE997E0B"; // TB项目档案
     public static String YD_FORMUUID_GYS_YW="FORM-3AB247087A81401F87264BFA74944BE3R086"; // 供应商-业务对应表
+    public static String YD_FORMUUID_SKU_TYPE="FORM-17E244F3FB2240EB930E6DD4E22C7F89KXAR"; // 品类表
     public static String YD_FORMUUID_CGTASK="FORM-B9CBFB34DB3249C483415EF641202AC199J9"; // 采购任务表
     public static String YD_FORMUUID_ORDER="FORM-A731443BE0F04467A5D7FC1A82431D6AL2JO"; // 订单表
     public static String YD_FORMUUID_SONCONF="FORM-760F4001E1C743BA8527721F7217E068534G"; // 子任务拆分配置表
@@ -23,7 +24,7 @@ public class EastarParam {
 //        CUSTFIELD_ACCE.put("语言","selectField_me2f7tvj"); //调整为子表拆分传输
         CUSTFIELD_ACCE.put("配件品类","selectField_me2f7tvk");
         CUSTFIELD_ACCE.put("工厂(供应商)","textField_me2f7tvz");
-        CUSTFIELD_ACCE.put("配件编号","textField_me2f7tvn");
+        CUSTFIELD_ACCE.put("文档序号","textField_me2f7tvn");
 //        CUSTFIELD_ACCE.put("订单数量","numberField_me2f7tvl"); //调整为子表拆分传输
         CUSTFIELD_DOLL.put("配件名","textField_me2f7tw6");
         CUSTFIELD_DOLL.put("系列名称","selectField_me2f7tw3");

+ 56 - 84
src/main/java/com/malk/eastar/service/impl/EastarTbServiceImpl.java

@@ -3,6 +3,7 @@ package com.malk.eastar.service.impl;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.malk.eastar.conf.EastarParam;
+import com.malk.eastar.service.EastarTbService;
 import com.malk.eastar.util.ConfigDataProcessor;
 import com.malk.server.aliwork.YDConf;
 import com.malk.server.aliwork.YDParam;
@@ -19,7 +20,6 @@ import com.malk.utils.UtilMap;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.malk.eastar.service.EastarTbService;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -141,21 +141,12 @@ public class EastarTbServiceImpl  implements EastarTbService {
         String orderFid= projectOrder.get(0).instanceId; // 项目任务类型
         Map orderData=ydClient.queryData(YDParam.builder().formInstId(orderFid).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
         List<Map> orderLangConf=UtilMap.getList(orderData,"tableField_meqqj4we");// 语言配置
-        List<Map> orderTypeConfALl=UtilMap.getList(orderData,"tableField_mesc7nvp");// 类型源配置
         List<Map> xlConf=UtilMap.getList(orderData,"tableField_mesc7nvj");// 系列源配置
-        List<Map> orderTypeAndLangConf=new ArrayList<>();// 语言+类型配置
-        List<Map> orderTypeConf=new ArrayList<>();// 纯类型配置
-        for(Map map:orderTypeConfALl){
-            if(PublicUtil.isNull(map.get("textField_mesc7nvm"))){ // 根据语言为空判断
-                orderTypeConf.add(map);
-            }else {
-                orderTypeAndLangConf.add(map);
-            }
-        }
         // 子任务拆分数据
         List<Map> sonConfData= ydService.queryDetails(YDParam.builder().formInstanceId("FINST-X1B66Y81IUFY9U417XIUE99I8YV93HGMJ8WEMF").formUuid(EastarParam.YD_FORMUUID_SONCONF).tableFieldId("tableField_mew7d9f3").build());// 全品类配件表
         Map<String,Map<String,List<String>>>  sonConf= ConfigDataProcessor.processConfigData(sonConfData);
-
+        List<Map> skuTypeListConfigData = ydService.queryAllFormData(YDParam.builder().formUuid(EastarParam.YD_FORMUUID_SKU_TYPE).build());
+        Map skuIdMap=ConfigDataProcessor.skuTypeListConfigData(skuTypeListConfigData);
         // 成员处理
         qeUserId=tbUser.getUserIds(qeUserId, false);
         List<Map> mchTable= UtilMap.getList(data,"tableField_mec6juik");// 跟单
@@ -245,7 +236,6 @@ public class EastarTbServiceImpl  implements EastarTbService {
             customfields.addAll(maincustomfields);
             List<Map> result=null;
             boolean isLang="是".equals(UtilMap.getString(map,"radioField_me2f7tvx"));
-            boolean isType="是".equals(UtilMap.getString(map,"radioField_metn23go"));
             String type=UtilMap.getString(map,"selectField_me2f7tvk"); // 配件大类
             Map<String,List<String>> sonconfs=sonConf.get(type);
             List<String> sonconf=new ArrayList<>();
@@ -259,18 +249,10 @@ public class EastarTbServiceImpl  implements EastarTbService {
                     }
                 }
             }
-            if(isType){// 区分工艺
-                if(isLang){ // 区分语言  通过工艺拆分
-                    result=saveTbTask(taskMap,orderTypeAndLangConf,UtilMap.getString(map,"selectField_me2f7tw4"),customfields,isLang,isType,sonconf,sonScenariofieldconfigId,gysName,pId);
-                }else{// 不区分语言  通过工艺没有
-                    result=saveTbTask(taskMap,orderTypeConf,UtilMap.getString(map,"selectField_me2f7tw4"),customfields,isLang,isType,sonconf,sonScenariofieldconfigId,gysName,pId);
-                }
-            }else{// 不区分工艺
-                if(isLang){ // 区分语言
-                    result=saveTbTask(taskMap,orderLangConf,UtilMap.getString(map,"selectField_me2f7tw4"),customfields,isLang,isType,sonconf,sonScenariofieldconfigId,gysName,pId);
-                }else{
-                    result=saveTbTask(taskMap,xlConf,UtilMap.getString(map,"selectField_me2f7tw4"),customfields,isLang,isType,sonconf,sonScenariofieldconfigId,gysName,pId);
-                }
+            if(isLang){ // 区分语言
+                result=saveTbTask(taskMap,orderLangConf,map,customfields,isLang,sonconf,sonScenariofieldconfigId,gysName,pId,pMainId,skuIdMap);
+            }else{
+                result=saveTbTask(taskMap,xlConf,map,customfields,isLang,sonconf,sonScenariofieldconfigId,gysName,pId,pMainId,skuIdMap);
             }
             if(gysOrderData.containsKey(gysName)){
                 gysOrderData.get(gysName).addAll(result);
@@ -279,38 +261,24 @@ public class EastarTbServiceImpl  implements EastarTbService {
             }
             recodTable.addAll(result);
         }
-        // 公仔任务生成
-        List<Map> recodTable2 = new ArrayList<>();
-//        boolean isNeedDoll="是".equals(UtilMap.getString(data,"selectField_mdf997xg"));
-//        if(isNeedDoll){
-//            List<Map> table2= ydService.queryDetails(YDParam.builder().formInstanceId(formInstId).formUuid(EastarParam.YD_FORMUUID_PROJECT).tableFieldId("tableField_me2f7tw1").build());// 公仔配件表
-//            maincustomfields.add(tbConf.assembleCustomFieldName("配件品类","公仔类"));
-//            for(Map map: table2){
-//                Map taskMap=UtilMap.map("projectId, tasklistId, scenariofieldconfigId, stageId",tbProjectId,tasklistId,scenariofieldconfigId,stageId);
-//                taskMap.put("content",String.valueOf(map.get("selectField_me2f7tw3"))+"-"+String.valueOf(map.get("textField_mec5w62c")));
-//                taskMap.put("executorId",mchMap.get(UtilMap.getString(map,"textField_mec5w62j"))); // 通过供应商确定执行人
-//                List<Map> customfields=getCustomfields(EastarParam.CUSTFIELD_DOLL,map);
-//                customfields.addAll(maincustomfields);
-//                taskMap.put("customfields",customfields);
-//                Map result=tbTask.createTask(tbConf.getOperatorId(), taskMap);
-//                recodTable2.add(UtilMap.map("textField_mecmytpu, textField_mecmytpv, textField_mecmytpw",result.get("content"),result.get("taskId"),"未开始"));
-//            }
-//        }
-        saveRecod(data,tbProjectId,recodTable,recodTable2);
+        saveRecod(data,tbProjectId,recodTable);
         // 循环保存采购任务
         for (String key:gysOrderData.keySet()){
             List<Map> arr=gysOrderData.get(key);
-            Map order=UtilMap.map("textField_mifp03ew, selectField_mifp03e7, tableField_mifp03em",tbProjectId,"待采购",arr);
+            Map order=UtilMap.map("textField_mifp03ew, selectField_mifp03e7, tableField_mifp03em",tbProjectId,"待排期",arr);
             order.put("associationFormField_mifp03e9",projectOrder);
             order.put("associationFormField_mifp03e8",UtilMap.getAssFieldValue(data,"associationFormField_mdy7w1wn_id")); // 项目
             order.put("textField_mifp03e6",pName+"-"+key);
             order.put("textField_mimwnauk",pId);
+            order.put("textField_mizs3841",pMainId);
             order.put("employeeField_mifp03eu",Arrays.asList(mchDDIdMap.get(key)));
             List<Map> gysList = (List<Map>) ydClient.queryData(YDParam.builder().formUuid(EastarParam.YD_FORMUUID_GYS_YW).searchCondition(
                     JSONObject.toJSONString(Arrays.asList(new YDSearch("textField_mec6lku3",key,"供应商简称", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ)))
             ).build(), YDConf.FORM_QUERY.retrieve_list).getData();
             if(gysList!=null&&gysList.size()>0){
-                order.put("associationFormField_mifp03ea",UtilMap.getAssFieldValue(UtilMap.getMap(gysList.get(0),"formData"),"associationFormField_mec6lku4_id"));
+                List<UtilMap.assDetail> gys=UtilMap.getAssFieldValue(UtilMap.getMap(gysList.get(0),"formData"),"associationFormField_mec6lku4_id");
+                order.put("associationFormField_mifp03ea",gys);
+                order.put("textField_mifp03ez",gys.get(0).subTitle); // 供应商编号
             }
             ydClient.operateData(YDParam.builder().formUuid(EastarParam.YD_FORMUUID_CGTASK).formDataJson(JSONObject.toJSONString(order)).build(), YDConf.FORM_OPERATION.create);
         }
@@ -322,8 +290,8 @@ public class EastarTbServiceImpl  implements EastarTbService {
         return value.length()==0?"":value+s;
     }
 
-    private List<Map> saveTbTask(Map taskMap,List<Map> orderConf,String series,List<Map> customfields,boolean isLang,boolean isType,List<String> sonconf,String sonScenariofieldconfigId,String gysName,String pId){
-        log.info("创建任务:{},是否区分语言{},是否区分工艺{}",taskMap.get("content"),isLang,isType);
+    private List<Map> saveTbTask(Map taskMap,List<Map> orderConf,Map cgDetail,List<Map> customfields,boolean isLang,List<String> sonconf,String sonScenariofieldconfigId,String gysName,String pId,String pMainId,Map skuIdMap){
+        log.info("创建任务:{},是否区分语言{}",taskMap.get("content"),isLang);
         List<Map> recodTable=new ArrayList<>();
         if (PublicUtil.isNull(taskMap,"executorId")){
             taskMap.remove("executorId");
@@ -331,50 +299,55 @@ public class EastarTbServiceImpl  implements EastarTbService {
         for(Map map: orderConf){
             Map tMap=new HashMap();
             tMap.putAll(taskMap);
-            String confSeries=UtilMap.getString_first(map,"textField_meqqj4wa","textField_mesc7nvl","textField_mesc7nvf");// 系列
-            if(!series.equals(confSeries)){
-                continue;
+            String confSeries=UtilMap.getString_first(map,"textField_meqqj4wa","textField_mesc7nvf");// 系列
+            if(!UtilMap.getString(cgDetail,"selectField_me2f7tw4").equals(confSeries)){
+                continue; // 系列不匹配
             }
+            List<Map> newCustomfields=new ArrayList<>(customfields);
+            String skuId=String.valueOf(skuIdMap.get(UtilMap.getString(cgDetail,"selectField_mizsccds")));
+            skuId=PublicUtil.isNull(skuId)?"000":skuId;
+            String sku="2"+skuId+UtilMap.getString_first(map,"textField_mizmmf8h","textField_mizmmf8m");// sku 添加系列编号
             if(isLang){
-                String lang=UtilMap.getString_first(map,"textField_mesc7nvm","textField_meqqj4wb"); // 语言
+                String lang=UtilMap.getString(map,"textField_meqqj4wb"); // 语言
                 if(PublicUtil.isNull(lang)){
                     lang="不区分";
+                    sku=sku+"NA"; // sku 不区分语言
                 }
                 tMap.put("content",tMap.get("content")+"-"+lang);
-                customfields.add(tbConf.assembleCustomFieldName("语言",lang));
-            }
-            if(isType){
-                String type=UtilMap.getString(map,"textField_mesc7nvn");// 工艺区别
-                if(!PublicUtil.isNull(type)){
-                    tMap.put("content",tMap.get("content")+"-"+type);
-                }
+                newCustomfields.add(tbConf.assembleCustomFieldName("语言",lang));
+                sku=sku+UtilMap.getString(map,"textField_mizmmf8i"); // sku 区分语言
+            }else{
+                sku=sku+"NA"; // sku 不区分语言
             }
-            String value=UtilMap.getString_first(map,"numberField_mesc7nvo","numberField_meqqj4wd","numberField_mesc7nvi"); // 数量
-            String sku="";
-            customfields.add(tbConf.assembleCustomFieldName("订单数量",value));
-            tMap.put("customfields",customfields);
+            sku=sku+pMainId.substring(pMainId.length()-10); // sku 添加项目号
+            String value=UtilMap.getString_first(map,"numberField_meqqj4wd","numberField_mesc7nvi"); // 数量
+            newCustomfields.add(tbConf.assembleCustomFieldName("订单数量",value));
+            newCustomfields.add(tbConf.assembleCustomFieldName("配件编号",sku));
+            tMap.put("customfields",newCustomfields);
             log.info("最终任务名称:{},详细参数:{}",tMap.get("content"),tMap);
             Map result=tbTask.createTask(tbConf.getOperatorId(), tMap);// 更新任务所属任务列表
-            recodTable.add(UtilMap.map("textField_mecmytpr, textField_mecmytps, textField_mecmytpt, numberField_mifp03el, textField_mifp03eo, textField_miib17jx",result.get("content"),result.get("taskId"),"未开始",value,sku,pId));
-            for (String son:sonconf){
-                Map sonMap=new HashMap();
-                sonMap.put("content",tMap.get("content")+"/"+son.replace("/","-"));
-                if(taskMap.containsKey("executorId")){
-                    sonMap.put("executorId",taskMap.get("executorId"));
-                }
-                sonMap.put("stageId",taskMap.get("stageId"));
-                sonMap.put("tasklistId",taskMap.get("tasklistId"));
-                sonMap.put("scenariofieldconfigId",sonScenariofieldconfigId);
-                sonMap.put("parentTaskId",result.get("taskId"));
-                List soncustomfields=new ArrayList();
-                soncustomfields.add(tbConf.assembleCustomFieldName("SKU类型",son));
-                soncustomfields.add(tbConf.assembleCustomFieldName("工厂(SKU供应商)",gysName));
-                soncustomfields.add(tbConf.assembleCustomFieldName("订单数量",value));
-                sonMap.put("customfields",soncustomfields);
-                sonMap.put("projectId",taskMap.get("projectId"));
-                Map sonResult=tbTask.createTask(tbConf.getOperatorId(), sonMap);
-                log.info("子任务名称:{}",sonResult.get("content"));
-            }
+            Map recod=new HashMap(cgDetail);
+            recod.putAll(UtilMap.map("textField_mecmytpr, textField_mecmytps, textField_mecmytpt, numberField_mifp03el, textField_mifp03eo, textField_miib17jx, textField_mizvc5oj",result.get("content"),result.get("taskId"),"未开始",value,sku,pId,result.get("taskId")));
+            recodTable.add(recod);
+//            for (String son:sonconf){
+//                Map sonMap=new HashMap();
+//                sonMap.put("content",tMap.get("content")+"/"+son.replace("/","-"));
+//                if(taskMap.containsKey("executorId")){
+//                    sonMap.put("executorId",taskMap.get("executorId"));
+//                }
+//                sonMap.put("stageId",taskMap.get("stageId"));
+//                sonMap.put("tasklistId",taskMap.get("tasklistId"));
+//                sonMap.put("scenariofieldconfigId",sonScenariofieldconfigId);
+//                sonMap.put("parentTaskId",result.get("taskId"));
+//                List soncustomfields=new ArrayList();
+//                soncustomfields.add(tbConf.assembleCustomFieldName("SKU类型",son));
+//                soncustomfields.add(tbConf.assembleCustomFieldName("工厂(SKU供应商)",gysName));
+//                soncustomfields.add(tbConf.assembleCustomFieldName("订单数量",value));
+//                sonMap.put("customfields",soncustomfields);
+//                sonMap.put("projectId",taskMap.get("projectId"));
+//                Map sonResult=tbTask.createTask(tbConf.getOperatorId(), sonMap);
+//                log.info("子任务名称:{}",sonResult.get("content"));
+//            }
         }
         if(recodTable.size()<1){
             log.info("该任务未匹配上区分规则:{}",taskMap.get("content"));
@@ -428,7 +401,7 @@ public class EastarTbServiceImpl  implements EastarTbService {
         return false;
     }
 
-    private void saveRecod(Map formData,String tbProjectId,List<Map> recodTable,List<Map> recodTable2){
+    private void saveRecod(Map formData,String tbProjectId,List<Map> recodTable){
         Map map=new HashMap();
         map.put("textField_me87x1nz",formData.get("textField_me87x1nz"));
         map.put("textField_me2hyldc",formData.get("textField_me2hyldc"));
@@ -440,7 +413,6 @@ public class EastarTbServiceImpl  implements EastarTbService {
         map.put("associationFormField_me9n24kk",UtilMap.getAssFieldValue(formData,"associationFormField_me9n24kk_id"));
         map.put("textField_mecmytpo",tbProjectId);
         map.put("tableField_mecmytpp",recodTable);
-        map.put("tableField_mecmytpq",recodTable2);
         ydClient.operateData(YDParam.builder().formUuid(EastarParam.YD_FORMUUID_RECOD).formDataJson(JSONObject.toJSONString(map)).build(), YDConf.FORM_OPERATION.create);
     }
 

+ 9 - 0
src/main/java/com/malk/eastar/util/ConfigDataProcessor.java

@@ -15,6 +15,15 @@ public class ConfigDataProcessor {
         
         return result;
     }
+
+    public static Map<String,String> skuTypeListConfigData(List<Map> skuTypeListConfigData){
+        Map<String,String> result=new HashMap<>();
+        for (Map<String, Object> data : skuTypeListConfigData) {
+            Map formData=UtilMap.getMap(data,"formData");
+            result.put(UtilMap.getString(formData,"textField_mdwgh2wo"),UtilMap.getString(formData,"textField_mi8j1f7d"));
+        }
+        return result;
+    }
     
     private static void processSingleRecord(Map<String, Object> data, 
                                           Map<String, Map<String, List<String>>> result) {

+ 9 - 7
src/test/java/TbTest.java

@@ -57,7 +57,7 @@ public class TbTest {
 
     @Test
     public void createTask() {
-        Map map=eastarTbService.createTask("51cf01e0-d5c9-47c2-bdf6-f80c69853a7a");
+        Map map=eastarTbService.createTask("0bfbb77e-4b06-4bca-9265-4ae5b6515868");
     }
 
     @Autowired
@@ -67,12 +67,14 @@ public class TbTest {
 
     @Test
     public void testYd(){
-//        ydClient.operateData(YDParam.builder().formInstanceId("e29ffbc0-8159-49a2-ac3d-ec01b1dd7a93")
-//                .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("textField_mgu73usl",""))).useLatestVersion(true).build(), YDConf.FORM_OPERATION.update);
-        List<Map> gysList = (List<Map>) ydClient.queryData(YDParam.builder().formUuid(EastarParam.YD_FORMUUID_GYS_YW).searchCondition(
-                JSONObject.toJSONString(Arrays.asList(new YDSearch("textField_mec6lku3","和丰","供应商简称", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ)))
-        ).build(), YDConf.FORM_QUERY.retrieve_list).getData();
-        System.out.println(gysList);
+//        ydClient.operateData(YDParam.builder().formInstanceId("3eb3a44f-3203-4f07-a8e0-fc5ae382e96d")
+//                .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("radioField_mh08wu1l","待制作"))).useLatestVersion(true).build(), YDConf.FORM_OPERATION.update);
+//        List<Map> gysList = (List<Map>) ydClient.queryData(YDParam.builder().formUuid(EastarParam.YD_FORMUUID_GYS_YW).searchCondition(
+//                JSONObject.toJSONString(Arrays.asList(new YDSearch("textField_mec6lku3","和丰","供应商简称", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ)))
+//        ).build(), YDConf.FORM_QUERY.retrieve_list).getData();
+        List<Map> skuTypeListConfigData = ydService.queryAllFormData(YDParam.builder().formUuid(EastarParam.YD_FORMUUID_SKU_TYPE).build());
+        Map skuIdMap=ConfigDataProcessor.skuTypeListConfigData(skuTypeListConfigData);
+        System.out.println(skuIdMap);
     }
 
     @Test