|
@@ -1,5 +1,6 @@
|
|
|
package com.malk.eastar.service.impl;
|
|
package com.malk.eastar.service.impl;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.malk.eastar.conf.EastarParam;
|
|
import com.malk.eastar.conf.EastarParam;
|
|
|
import com.malk.eastar.util.ConfigDataProcessor;
|
|
import com.malk.eastar.util.ConfigDataProcessor;
|
|
@@ -51,9 +52,46 @@ public class EastarTbServiceImpl implements EastarTbService {
|
|
|
return UtilMap.map("tbProjectId",tbProjectId);
|
|
return UtilMap.map("tbProjectId",tbProjectId);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private String creatMainProjectTask(String pId,String name,String id,List<Map> table,String executorId,List mainProjectcustomfields){
|
|
|
|
|
+ Map taskMap = new HashMap();
|
|
|
|
|
+ taskMap.put("content",name+"-"+id);
|
|
|
|
|
+ taskMap.put("projectId",EastarParam.TB_MAINPROJECT_ID);
|
|
|
|
|
+ taskMap.put("executorId",executorId); // 通过供应商确定执行人
|
|
|
|
|
+ taskMap.put("customfields",mainProjectcustomfields);
|
|
|
|
|
+ taskMap.put("startDate", DateUtil.format(new Date(UtilMap.getLong(table.get(0),"dateField_mgu5rm3g")),"yyyy-MM-dd"));
|
|
|
|
|
+ taskMap.put("dueDate", DateUtil.format(new Date(UtilMap.getLong(table.get(table.size()-1),"dateField_mgu5rm3h")),"yyyy-MM-dd"));
|
|
|
|
|
+ Map result=createTask(taskMap);
|
|
|
|
|
+ for (Map map:table){
|
|
|
|
|
+ Map son=new HashMap();
|
|
|
|
|
+ son.put("content",name+"-"+id+"-"+map.get("textField_mgu5rm3f"));
|
|
|
|
|
+ son.put("projectId",EastarParam.TB_MAINPROJECT_ID);
|
|
|
|
|
+ son.put("executorId",executorId); // 通过供应商确定执行人
|
|
|
|
|
+ son.put("parentTaskId",result.get("taskId"));
|
|
|
|
|
+ son.put("startDate", DateUtil.format(new Date(UtilMap.getLong(map,"dateField_mgu5rm3g")),"yyyy-MM-dd"));
|
|
|
|
|
+ son.put("dueDate", DateUtil.format(new Date(UtilMap.getLong(map,"dateField_mgu5rm3h")),"yyyy-MM-dd"));
|
|
|
|
|
+ son.put("customfields",mainProjectcustomfields);
|
|
|
|
|
+ Map sonResult=createTask( son);
|
|
|
|
|
+ }
|
|
|
|
|
+ return UtilMap.getString(result, "taskId");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private Map createTask(Map map){
|
|
|
|
|
+ try {
|
|
|
|
|
+ return tbTask.createTask(tbConf.getOperatorId(), map);
|
|
|
|
|
+ }catch (McException e){
|
|
|
|
|
+ if(e.getMessage().equals("截止时间必须晚于开始时间")||e.getMessage().equals("The end time should not be earlier than the start time.")){
|
|
|
|
|
+ map.remove("startDate");
|
|
|
|
|
+ return createTask(map);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ throw e;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public Map createTask(String formInstId) {
|
|
public Map createTask(String formInstId) {
|
|
|
|
|
+ // 查询立项数据
|
|
|
Map data=ydClient.queryData(YDParam.builder().formInstId(formInstId).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
Map data=ydClient.queryData(YDParam.builder().formInstId(formInstId).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
|
String merName= UtilMap.getString(data,"textField_me87x1o0");// 客户名称
|
|
String merName= UtilMap.getString(data,"textField_me87x1o0");// 客户名称
|
|
|
String pMainName= UtilMap.getString(data,"textField_me9n24kq"); // 主项目名称
|
|
String pMainName= UtilMap.getString(data,"textField_me9n24kq"); // 主项目名称
|
|
@@ -61,23 +99,50 @@ public class EastarTbServiceImpl implements EastarTbService {
|
|
|
String pName= UtilMap.getString(data,"textField_me87x1nz"); // 项目名称
|
|
String pName= UtilMap.getString(data,"textField_me87x1nz"); // 项目名称
|
|
|
String pId= UtilMap.getString(data,"textField_me2hyldc");// 项目编号
|
|
String pId= UtilMap.getString(data,"textField_me2hyldc");// 项目编号
|
|
|
String orderType= UtilMap.getString(data,"selectField_mdf997wp"); // 订单类型 大货 打样
|
|
String orderType= UtilMap.getString(data,"selectField_mdf997wp"); // 订单类型 大货 打样
|
|
|
- String pTaskType= UtilMap.getAssFieldValue(data,"associationFormField_me9n24kk_id").get(0).title; // 项目任务类型
|
|
|
|
|
|
|
+// String pTaskType= UtilMap.getAssFieldValue(data,"associationFormField_me9n24kk_id").get(0).title; // 项目任务类型
|
|
|
|
|
+ String pTaskType = UtilMap.getString(data,"textField_mfqnsa9d");// 项目任务类型
|
|
|
|
|
+ // 查询记录判断是否创建过看板
|
|
|
List<Map> recodList = (List<Map>) ydClient.queryData(YDParam.builder().formUuid(EastarParam.YD_FORMUUID_RECOD).searchCondition(
|
|
List<Map> recodList = (List<Map>) ydClient.queryData(YDParam.builder().formUuid(EastarParam.YD_FORMUUID_RECOD).searchCondition(
|
|
|
JSONObject.toJSONString(Arrays.asList(new YDSearch("textField_me2hyldb",pMainId,"主项目编号", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ)))
|
|
JSONObject.toJSONString(Arrays.asList(new YDSearch("textField_me2hyldb",pMainId,"主项目编号", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ)))
|
|
|
).build(), YDConf.FORM_QUERY.retrieve_list).getData();
|
|
).build(), YDConf.FORM_QUERY.retrieve_list).getData();
|
|
|
|
|
+ // 成员处理
|
|
|
|
|
+ List<String> pmUserId = (List<String>) UtilMap.getList(data, "employeeField_me2hyld8_id");// 项目经理
|
|
|
|
|
+ List<String> ssUserId = (List<String>) UtilMap.getList(data, "employeeField_me2hyld9_id");// 业务
|
|
|
|
|
+ List<String> qeUserId = (List<String>) UtilMap.getList(data, "employeeField_me9n24ka_id");// QE
|
|
|
|
|
+ pmUserId=tbUser.getUserIds(pmUserId, false);
|
|
|
|
|
+ ssUserId=tbUser.getUserIds(ssUserId, false);
|
|
|
|
|
+ List<String> programUsers=new ArrayList<>();
|
|
|
|
|
+ programUsers.addAll(pmUserId);
|
|
|
|
|
+ programUsers.addAll(ssUserId);
|
|
|
|
|
+ programUsers.remove(tbConf.getOperatorId());
|
|
|
|
|
+ Set<String> programUsersSet = new HashSet<>(programUsers);
|
|
|
|
|
+ programUsers = new ArrayList<>(programUsersSet);
|
|
|
// 项目创建
|
|
// 项目创建
|
|
|
String tbProjectId;
|
|
String tbProjectId;
|
|
|
if(recodList == null || recodList.size()<1){
|
|
if(recodList == null || recodList.size()<1){
|
|
|
Map result = tbProject.projectCreateWithTemplate(pMainName, EastarParam.TB_PROJECT_TEMP, tbConf.getOperatorId());
|
|
Map result = tbProject.projectCreateWithTemplate(pMainName, EastarParam.TB_PROJECT_TEMP, tbConf.getOperatorId());
|
|
|
tbProjectId = UtilMap.getString(result, "id");
|
|
tbProjectId = UtilMap.getString(result, "id");
|
|
|
|
|
+ // 同步项目集
|
|
|
|
|
+ List<Map> programList = tbProject.queryProgramList("", merName);
|
|
|
|
|
+ String programId = "";
|
|
|
|
|
+ if (programList.size() > 0) {
|
|
|
|
|
+ programId=UtilMap.getString(programList.get(0), "id");
|
|
|
|
|
+ }else{
|
|
|
|
|
+ Map program=tbProject.createProgramList(merName,"");
|
|
|
|
|
+ programId=UtilMap.getString(program,"id");
|
|
|
|
|
+ }
|
|
|
|
|
+ tbProject.upsertProgramProject(programId, Arrays.asList(tbProjectId), tbConf.getOperatorId());
|
|
|
|
|
+ tbProject.createProgramMember(programId,tbConf.getOperatorId(),programUsers);
|
|
|
}else {
|
|
}else {
|
|
|
tbProjectId = UtilMap.getString(UtilMap.getMap(recodList.get(0),"formData"),"textField_mecmytpo");
|
|
tbProjectId = UtilMap.getString(UtilMap.getMap(recodList.get(0),"formData"),"textField_mecmytpo");
|
|
|
}
|
|
}
|
|
|
// 订单数据
|
|
// 订单数据
|
|
|
- String orderFid= UtilMap.getAssFieldValue(data,"associationFormField_me2hylda_id").get(0).instanceId; // 项目任务类型
|
|
|
|
|
|
|
+ List<UtilMap.assDetail> projectOrder=UtilMap.getAssFieldValue(data,"associationFormField_me2hylda_id");
|
|
|
|
|
+ String orderFid= projectOrder.get(0).instanceId; // 项目任务类型
|
|
|
Map orderData=ydClient.queryData(YDParam.builder().formInstId(orderFid).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
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> orderLangConf=UtilMap.getList(orderData,"tableField_meqqj4we");// 语言配置
|
|
|
List<Map> orderTypeConfALl=UtilMap.getList(orderData,"tableField_mesc7nvp");// 类型源配置
|
|
List<Map> orderTypeConfALl=UtilMap.getList(orderData,"tableField_mesc7nvp");// 类型源配置
|
|
|
|
|
+ List<Map> xlConf=UtilMap.getList(orderData,"tableField_mesc7nvj");// 系列源配置
|
|
|
List<Map> orderTypeAndLangConf=new ArrayList<>();// 语言+类型配置
|
|
List<Map> orderTypeAndLangConf=new ArrayList<>();// 语言+类型配置
|
|
|
List<Map> orderTypeConf=new ArrayList<>();// 纯类型配置
|
|
List<Map> orderTypeConf=new ArrayList<>();// 纯类型配置
|
|
|
for(Map map:orderTypeConfALl){
|
|
for(Map map:orderTypeConfALl){
|
|
@@ -90,26 +155,13 @@ public class EastarTbServiceImpl implements EastarTbService {
|
|
|
// 子任务拆分数据
|
|
// 子任务拆分数据
|
|
|
List<Map> sonConfData= ydService.queryDetails(YDParam.builder().formInstanceId("FINST-X1B66Y81IUFY9U417XIUE99I8YV93HGMJ8WEMF").formUuid(EastarParam.YD_FORMUUID_SONCONF).tableFieldId("tableField_mew7d9f3").build());// 全品类配件表
|
|
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);
|
|
Map<String,Map<String,List<String>>> sonConf= ConfigDataProcessor.processConfigData(sonConfData);
|
|
|
- // 同步项目集
|
|
|
|
|
- List<Map> programList = tbProject.queryProgramList("", merName);
|
|
|
|
|
- String programId = ""; // LEV项目管理
|
|
|
|
|
- if (programList.size() > 0) {
|
|
|
|
|
- programId=UtilMap.getString(programList.get(0), "id");
|
|
|
|
|
- }else{
|
|
|
|
|
- Map program=tbProject.createProgramList(merName,"");
|
|
|
|
|
- programId=UtilMap.getString(program,"id");
|
|
|
|
|
- }
|
|
|
|
|
- tbProject.upsertProgramProject(programId, Arrays.asList(tbProjectId), tbConf.getOperatorId());
|
|
|
|
|
|
|
+
|
|
|
// 成员处理
|
|
// 成员处理
|
|
|
- List<String> pmUserId = (List<String>) UtilMap.getList(data, "employeeField_me2hyld8_id");// 项目经理
|
|
|
|
|
- List<String> ssUserId = (List<String>) UtilMap.getList(data, "employeeField_me2hyld9_id");// 业务
|
|
|
|
|
- List<String> qeUserId = (List<String>) UtilMap.getList(data, "employeeField_me9n24ka_id");// QE
|
|
|
|
|
- pmUserId=tbUser.getUserIds(pmUserId, false);
|
|
|
|
|
- ssUserId=tbUser.getUserIds(ssUserId, false);
|
|
|
|
|
qeUserId=tbUser.getUserIds(qeUserId, false);
|
|
qeUserId=tbUser.getUserIds(qeUserId, false);
|
|
|
List<Map> mchTable= UtilMap.getList(data,"tableField_mec6juik");// 跟单
|
|
List<Map> mchTable= UtilMap.getList(data,"tableField_mec6juik");// 跟单
|
|
|
List<String> mchList=new ArrayList<>();
|
|
List<String> mchList=new ArrayList<>();
|
|
|
Map<String,String> mchMap=new HashMap<>();
|
|
Map<String,String> mchMap=new HashMap<>();
|
|
|
|
|
+ Map<String,String> mchDDIdMap=new HashMap<>();
|
|
|
Map<String,String> userIdMap=new HashMap<>();
|
|
Map<String,String> userIdMap=new HashMap<>();
|
|
|
for (Map map:mchTable){
|
|
for (Map map:mchTable){
|
|
|
String ddId=String.valueOf(UtilMap.getList(map,"employeeField_me9n24kl_id").get(0));
|
|
String ddId=String.valueOf(UtilMap.getList(map,"employeeField_me9n24kl_id").get(0));
|
|
@@ -118,6 +170,7 @@ public class EastarTbServiceImpl implements EastarTbService {
|
|
|
userIdMap.put(ddId,tbUser.getUserId(ddId,false));
|
|
userIdMap.put(ddId,tbUser.getUserId(ddId,false));
|
|
|
}
|
|
}
|
|
|
mchMap.put(UtilMap.getString(map,"textField_mec6juil"),userIdMap.get(ddId));
|
|
mchMap.put(UtilMap.getString(map,"textField_mec6juil"),userIdMap.get(ddId));
|
|
|
|
|
+ mchDDIdMap.put(UtilMap.getString(map,"textField_mec6juil"),ddId);
|
|
|
}
|
|
}
|
|
|
mchList=tbUser.getUserIds(mchList, false);
|
|
mchList=tbUser.getUserIds(mchList, false);
|
|
|
mchList.remove(tbConf.getOperatorId());
|
|
mchList.remove(tbConf.getOperatorId());
|
|
@@ -142,6 +195,25 @@ public class EastarTbServiceImpl implements EastarTbService {
|
|
|
String roleId = _getProjectRoleId(tbProjectId, "项目拥有者");
|
|
String roleId = _getProjectRoleId(tbProjectId, "项目拥有者");
|
|
|
tbProject.updateProjectMember(pmUserId, Arrays.asList(roleId), tbProjectId);
|
|
tbProject.updateProjectMember(pmUserId, Arrays.asList(roleId), tbProjectId);
|
|
|
}
|
|
}
|
|
|
|
|
+ String projectTaskId= UtilMap.getString(data,"textField_mgu73usl");// 大看板任务编号
|
|
|
|
|
+ if(PublicUtil.isNull(projectTaskId)){
|
|
|
|
|
+ // 创建任务及看板
|
|
|
|
|
+ List mainProjectcustomfields=new ArrayList();
|
|
|
|
|
+ mainProjectcustomfields.add(tbConf.assembleCustomFieldName("项目类型",orderType));
|
|
|
|
|
+ mainProjectcustomfields.add(tbConf.assembleCustomFieldName("订单金额(美金)",UtilMap.getString(orderData,"numberField_mdy6ezcu")));
|
|
|
|
|
+// mainProjectcustomfields.add(tbConf.assembleCustomFieldName("产品类型",orderType));
|
|
|
|
|
+ List<String> gcNameList=new ArrayList<>(mchMap.keySet()); // 工厂
|
|
|
|
|
+ mainProjectcustomfields.add(tbConf.assembleCustomField("工厂",getCustFiledValueTitle(gcNameList)));
|
|
|
|
|
+ mainProjectcustomfields.add(tbConf.assembleCustomFieldName("客户",merName));
|
|
|
|
|
+ mainProjectcustomfields.add(tbConf.assembleCustomField("业务(Sales)",getCustFiledValueId(ssUserId)));
|
|
|
|
|
+ mainProjectcustomfields.add(tbConf.assembleCustomField("跟单人",getCustFiledValueId(mchList)));
|
|
|
|
|
+ mainProjectcustomfields.add(tbConf.assembleCustomField("品控(QE)",getCustFiledValueId(qeUserId)));
|
|
|
|
|
+ mainProjectcustomfields.add(tbConf.assembleCustomFieldName("Project Name",UtilMap.getString(data,"textField_me9n24l0")));
|
|
|
|
|
+ mainProjectcustomfields.add(tbConf.assembleCustomFieldName("客户分级",UtilMap.getString(data,"textField_mgokximj")));
|
|
|
|
|
+ projectTaskId=creatMainProjectTask(tbProjectId,pName,pId,UtilMap.getList(data,"tableField_mgu5rm3e"),pmUserId.get(0),mainProjectcustomfields);
|
|
|
|
|
+ ydClient.operateData(YDParam.builder().formInstanceId(formInstId)
|
|
|
|
|
+ .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("textField_mgu73usl",projectTaskId))).build(), YDConf.FORM_OPERATION.update);
|
|
|
|
|
+ }
|
|
|
// 任务公用字段
|
|
// 任务公用字段
|
|
|
List maincustomfields=new ArrayList();
|
|
List maincustomfields=new ArrayList();
|
|
|
maincustomfields.add(tbConf.assembleCustomFieldName("项目编号",pId));
|
|
maincustomfields.add(tbConf.assembleCustomFieldName("项目编号",pId));
|
|
@@ -151,6 +223,8 @@ public class EastarTbServiceImpl implements EastarTbService {
|
|
|
maincustomfields.add(tbConf.assembleCustomField("业务(Sales)",getCustFiledValueId(ssUserId)));
|
|
maincustomfields.add(tbConf.assembleCustomField("业务(Sales)",getCustFiledValueId(ssUserId)));
|
|
|
maincustomfields.add(tbConf.assembleCustomField("项目经理(PM)",getCustFiledValueId(pmUserId)));
|
|
maincustomfields.add(tbConf.assembleCustomField("项目经理(PM)",getCustFiledValueId(pmUserId)));
|
|
|
maincustomfields.add(tbConf.assembleCustomField("品控(QE)",getCustFiledValueId(qeUserId)));
|
|
maincustomfields.add(tbConf.assembleCustomField("品控(QE)",getCustFiledValueId(qeUserId)));
|
|
|
|
|
+ maincustomfields.add(tbConf.assembleCustomFieldName("Project Name",UtilMap.getString(data,"textField_me9n24l0")));
|
|
|
|
|
+ maincustomfields.add(tbConf.assembleCustomFieldName("客户分级",UtilMap.getString(data,"textField_mgokximj")));
|
|
|
|
|
|
|
|
// 任务类型
|
|
// 任务类型
|
|
|
String scenariofieldconfigId=_getTaskType(tbProjectId,pTaskType);
|
|
String scenariofieldconfigId=_getTaskType(tbProjectId,pTaskType);
|
|
@@ -161,13 +235,15 @@ public class EastarTbServiceImpl implements EastarTbService {
|
|
|
List<Map> table= ydService.queryDetails(YDParam.builder().formInstanceId(formInstId).formUuid(EastarParam.YD_FORMUUID_PROJECT).tableFieldId("tableField_mdy8x198").build());// 全品类配件表
|
|
List<Map> table= ydService.queryDetails(YDParam.builder().formInstanceId(formInstId).formUuid(EastarParam.YD_FORMUUID_PROJECT).tableFieldId("tableField_mdy8x198").build());// 全品类配件表
|
|
|
List<Map> recodTable = new ArrayList<>();
|
|
List<Map> recodTable = new ArrayList<>();
|
|
|
List<String> jds=UtilMap.getList(data,"checkboxField_me9n37rs");
|
|
List<String> jds=UtilMap.getList(data,"checkboxField_me9n37rs");
|
|
|
|
|
+ Map<String,List<Map>> gysOrderData=new HashMap<>(); // 采购需求数据 按照供应商拆分BOM
|
|
|
for(Map map:table){
|
|
for(Map map:table){
|
|
|
Map taskMap=UtilMap.map("projectId, tasklistId, scenariofieldconfigId, stageId",tbProjectId,tasklistId,scenariofieldconfigId,stageId);
|
|
Map taskMap=UtilMap.map("projectId, tasklistId, scenariofieldconfigId, stageId",tbProjectId,tasklistId,scenariofieldconfigId,stageId);
|
|
|
- taskMap.put("content",String.valueOf(map.get("selectField_me2f7tw4"))+"-"+String.valueOf(map.get("textField_me2f7tvo"))); //系列 配件
|
|
|
|
|
- taskMap.put("executorId",mchMap.get(UtilMap.getString(map,"textField_me2f7tvz"))); // 通过供应商确定执行人
|
|
|
|
|
|
|
+ taskMap.put("content",getValue(map,"selectField_me2f7tw4","-")+getValue(map,"textField_me2f7tvo","")); //系列 配件
|
|
|
|
|
+ String gysName=UtilMap.getString(map,"textField_me2f7tvz");
|
|
|
|
|
+ taskMap.put("executorId",mchMap.get(gysName)); // 通过供应商确定执行人
|
|
|
List<Map> customfields=getCustomfields(EastarParam.CUSTFIELD_ACCE,map);
|
|
List<Map> customfields=getCustomfields(EastarParam.CUSTFIELD_ACCE,map);
|
|
|
customfields.addAll(maincustomfields);
|
|
customfields.addAll(maincustomfields);
|
|
|
- List<Map> resulr=null;
|
|
|
|
|
|
|
+ List<Map> result=null;
|
|
|
boolean isLang="是".equals(UtilMap.getString(map,"radioField_me2f7tvx"));
|
|
boolean isLang="是".equals(UtilMap.getString(map,"radioField_me2f7tvx"));
|
|
|
boolean isType="是".equals(UtilMap.getString(map,"radioField_metn23go"));
|
|
boolean isType="是".equals(UtilMap.getString(map,"radioField_metn23go"));
|
|
|
String type=UtilMap.getString(map,"selectField_me2f7tvk"); // 配件大类
|
|
String type=UtilMap.getString(map,"selectField_me2f7tvk"); // 配件大类
|
|
@@ -185,49 +261,77 @@ public class EastarTbServiceImpl implements EastarTbService {
|
|
|
}
|
|
}
|
|
|
if(isType){// 区分工艺
|
|
if(isType){// 区分工艺
|
|
|
if(isLang){ // 区分语言 通过工艺拆分
|
|
if(isLang){ // 区分语言 通过工艺拆分
|
|
|
- resulr=saveTbTask(taskMap,orderTypeAndLangConf,UtilMap.getString(map,"selectField_me2f7tw4"),customfields,isLang,isType,sonconf,sonScenariofieldconfigId);
|
|
|
|
|
|
|
+ result=saveTbTask(taskMap,orderTypeAndLangConf,UtilMap.getString(map,"selectField_me2f7tw4"),customfields,isLang,isType,sonconf,sonScenariofieldconfigId,gysName,pId);
|
|
|
}else{// 不区分语言 通过工艺没有
|
|
}else{// 不区分语言 通过工艺没有
|
|
|
- resulr=saveTbTask(taskMap,orderTypeConf,UtilMap.getString(map,"selectField_me2f7tw4"),customfields,isLang,isType,sonconf,sonScenariofieldconfigId);
|
|
|
|
|
|
|
+ result=saveTbTask(taskMap,orderTypeConf,UtilMap.getString(map,"selectField_me2f7tw4"),customfields,isLang,isType,sonconf,sonScenariofieldconfigId,gysName,pId);
|
|
|
}
|
|
}
|
|
|
}else{// 不区分工艺
|
|
}else{// 不区分工艺
|
|
|
if(isLang){ // 区分语言
|
|
if(isLang){ // 区分语言
|
|
|
- resulr=saveTbTask(taskMap,orderLangConf,UtilMap.getString(map,"selectField_me2f7tw4"),customfields,isLang,isType,sonconf,sonScenariofieldconfigId);
|
|
|
|
|
|
|
+ result=saveTbTask(taskMap,orderLangConf,UtilMap.getString(map,"selectField_me2f7tw4"),customfields,isLang,isType,sonconf,sonScenariofieldconfigId,gysName,pId);
|
|
|
}else{
|
|
}else{
|
|
|
- resulr=saveTbTask(taskMap,Arrays.asList(UtilMap.map("textField_meqqj4wa, textField_mesc7nvm, numberField_mesc7nvo",
|
|
|
|
|
- map.get("selectField_me2f7tw4"),map.get("selectField_me2f7tvj"),map.get("numberField_me2f7tvl"))),
|
|
|
|
|
- UtilMap.getString(map,"selectField_me2f7tw4"),customfields,isLang,isType,sonconf,sonScenariofieldconfigId);
|
|
|
|
|
|
|
+ result=saveTbTask(taskMap,xlConf,UtilMap.getString(map,"selectField_me2f7tw4"),customfields,isLang,isType,sonconf,sonScenariofieldconfigId,gysName,pId);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- recodTable.addAll(resulr);
|
|
|
|
|
|
|
+ if(gysOrderData.containsKey(gysName)){
|
|
|
|
|
+ gysOrderData.get(gysName).addAll(result);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ gysOrderData.put(gysName,result);
|
|
|
|
|
+ }
|
|
|
|
|
+ recodTable.addAll(result);
|
|
|
}
|
|
}
|
|
|
// 公仔任务生成
|
|
// 公仔任务生成
|
|
|
List<Map> recodTable2 = new ArrayList<>();
|
|
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"),"未开始"));
|
|
|
|
|
|
|
+// 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);
|
|
|
|
|
+ // 循环保存采购任务
|
|
|
|
|
+ for (String key:gysOrderData.keySet()){
|
|
|
|
|
+ List<Map> arr=gysOrderData.get(key);
|
|
|
|
|
+ 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("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"));
|
|
|
}
|
|
}
|
|
|
|
|
+ ydClient.operateData(YDParam.builder().formUuid(EastarParam.YD_FORMUUID_CGTASK).formDataJson(JSONObject.toJSONString(order)).build(), YDConf.FORM_OPERATION.create);
|
|
|
}
|
|
}
|
|
|
- saveRecod(data,tbProjectId,recodTable,recodTable2);
|
|
|
|
|
return Collections.emptyMap();
|
|
return Collections.emptyMap();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private List<Map> saveTbTask(Map taskMap,List<Map> orderConf,String series,List<Map> customfields,boolean isLang,boolean isType,List<String> sonconf,String sonScenariofieldconfigId){
|
|
|
|
|
|
|
+ private String getValue(Map map,String key,String s){
|
|
|
|
|
+ String value=UtilMap.getString(map,key);
|
|
|
|
|
+ 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);
|
|
log.info("创建任务:{},是否区分语言{},是否区分工艺{}",taskMap.get("content"),isLang,isType);
|
|
|
List<Map> recodTable=new ArrayList<>();
|
|
List<Map> recodTable=new ArrayList<>();
|
|
|
|
|
+ if (PublicUtil.isNull(taskMap,"executorId")){
|
|
|
|
|
+ taskMap.remove("executorId");
|
|
|
|
|
+ }
|
|
|
for(Map map: orderConf){
|
|
for(Map map: orderConf){
|
|
|
Map tMap=new HashMap();
|
|
Map tMap=new HashMap();
|
|
|
tMap.putAll(taskMap);
|
|
tMap.putAll(taskMap);
|
|
|
- String confSeries=UtilMap.getString_first(map,"textField_meqqj4wa","textField_mesc7nvl");// 系列
|
|
|
|
|
|
|
+ String confSeries=UtilMap.getString_first(map,"textField_meqqj4wa","textField_mesc7nvl","textField_mesc7nvf");// 系列
|
|
|
if(!series.equals(confSeries)){
|
|
if(!series.equals(confSeries)){
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
@@ -245,22 +349,27 @@ public class EastarTbServiceImpl implements EastarTbService {
|
|
|
tMap.put("content",tMap.get("content")+"-"+type);
|
|
tMap.put("content",tMap.get("content")+"-"+type);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- String value=String.valueOf(UtilMap.get_first(map,"numberField_mesc7nvo","numberField_meqqj4wd")); // 数量
|
|
|
|
|
|
|
+ String value=UtilMap.getString_first(map,"numberField_mesc7nvo","numberField_meqqj4wd","numberField_mesc7nvi"); // 数量
|
|
|
|
|
+ String sku="";
|
|
|
customfields.add(tbConf.assembleCustomFieldName("订单数量",value));
|
|
customfields.add(tbConf.assembleCustomFieldName("订单数量",value));
|
|
|
tMap.put("customfields",customfields);
|
|
tMap.put("customfields",customfields);
|
|
|
- log.info("最终任务名称:{}",tMap.get("content"));
|
|
|
|
|
|
|
+ log.info("最终任务名称:{},详细参数:{}",tMap.get("content"),tMap);
|
|
|
Map result=tbTask.createTask(tbConf.getOperatorId(), tMap);// 更新任务所属任务列表
|
|
Map result=tbTask.createTask(tbConf.getOperatorId(), tMap);// 更新任务所属任务列表
|
|
|
- recodTable.add(UtilMap.map("textField_mecmytpr, textField_mecmytps, textField_mecmytpt",result.get("content"),result.get("taskId"),"未开始"));
|
|
|
|
|
|
|
+ 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){
|
|
for (String son:sonconf){
|
|
|
Map sonMap=new HashMap();
|
|
Map sonMap=new HashMap();
|
|
|
sonMap.put("content",tMap.get("content")+"/"+son.replace("/","-"));
|
|
sonMap.put("content",tMap.get("content")+"/"+son.replace("/","-"));
|
|
|
- sonMap.put("executorId",taskMap.get("executorId"));
|
|
|
|
|
|
|
+ if(taskMap.containsKey("executorId")){
|
|
|
|
|
+ sonMap.put("executorId",taskMap.get("executorId"));
|
|
|
|
|
+ }
|
|
|
sonMap.put("stageId",taskMap.get("stageId"));
|
|
sonMap.put("stageId",taskMap.get("stageId"));
|
|
|
sonMap.put("tasklistId",taskMap.get("tasklistId"));
|
|
sonMap.put("tasklistId",taskMap.get("tasklistId"));
|
|
|
sonMap.put("scenariofieldconfigId",sonScenariofieldconfigId);
|
|
sonMap.put("scenariofieldconfigId",sonScenariofieldconfigId);
|
|
|
sonMap.put("parentTaskId",result.get("taskId"));
|
|
sonMap.put("parentTaskId",result.get("taskId"));
|
|
|
List soncustomfields=new ArrayList();
|
|
List soncustomfields=new ArrayList();
|
|
|
soncustomfields.add(tbConf.assembleCustomFieldName("SKU类型",son));
|
|
soncustomfields.add(tbConf.assembleCustomFieldName("SKU类型",son));
|
|
|
|
|
+ soncustomfields.add(tbConf.assembleCustomFieldName("工厂(SKU供应商)",gysName));
|
|
|
|
|
+ soncustomfields.add(tbConf.assembleCustomFieldName("订单数量",value));
|
|
|
sonMap.put("customfields",soncustomfields);
|
|
sonMap.put("customfields",soncustomfields);
|
|
|
sonMap.put("projectId",taskMap.get("projectId"));
|
|
sonMap.put("projectId",taskMap.get("projectId"));
|
|
|
Map sonResult=tbTask.createTask(tbConf.getOperatorId(), sonMap);
|
|
Map sonResult=tbTask.createTask(tbConf.getOperatorId(), sonMap);
|
|
@@ -283,7 +392,7 @@ public class EastarTbServiceImpl implements EastarTbService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public void taskCount(String pid, String tbPid, String fid, String taskTypeName) {
|
|
|
|
|
|
|
+ public void taskCount(String pid, String tbPid, String fid, String taskTypeName, String projectState) {
|
|
|
// 1.1循环所有项目
|
|
// 1.1循环所有项目
|
|
|
// 1.2查询项目的自定义字段
|
|
// 1.2查询项目的自定义字段
|
|
|
List<Map> tidList=tbProject.queryProjectCustomField(tbPid,UtilMap.map("q","项目编号"));
|
|
List<Map> tidList=tbProject.queryProjectCustomField(tbPid,UtilMap.map("q","项目编号"));
|
|
@@ -300,9 +409,25 @@ public class EastarTbServiceImpl implements EastarTbService {
|
|
|
log.info("{}阶段数量:{}",map.get("name"),count);
|
|
log.info("{}阶段数量:{}",map.get("name"),count);
|
|
|
updateMap.put(TFNAME_YDKEY.get(map.get("name")),count);
|
|
updateMap.put(TFNAME_YDKEY.get(map.get("name")),count);
|
|
|
}
|
|
}
|
|
|
|
|
+ if(projectState.equals("立项阶段")){
|
|
|
|
|
+ updateMap.put("selectField_me2hylde","样品阶段");
|
|
|
|
|
+ }else if(projectState.equals("样品阶段")&&!isYp(updateMap,Arrays.asList("未开始","白样","制版","产前样"))){
|
|
|
|
|
+ updateMap.put("selectField_me2hylde","生产阶段");
|
|
|
|
|
+ }
|
|
|
ydClient.operateData(YDParam.builder().formInstId(fid).updateFormDataJson(JSONObject.toJSONString(updateMap)).useLatestFormSchemaVersion(true).build(), YDConf.FORM_OPERATION.update);
|
|
ydClient.operateData(YDParam.builder().formInstId(fid).updateFormDataJson(JSONObject.toJSONString(updateMap)).useLatestFormSchemaVersion(true).build(), YDConf.FORM_OPERATION.update);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private boolean isYp(Map updateMap,List<String> list){
|
|
|
|
|
+ for (String key:list){
|
|
|
|
|
+ if(updateMap.containsKey(TFNAME_YDKEY.get(key))){
|
|
|
|
|
+ if(UtilMap.getInt(updateMap,TFNAME_YDKEY.get(key))>0){
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ 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,List<Map> recodTable2){
|
|
|
Map map=new HashMap();
|
|
Map map=new HashMap();
|
|
|
map.put("textField_me87x1nz",formData.get("textField_me87x1nz"));
|
|
map.put("textField_me87x1nz",formData.get("textField_me87x1nz"));
|
|
@@ -337,6 +462,11 @@ public class EastarTbServiceImpl implements EastarTbService {
|
|
|
return UtilMap.map("id, title",item,item);
|
|
return UtilMap.map("id, title",item,item);
|
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
|
}
|
|
}
|
|
|
|
|
+ private static List<Map> getCustFiledValueTitle(List<String> values){
|
|
|
|
|
+ return values.stream().map(item->{
|
|
|
|
|
+ return UtilMap.map("title",item);
|
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
String _getTaskType(String projectId, String taskTypeName) {
|
|
String _getTaskType(String projectId, String taskTypeName) {
|
|
|
return _getTaskType(projectId,taskTypeName,"id");
|
|
return _getTaskType(projectId,taskTypeName,"id");
|