|
@@ -13,6 +13,7 @@ import com.malk.service.aliwork.YDService;
|
|
|
import com.malk.utils.PublicUtil;
|
|
import com.malk.utils.PublicUtil;
|
|
|
import com.malk.utils.UtilMap;
|
|
import com.malk.utils.UtilMap;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
@@ -67,7 +68,7 @@ public class YidaServiceImpl implements YidaService {
|
|
|
//String pTaskType = UtilMap.getString(projectData,"textField_mfqnsa9d"); // TB任务类型名称
|
|
//String pTaskType = UtilMap.getString(projectData,"textField_mfqnsa9d"); // TB任务类型名称
|
|
|
String customerName = UtilMap.getString(projectData,"textField_me87x1o0"); // 客户名称,旧变量名 -> merName
|
|
String customerName = UtilMap.getString(projectData,"textField_me87x1o0"); // 客户名称,旧变量名 -> merName
|
|
|
System.out.println("客户名称:"+customerName);
|
|
System.out.println("客户名称:"+customerName);
|
|
|
- String orderType = UtilMap.getString(projectData,"selectField_mdf997wp"); // 订单类型(大货|打样)
|
|
|
|
|
|
|
+ String projectOrderType = UtilMap.getString(projectData,"selectField_mdf997wp"); // 订单类型(大货|打样)
|
|
|
List<String> projectPhaseList = UtilMap.getList(projectData,"checkboxField_me9n37rs"); //包含阶段,旧变量名 -> jds
|
|
List<String> projectPhaseList = UtilMap.getList(projectData,"checkboxField_me9n37rs"); //包含阶段,旧变量名 -> jds
|
|
|
List<String> pmUserId = (List<String>) UtilMap.getList(projectData, "employeeField_me2hyld8_id"); // 项目经理(项目经理 Product Manager)userid
|
|
List<String> pmUserId = (List<String>) UtilMap.getList(projectData, "employeeField_me2hyld8_id"); // 项目经理(项目经理 Product Manager)userid
|
|
|
List<String> ssUserId = (List<String>) UtilMap.getList(projectData, "employeeField_me2hyld9_id"); // 业务(从事销售工作的人员 Sales Staff)userid
|
|
List<String> ssUserId = (List<String>) UtilMap.getList(projectData, "employeeField_me2hyld9_id"); // 业务(从事销售工作的人员 Sales Staff)userid
|
|
@@ -82,6 +83,9 @@ public class YidaServiceImpl implements YidaService {
|
|
|
List<UtilMap.assDetail> projectDataAssOrder = UtilMap.getAssFieldValue(
|
|
List<UtilMap.assDetail> projectDataAssOrder = UtilMap.getAssFieldValue(
|
|
|
projectData,"associationFormField_me2hylda_id"
|
|
projectData,"associationFormField_me2hylda_id"
|
|
|
); //【立项/项目台账】关联表单【制作新订单】,旧变量名 -> projectOrder
|
|
); //【立项/项目台账】关联表单【制作新订单】,旧变量名 -> projectOrder
|
|
|
|
|
+ List<Map> projectSubDataPlan = UtilMap.getList(
|
|
|
|
|
+ projectData,"tableField_mgu5rm3e"
|
|
|
|
|
+ ); // 【立项/项目台账】子表单【项目计划】,,旧变量名 -> projectPlan
|
|
|
List<Map> projectSubDataParts = ydService.queryDetails(
|
|
List<Map> projectSubDataParts = ydService.queryDetails(
|
|
|
YDParam.builder()
|
|
YDParam.builder()
|
|
|
.formInstanceId(formInstId)
|
|
.formInstanceId(formInstId)
|
|
@@ -101,6 +105,25 @@ public class YidaServiceImpl implements YidaService {
|
|
|
YDParam.builder().formInstId(orderId).build(),
|
|
YDParam.builder().formInstId(orderId).build(),
|
|
|
YDConf.FORM_QUERY.retrieve_id
|
|
YDConf.FORM_QUERY.retrieve_id
|
|
|
).getFormData(); //【制作新订单】数据
|
|
).getFormData(); //【制作新订单】数据
|
|
|
|
|
+ int sampleNum; //套装样品数量
|
|
|
|
|
+ Object demoValue = orderData.get("textField_me2f7tvd"); //套装样品及数量(单行文本类型)
|
|
|
|
|
+ // 检查值是否为 Integer 类型
|
|
|
|
|
+ if (demoValue == null) {
|
|
|
|
|
+ sampleNum = 0;
|
|
|
|
|
+ }else if (demoValue instanceof Integer) {
|
|
|
|
|
+ sampleNum = (Integer) demoValue;
|
|
|
|
|
+ } else if (demoValue instanceof String) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ sampleNum = Integer.parseInt((String) demoValue);
|
|
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
|
|
+ // 解析失败
|
|
|
|
|
+ System.err.println("套装样品及数量字段值不是整数!");
|
|
|
|
|
+ sampleNum = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ System.err.println("套装样品及数量字段值不是整数!");
|
|
|
|
|
+ sampleNum = 0;
|
|
|
|
|
+ }
|
|
|
List<Map> orderSubDataSeries = UtilMap.getList(orderData,"tableField_mesc7nvj"); // 【制作新订单】子表单【系列套数】,旧变量名 -> xlConf
|
|
List<Map> orderSubDataSeries = UtilMap.getList(orderData,"tableField_mesc7nvj"); // 【制作新订单】子表单【系列套数】,旧变量名 -> xlConf
|
|
|
System.out.println("【制作新订单】子表单【系列套数】");
|
|
System.out.println("【制作新订单】子表单【系列套数】");
|
|
|
String codeSeries;
|
|
String codeSeries;
|
|
@@ -129,7 +152,7 @@ public class YidaServiceImpl implements YidaService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
- 获取供应商与采购跟单数据
|
|
|
|
|
|
|
+ 获取供应商与采购跟单数据(当前项目)
|
|
|
*/
|
|
*/
|
|
|
List<String> buyerUserIdList = new ArrayList<>(); //采购跟单userid列表,旧变量名 -> mchList
|
|
List<String> buyerUserIdList = new ArrayList<>(); //采购跟单userid列表,旧变量名 -> mchList
|
|
|
String supplier;
|
|
String supplier;
|
|
@@ -148,13 +171,13 @@ public class YidaServiceImpl implements YidaService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
- 查询配件信息
|
|
|
|
|
|
|
+ 查询配件类型信息
|
|
|
【品类表】 FORM-17E244F3FB2240EB930E6DD4E22C7F89KXAR
|
|
【品类表】 FORM-17E244F3FB2240EB930E6DD4E22C7F89KXAR
|
|
|
*/
|
|
*/
|
|
|
- List<Map> partsData = ydService.queryAllFormData(
|
|
|
|
|
|
|
+ List<Map> partsTypeData = ydService.queryAllFormData(
|
|
|
YDParam.builder().formUuid(EastarParam.YD_FORMUUID_SKU_TYPE).build()
|
|
YDParam.builder().formUuid(EastarParam.YD_FORMUUID_SKU_TYPE).build()
|
|
|
); // 【品类表】数据,旧变量名 -> skuTypeListConfigData
|
|
); // 【品类表】数据,旧变量名 -> skuTypeListConfigData
|
|
|
- Map partsNameCodeMap = ConfigDataProcessor.skuTypeListConfigData(partsData); // 品类名称与配件编号映射,旧变量名 -> skuIdMap
|
|
|
|
|
|
|
+ Map partsTypeNameCodeMap = ConfigDataProcessor.skuTypeListConfigData(partsTypeData); // 品类名称与配件编号(这里的配件编号应该是品类编码)映射,旧变量名 -> skuIdMap
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
查询配件参数信息
|
|
查询配件参数信息
|
|
@@ -183,17 +206,30 @@ public class YidaServiceImpl implements YidaService {
|
|
|
// userIdList = new ArrayList<>(userIdSet);
|
|
// userIdList = new ArrayList<>(userIdSet);
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
- 创建配件任务
|
|
|
|
|
|
|
+ 获取所有配件记录
|
|
|
*/
|
|
*/
|
|
|
- List<Map> partsTaskData1; //配件任务数据1,旧变量名 -> result
|
|
|
|
|
- List<Map> partsTaskData2 = new ArrayList<>(); //配件任务数据
|
|
|
|
|
- Map<String,List<Map>> supplierPurchaseMap = new HashMap<>(); // 供应商与采购需求关联数据
|
|
|
|
|
|
|
+ List<Map> partsRecordList; //所有配件记录,旧变量名 -> result
|
|
|
|
|
+ List<Map> partsTaskSubData = new ArrayList<>(); //配件任务明细数据
|
|
|
|
|
+ Map<String,List<Map>> partsRecordListBySupplier = new HashMap<>(); // 供应商与采购需求关联数据
|
|
|
boolean isMultiLang; //语言区别,旧变量名 -> isLang
|
|
boolean isMultiLang; //语言区别,旧变量名 -> isLang
|
|
|
String partsMajorType; //配件大类,旧变量名 -> type
|
|
String partsMajorType; //配件大类,旧变量名 -> type
|
|
|
Map<String,List<String>> partsConfMapByMajorType; //配件参数信息(某配件大类),旧变量名 -> sonconfs
|
|
Map<String,List<String>> partsConfMapByMajorType; //配件参数信息(某配件大类),旧变量名 -> sonconfs
|
|
|
List<String> phaseDeliverablesList; //阶段产出物列表
|
|
List<String> phaseDeliverablesList; //阶段产出物列表
|
|
|
List<String> partsMajorTypePhaseDeliverables; //配件大类与产出物列表,旧变量名 -> sonconf
|
|
List<String> partsMajorTypePhaseDeliverables; //配件大类与产出物列表,旧变量名 -> sonconf
|
|
|
- for(Map projectSubRecordParts : projectSubDataParts){ //遍历【立项/项目台账】子表单【全品类】记录,旧变量名 -> map
|
|
|
|
|
|
|
+ Map<String,String> seriesDevNumMap = new HashMap<>(); //系列与研发部订单需求数量映射数据
|
|
|
|
|
+ String devNum; //研发部订单需求数量
|
|
|
|
|
+ for(Map projectSubRecordParts : projectSubDataParts){ //遍历【立项/项目台账】子表单【全品类】数据,旧变量名 -> map
|
|
|
|
|
+ /*
|
|
|
|
|
+ 获取系列与研发部订单需求数量映射
|
|
|
|
|
+ */
|
|
|
|
|
+ nameSeries = UtilMap.getString(projectSubRecordParts,"selectField_me2f7tw4"); //系列
|
|
|
|
|
+ devNum = UtilMap.getString(projectSubRecordParts,"numberField_mmke3fdc"); //研发部订单需求数量
|
|
|
|
|
+ if(seriesDevNumMap.get(nameSeries) == null){
|
|
|
|
|
+ seriesDevNumMap.put(nameSeries,devNum);
|
|
|
|
|
+ }
|
|
|
|
|
+ /*
|
|
|
|
|
+ 获取配件大类与产出物列表
|
|
|
|
|
+ */
|
|
|
supplier = UtilMap.getString(projectSubRecordParts,"textField_me2f7tvz"); //供应商,旧变量名 -> gysName
|
|
supplier = UtilMap.getString(projectSubRecordParts,"textField_me2f7tvz"); //供应商,旧变量名 -> gysName
|
|
|
isMultiLang = "是".equals(UtilMap.getString(projectSubRecordParts,"radioField_me2f7tvx"));
|
|
isMultiLang = "是".equals(UtilMap.getString(projectSubRecordParts,"radioField_me2f7tvx"));
|
|
|
partsMajorType = UtilMap.getString(projectSubRecordParts,"selectField_me2f7tvk");
|
|
partsMajorType = UtilMap.getString(projectSubRecordParts,"selectField_me2f7tvk");
|
|
@@ -209,77 +245,88 @@ public class YidaServiceImpl implements YidaService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if(isMultiLang){ // 是否存在多种语言版本
|
|
|
|
|
- partsTaskData1 = createPartsTaskData1(null,orderSubDataLang,projectSubRecordParts,null,isMultiLang,partsMajorTypePhaseDeliverables,null,supplier,projectCode,leadsCode,partsNameCodeMap);
|
|
|
|
|
- }else{
|
|
|
|
|
- partsTaskData1 = createPartsTaskData1(null,orderSubDataSeries,projectSubRecordParts,null,isMultiLang,partsMajorTypePhaseDeliverables,null,supplier,projectCode,leadsCode,partsNameCodeMap);
|
|
|
|
|
- }
|
|
|
|
|
- if(supplierPurchaseMap.containsKey(supplier)){
|
|
|
|
|
- supplierPurchaseMap.get(supplier).addAll(partsTaskData1);
|
|
|
|
|
|
|
+ /*
|
|
|
|
|
+ 获取所有配件记录
|
|
|
|
|
+ */
|
|
|
|
|
+ partsRecordList = getPartsRecordList(null,orderSubDataLang,projectSubRecordParts,null,isMultiLang,partsMajorTypePhaseDeliverables,null,supplier,projectCode,leadsCode,partsTypeNameCodeMap);
|
|
|
|
|
+ /*
|
|
|
|
|
+ 按供应商对配件记录进行分组
|
|
|
|
|
+ */
|
|
|
|
|
+ if(partsRecordListBySupplier.containsKey(supplier)){
|
|
|
|
|
+ partsRecordListBySupplier.get(supplier).addAll(partsRecordList);
|
|
|
}else{
|
|
}else{
|
|
|
- supplierPurchaseMap.put(supplier,partsTaskData1);
|
|
|
|
|
|
|
+ partsRecordListBySupplier.put(supplier,partsRecordList);
|
|
|
}
|
|
}
|
|
|
- partsTaskData2.addAll(partsTaskData1);
|
|
|
|
|
|
|
+ partsTaskSubData.addAll(partsRecordList);
|
|
|
}
|
|
}
|
|
|
- System.out.println("配件任务数据数量="+partsTaskData2.size());
|
|
|
|
|
- /*
|
|
|
|
|
- 从立项数据提取项目计划明细数据
|
|
|
|
|
- */
|
|
|
|
|
- List<Map> projectSubDataPlan = UtilMap.getList(projectData,"tableField_mgu5rm3e"); // 项目计划明细,旧变量名 -> projectPlan
|
|
|
|
|
|
|
+ System.out.println("配件任务明细数量="+partsTaskSubData.size());
|
|
|
|
|
+
|
|
|
/*
|
|
/*
|
|
|
- 按配件任务关联项目阶段对配件任务数据进行调整
|
|
|
|
|
|
|
+ 按项目阶段拆解配件任务数据
|
|
|
*/
|
|
*/
|
|
|
- List<String> partsTaskPhaseList = Arrays.asList("白样", "产前样","大货样", "大货"); //配件任务关联项目阶段(不包含包装),旧变量名 -> jdList
|
|
|
|
|
- Object demoValue = orderData.get("textField_me2f7tvd"); //套装样品及数量
|
|
|
|
|
- long planEndTime;
|
|
|
|
|
- List<Map> partsTaskRecordsByGys;
|
|
|
|
|
- List<Map> modifiedList;
|
|
|
|
|
- String taskStatus;
|
|
|
|
|
- String taskType;
|
|
|
|
|
- String procuremenType;
|
|
|
|
|
- Map<String, Object> copiedMap;
|
|
|
|
|
- Map supplierOrder; //采购订单,旧变量名 -> order
|
|
|
|
|
- List<Map> gysBuyerData; //跟单与供应商映射数据,旧变量名 -> gysList
|
|
|
|
|
- List<UtilMap.assDetail> gysBuyerDataAssSupplier; //供应商档案关联表单,旧变量名 -> gys
|
|
|
|
|
- for(String phase : projectPhaseList){ //遍历项目包含阶段,旧变量名 -> jd
|
|
|
|
|
- System.out.println("项目阶段:"+phase);
|
|
|
|
|
- if(partsTaskPhaseList.contains(phase)){
|
|
|
|
|
- planEndTime = 0;
|
|
|
|
|
- for(Map stage : projectSubDataPlan){
|
|
|
|
|
- if(phase.equals(UtilMap.getString(stage,"textField_mgu5rm3f"))){ //比较阶段是否一致
|
|
|
|
|
- planEndTime = UtilMap.getLong(stage,"dateField_mgu5rm3h"); //计划结束时间,旧变量名 -> planTimestamp
|
|
|
|
|
|
|
+ Map partsTaskData; //配件任务数据,旧变量名 -> order
|
|
|
|
|
+ List<String> partsTaskPhaseList = Arrays.asList("白样", "产前样","大货样", "大货"); //配件任务阶段(不包含包装)列表,旧变量名 -> jdList
|
|
|
|
|
+ long projectPhasePlanEndTime; //项目阶段计划结束时间(时间戳)
|
|
|
|
|
+ List<Map> partsTaskSubDataNew; //配件任务明细数据(新)
|
|
|
|
|
+ String partsTaskStatus; //配件任务状态,旧变量名 -> taskStatus
|
|
|
|
|
+ String partsTaskOrderType; //订单类型【配件任务表】,旧变量名 -> taskType
|
|
|
|
|
+ String purchaseType; //采购类型,旧变量名 -> procuremenType
|
|
|
|
|
+ Map<String, Object> partsRecordNew; //配件记录(新),旧变量名 -> copiedMap
|
|
|
|
|
+ List<Map> supplierBuyerData; //【跟单-供应商对应表】数据,旧变量名 -> gysList
|
|
|
|
|
+ List<UtilMap.assDetail> supplierBuyerDataAssSupplier; //【跟单-供应商对应表】关联表单【供应商】,旧变量名 -> gys
|
|
|
|
|
+ String numOfSets; //工厂采购数量
|
|
|
|
|
+ int allSupplyNum; //总采购数量
|
|
|
|
|
+ for(String projectPhase : projectPhaseList){ //遍历项目包含阶段,旧变量名 -> jd
|
|
|
|
|
+ System.out.println("项目阶段:"+projectPhase);
|
|
|
|
|
+ if(partsTaskPhaseList.contains(projectPhase)){
|
|
|
|
|
+ /*
|
|
|
|
|
+ 获取当前阶段计划结束时间
|
|
|
|
|
+ */
|
|
|
|
|
+ projectPhasePlanEndTime = 0;
|
|
|
|
|
+ for(Map projectSubRecordPlan : projectSubDataPlan){ //遍历项目计划阶段
|
|
|
|
|
+ if(projectPhase.equals(UtilMap.getString(projectSubRecordPlan,"textField_mgu5rm3f"))){ //阶段匹配成功
|
|
|
|
|
+ projectPhasePlanEndTime = UtilMap.getLong(projectSubRecordPlan,"dateField_mgu5rm3h"); //计划结束时间,旧变量名 -> planTimestamp
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- for (String gys : supplierPurchaseMap.keySet()){ //遍历采购需求数据,旧变量名 -> key
|
|
|
|
|
- partsTaskRecordsByGys = supplierPurchaseMap.get(gys); //待新增的配件任务表记录(按供应商区分),旧变量名 -> arr
|
|
|
|
|
- modifiedList = new ArrayList<>();
|
|
|
|
|
- procuremenType = "";
|
|
|
|
|
- taskStatus = "";
|
|
|
|
|
- taskType = "";
|
|
|
|
|
- for (Map<String, Object> partsTaskRecordByGys : partsTaskRecordsByGys) { //遍历待新增的配件任务表记录(按供应商区分),旧变量名 -> map
|
|
|
|
|
- if("大货".equals(phase)){
|
|
|
|
|
- procuremenType ="配件采购";
|
|
|
|
|
- taskStatus ="待排期";
|
|
|
|
|
- taskType ="大货";
|
|
|
|
|
- copiedMap = new HashMap<>(partsTaskRecordByGys); // 关键:创建副本
|
|
|
|
|
- copiedMap.put("dateField_mizvc5oi", planEndTime); //考核日期
|
|
|
|
|
- modifiedList.add(copiedMap);
|
|
|
|
|
|
|
+ for (String keySupplier : partsRecordListBySupplier.keySet()){ //遍历采购需求数据,旧变量名 -> key
|
|
|
|
|
+ partsRecordList = partsRecordListBySupplier.get(keySupplier); //配件记录(按供应商区分),旧变量名 -> arr
|
|
|
|
|
+ partsTaskSubDataNew = new ArrayList<>();
|
|
|
|
|
+ purchaseType = "";
|
|
|
|
|
+ partsTaskStatus = "";
|
|
|
|
|
+ partsTaskOrderType = "";
|
|
|
|
|
+ for (Map<String, Object> partsRecord : partsRecordList) { //遍历配件记录(按供应商区分),旧变量名 -> map
|
|
|
|
|
+ if("大货".equals(projectPhase)){
|
|
|
|
|
+ purchaseType ="配件采购";
|
|
|
|
|
+ partsTaskStatus ="待排期";
|
|
|
|
|
+ partsTaskOrderType ="大货";
|
|
|
|
|
+ numOfSets = partsRecord.get("numberField_mifp03el")==null?null:partsRecord.get("numberField_mifp03el").toString();
|
|
|
|
|
+ devNum = partsRecord.get("numberField_mmmwu4cg")==null?null:partsRecord.get("numberField_mmmwu4cg").toString();
|
|
|
|
|
+ allSupplyNum = 0;
|
|
|
|
|
+ if(StringUtils.isNotEmpty(devNum) && StringUtils.isNotEmpty(numOfSets)){
|
|
|
|
|
+ allSupplyNum = Integer.parseInt(devNum) + Integer.parseInt(numOfSets); //计算总采购数量
|
|
|
|
|
+ }
|
|
|
|
|
+ partsRecordNew = new HashMap<>(partsRecord); // 关键:创建副本
|
|
|
|
|
+ partsRecordNew.put("numberField_mmmwu4ci",allSupplyNum); //总采购数量
|
|
|
|
|
+ partsRecordNew.put("dateField_mizvc5oi", projectPhasePlanEndTime); //考核日期
|
|
|
|
|
+ partsTaskSubDataNew.add(partsRecordNew);
|
|
|
} else{
|
|
} else{
|
|
|
- if("大货样".equals(phase)){
|
|
|
|
|
- taskStatus ="无需合同";
|
|
|
|
|
|
|
+ if("大货样".equals(projectPhase)){
|
|
|
|
|
+ partsTaskStatus ="无需合同";
|
|
|
}else{ //白样和产前样
|
|
}else{ //白样和产前样
|
|
|
- taskStatus ="待排期";
|
|
|
|
|
|
|
+ partsTaskStatus ="待排期";
|
|
|
}
|
|
}
|
|
|
- procuremenType ="样品任务";
|
|
|
|
|
- taskType ="打样";
|
|
|
|
|
- copiedMap = new HashMap<>(partsTaskRecordByGys); // 关键:创建副本
|
|
|
|
|
- copiedMap.put("dateField_mizvc5oi", planEndTime); //考核日期
|
|
|
|
|
- copiedMap.put("numberField_mkosp94h", demoValue); //客户订单数量
|
|
|
|
|
- copiedMap.put("numberField_mifp03el", demoValue); //工厂采购数量
|
|
|
|
|
- modifiedList.add(copiedMap);
|
|
|
|
|
|
|
+ purchaseType ="样品任务";
|
|
|
|
|
+ partsTaskOrderType ="打样";
|
|
|
|
|
+ partsRecordNew = new HashMap<>(partsRecord); // 关键:创建副本
|
|
|
|
|
+ partsRecordNew.put("dateField_mizvc5oi", projectPhasePlanEndTime); //考核日期
|
|
|
|
|
+ partsRecordNew.put("numberField_mkosp94h", sampleNum); //客户订单数量
|
|
|
|
|
+ partsRecordNew.put("numberField_mifp03el", sampleNum); //工厂采购数量
|
|
|
|
|
+ partsRecordNew.put("numberField_mmmwu4cg",0); //研发部订单需求数量
|
|
|
|
|
+ partsRecordNew.put("numberField_mmmwu4ci",sampleNum); //总采购数量
|
|
|
|
|
+ partsTaskSubDataNew.add(partsRecordNew);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- supplierOrder = UtilMap.map(
|
|
|
|
|
|
|
+ partsTaskData = UtilMap.map(
|
|
|
//"textField_mifp03ew, " + //TB项目编号
|
|
//"textField_mifp03ew, " + //TB项目编号
|
|
|
"selectField_mifp03e7, " + //任务状态
|
|
"selectField_mifp03e7, " + //任务状态
|
|
|
"tableField_mifp03em, " + //采购明细
|
|
"tableField_mifp03em, " + //采购明细
|
|
@@ -287,23 +334,23 @@ public class YidaServiceImpl implements YidaService {
|
|
|
"dateField_mifp03eb, " + //计划完成日期
|
|
"dateField_mifp03eb, " + //计划完成日期
|
|
|
"selectField_ml0l206x", //订单类型
|
|
"selectField_ml0l206x", //订单类型
|
|
|
//tbProjectId,
|
|
//tbProjectId,
|
|
|
- taskStatus,
|
|
|
|
|
- modifiedList,
|
|
|
|
|
- procuremenType,
|
|
|
|
|
- planEndTime,
|
|
|
|
|
- taskType
|
|
|
|
|
|
|
+ partsTaskStatus,
|
|
|
|
|
+ partsTaskSubDataNew,
|
|
|
|
|
+ purchaseType,
|
|
|
|
|
+ projectPhasePlanEndTime,
|
|
|
|
|
+ partsTaskOrderType
|
|
|
);
|
|
);
|
|
|
- supplierOrder.put("associationFormField_mifp03e9",projectDataAssOrder); //项目订单
|
|
|
|
|
- supplierOrder.put("associationFormField_mifp03e8",projectDataAssLeads); // 销售项目
|
|
|
|
|
- supplierOrder.put("textField_mifp03e6",projectName+"-"+gys+"-"+phase); //任务名称
|
|
|
|
|
- supplierOrder.put("textField_mimwnauk",projectCode); //项目订单编号
|
|
|
|
|
|
|
+ partsTaskData.put("associationFormField_mifp03e9",projectDataAssOrder); //项目订单
|
|
|
|
|
+ partsTaskData.put("associationFormField_mifp03e8",projectDataAssLeads); // 销售项目
|
|
|
|
|
+ partsTaskData.put("textField_mifp03e6",projectName+"-"+keySupplier+"-"+projectPhase); //任务名称
|
|
|
|
|
+ partsTaskData.put("textField_mimwnauk",projectCode); //项目订单编号
|
|
|
//supplierOrder.put("textField_mizs3841",pMainId);
|
|
//supplierOrder.put("textField_mizs3841",pMainId);
|
|
|
- supplierOrder.put("employeeField_mifp03eu",Arrays.asList(supplierBuyerMap.get(gys))); //跟单负责人
|
|
|
|
|
|
|
+ partsTaskData.put("employeeField_mifp03eu",Arrays.asList(supplierBuyerMap.get(keySupplier))); //跟单负责人
|
|
|
/*
|
|
/*
|
|
|
- 查询跟单与供应商数据
|
|
|
|
|
|
|
+ 查询供应商与跟单数据
|
|
|
【跟单-供应商对应表】 FORM-3AB247087A81401F87264BFA74944BE3R086
|
|
【跟单-供应商对应表】 FORM-3AB247087A81401F87264BFA74944BE3R086
|
|
|
*/
|
|
*/
|
|
|
- gysBuyerData = (List<Map>) ydClient.queryData(
|
|
|
|
|
|
|
+ supplierBuyerData = (List<Map>) ydClient.queryData(
|
|
|
YDParam.builder()
|
|
YDParam.builder()
|
|
|
.formUuid(EastarParam.YD_FORMUUID_GYS_YW)
|
|
.formUuid(EastarParam.YD_FORMUUID_GYS_YW)
|
|
|
.searchCondition(
|
|
.searchCondition(
|
|
@@ -311,7 +358,7 @@ public class YidaServiceImpl implements YidaService {
|
|
|
Arrays.asList(
|
|
Arrays.asList(
|
|
|
new YDSearch(
|
|
new YDSearch(
|
|
|
"textField_mec6lku3", //供应商简称
|
|
"textField_mec6lku3", //供应商简称
|
|
|
- gys,
|
|
|
|
|
|
|
+ keySupplier,
|
|
|
"供应商简称",
|
|
"供应商简称",
|
|
|
YDSearch.Type.TEXT_FIELD,
|
|
YDSearch.Type.TEXT_FIELD,
|
|
|
YDSearch.Operator.EQ
|
|
YDSearch.Operator.EQ
|
|
@@ -321,27 +368,28 @@ public class YidaServiceImpl implements YidaService {
|
|
|
).build(),
|
|
).build(),
|
|
|
YDConf.FORM_QUERY.retrieve_list
|
|
YDConf.FORM_QUERY.retrieve_list
|
|
|
).getData();
|
|
).getData();
|
|
|
- if(gysBuyerData!=null && gysBuyerData.size()>0){
|
|
|
|
|
- gysBuyerDataAssSupplier
|
|
|
|
|
|
|
+ if(supplierBuyerData!=null && supplierBuyerData.size()>0){
|
|
|
|
|
+ supplierBuyerDataAssSupplier
|
|
|
= UtilMap.getAssFieldValue(
|
|
= UtilMap.getAssFieldValue(
|
|
|
- UtilMap.getMap(gysBuyerData.get(0),"formData"),
|
|
|
|
|
|
|
+ UtilMap.getMap(supplierBuyerData.get(0),"formData"),
|
|
|
"associationFormField_mec6lku4_id" //供应商
|
|
"associationFormField_mec6lku4_id" //供应商
|
|
|
);
|
|
);
|
|
|
- supplierOrder.put("associationFormField_mifp03ea",gysBuyerDataAssSupplier); //供应商
|
|
|
|
|
- supplierOrder.put("textField_mifp03ez",gysBuyerDataAssSupplier.get(0).subTitle); // 供应商编号
|
|
|
|
|
|
|
+ partsTaskData.put("associationFormField_mifp03ea",supplierBuyerDataAssSupplier); //供应商
|
|
|
|
|
+ partsTaskData.put("textField_mifp03ez",supplierBuyerDataAssSupplier.get(0).subTitle); // 供应商编号
|
|
|
}
|
|
}
|
|
|
- supplierOrder.put("textField_mmikzhlb",phase); //里程碑
|
|
|
|
|
|
|
+ partsTaskData.put("textField_mmikzhlb",projectPhase); //里程碑
|
|
|
/*
|
|
/*
|
|
|
- 保存配件任务数据
|
|
|
|
|
|
|
+ 保存配件任务数据(不含包装)
|
|
|
【配件任务表】 FORM-B9CBFB34DB3249C483415EF641202AC199J9
|
|
【配件任务表】 FORM-B9CBFB34DB3249C483415EF641202AC199J9
|
|
|
*/
|
|
*/
|
|
|
-// ydClient.operateData(
|
|
|
|
|
-// YDParam.builder()
|
|
|
|
|
-// .formUuid(EastarParam.YD_FORMUUID_CGTASK)
|
|
|
|
|
-// .formDataJson(JSONObject.toJSONString(supplierOrder))
|
|
|
|
|
-// .build(),
|
|
|
|
|
-// YDConf.FORM_OPERATION.create
|
|
|
|
|
-// );
|
|
|
|
|
|
|
+ System.out.println("保存配件任务数据("+projectPhase+"):"+ JSONObject.toJSONString(partsTaskData));
|
|
|
|
|
+ ydClient.operateData(
|
|
|
|
|
+ YDParam.builder()
|
|
|
|
|
+ .formUuid(EastarParam.YD_FORMUUID_CGTASK)
|
|
|
|
|
+ .formDataJson(JSONObject.toJSONString(partsTaskData))
|
|
|
|
|
+ .build(),
|
|
|
|
|
+ YDConf.FORM_OPERATION.create
|
|
|
|
|
+ );
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -349,39 +397,41 @@ public class YidaServiceImpl implements YidaService {
|
|
|
/*
|
|
/*
|
|
|
生成包装任务(打样不需要生成包装)
|
|
生成包装任务(打样不需要生成包装)
|
|
|
*/
|
|
*/
|
|
|
- if("大货".equals(orderType)){
|
|
|
|
|
- //savePackTask(tbProjectId, orderLangConf, data, pName, pId, pMainId, projectOrder, mchDDIdMap);
|
|
|
|
|
|
|
+ if("大货".equals(projectOrderType)){
|
|
|
|
|
+ savePartsPackTaskData(null, orderSubDataLang, projectData, projectName, projectCode, leadsCode, projectDataAssOrder, supplierBuyerMap, seriesDevNumMap);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return Collections.emptyMap();
|
|
return Collections.emptyMap();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- //创建配件任务数据1
|
|
|
|
|
- private List<Map> createPartsTaskData1(
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取所有配件记录
|
|
|
|
|
+ */
|
|
|
|
|
+ private List<Map> getPartsRecordList(
|
|
|
Map taskMap, //TB相关,无用
|
|
Map taskMap, //TB相关,无用
|
|
|
List<Map> orderSubDataLangOrSeries, //销售订单子表单记录,【语言版本 - 数量拆分】明细数据或【系列套数】明细数据,旧变量名 -> orderConf
|
|
List<Map> orderSubDataLangOrSeries, //销售订单子表单记录,【语言版本 - 数量拆分】明细数据或【系列套数】明细数据,旧变量名 -> orderConf
|
|
|
- Map projectSubRecordParts, //立项数据子表单记录,【全品类】明细数据某一行,旧变量名 -> cgDetail
|
|
|
|
|
|
|
+ Map projectSubRecordParts, //【立项/项目台账】子表单【全品类】某一行记录,旧变量名 -> cgDetail
|
|
|
List<Map> customfields, //TB相关,无用
|
|
List<Map> customfields, //TB相关,无用
|
|
|
boolean isMultiLang, //是否存在多种语言版本,旧变量名 -> isLang
|
|
boolean isMultiLang, //是否存在多种语言版本,旧变量名 -> isLang
|
|
|
List<String> partsPhaseDeliverables, //配件状态明细(按配件大类分组),旧变量名 -> sonConf
|
|
List<String> partsPhaseDeliverables, //配件状态明细(按配件大类分组),旧变量名 -> sonConf
|
|
|
String sonScenariofieldconfigId, //TB相关,无用
|
|
String sonScenariofieldconfigId, //TB相关,无用
|
|
|
String supplier, //供应商,旧变量名 -> gysName
|
|
String supplier, //供应商,旧变量名 -> gysName
|
|
|
- String pId, // 项目编号
|
|
|
|
|
- String pMainId, // 主项目编号
|
|
|
|
|
- Map skuTypeDataMap //品类名称与配件编号映射,旧变量名 -> skuIdMap
|
|
|
|
|
|
|
+ String projectCode, // 项目编号,旧变量名 -> pId
|
|
|
|
|
+ String leadsCode, // 线索编码,旧变量名 -> pMainId
|
|
|
|
|
+ Map partsTypeNameCodeMap //品类名称与配件编号(这里的配件编号应该是品类编码)映射,旧变量名 -> skuIdMap
|
|
|
){
|
|
){
|
|
|
- List<Map> partsTaskData1 = new ArrayList<>(); //待新增的配件任务数据
|
|
|
|
|
|
|
+ List<Map> partsRecordList = new ArrayList<>(); //所有配件记录
|
|
|
String nameSeries; //系列,旧变量名 -> confSeries
|
|
String nameSeries; //系列,旧变量名 -> confSeries
|
|
|
String nameLang; //语言
|
|
String nameLang; //语言
|
|
|
- String skuId;
|
|
|
|
|
- String reportId;
|
|
|
|
|
- String sku;
|
|
|
|
|
|
|
+ String partsTypeCode; //配件类型编码(来源于【品类表】的“配件编号”),旧变量名 -> skuId
|
|
|
|
|
+ String partsTypeName; //配件类型名称(来源于【品类表】的“品类名称”)
|
|
|
|
|
+ String docSN; //文档序号,旧变量名 -> reportId
|
|
|
|
|
+ String skuSN; //SKU编号,旧变量名 -> sku
|
|
|
String numOfSets; //套数【语言版本 - 数量拆分】或套数【系列套数】,旧变量名 -> value
|
|
String numOfSets; //套数【语言版本 - 数量拆分】或套数【系列套数】,旧变量名 -> value
|
|
|
String devNum; //研发部订单需求数量,旧变量名 -> rdNum
|
|
String devNum; //研发部订单需求数量,旧变量名 -> rdNum
|
|
|
int allSupplyNum; //总采购数量
|
|
int allSupplyNum; //总采购数量
|
|
|
- String partsType; //配件类型(来源于【品类表】的“品类名称”)
|
|
|
|
|
String partsName; //配件名称
|
|
String partsName; //配件名称
|
|
|
- Map projectSubRecordPartsNew; //立项数据子表单记录,【全品类】明细数据某一行(新),旧变量名 -> recod
|
|
|
|
|
|
|
+ Map partsRecord; //配件记录,来源于【立项/项目台账】子表单【全品类】某一行记录,旧变量名 -> recod
|
|
|
for(Map orderSubRecordLangOrSeries : orderSubDataLangOrSeries){ //遍历子表单记录,旧变量名 -> map
|
|
for(Map orderSubRecordLangOrSeries : orderSubDataLangOrSeries){ //遍历子表单记录,旧变量名 -> map
|
|
|
nameSeries = UtilMap.getString_first(
|
|
nameSeries = UtilMap.getString_first(
|
|
|
orderSubRecordLangOrSeries,
|
|
orderSubRecordLangOrSeries,
|
|
@@ -392,39 +442,43 @@ public class YidaServiceImpl implements YidaService {
|
|
|
// 系列【全品类】与系列【语言版本 - 数量拆分】或系列【系列套数】不匹配
|
|
// 系列【全品类】与系列【语言版本 - 数量拆分】或系列【系列套数】不匹配
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
- partsType = UtilMap.getString(projectSubRecordParts,"selectField_mizsccds");
|
|
|
|
|
- skuId = String.valueOf(skuTypeDataMap.get(partsType)); //配件编号
|
|
|
|
|
- skuId = PublicUtil.isNull(skuId) ? "000":skuId;
|
|
|
|
|
- reportId = UtilMap.getString(projectSubRecordParts,"textField_me2f7tvn");// 文档序号
|
|
|
|
|
- sku = "2" + skuId
|
|
|
|
|
- + UtilMap.getString_first(orderSubRecordLangOrSeries,"textField_mizmmf8h","textField_mizmmf8m") //系列编号【语言版本 - 数量拆分】或 系列编号【系列套数】
|
|
|
|
|
- + reportId.substring(reportId.length()-2); // sku 添加系列编号及文档编号
|
|
|
|
|
|
|
+ partsTypeName = UtilMap.getString(projectSubRecordParts,"selectField_mizsccds");
|
|
|
|
|
+ partsTypeCode = String.valueOf(partsTypeNameCodeMap.get(partsTypeName));
|
|
|
|
|
+ partsTypeCode = PublicUtil.isNull(partsTypeCode) ? "000":partsTypeCode;
|
|
|
|
|
+ docSN = UtilMap.getString(projectSubRecordParts,"textField_me2f7tvn");
|
|
|
|
|
+ skuSN = "2"
|
|
|
|
|
+ + partsTypeCode
|
|
|
|
|
+ + UtilMap.getString_first(orderSubRecordLangOrSeries,"textField_mizmmf8h","textField_mizmmf8m") //系列编号【语言版本 - 数量拆分】 或 系列编号【系列套数】
|
|
|
|
|
+ + docSN.substring(docSN.length()-2); // sku 添加系列编号及文档编号
|
|
|
nameLang = UtilMap.getString(orderSubRecordLangOrSeries,"textField_meqqj4wb"); // 语言【语言版本 - 数量拆分】,旧变量名 -> lang
|
|
nameLang = UtilMap.getString(orderSubRecordLangOrSeries,"textField_meqqj4wb"); // 语言【语言版本 - 数量拆分】,旧变量名 -> lang
|
|
|
if(isMultiLang){ // 是否存在多种语言版本
|
|
if(isMultiLang){ // 是否存在多种语言版本
|
|
|
if(PublicUtil.isNull(nameLang)){
|
|
if(PublicUtil.isNull(nameLang)){
|
|
|
nameLang = "不区分";
|
|
nameLang = "不区分";
|
|
|
- sku = sku+"AL"; // sku 不区分语言
|
|
|
|
|
|
|
+ skuSN = skuSN+"AL"; // sku 不区分语言
|
|
|
}
|
|
}
|
|
|
- sku = sku + UtilMap.getString(orderSubRecordLangOrSeries,"textField_mizmmf8i"); // sku+语言编号
|
|
|
|
|
|
|
+ skuSN = skuSN + UtilMap.getString(orderSubRecordLangOrSeries,"textField_mizmmf8i"); // sku+语言编号
|
|
|
}else{
|
|
}else{
|
|
|
nameLang = "不区分";
|
|
nameLang = "不区分";
|
|
|
- sku = sku+"AL"; // sku 不区分语言
|
|
|
|
|
|
|
+ skuSN = skuSN+"AL"; // sku 不区分语言
|
|
|
}
|
|
}
|
|
|
- sku = sku + pMainId.substring(pMainId.length()-10); // sku+项目号
|
|
|
|
|
|
|
+ skuSN = skuSN + leadsCode.substring(leadsCode.length()-10); // sku+项目号
|
|
|
numOfSets = UtilMap.getString_first(
|
|
numOfSets = UtilMap.getString_first(
|
|
|
orderSubRecordLangOrSeries,
|
|
orderSubRecordLangOrSeries,
|
|
|
"numberField_meqqj4wd", // 套数【语言版本 - 数量拆分】
|
|
"numberField_meqqj4wd", // 套数【语言版本 - 数量拆分】
|
|
|
"numberField_mesc7nvi" // 套数【系列套数】
|
|
"numberField_mesc7nvi" // 套数【系列套数】
|
|
|
); // 数量
|
|
); // 数量
|
|
|
devNum = UtilMap.getString(projectSubRecordParts,"numberField_mmke3fdc"); //研发部订单需求数量
|
|
devNum = UtilMap.getString(projectSubRecordParts,"numberField_mmke3fdc"); //研发部订单需求数量
|
|
|
- allSupplyNum = 0;
|
|
|
|
|
|
|
+// allSupplyNum = 0;
|
|
|
// if(StringUtils.isNotEmpty(devNum) && StringUtils.isNotEmpty(numOfSets)){
|
|
// if(StringUtils.isNotEmpty(devNum) && StringUtils.isNotEmpty(numOfSets)){
|
|
|
// allSupplyNum = Integer.parseInt(devNum) + Integer.parseInt(numOfSets); //计算总采购数量
|
|
// allSupplyNum = Integer.parseInt(devNum) + Integer.parseInt(numOfSets); //计算总采购数量
|
|
|
// }
|
|
// }
|
|
|
- allSupplyNum = Integer.parseInt(numOfSets);
|
|
|
|
|
- projectSubRecordPartsNew = new HashMap(projectSubRecordParts);
|
|
|
|
|
- partsName = nameSeries+"-"+partsType;
|
|
|
|
|
- projectSubRecordPartsNew.putAll(
|
|
|
|
|
|
|
+ allSupplyNum = Integer.parseInt(numOfSets); //暂时不加上“研发部订单需求数量”
|
|
|
|
|
+ partsName = nameSeries + "-" + partsTypeName;
|
|
|
|
|
+ /*
|
|
|
|
|
+ 复制【立项/项目台账】子表单【全品类】记录为配件记录,并补充部分字段
|
|
|
|
|
+ */
|
|
|
|
|
+ partsRecord = new HashMap(projectSubRecordParts);
|
|
|
|
|
+ partsRecord.putAll(
|
|
|
UtilMap.map(
|
|
UtilMap.map(
|
|
|
"textField_mecmytpr, " + //配件名称
|
|
"textField_mecmytpr, " + //配件名称
|
|
|
"textField_mecmytps, " + //TB任务编号
|
|
"textField_mecmytps, " + //TB任务编号
|
|
@@ -443,18 +497,138 @@ public class YidaServiceImpl implements YidaService {
|
|
|
numOfSets,
|
|
numOfSets,
|
|
|
devNum,
|
|
devNum,
|
|
|
allSupplyNum,
|
|
allSupplyNum,
|
|
|
- sku,
|
|
|
|
|
- pId,
|
|
|
|
|
|
|
+ skuSN,
|
|
|
|
|
+ projectCode,
|
|
|
"~",
|
|
"~",
|
|
|
nameLang,
|
|
nameLang,
|
|
|
numOfSets
|
|
numOfSets
|
|
|
)
|
|
)
|
|
|
);
|
|
);
|
|
|
- partsTaskData1.add(projectSubRecordPartsNew);
|
|
|
|
|
|
|
+ partsRecordList.add(partsRecord);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
- return partsTaskData1;
|
|
|
|
|
|
|
+ return partsRecordList;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 保存配件任务数据(包装)
|
|
|
|
|
+ */
|
|
|
|
|
+ private List<Map> savePartsPackTaskData(
|
|
|
|
|
+ String tbProjectId, //TB相关,无用
|
|
|
|
|
+ List <Map> orderSubDataLang, //【制作新订单】子表单【语言版本 - 数量拆分】数据,旧变量名 -> orderLangConf
|
|
|
|
|
+ Map projectData, //【立项/项目台账】数据,旧变量名 -> data
|
|
|
|
|
+ String projectName, // 项目名称,旧变量名 -> pName
|
|
|
|
|
+ String projectCode, // 项目编号,旧变量名 -> pId
|
|
|
|
|
+ String leadsCode, // 线索编码,旧变量名 -> pMainId
|
|
|
|
|
+ List projectDataAssOrder, //【立项/项目台账】关联表单【制作新订单】,旧变量名 -> projectOrder
|
|
|
|
|
+ Map supplierBuyerMap, //供应商与采购跟单userid映射,旧变量名 -> mchDDIdMap
|
|
|
|
|
+ Map<String,String> seriesDevNumMap //系列与研发部订单需求数量映射数据
|
|
|
|
|
+ ) {
|
|
|
|
|
+ Map<String, List<Map>> partsRecordListBySupplier = new HashMap<>(); // 供应商与采购需求关联数据,旧变量名 -> packOrderData
|
|
|
|
|
+ Map partsRecord; //配件记录,旧变量名 -> packTask
|
|
|
|
|
+ String supplier; //供应商
|
|
|
|
|
+ String numOfSets; //套数,旧变量名 -> setsValue
|
|
|
|
|
+ String nameSeries; //系列
|
|
|
|
|
+ String devNum; //研发部订单需求数量
|
|
|
|
|
+ int allSupplyNum; //总采购数量
|
|
|
|
|
+ for (Map orderSubRecordLang : orderSubDataLang) { //遍历子表单,旧变量名 -> orderMap
|
|
|
|
|
+ supplier = UtilMap.getString(orderSubRecordLang, "textField_mkp7yv76"); //供应商
|
|
|
|
|
+ numOfSets = UtilMap.getString(orderSubRecordLang, "numberField_meqqj4wd"); //套数
|
|
|
|
|
+ nameSeries = UtilMap.getString(orderSubRecordLang, "textField_meqqj4wa"); //系列
|
|
|
|
|
+ devNum = seriesDevNumMap.get(nameSeries);
|
|
|
|
|
+ allSupplyNum = 0;
|
|
|
|
|
+ if(StringUtils.isNotEmpty(devNum) && StringUtils.isNotEmpty(numOfSets)){
|
|
|
|
|
+ allSupplyNum = Integer.parseInt(devNum) + Integer.parseInt(numOfSets); //计算总采购数量
|
|
|
|
|
+ }
|
|
|
|
|
+ partsRecord = UtilMap.map(
|
|
|
|
|
+ "textField_mecmytpr, " + //配件名称
|
|
|
|
|
+ "textField_mifp03eo, " + //SKU编号
|
|
|
|
|
+ "textField_mjr129o4, " + //语言
|
|
|
|
|
+ "selectField_me2f7tw4, " + //系列
|
|
|
|
|
+ "numberField_mkosp94h, " + //客户订单数量
|
|
|
|
|
+ "numberField_mifp03el, " + //工厂采购数量
|
|
|
|
|
+ "numberField_mmmwu4cg, " + //研发部订单需求数量
|
|
|
|
|
+ "numberField_mmmwu4ci, ", //总采购数量
|
|
|
|
|
+ UtilMap.getString(orderSubRecordLang, "textField_mizmmf8k"), //成品名称
|
|
|
|
|
+ UtilMap.getString(orderSubRecordLang, "textField_mizmmf8j"), //成品编号
|
|
|
|
|
+ UtilMap.getString(orderSubRecordLang, "textField_meqqj4wb"), //语言
|
|
|
|
|
+ nameSeries, //系列
|
|
|
|
|
+ numOfSets,
|
|
|
|
|
+ numOfSets,
|
|
|
|
|
+ devNum, //研发部订单需求数量
|
|
|
|
|
+ allSupplyNum //总采购数量
|
|
|
|
|
+
|
|
|
|
|
+ );
|
|
|
|
|
+ partsRecordListBySupplier.computeIfAbsent(supplier, k -> new ArrayList<>()).add(partsRecord);
|
|
|
|
|
+ }
|
|
|
|
|
+ List<Map> partsRecordList; //配件记录(按供应商区分),旧变量名 -> packdetails
|
|
|
|
|
+ Map partsTaskData; //配件任务数据,旧变量名 -> packTaskorder
|
|
|
|
|
+ List<Map> supplierBuyerData; //【跟单-供应商对应表】数据,旧变量名 -> gysList
|
|
|
|
|
+ List<UtilMap.assDetail> supplierBuyerDataAssSupplier; //【跟单-供应商对应表】关联表单【供应商】,旧变量名 -> gys
|
|
|
|
|
+ for (String keySupplier : partsRecordListBySupplier.keySet()){ //遍历供应商与采购需求关联数据,旧变量名 -> key
|
|
|
|
|
+ partsRecordList = partsRecordListBySupplier.get(keySupplier);
|
|
|
|
|
+ partsTaskData = UtilMap.map(
|
|
|
|
|
+// "textField_mifp03ew, " + //TB项目编号
|
|
|
|
|
+ "selectField_mifp03e7, " + //任务状态
|
|
|
|
|
+ "tableField_mifp03em, " + //采购明细
|
|
|
|
|
+ "selectField_mkf6qv9b, " + //采购类型
|
|
|
|
|
+ "selectField_ml0l206x", //订单类型
|
|
|
|
|
+// tbProjectId,
|
|
|
|
|
+ "待排期",
|
|
|
|
|
+ partsRecordList,
|
|
|
|
|
+ "成品包装",
|
|
|
|
|
+ "包装"
|
|
|
|
|
+ );
|
|
|
|
|
+ partsTaskData.put("associationFormField_mifp03e9",projectDataAssOrder); //项目订单
|
|
|
|
|
+ partsTaskData.put("associationFormField_mifp03e8",
|
|
|
|
|
+ UtilMap.getAssFieldValue(projectData,"associationFormField_mdy7w1wn_id")
|
|
|
|
|
+ ); // 销售项目
|
|
|
|
|
+ partsTaskData.put("textField_mifp03e6",projectName+"-"+keySupplier+"-包装"); //任务名称
|
|
|
|
|
+ partsTaskData.put("textField_mimwnauk",projectCode); //项目订单编号
|
|
|
|
|
+// partsTaskData.put("textField_mizs3841",leadsCode);
|
|
|
|
|
+ partsTaskData.put("employeeField_mifp03eu",Arrays.asList(supplierBuyerMap.get(keySupplier))); //跟单负责人
|
|
|
|
|
+ supplierBuyerData = (List<Map>) ydClient.queryData(
|
|
|
|
|
+ YDParam.builder()
|
|
|
|
|
+ .formUuid(EastarParam.YD_FORMUUID_GYS_YW)
|
|
|
|
|
+ .searchCondition(
|
|
|
|
|
+ JSONObject.toJSONString(
|
|
|
|
|
+ Arrays.asList(
|
|
|
|
|
+ new YDSearch(
|
|
|
|
|
+ "textField_mec6lku3", //"供应商简称"
|
|
|
|
|
+ keySupplier,
|
|
|
|
|
+ "供应商简称",
|
|
|
|
|
+ YDSearch.Type.TEXT_FIELD,
|
|
|
|
|
+ YDSearch.Operator.EQ
|
|
|
|
|
+ )
|
|
|
|
|
+ )
|
|
|
|
|
+ )
|
|
|
|
|
+ )
|
|
|
|
|
+ .build(),
|
|
|
|
|
+ YDConf.FORM_QUERY.retrieve_list
|
|
|
|
|
+ ).getData();
|
|
|
|
|
+ if(supplierBuyerData!=null && supplierBuyerData.size()>0){
|
|
|
|
|
+ supplierBuyerDataAssSupplier
|
|
|
|
|
+ = UtilMap.getAssFieldValue(
|
|
|
|
|
+ UtilMap.getMap(supplierBuyerData.get(0),"formData"),
|
|
|
|
|
+ "associationFormField_mec6lku4_id"
|
|
|
|
|
+ );
|
|
|
|
|
+ partsTaskData.put("associationFormField_mifp03ea",supplierBuyerDataAssSupplier); //供应商
|
|
|
|
|
+ partsTaskData.put("textField_mifp03ez",supplierBuyerDataAssSupplier.get(0).subTitle); // 供应商编号
|
|
|
|
|
+ }
|
|
|
|
|
+ partsTaskData.put("textField_mmikzhlb","包装"); //里程碑
|
|
|
|
|
+ System.out.println("保存配件任务数据(包装):"+ JSONObject.toJSONString(partsTaskData));
|
|
|
|
|
+ ydClient.operateData(
|
|
|
|
|
+ YDParam.builder()
|
|
|
|
|
+ .formUuid(EastarParam.YD_FORMUUID_CGTASK)
|
|
|
|
|
+ .formDataJson(JSONObject.toJSONString(partsTaskData))
|
|
|
|
|
+ .build(),
|
|
|
|
|
+ YDConf.FORM_OPERATION.create
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|