|
|
@@ -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);
|
|
|
}
|
|
|
|