|
|
@@ -1,6 +1,8 @@
|
|
|
package com.malk.kuaikeli.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.util.NumberUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.malk.kuaikeli.service.KKLService;
|
|
|
import com.malk.server.aliwork.YDConf;
|
|
|
import com.malk.server.aliwork.YDParam;
|
|
|
@@ -15,10 +17,7 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Optional;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
@@ -65,7 +64,7 @@ public class KKLImplService implements KKLService {
|
|
|
* 后端校验返回、加任何产品都要走审批,减少20%以内直接过,每一个原材料
|
|
|
*/
|
|
|
@Override
|
|
|
- public void validateApprove(Map data) {
|
|
|
+ public boolean validateApprove(Map data) {
|
|
|
|
|
|
boolean approve = false;
|
|
|
List<Map> dataList = UtilMap.getList(data, "list");
|
|
|
@@ -98,12 +97,105 @@ public class KKLImplService implements KKLService {
|
|
|
.formDataJson(JSON.toJSONString(data.get("form"))) // 前端数据组装
|
|
|
.userId(data.get("user").toString())
|
|
|
.build(), YDConf.FORM_OPERATION.start);
|
|
|
+ }
|
|
|
+ // 执行业务逻辑-编辑前后更新计划采购单
|
|
|
+ planUpdate(UtilMap.getString(data,"poid"),dataList);
|
|
|
+ return approve;
|
|
|
+ }
|
|
|
|
|
|
- // 更新计划状态
|
|
|
- ydService.operateData(YDParam.builder()
|
|
|
- .formInstanceId(data.get("poid").toString())
|
|
|
- .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_lm8znr9n", "执行中")))
|
|
|
- .build(), YDConf.FORM_OPERATION.update);
|
|
|
+ @Override
|
|
|
+ public void updateState(String id) {
|
|
|
+ try {
|
|
|
+ log.info("异步修改状态,休眠3s");
|
|
|
+ Thread.sleep(3000);
|
|
|
+ } catch (InterruptedException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ // 更新计划状态
|
|
|
+ ydService.operateData(YDParam.builder()
|
|
|
+ .formInstanceId(id)
|
|
|
+ .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_lm8znr9n", "执行中")))
|
|
|
+ .build(), YDConf.FORM_OPERATION.update);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void planUpdate(String poid,List<Map> dataList){
|
|
|
+ String formUuid="FORM-XHA66881J8KDA6V3FM6LZBUP9PDE37VESDNLL6";
|
|
|
+ Map formData=(Map) ydClient.queryData(YDParam.builder().formInstId(poid).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
|
+ List<Map> list=UtilMap.getList(formData,"tableField_lln477nw");
|
|
|
+ saveData(list,formData,formUuid,false);// -
|
|
|
+ saveData(dataList,formData,formUuid,true);// +
|
|
|
+ }
|
|
|
+
|
|
|
+ private void saveData(List<Map> list,Map formData,String formUuid,boolean isAdd){
|
|
|
+ for(Map map:list){
|
|
|
+ Map queryMap=new HashMap();
|
|
|
+ queryMap.put("dateField_llndtdwl", Arrays.asList(map.get("dateField_ln1ez5lg"),map.get("dateField_ln1ez5lg")));// 日期
|
|
|
+ queryMap.put("textField_llq9x6ov",formData.get("textField_lln477nh"));// 项目编号
|
|
|
+ queryMap.put("textField_lmk97m1v",map.get("textField_lmk97m1v"));// 原材料编号
|
|
|
+ Map upMap=new HashMap();
|
|
|
+ upMap.put("numberField_llojyfy3",map.get("numberField_lmsvfftq"));// 成本单价
|
|
|
+ upMap.put("numberField_llojyfy4",map.get("numberField_lmsvfftr"));// 服务费率
|
|
|
+ upMap.put("dateField_llndtdwl",map.get("dateField_ln1ez5lg"));// 计划日期
|
|
|
+ upMap.put("textField_llndm599",map.get("textField_llndm599"));// 原材料名称
|
|
|
+ upMap.put("textField_lluj4hu1",map.get("textField_lln3lmn2"));// 单位
|
|
|
+ upMap.put("textField_llq9x6ov",formData.get("textField_lln477nh"));// 项目编号
|
|
|
+ upMap.put("textField_lm5z7kvo",map.get("textField_ln1ez5li"));// 计划日期(文本)
|
|
|
+ upMap.put("textField_lm5z4ioi",formData.get("textField_lmsvfftp"));// 项目名称
|
|
|
+ upMap.put("textField_lmk97m1v",map.get("textField_lmk97m1v"));// 原材料编号
|
|
|
+ upMap.put("selectField_lmqclyx9",map.get("selectField_lmqclyx9"));// 第一分类
|
|
|
+ upMap.put("numberField_lmqclyxa",map.get("numberField_lmqclyxa"));// 供货价
|
|
|
+ upMap.put("textField_lnsmha2j",map.get("textField_lnwxz9ji"));// 品牌
|
|
|
+ upMap.put("textField_lpjet322",formData.get("textField_lpjet322"));// 档口名称
|
|
|
+ upMap.put("textField_lpjet321",formData.get("textField_lpjet321"));// 档口编号
|
|
|
+ upMap.put("textField_loe04txb",map.get("textField_lptgvips"));// 采购单位
|
|
|
+ List<Map> list2=(List<Map>) ydClient.queryData(YDParam.builder().formUuid(formUuid).searchFieldJson(JSONObject.toJSONString(queryMap)).build(), YDConf.FORM_QUERY.retrieve_list).getData();
|
|
|
+ if(list2==null||list2.size()<1){
|
|
|
+ if(!isAdd){
|
|
|
+ log.info("未找到对应的计划采购单,退出");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ upMap.put("numberField_lln477o2", map.get("numberField_lmym5628"));// 初始采购数量(kg)
|
|
|
+ upMap.put("numberField_lm9008fq", map.get("numberField_lmym5628"));// 实际采购数量(kg)
|
|
|
+ upMap.put("numberField_lns0dkzv", map.get("numberField_lns0dkzv"));// 投料数量(kg)
|
|
|
+ upMap.put("numberField_loe04txa", map.get("numberField_lomyf89l"));// 采购量
|
|
|
+ ydClient.operateData(YDParam.builder().formUuid(formUuid).formDataJson(JSONObject.toJSONString(upMap)).build(), YDConf.FORM_OPERATION.create);
|
|
|
+ }else{
|
|
|
+ Map oldMap=UtilMap.getMap(list2.get(0),"formData");
|
|
|
+ if(isAdd){
|
|
|
+ upMap.put("numberField_lln477o2", NumberUtil.add(UtilMap.getString(oldMap,"numberField_lln477o2"),UtilMap.getString(map,"numberField_lmym5628")));// 初始采购数量(kg)
|
|
|
+ upMap.put("numberField_lm9008fq", NumberUtil.add(UtilMap.getString(oldMap,("numberField_lm9008fq")),UtilMap.getString(map,("numberField_lmym5628"))));// 实际采购数量(kg)
|
|
|
+ upMap.put("numberField_lns0dkzv", NumberUtil.add(UtilMap.getString(oldMap,("numberField_lns0dkzv")),UtilMap.getString(map,("numberField_lns0dkzv"))));// 投料数量
|
|
|
+ upMap.put("numberField_loe04txa",NumberUtil.add(UtilMap.getString(oldMap,"numberField_loe04txa"),UtilMap.getString(map,"numberField_lomyf89l")));// 采购量
|
|
|
+ }else {
|
|
|
+ upMap.put("numberField_lln477o2", NumberUtil.sub(UtilMap.getString(oldMap, "numberField_lln477o2"), UtilMap.getString(map, "numberField_lmym5628")));// 初始采购数量(kg)
|
|
|
+ upMap.put("numberField_lm9008fq", NumberUtil.sub(UtilMap.getString(oldMap, ("numberField_lm9008fq")), UtilMap.getString(map, ("numberField_lmym5628"))));// 实际采购数量(kg)
|
|
|
+ upMap.put("numberField_lns0dkzv", NumberUtil.sub(UtilMap.getString(oldMap, ("numberField_lns0dkzv")), UtilMap.getString(map, ("numberField_lns0dkzv"))));// 投料数量
|
|
|
+ upMap.put("numberField_loe04txa",NumberUtil.sub(UtilMap.getString(oldMap,"numberField_loe04txa"),UtilMap.getString(map,"numberField_lomyf89l")));// 采购量
|
|
|
+ }
|
|
|
+ ydClient.operateData(YDParam.builder().formInstanceId(UtilMap.getString(list2.get(0),"formInstanceId")).updateFormDataJson(JSONObject.toJSONString(upMap)).build(), YDConf.FORM_OPERATION.update);
|
|
|
+ }
|
|
|
+ if(isAdd){
|
|
|
+ // 保存切配工作单
|
|
|
+ String formUuid2="FORM-RK966E71T0LDSTW39WFHE9OQ5GU23FKRRDNLL2";
|
|
|
+ Map qMap=new HashMap();
|
|
|
+ qMap.put("textField_lmsuq8am",formData.get("textField_lln477nh"));// 项目编号
|
|
|
+ qMap.put("dateField_llndtdwl",Arrays.asList(map.get("dateField_ln1ez5lg"),map.get("dateField_ln1ez5lg")));// 日期
|
|
|
+ qMap.put("textField_lm8zta2z",formData.get("selectField_llm1i9yl"));// 餐次
|
|
|
+ qMap.put("selectField_lln3lmn5",map.get("textField_lm4m83rv"));// 切配类型
|
|
|
+ qMap.put("textField_llndm599",map.get("textField_llndm599"));// 原材料名称
|
|
|
+ Map addMap=new HashMap();
|
|
|
+ addMap.putAll(qMap);
|
|
|
+ addMap.put("associationFormField_llndtdwg",formData.get("associationFormField_lln477nb"));// 项目点
|
|
|
+ addMap.put("numberField_lln477o2",map.get("numberField_lmym5628"));// 数量(kg)
|
|
|
+ addMap.put("numberField_lnrkgimz",map.get("numberField_lomyf89l"));// 初始采购数量
|
|
|
+ addMap.put("textField_ln1ez5li",map.get("textField_ln1ez5li"));// 计划日期(文本)
|
|
|
+ addMap.put("dateField_llndtdwl",map.get("dateField_ln1ez5lg"));// 日期
|
|
|
+ ydClient.operateData(YDParam.builder().formUuid(formUuid2)
|
|
|
+ .searchCondition(JSONObject.toJSONString(qMap))
|
|
|
+ .formDataJson(JSONObject.toJSONString(addMap))
|
|
|
+ .build(), YDConf.FORM_OPERATION.upsert);
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|