|
@@ -18,6 +18,7 @@ import lombok.SneakyThrows;
|
|
import lombok.Synchronized;
|
|
import lombok.Synchronized;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.lang3.StringEscapeUtils;
|
|
import org.apache.commons.lang3.StringEscapeUtils;
|
|
|
|
+import org.apache.logging.log4j.util.Strings;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -655,50 +656,6 @@ public class KKLImplService implements KKLService {
|
|
return diffList;
|
|
return diffList;
|
|
}
|
|
}
|
|
|
|
|
|
- @Async
|
|
|
|
- @Override
|
|
|
|
- public McR updateFoodMaterials(String formInstId) {
|
|
|
|
- //获取菜品管理信息
|
|
|
|
- Map foodFormData = ydClient.queryData(YDParam.builder().formInstanceId(formInstId).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
|
|
- List<Map> materialList = (List<Map>) foodFormData.get("tableField_llm1i9yy");
|
|
|
|
- for (Map material : materialList) {
|
|
|
|
- String jsonString = material.get("associationFormField_lln3lmmv_id").toString();
|
|
|
|
- String materialJsonString = StringEscapeUtils.unescapeJava(jsonString.substring(1, jsonString.length() - 1));//新供应商原材料(关联表单)
|
|
|
|
-
|
|
|
|
- Map materialMap =(((List<Map>) JSONArray.parse(materialJsonString))).get(0);
|
|
|
|
- String instanceId = materialMap.get("instanceId").toString();
|
|
|
|
-
|
|
|
|
- //获取定价单明细中间表信息
|
|
|
|
- Map formData1 = ydClient.queryData(YDParam.builder().formInstanceId(instanceId).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
|
|
-
|
|
|
|
- materialMap.put("title",formData1.get("textField_llkb7kd1").toString());
|
|
|
|
- materialMap.put("subTitle",formData1.get("textField_lmkfg67e"));
|
|
|
|
- List<Map> list = new ArrayList<>();
|
|
|
|
- list.add(materialMap);
|
|
|
|
- material.put("associationFormField_lln3lmmv",list);//原材料(关联表单)
|
|
|
|
- material.put("textField_lln3lmn2",formData1.get("textField_llkb7kd3"));//单位
|
|
|
|
- material.put("textField_llyy3khw",formData1.get("textField_lmkfg67e"));//品牌
|
|
|
|
- material.put("textField_lz0ve9ct",formData1.get("textField_llkb7kd4"));//规格
|
|
|
|
- material.put("numberField_lnrzzg03",formData1.get("numberField_lnrzzg03"));//整包装数量
|
|
|
|
- material.put("textField_lnrzzg04",formData1.get("textField_lnrzzg04"));//整包装单位
|
|
|
|
- material.put("textField_llndm599",formData1.get("textField_llkb7kd1"));//原材料名称
|
|
|
|
- material.put("textField_lmk94yf5",formData1.get("textField_llkb7kd2"));//原材料编号
|
|
|
|
- material.put("selectField_lmqclyx9",formData1.get("selectField_llkb7kd5"));//第一分类
|
|
|
|
- material.put("numberField_lmqclyxa",formData1.get("numberField_llkknd6h"));//供货价
|
|
|
|
- material.put("numberField_lmsvffts",formData1.get("numberField_llkknd6g"));//成本单价
|
|
|
|
- material.put("numberField_lmsvfftt",formData1.get("numberField_llkb7kcy"));//服务费率
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-// foodFormData.put("tableField_llm1i9yy",materialList);
|
|
|
|
-
|
|
|
|
- ydClient.operateData(YDParam.builder()
|
|
|
|
- .formInstanceId(formInstId)
|
|
|
|
- .updateFormDataJson(JSON.toJSONString(foodFormData))
|
|
|
|
- .build(), YDConf.FORM_OPERATION.update);
|
|
|
|
-
|
|
|
|
- return McR.success();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
private List<Map> getYdFormDataList(String formUuid, String searchCondition, YDConf.FORM_QUERY formQuery) {
|
|
private List<Map> getYdFormDataList(String formUuid, String searchCondition, YDConf.FORM_QUERY formQuery) {
|
|
List<Map> list = new ArrayList<>();
|
|
List<Map> list = new ArrayList<>();
|
|
DDR_New ddrNew;
|
|
DDR_New ddrNew;
|
|
@@ -803,9 +760,10 @@ public class KKLImplService implements KKLService {
|
|
return McR.errorUnknown("新供应商原材料编号存在重复!");
|
|
return McR.errorUnknown("新供应商原材料编号存在重复!");
|
|
}
|
|
}
|
|
|
|
|
|
- for (Map diff : diffList) {
|
|
|
|
|
|
+ /*for (Map diff : diffList) {
|
|
String oldCode = String.valueOf(diff.get("textField_lyxr5c44"));//老供应商原材料编号
|
|
String oldCode = String.valueOf(diff.get("textField_lyxr5c44"));//老供应商原材料编号
|
|
String newCode = String.valueOf(diff.get("textField_lywr2qcv"));//新供应商原材料编号
|
|
String newCode = String.valueOf(diff.get("textField_lywr2qcv"));//新供应商原材料编号
|
|
|
|
+
|
|
if (!newMatchSupplierMaterialCodes.contains(newCode)){
|
|
if (!newMatchSupplierMaterialCodes.contains(newCode)){
|
|
//查询旧供应商原材料信息
|
|
//查询旧供应商原材料信息
|
|
List<Map> data = (List<Map>) ydClient.queryData(YDParam.builder()
|
|
List<Map> data = (List<Map>) ydClient.queryData(YDParam.builder()
|
|
@@ -824,8 +782,11 @@ public class KKLImplService implements KKLService {
|
|
.formDataJson(JSON.toJSONString(diffFormData)).build(), YDConf.FORM_OPERATION.create);
|
|
.formDataJson(JSON.toJSONString(diffFormData)).build(), YDConf.FORM_OPERATION.create);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }
|
|
|
|
- Map changeCodeMap = new HashMap<>();
|
|
|
|
|
|
+ }*/
|
|
|
|
+
|
|
|
|
+ //未匹配上的原材料
|
|
|
|
+ List<String> notMatchCodes = new ArrayList<>();
|
|
|
|
+
|
|
//获取旧供应商定价单明细中间表
|
|
//获取旧供应商定价单明细中间表
|
|
List<Map> oldSupplierMaterials = getYdFormDataList(PRICE_DETAIL_MIDDLE, JSON.toJSONString(UtilMap.map("textField_llzzbyj1, textField_llm1vtjm", oldSupplierCode,projectCode)), YDConf.FORM_QUERY.retrieve_list);
|
|
List<Map> oldSupplierMaterials = getYdFormDataList(PRICE_DETAIL_MIDDLE, JSON.toJSONString(UtilMap.map("textField_llzzbyj1, textField_llm1vtjm", oldSupplierCode,projectCode)), YDConf.FORM_QUERY.retrieve_list);
|
|
for (Map oldSupplierMaterial : oldSupplierMaterials) {
|
|
for (Map oldSupplierMaterial : oldSupplierMaterials) {
|
|
@@ -835,21 +796,22 @@ public class KKLImplService implements KKLService {
|
|
String formInstanceId = String.valueOf(oldSupplierMaterial.get("formInstanceId"));
|
|
String formInstanceId = String.valueOf(oldSupplierMaterial.get("formInstanceId"));
|
|
|
|
|
|
String newCode = "";
|
|
String newCode = "";
|
|
- String newName = "";
|
|
|
|
|
|
|
|
//更新定价单明细中间表
|
|
//更新定价单明细中间表
|
|
oldSupplierMaterialFormData.put("textField_lmsli3bq", newSupplierName);//供应商名称
|
|
oldSupplierMaterialFormData.put("textField_lmsli3bq", newSupplierName);//供应商名称
|
|
oldSupplierMaterialFormData.put("textField_llzzbyj1", newSupplierCode);//供应商编号
|
|
oldSupplierMaterialFormData.put("textField_llzzbyj1", newSupplierCode);//供应商编号
|
|
|
|
|
|
- //未匹配上的原材料
|
|
|
|
|
|
+ //未匹配上的原材料 将明细删除
|
|
int index1 = oldDiffSupplierMaterialCodes.indexOf(code);
|
|
int index1 = oldDiffSupplierMaterialCodes.indexOf(code);
|
|
if (index1 != -1){
|
|
if (index1 != -1){
|
|
- newCode = newDiffSupplierMaterialCodes.get(index1);
|
|
|
|
- oldSupplierMaterialFormData.put("textField_llkb7kd2", newCode);//物品编号
|
|
|
|
|
|
+ /*ydClient.operateData(YDParam.builder().formUuid(PRICE_DETAIL_MIDDLE)
|
|
|
|
+ .formInstanceId(formInstanceId)
|
|
|
|
+ .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_lm4lxur8","已停用"))).build(), YDConf.FORM_OPERATION.update);
|
|
|
|
+*/
|
|
ydClient.operateData(YDParam.builder().formUuid(PRICE_DETAIL_MIDDLE)
|
|
ydClient.operateData(YDParam.builder().formUuid(PRICE_DETAIL_MIDDLE)
|
|
.formInstanceId(formInstanceId)
|
|
.formInstanceId(formInstanceId)
|
|
- .updateFormDataJson(JSON.toJSONString(oldSupplierMaterialFormData)).build(), YDConf.FORM_OPERATION.update);
|
|
|
|
- changeCodeMap.put(code,newCode);
|
|
|
|
|
|
+ .build(), YDConf.FORM_OPERATION.delete);
|
|
|
|
+ notMatchCodes.add(code);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
//手动匹配上的原材料
|
|
//手动匹配上的原材料
|
|
@@ -861,7 +823,6 @@ public class KKLImplService implements KKLService {
|
|
ydClient.operateData(YDParam.builder().formUuid(PRICE_DETAIL_MIDDLE)
|
|
ydClient.operateData(YDParam.builder().formUuid(PRICE_DETAIL_MIDDLE)
|
|
.formInstanceId(formInstanceId)
|
|
.formInstanceId(formInstanceId)
|
|
.updateFormDataJson(JSON.toJSONString(oldSupplierMaterialFormData)).build(), YDConf.FORM_OPERATION.update);
|
|
.updateFormDataJson(JSON.toJSONString(oldSupplierMaterialFormData)).build(), YDConf.FORM_OPERATION.update);
|
|
- changeCodeMap.put(code,newCode);
|
|
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
//自动匹配上的原材料
|
|
//自动匹配上的原材料
|
|
@@ -873,11 +834,9 @@ public class KKLImplService implements KKLService {
|
|
ydClient.operateData(YDParam.builder().formUuid(PRICE_DETAIL_MIDDLE)
|
|
ydClient.operateData(YDParam.builder().formUuid(PRICE_DETAIL_MIDDLE)
|
|
.formInstanceId(formInstanceId)
|
|
.formInstanceId(formInstanceId)
|
|
.updateFormDataJson(JSON.toJSONString(oldSupplierMaterialFormData)).build(), YDConf.FORM_OPERATION.update);
|
|
.updateFormDataJson(JSON.toJSONString(oldSupplierMaterialFormData)).build(), YDConf.FORM_OPERATION.update);
|
|
- changeCodeMap.put(code,newCode);
|
|
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
//更新定价单
|
|
//更新定价单
|
|
@@ -908,10 +867,17 @@ public class KKLImplService implements KKLService {
|
|
//获取菜品管理信息
|
|
//获取菜品管理信息
|
|
Map foodFormData = (Map) datum.get("formData");
|
|
Map foodFormData = (Map) datum.get("formData");
|
|
List<Map> materialList = (List<Map>) foodFormData.get("tableField_llm1i9yy");
|
|
List<Map> materialList = (List<Map>) foodFormData.get("tableField_llm1i9yy");
|
|
|
|
+ List<String> errorCodes = new ArrayList<>();
|
|
|
|
|
|
// Map foodFormData = ydClient.queryData(YDParam.builder().formInstanceId(formInstId).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
// Map foodFormData = ydClient.queryData(YDParam.builder().formInstanceId(formInstId).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
// List<Map> materialList = (List<Map>) foodFormData.get("tableField_llm1i9yy");
|
|
// List<Map> materialList = (List<Map>) foodFormData.get("tableField_llm1i9yy");
|
|
for (Map material : materialList) {
|
|
for (Map material : materialList) {
|
|
|
|
+ String code = material.get("textField_lmk94yf5").toString();
|
|
|
|
+ //如果明细被删除
|
|
|
|
+ if (notMatchCodes.contains(code)){
|
|
|
|
+ errorCodes.add(code);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
String jsonString3 = material.get("associationFormField_lln3lmmv_id").toString();
|
|
String jsonString3 = material.get("associationFormField_lln3lmmv_id").toString();
|
|
String materialJsonString = StringEscapeUtils.unescapeJava(jsonString3.substring(1, jsonString3.length() - 1));//新供应商原材料(关联表单)
|
|
String materialJsonString = StringEscapeUtils.unescapeJava(jsonString3.substring(1, jsonString3.length() - 1));//新供应商原材料(关联表单)
|
|
|
|
|
|
@@ -939,7 +905,12 @@ public class KKLImplService implements KKLService {
|
|
material.put("numberField_lmsvfftt",formData1.get("numberField_llkb7kcy"));//服务费率
|
|
material.put("numberField_lmsvfftt",formData1.get("numberField_llkb7kcy"));//服务费率
|
|
}
|
|
}
|
|
|
|
|
|
- foodFormData.put("tableField_llm1i9yy",materialList);
|
|
|
|
|
|
+ if (!errorCodes.isEmpty()){
|
|
|
|
+ foodFormData.put("selectField_lzaq9r7i","异常");
|
|
|
|
+ foodFormData.put("textField_lzaq9r7n",String.join(",",errorCodes));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ foodFormData.put("tableField_llm1i9yy",materialList);
|
|
|
|
|
|
ydClient.operateData(YDParam.builder()
|
|
ydClient.operateData(YDParam.builder()
|
|
.formInstanceId(formInstId)
|
|
.formInstanceId(formInstId)
|