|
|
@@ -1,14 +1,22 @@
|
|
|
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.YidaService;
|
|
|
+import com.malk.eastar.util.ConfigDataProcessor;
|
|
|
+import com.malk.server.aliwork.YDConf;
|
|
|
+import com.malk.server.aliwork.YDParam;
|
|
|
+import com.malk.server.aliwork.YDSearch;
|
|
|
+import com.malk.service.aliwork.YDClient;
|
|
|
+import com.malk.service.aliwork.YDService;
|
|
|
+import com.malk.utils.PublicUtil;
|
|
|
+import com.malk.utils.UtilMap;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.LinkedHashMap;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* 专用于宜搭复杂逻辑处理的接口服务
|
|
|
@@ -18,6 +26,12 @@ import java.util.Map;
|
|
|
@Service
|
|
|
public class YidaServiceImpl implements YidaService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private YDClient ydClient;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private YDService ydService;
|
|
|
+
|
|
|
@Override
|
|
|
public Map heartbeatTest(String param) {
|
|
|
Map<String,Object> result = new LinkedHashMap<>();
|
|
|
@@ -30,4 +44,418 @@ public class YidaServiceImpl implements YidaService {
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map createPartsTask(String formInstId) {
|
|
|
+ /*
|
|
|
+ LTC全生命周期
|
|
|
+ Leads to Order
|
|
|
+ Order to Product
|
|
|
+ Product to Cash
|
|
|
+ */
|
|
|
+
|
|
|
+ /*
|
|
|
+ 查询项目数据
|
|
|
+ 【立项/项目台账】 FORM-D8DFF1F8C07A4869BCC850090F3A3B4EE0AV
|
|
|
+ */
|
|
|
+ Map projectData = ydClient.queryData(
|
|
|
+ YDParam.builder().formInstId(formInstId).build(),
|
|
|
+ YDConf.FORM_QUERY.retrieve_id
|
|
|
+ ).getFormData(); //【立项/项目台账】数据,旧变量名 -> data
|
|
|
+ String projectCode = UtilMap.getString(projectData,"textField_me2hyldc"); // 项目编号,旧变量名 -> pId
|
|
|
+ String projectName = UtilMap.getString(projectData,"textField_me87x1nz"); // 项目名称,旧变量名 -> pName
|
|
|
+ //String pTaskType = UtilMap.getString(projectData,"textField_mfqnsa9d"); // TB任务类型名称
|
|
|
+ String customerName = UtilMap.getString(projectData,"textField_me87x1o0"); // 客户名称,旧变量名 -> merName
|
|
|
+ System.out.println("客户名称:"+customerName);
|
|
|
+ String orderType = UtilMap.getString(projectData,"selectField_mdf997wp"); // 订单类型(大货|打样)
|
|
|
+ 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> ssUserId = (List<String>) UtilMap.getList(projectData, "employeeField_me2hyld9_id"); // 业务(从事销售工作的人员 Sales Staff)userid
|
|
|
+ List<String> qeUserId = (List<String>) UtilMap.getList(projectData, "employeeField_me9n24ka_id"); // QE(质量工程师 Quality Engineer)userid
|
|
|
+ List<UtilMap.assDetail> projectDataAssLeads = UtilMap.getAssFieldValue(
|
|
|
+ projectData,"associationFormField_mdy7w1wn_id"
|
|
|
+ ); //【立项/项目台账】关联表单【销售项目】
|
|
|
+ String leadsCode = UtilMap.getString(projectData,"textField_me2hyldb"); // 主项目编号,旧变量名 -> pMainId
|
|
|
+ System.out.println("线索编码:"+leadsCode);
|
|
|
+ String leadsName = UtilMap.getString(projectData,"textField_me9n24kq"); // 主项目名称,旧变量名 -> pMainName
|
|
|
+ System.out.println("线索名称:"+leadsName);
|
|
|
+ List<UtilMap.assDetail> projectDataAssOrder = UtilMap.getAssFieldValue(
|
|
|
+ projectData,"associationFormField_me2hylda_id"
|
|
|
+ ); //【立项/项目台账】关联表单【制作新订单】,旧变量名 -> projectOrder
|
|
|
+ List<Map> projectSubDataParts = ydService.queryDetails(
|
|
|
+ YDParam.builder()
|
|
|
+ .formInstanceId(formInstId)
|
|
|
+ .formUuid(EastarParam.YD_FORMUUID_PROJECT)
|
|
|
+ .tableFieldId("tableField_mdy8x198").build()
|
|
|
+ ); // 【立项/项目台账】子表单【全品类】,旧变量名 -> table
|
|
|
+ List<Map> projectSubDataBuyer = UtilMap.getList(
|
|
|
+ projectData,"tableField_mec6juik"
|
|
|
+ ); // 【立项/项目台账】子表单【采购跟单明细】,旧变量名 -> mchTable
|
|
|
+
|
|
|
+ /*
|
|
|
+ 查询销售订单数据
|
|
|
+ 【制作新订单】 FORM-A731443BE0F04467A5D7FC1A82431D6AL2JO
|
|
|
+ */
|
|
|
+ String orderId = projectDataAssOrder.get(0).instanceId; // 销售订单实例ID,旧变量名 -> orderFid
|
|
|
+ Map orderData = ydClient.queryData(
|
|
|
+ YDParam.builder().formInstId(orderId).build(),
|
|
|
+ YDConf.FORM_QUERY.retrieve_id
|
|
|
+ ).getFormData(); //【制作新订单】数据
|
|
|
+ List<Map> orderSubDataSeries = UtilMap.getList(orderData,"tableField_mesc7nvj"); // 【制作新订单】子表单【系列套数】,旧变量名 -> xlConf
|
|
|
+ System.out.println("【制作新订单】子表单【系列套数】");
|
|
|
+ String codeSeries;
|
|
|
+ String nameSeries;
|
|
|
+ int numOfSetsSeries;
|
|
|
+ for(Map orderSubRecordSeries : orderSubDataSeries){ //遍历子表单记录
|
|
|
+ codeSeries = UtilMap.getString(orderSubRecordSeries,"textField_mizmmf8m"); // 系列编号【系列套数】
|
|
|
+ nameSeries = UtilMap.getString(orderSubRecordSeries,"textField_mesc7nvf"); // 系列【系列套数】
|
|
|
+ numOfSetsSeries = UtilMap.getInt(orderSubRecordSeries,"numberField_mesc7nvi"); // 套数【系列套数】
|
|
|
+ System.out.println("系列:"+nameSeries+",系列编号:"+codeSeries+",套数:"+numOfSetsSeries);
|
|
|
+ }
|
|
|
+ List<Map> orderSubDataLang = UtilMap.getList(orderData,"tableField_meqqj4we"); // 【制作新订单】子表单【语言版本 - 数量拆分】,旧变量名 -> orderLangConf
|
|
|
+ System.out.println("【制作新订单】子表单【语言版本 - 数量拆分】");
|
|
|
+ String codeLang;
|
|
|
+ String nameLang;
|
|
|
+ int numOfSetsAll;
|
|
|
+ for(Map orderSubRecordLang : orderSubDataLang){ //遍历子表单记录
|
|
|
+ codeSeries = UtilMap.getString(orderSubRecordLang,"textField_mizmmf8h"); // 系列编号【语言版本 - 数量拆分】
|
|
|
+ nameSeries = UtilMap.getString(orderSubRecordLang,"textField_meqqj4wa"); // 系列【语言版本 - 数量拆分】
|
|
|
+ codeLang = UtilMap.getString(orderSubRecordLang,"textField_mizmmf8i"); // 语言编号【语言版本 - 数量拆分】
|
|
|
+ nameLang = UtilMap.getString(orderSubRecordLang,"textField_meqqj4wb"); // 语言【语言版本 - 数量拆分】
|
|
|
+ numOfSetsSeries = UtilMap.getInt(orderSubRecordLang,"numberField_meqqj4wd"); // 套数【语言版本 - 数量拆分】
|
|
|
+ numOfSetsAll = UtilMap.getInt(orderSubRecordLang,"numberField_mmtymctd"); // 总套数【语言版本 - 数量拆分】
|
|
|
+ System.out.println("系列编号:"+codeSeries+",系列:"+nameSeries+",语言编号:"+codeLang+",语言:"+nameLang
|
|
|
+ +",套数:"+numOfSetsSeries+",总套数:"+numOfSetsAll);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ 获取供应商与采购跟单数据
|
|
|
+ */
|
|
|
+ List<String> buyerUserIdList = new ArrayList<>(); //采购跟单userid列表,旧变量名 -> mchList
|
|
|
+ String supplier;
|
|
|
+ String buyerUserId;
|
|
|
+ Map<String,String> supplierBuyerMap = new HashMap<>(); //供应商与采购跟单userid映射,旧变量名 -> mchDDIdMap
|
|
|
+ for (Map projectSubRecordBuyer : projectSubDataBuyer){ //遍历子表单记录,旧变量名 -> map
|
|
|
+ buyerUserId = String.valueOf(
|
|
|
+ UtilMap.getList(projectSubRecordBuyer, "employeeField_me9n24kl_id") //采购跟单
|
|
|
+ .get(0)
|
|
|
+ ); //采购跟单userid,旧变量名 -> ddId
|
|
|
+ if(!buyerUserIdList.contains(buyerUserId)){
|
|
|
+ buyerUserIdList.add(buyerUserId);
|
|
|
+ }
|
|
|
+ supplier = UtilMap.getString(projectSubRecordBuyer,"textField_mec6juil"); //供应商
|
|
|
+ supplierBuyerMap.put(supplier, buyerUserId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ 查询配件信息
|
|
|
+ 【品类表】 FORM-17E244F3FB2240EB930E6DD4E22C7F89KXAR
|
|
|
+ */
|
|
|
+ List<Map> partsData = ydService.queryAllFormData(
|
|
|
+ YDParam.builder().formUuid(EastarParam.YD_FORMUUID_SKU_TYPE).build()
|
|
|
+ ); // 【品类表】数据,旧变量名 -> skuTypeListConfigData
|
|
|
+ Map partsNameCodeMap = ConfigDataProcessor.skuTypeListConfigData(partsData); // 品类名称与配件编号映射,旧变量名 -> skuIdMap
|
|
|
+
|
|
|
+ /*
|
|
|
+ 查询配件参数信息
|
|
|
+ 【配件状态】 FORM-760F4001E1C743BA8527721F7217E068534G
|
|
|
+ */
|
|
|
+ List<Map> partsConfSubDataDetails = ydService.queryDetails(
|
|
|
+ YDParam.builder()
|
|
|
+ .formInstanceId("FINST-X1B66Y81IUFY9U417XIUE99I8YV93HGMJ8WEMF")
|
|
|
+ .formUuid(EastarParam.YD_FORMUUID_SONCONF)
|
|
|
+ .tableFieldId("tableField_mew7d9f3").build()
|
|
|
+ ); // 【配件状态】子表单【明细】,旧变量名 -> sonConfData
|
|
|
+ Map<String,Map<String,List<String>>> partsConfMap = ConfigDataProcessor.processConfigData(
|
|
|
+ partsConfSubDataDetails
|
|
|
+ ); //配件参数信息(按配件大类分组),旧变量名 -> sonConf
|
|
|
+
|
|
|
+ /*
|
|
|
+ 获取立项相关成员数据
|
|
|
+ */
|
|
|
+// List<String> userIdList;
|
|
|
+// userIdList = new ArrayList<>(); //立项相关成员userid列表,旧变量名 -> userIdList
|
|
|
+// userIdList.addAll(pmUserId);
|
|
|
+// userIdList.addAll(ssUserId);
|
|
|
+// userIdList.addAll(qeUserId);
|
|
|
+// userIdList.addAll(buyerUserIdList);
|
|
|
+// Set<String> userIdSet = new HashSet<>(userIdList); //立项相关成员userid列表(不重复),旧变量名 -> set
|
|
|
+// userIdList = new ArrayList<>(userIdSet);
|
|
|
+
|
|
|
+ /*
|
|
|
+ 创建配件任务
|
|
|
+ */
|
|
|
+ List<Map> partsTaskData1; //配件任务数据1,旧变量名 -> result
|
|
|
+ List<Map> partsTaskData2 = new ArrayList<>(); //配件任务数据
|
|
|
+ Map<String,List<Map>> supplierPurchaseMap = new HashMap<>(); // 供应商与采购需求关联数据
|
|
|
+ boolean isMultiLang; //语言区别,旧变量名 -> isLang
|
|
|
+ String partsMajorType; //配件大类,旧变量名 -> type
|
|
|
+ Map<String,List<String>> partsConfMapByMajorType; //配件参数信息(某配件大类),旧变量名 -> sonconfs
|
|
|
+ List<String> phaseDeliverablesList; //阶段产出物列表
|
|
|
+ List<String> partsMajorTypePhaseDeliverables; //配件大类与产出物列表,旧变量名 -> sonconf
|
|
|
+ for(Map projectSubRecordParts : projectSubDataParts){ //遍历【立项/项目台账】子表单【全品类】记录,旧变量名 -> map
|
|
|
+ supplier = UtilMap.getString(projectSubRecordParts,"textField_me2f7tvz"); //供应商,旧变量名 -> gysName
|
|
|
+ isMultiLang = "是".equals(UtilMap.getString(projectSubRecordParts,"radioField_me2f7tvx"));
|
|
|
+ partsMajorType = UtilMap.getString(projectSubRecordParts,"selectField_me2f7tvk");
|
|
|
+ partsConfMapByMajorType = partsConfMap.get(partsMajorType);
|
|
|
+ partsMajorTypePhaseDeliverables = new ArrayList<>();
|
|
|
+ if(partsConfMapByMajorType!=null && partsConfMapByMajorType.size()>0){
|
|
|
+ for(String projectPhase : projectPhaseList){ //遍历项目包含阶段
|
|
|
+ if(partsConfMapByMajorType.containsKey(projectPhase)){
|
|
|
+ phaseDeliverablesList = partsConfMapByMajorType.get(projectPhase);
|
|
|
+ for (String phaseDeliverables: phaseDeliverablesList) {
|
|
|
+ partsMajorTypePhaseDeliverables.add(partsMajorType+" / "+phaseDeliverables);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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);
|
|
|
+ }else{
|
|
|
+ supplierPurchaseMap.put(supplier,partsTaskData1);
|
|
|
+ }
|
|
|
+ partsTaskData2.addAll(partsTaskData1);
|
|
|
+ }
|
|
|
+ System.out.println("配件任务数据数量="+partsTaskData2.size());
|
|
|
+ /*
|
|
|
+ 从立项数据提取项目计划明细数据
|
|
|
+ */
|
|
|
+ List<Map> projectSubDataPlan = UtilMap.getList(projectData,"tableField_mgu5rm3e"); // 项目计划明细,旧变量名 -> projectPlan
|
|
|
+ /*
|
|
|
+ 按配件任务关联项目阶段对配件任务数据进行调整
|
|
|
+ */
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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);
|
|
|
+ } else{
|
|
|
+ if("大货样".equals(phase)){
|
|
|
+ taskStatus ="无需合同";
|
|
|
+ }else{ //白样和产前样
|
|
|
+ taskStatus ="待排期";
|
|
|
+ }
|
|
|
+ procuremenType ="样品任务";
|
|
|
+ taskType ="打样";
|
|
|
+ copiedMap = new HashMap<>(partsTaskRecordByGys); // 关键:创建副本
|
|
|
+ copiedMap.put("dateField_mizvc5oi", planEndTime); //考核日期
|
|
|
+ copiedMap.put("numberField_mkosp94h", demoValue); //客户订单数量
|
|
|
+ copiedMap.put("numberField_mifp03el", demoValue); //工厂采购数量
|
|
|
+ modifiedList.add(copiedMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ supplierOrder = UtilMap.map(
|
|
|
+ //"textField_mifp03ew, " + //TB项目编号
|
|
|
+ "selectField_mifp03e7, " + //任务状态
|
|
|
+ "tableField_mifp03em, " + //采购明细
|
|
|
+ "selectField_mkf6qv9b, " + //采购类型
|
|
|
+ "dateField_mifp03eb, " + //计划完成日期
|
|
|
+ "selectField_ml0l206x", //订单类型
|
|
|
+ //tbProjectId,
|
|
|
+ taskStatus,
|
|
|
+ modifiedList,
|
|
|
+ procuremenType,
|
|
|
+ planEndTime,
|
|
|
+ taskType
|
|
|
+ );
|
|
|
+ supplierOrder.put("associationFormField_mifp03e9",projectDataAssOrder); //项目订单
|
|
|
+ supplierOrder.put("associationFormField_mifp03e8",projectDataAssLeads); // 销售项目
|
|
|
+ supplierOrder.put("textField_mifp03e6",projectName+"-"+gys+"-"+phase); //任务名称
|
|
|
+ supplierOrder.put("textField_mimwnauk",projectCode); //项目订单编号
|
|
|
+ //supplierOrder.put("textField_mizs3841",pMainId);
|
|
|
+ supplierOrder.put("employeeField_mifp03eu",Arrays.asList(supplierBuyerMap.get(gys))); //跟单负责人
|
|
|
+ /*
|
|
|
+ 查询跟单与供应商数据
|
|
|
+ 【跟单-供应商对应表】 FORM-3AB247087A81401F87264BFA74944BE3R086
|
|
|
+ */
|
|
|
+ gysBuyerData = (List<Map>) ydClient.queryData(
|
|
|
+ YDParam.builder()
|
|
|
+ .formUuid(EastarParam.YD_FORMUUID_GYS_YW)
|
|
|
+ .searchCondition(
|
|
|
+ JSONObject.toJSONString(
|
|
|
+ Arrays.asList(
|
|
|
+ new YDSearch(
|
|
|
+ "textField_mec6lku3", //供应商简称
|
|
|
+ gys,
|
|
|
+ "供应商简称",
|
|
|
+ YDSearch.Type.TEXT_FIELD,
|
|
|
+ YDSearch.Operator.EQ
|
|
|
+ )
|
|
|
+ )
|
|
|
+ )
|
|
|
+ ).build(),
|
|
|
+ YDConf.FORM_QUERY.retrieve_list
|
|
|
+ ).getData();
|
|
|
+ if(gysBuyerData!=null && gysBuyerData.size()>0){
|
|
|
+ gysBuyerDataAssSupplier
|
|
|
+ = UtilMap.getAssFieldValue(
|
|
|
+ UtilMap.getMap(gysBuyerData.get(0),"formData"),
|
|
|
+ "associationFormField_mec6lku4_id" //供应商
|
|
|
+ );
|
|
|
+ supplierOrder.put("associationFormField_mifp03ea",gysBuyerDataAssSupplier); //供应商
|
|
|
+ supplierOrder.put("textField_mifp03ez",gysBuyerDataAssSupplier.get(0).subTitle); // 供应商编号
|
|
|
+ }
|
|
|
+ supplierOrder.put("textField_mmikzhlb",phase); //里程碑
|
|
|
+ /*
|
|
|
+ 保存配件任务数据
|
|
|
+ 【配件任务表】 FORM-B9CBFB34DB3249C483415EF641202AC199J9
|
|
|
+ */
|
|
|
+// ydClient.operateData(
|
|
|
+// YDParam.builder()
|
|
|
+// .formUuid(EastarParam.YD_FORMUUID_CGTASK)
|
|
|
+// .formDataJson(JSONObject.toJSONString(supplierOrder))
|
|
|
+// .build(),
|
|
|
+// YDConf.FORM_OPERATION.create
|
|
|
+// );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ 生成包装任务(打样不需要生成包装)
|
|
|
+ */
|
|
|
+ if("大货".equals(orderType)){
|
|
|
+ //savePackTask(tbProjectId, orderLangConf, data, pName, pId, pMainId, projectOrder, mchDDIdMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ return Collections.emptyMap();
|
|
|
+ }
|
|
|
+
|
|
|
+ //创建配件任务数据1
|
|
|
+ private List<Map> createPartsTaskData1(
|
|
|
+ Map taskMap, //TB相关,无用
|
|
|
+ List<Map> orderSubDataLangOrSeries, //销售订单子表单记录,【语言版本 - 数量拆分】明细数据或【系列套数】明细数据,旧变量名 -> orderConf
|
|
|
+ Map projectSubRecordParts, //立项数据子表单记录,【全品类】明细数据某一行,旧变量名 -> cgDetail
|
|
|
+ List<Map> customfields, //TB相关,无用
|
|
|
+ boolean isMultiLang, //是否存在多种语言版本,旧变量名 -> isLang
|
|
|
+ List<String> partsPhaseDeliverables, //配件状态明细(按配件大类分组),旧变量名 -> sonConf
|
|
|
+ String sonScenariofieldconfigId, //TB相关,无用
|
|
|
+ String supplier, //供应商,旧变量名 -> gysName
|
|
|
+ String pId, // 项目编号
|
|
|
+ String pMainId, // 主项目编号
|
|
|
+ Map skuTypeDataMap //品类名称与配件编号映射,旧变量名 -> skuIdMap
|
|
|
+ ){
|
|
|
+ List<Map> partsTaskData1 = new ArrayList<>(); //待新增的配件任务数据
|
|
|
+ String nameSeries; //系列,旧变量名 -> confSeries
|
|
|
+ String nameLang; //语言
|
|
|
+ String skuId;
|
|
|
+ String reportId;
|
|
|
+ String sku;
|
|
|
+ String numOfSets; //套数【语言版本 - 数量拆分】或套数【系列套数】,旧变量名 -> value
|
|
|
+ String devNum; //研发部订单需求数量,旧变量名 -> rdNum
|
|
|
+ int allSupplyNum; //总采购数量
|
|
|
+ String partsType; //配件类型(来源于【品类表】的“品类名称”)
|
|
|
+ String partsName; //配件名称
|
|
|
+ Map projectSubRecordPartsNew; //立项数据子表单记录,【全品类】明细数据某一行(新),旧变量名 -> recod
|
|
|
+ for(Map orderSubRecordLangOrSeries : orderSubDataLangOrSeries){ //遍历子表单记录,旧变量名 -> map
|
|
|
+ nameSeries = UtilMap.getString_first(
|
|
|
+ orderSubRecordLangOrSeries,
|
|
|
+ "textField_meqqj4wa", //系列【语言版本 - 数量拆分】
|
|
|
+ "textField_mesc7nvf" //系列【系列套数】
|
|
|
+ ); // 系列
|
|
|
+ if(!UtilMap.getString(projectSubRecordParts,"selectField_me2f7tw4").equals(nameSeries)){
|
|
|
+ // 系列【全品类】与系列【语言版本 - 数量拆分】或系列【系列套数】不匹配
|
|
|
+ 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 添加系列编号及文档编号
|
|
|
+ nameLang = UtilMap.getString(orderSubRecordLangOrSeries,"textField_meqqj4wb"); // 语言【语言版本 - 数量拆分】,旧变量名 -> lang
|
|
|
+ if(isMultiLang){ // 是否存在多种语言版本
|
|
|
+ if(PublicUtil.isNull(nameLang)){
|
|
|
+ nameLang = "不区分";
|
|
|
+ sku = sku+"AL"; // sku 不区分语言
|
|
|
+ }
|
|
|
+ sku = sku + UtilMap.getString(orderSubRecordLangOrSeries,"textField_mizmmf8i"); // sku+语言编号
|
|
|
+ }else{
|
|
|
+ nameLang = "不区分";
|
|
|
+ sku = sku+"AL"; // sku 不区分语言
|
|
|
+ }
|
|
|
+ sku = sku + pMainId.substring(pMainId.length()-10); // sku+项目号
|
|
|
+ numOfSets = UtilMap.getString_first(
|
|
|
+ orderSubRecordLangOrSeries,
|
|
|
+ "numberField_meqqj4wd", // 套数【语言版本 - 数量拆分】
|
|
|
+ "numberField_mesc7nvi" // 套数【系列套数】
|
|
|
+ ); // 数量
|
|
|
+ devNum = UtilMap.getString(projectSubRecordParts,"numberField_mmke3fdc"); //研发部订单需求数量
|
|
|
+ allSupplyNum = 0;
|
|
|
+// if(StringUtils.isNotEmpty(devNum) && StringUtils.isNotEmpty(numOfSets)){
|
|
|
+// allSupplyNum = Integer.parseInt(devNum) + Integer.parseInt(numOfSets); //计算总采购数量
|
|
|
+// }
|
|
|
+ allSupplyNum = Integer.parseInt(numOfSets);
|
|
|
+ projectSubRecordPartsNew = new HashMap(projectSubRecordParts);
|
|
|
+ partsName = nameSeries+"-"+partsType;
|
|
|
+ projectSubRecordPartsNew.putAll(
|
|
|
+ UtilMap.map(
|
|
|
+ "textField_mecmytpr, " + //配件名称
|
|
|
+ "textField_mecmytps, " + //TB任务编号
|
|
|
+ //"textField_mecmytpt," +
|
|
|
+ "numberField_mifp03el, " + //工厂采购数量
|
|
|
+ "numberField_mmmwu4cg, " + //研发部订单需求数量
|
|
|
+ "numberField_mmmwu4ci, " + //总采购数量
|
|
|
+ "textField_mifp03eo, " + //SKU编号
|
|
|
+ "textField_miib17jx, " + //项目订单编号
|
|
|
+ "textField_mizvc5oj, " + //任务表明细实例标识
|
|
|
+ "textField_mjr129o4, " + //语言
|
|
|
+ "numberField_mkosp94h", //客户订单数量
|
|
|
+ partsName,
|
|
|
+ "~",
|
|
|
+ //"未开始",
|
|
|
+ numOfSets,
|
|
|
+ devNum,
|
|
|
+ allSupplyNum,
|
|
|
+ sku,
|
|
|
+ pId,
|
|
|
+ "~",
|
|
|
+ nameLang,
|
|
|
+ numOfSets
|
|
|
+ )
|
|
|
+ );
|
|
|
+ partsTaskData1.add(projectSubRecordPartsNew);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return partsTaskData1;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|