|
@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.malk.kuaikeli.service.KKLService;
|
|
|
import com.malk.server.aliwork.YDConf;
|
|
|
import com.malk.server.aliwork.YDParam;
|
|
|
+import com.malk.server.aliwork.YDSearch;
|
|
|
import com.malk.server.common.McException;
|
|
|
import com.malk.server.common.McR;
|
|
|
import com.malk.server.dingtalk.DDConf;
|
|
@@ -366,13 +367,14 @@ public class KKLImplService implements KKLService {
|
|
|
String cost4 = UtilMap.getString(data,"packNumber");// 包装数量
|
|
|
String cost5 = UtilMap.getString(data,"packUnit");// 包装单位
|
|
|
String cost6 = UtilMap.getString(data,"state");// 原材料状态
|
|
|
+ String supId = UtilMap.getString(data,"supId");// 供应商编号 2024/12/9 添加 (类型变更需求)
|
|
|
+ String typeOne = UtilMap.getString(data,"typeOne");// 一级分类 2024/12/9 添加 (类型变更需求)
|
|
|
+ String typeTwo = UtilMap.getString(data,"typeTwo");// 二级分类 2024/12/9 添加 (类型变更需求)
|
|
|
|
|
|
//todo2: 服务执行, 周日凌晨更新价格前, 是否重新匹配数据?
|
|
|
List<Map> jsonString = new ArrayList<>();
|
|
|
jsonString.add(UtilMap.map("key, value, type, operator, componentName", "textField_llkb7kd2",data.get("itemNumber"),"TEXT","eq","TextField"));
|
|
|
-
|
|
|
String searchCondition = JSONObject.toJSONString(jsonString);
|
|
|
-
|
|
|
List<Map> dataList = ydService.queryFormData_all(YDParam.builder()
|
|
|
.formUuid("FORM-E6766M811CKD2PIXEAKOM9S2DKBM2PBQU1MLL5")
|
|
|
// .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_llkb7kd2", data.get("itemNumber"))))//模糊匹配
|
|
@@ -380,31 +382,126 @@ public class KKLImplService implements KKLService {
|
|
|
.build());
|
|
|
log.info("adjustCost, {}", dataList.size());
|
|
|
|
|
|
- for (Map record : dataList) {
|
|
|
-// if (cost1 == UtilMap.getDouble(record, "numberField_llkknd6g") && cost2 == UtilMap.getDouble(record, "numberField_lpalgz05")) {
|
|
|
-// continue;
|
|
|
-// }
|
|
|
- double rate = UtilMap.getDouble(record, "numberField_llkb7kcy");
|
|
|
- double rate2 = UtilMap.getDouble(record, "numberField_lpalgz04");
|
|
|
- double price1 = UtilNumber.formatPrecisionValue(cost1 * (rate + 100) / 100f);
|
|
|
- double price2 = UtilNumber.formatPrecisionValue(cost2 * (100 + rate2) / 100f);
|
|
|
-
|
|
|
+ Map<String,Integer> resultValue=new HashMap(); // 项目编号:下标
|
|
|
+ for (int i = 0; i < dataList.size(); i++) {
|
|
|
+ resultValue.put(String.valueOf(dataList.get(i).get("textField_llm1vtjm")),i);
|
|
|
+ }
|
|
|
+ List<Map> djdList = ydService.queryFormData_all(YDParam.builder() // 定价单数据
|
|
|
+ .formUuid("FORM-W2A66Z91B4KDWDIAA7SI1BRBRTKM3XL87BKLL0")
|
|
|
+ .searchFieldJson(JSONObject.toJSONString(Arrays.asList(new YDSearch("textField_llzzbai8",supId,"供应商编号", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ))))//精准匹配
|
|
|
+ .build());
|
|
|
|
|
|
- String state= cost6.equals("已启用") && Long.parseLong(cost3) > UtilDateTime.getLocalDateTimeTimeStamp()?"已启用":"已停用";
|
|
|
+ djdList.forEach(dataItem -> {
|
|
|
+ List<Map> mapList = (List<Map>) dataItem.get("tableField_llq74mwk");
|
|
|
+ if(mapList.size()==50){
|
|
|
+ mapList=ydService.queryDetails(YDParam.builder().formInstanceId(String.valueOf(dataItem.get("formInstanceId"))).formUuid("FORM-W2A66Z91B4KDWDIAA7SI1BRBRTKM3XL87BKLL0")
|
|
|
+ .tableFieldId("tableField_llq74mwk")
|
|
|
+ .build());
|
|
|
+ }
|
|
|
+ String projectId=UtilMap.getString(dataItem,"textField_lllovku7"); // 定价但中项目编号
|
|
|
+ // 这里对比第二分类 selectField_llq74mwl ==> selectField_lv3v3911
|
|
|
+ List<Map> maps = mapList.stream().filter(items -> items.get("selectField_lv3v3911").equals(typeTwo)).collect(Collectors.toList());
|
|
|
+ if(maps.size()>0){
|
|
|
+ // 存在
|
|
|
+ if(resultValue.containsKey(projectId)){
|
|
|
+ // 中间表存在数据,更新数据
|
|
|
+ Map record=dataList.get(resultValue.get(projectId));
|
|
|
+ double rate = UtilMap.getDouble(record, "numberField_llkb7kcy");
|
|
|
+ double rate2 = UtilMap.getDouble(record, "numberField_lpalgz04");
|
|
|
+ double price1 = UtilNumber.formatPrecisionValue(cost1 * (rate + 100) / 100f);
|
|
|
+ double price2 = UtilNumber.formatPrecisionValue(cost2 * (100 + rate2) / 100f);
|
|
|
+ String state= cost6.equals("已启用") && Long.parseLong(cost3) > UtilDateTime.getLocalDateTimeTimeStamp()?"已启用":"已停用";
|
|
|
+ Map update = UtilMap.map("numberField_llkknd6h, numberField_lpalgz0a", price1, price2);
|
|
|
+ update.putAll(UtilMap.map("numberField_llkknd6g, numberField_lpalgz05, dateField_lm4lxur7, numberField_lnrzzg03, textField_lnrzzg04, textField_lm4lxur8", cost1, cost2, cost3, cost4, cost5,state ));
|
|
|
+ ydClient.operateData(YDParam.builder()
|
|
|
+ .formInstanceId(String.valueOf(record.get("formInstanceId")))
|
|
|
+ .updateFormDataJson(JSON.toJSONString(update))
|
|
|
+ .build(), YDConf.FORM_OPERATION.update);
|
|
|
+ }else{
|
|
|
+ // 中间表不存在数据,新增数据
|
|
|
+ List<Map> goodList = ydService.queryFormData_all(YDParam.builder()
|
|
|
+ .formUuid("FORM-12EB6BCE3C264630824721E7BBABCC03L8U9")
|
|
|
+ .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_llkb7kd2", data.get("itemNumber"))))
|
|
|
+ .build());
|
|
|
+ Map goodMap = goodList.get(0);
|
|
|
+ Map hashMap = new HashMap();
|
|
|
+ hashMap.put("textField_llzzbyj1",supId); //供应商编号
|
|
|
+ hashMap.put("textField_lmsli3bq",dataItem.get("textField_lmsli3bq")); //供应商名称
|
|
|
+ hashMap.put("textField_llm1vtjm",dataItem.get("textField_lllovku7")); //项目编号
|
|
|
+ hashMap.put("textField_loy1ep8r",dataItem.get("textField_loy1ep8r"));//项目名称
|
|
|
+ hashMap.put("textField_llkb7kd2",data.get("itemNumber")); //物品编号
|
|
|
+ hashMap.put("textField_llkb7kd1",goodMap.get("textField_llkb7kd1")); //物品名称
|
|
|
+ hashMap.put("textField_llkb7kd3",goodMap.get("textField_llkb7kd3")); //单位
|
|
|
+ hashMap.put("textField_llkb7kd4",goodMap.get("textField_llkb7kd4")); //规格
|
|
|
+ hashMap.put("selectField_llkb7kd5",goodMap.get("selectField_llkb7kd5")); //第一分类
|
|
|
+ hashMap.put("selectField_llkk6cms",goodMap.get("selectField_llkk6cms")); //第二分类
|
|
|
+ double rate = UtilMap.getDouble(maps.get(0), "numberField_llq74mwm"); //本周费率
|
|
|
+ double rate2 = UtilMap.getDouble(maps.get(0), "numberField_lpplr3im"); //下周费率
|
|
|
+ double pce1 = UtilMap.getDouble(goodMap, "numberField_llkknd6g"); //成本单价
|
|
|
+ double pce2 = UtilMap.getDouble(goodMap, "numberField_lpalgz05"); //下周成本单价
|
|
|
+ double price1 = UtilNumber.formatPrecisionValue(pce1 * (rate + 100) / 100f); //下周成本价
|
|
|
+ double price2 = UtilNumber.formatPrecisionValue(pce2 * (rate2 + 100 ) / 100f); //下周供货价
|
|
|
+ hashMap.put("numberField_llkb7kcy",rate); //服务费率
|
|
|
+ hashMap.put("numberField_lpalgz04",rate2); //下周服务费率
|
|
|
+ hashMap.put("numberField_llkknd6g",pce1); //成本单价
|
|
|
+ hashMap.put("numberField_lpalgz05",pce2); //下周成本单价
|
|
|
+ hashMap.put("numberField_llkknd6h",price1); //供货价
|
|
|
+ hashMap.put("numberField_lpalgz0a",price2); //下周供货价
|
|
|
+ hashMap.put("dateField_lm4lxur7",goodMap.get("dateField_lm4lxur7")); //期限
|
|
|
+ hashMap.put("textField_lm4lxur8","已启用"); //状态
|
|
|
+ hashMap.put("numberField_lnrzzg03",goodMap.get("numberField_lnrzzg03")); //包装数量
|
|
|
+ hashMap.put("textField_lnrzzg04",goodMap.get("textField_lnrzzg04")); //包装单位
|
|
|
+ log.info("hashMap,{}", JSON.toJSONString(hashMap));
|
|
|
+ try {
|
|
|
+ ydClient.operateData(YDParam.builder()
|
|
|
+ .formUuid("FORM-E6766M811CKD2PIXEAKOM9S2DKBM2PBQU1MLL5")
|
|
|
+ .formDataJson(JSON.toJSONString(hashMap))
|
|
|
+ .build(), YDConf.FORM_OPERATION.create);
|
|
|
+ Thread.sleep(200);
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ // 不存在
|
|
|
+ if(resultValue.containsKey(projectId)){
|
|
|
+ // 明细表存在数据,更新为 已停用
|
|
|
+ Map record=dataList.get(resultValue.get(projectId));
|
|
|
+ Map update = UtilMap.map("textField_lm4lxur8", "已停用");
|
|
|
+ ydClient.operateData(YDParam.builder()
|
|
|
+ .formInstanceId(String.valueOf(record.get("formInstanceId")))
|
|
|
+ .updateFormDataJson(JSON.toJSONString(update))
|
|
|
+ .build(), YDConf.FORM_OPERATION.update);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
- Map update = UtilMap.map("numberField_llkknd6h, numberField_lpalgz0a", price1, price2);
|
|
|
- update.putAll(UtilMap.map("numberField_llkknd6g, numberField_lpalgz05, dateField_lm4lxur7, numberField_lnrzzg03, textField_lnrzzg04, textField_lm4lxur8", cost1, cost2, cost3, cost4, cost5,state ));
|
|
|
- ydClient.operateData(YDParam.builder()
|
|
|
- .formInstanceId(String.valueOf(record.get("formInstanceId")))
|
|
|
- .updateFormDataJson(JSON.toJSONString(update))
|
|
|
- .build(), YDConf.FORM_OPERATION.update);
|
|
|
- }
|
|
|
+// for (Map record : dataList) {
|
|
|
+//// if (cost1 == UtilMap.getDouble(record, "numberField_llkknd6g") && cost2 == UtilMap.getDouble(record, "numberField_lpalgz05")) {
|
|
|
+//// continue;
|
|
|
+//// }
|
|
|
+// double rate = UtilMap.getDouble(record, "numberField_llkb7kcy");
|
|
|
+// double rate2 = UtilMap.getDouble(record, "numberField_lpalgz04");
|
|
|
+// double price1 = UtilNumber.formatPrecisionValue(cost1 * (rate + 100) / 100f);
|
|
|
+// double price2 = UtilNumber.formatPrecisionValue(cost2 * (100 + rate2) / 100f);
|
|
|
+//
|
|
|
+//
|
|
|
+// String state= cost6.equals("已启用") && Long.parseLong(cost3) > UtilDateTime.getLocalDateTimeTimeStamp()?"已启用":"已停用";
|
|
|
+//
|
|
|
+// Map update = UtilMap.map("numberField_llkknd6h, numberField_lpalgz0a", price1, price2);
|
|
|
+// update.putAll(UtilMap.map("numberField_llkknd6g, numberField_lpalgz05, dateField_lm4lxur7, numberField_lnrzzg03, textField_lnrzzg04, textField_lm4lxur8", cost1, cost2, cost3, cost4, cost5,state ));
|
|
|
+// ydClient.operateData(YDParam.builder()
|
|
|
+// .formInstanceId(String.valueOf(record.get("formInstanceId")))
|
|
|
+// .updateFormDataJson(JSON.toJSONString(update))
|
|
|
+// .build(), YDConf.FORM_OPERATION.update);
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 供应商原材料档案: 新增匹配
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Synchronized
|
|
|
public void additionMaterial(Map data) {
|
|
|
|
|
|
// 通过供应商编号 查询项目
|
|
@@ -414,6 +511,12 @@ public class KKLImplService implements KKLService {
|
|
|
.build());
|
|
|
dataList.forEach(dataItem -> {
|
|
|
List<Map> mapList = (List<Map>) dataItem.get("tableField_llq74mwk");
|
|
|
+ if(mapList.size()==50){
|
|
|
+ mapList=ydService.queryDetails(YDParam.builder().formInstanceId(String.valueOf(dataItem.get("formInstanceId"))).formUuid("FORM-W2A66Z91B4KDWDIAA7SI1BRBRTKM3XL87BKLL0")
|
|
|
+ .tableFieldId("tableField_llq74mwk")
|
|
|
+ .build());
|
|
|
+ }
|
|
|
+
|
|
|
// 这里对比第二分类 selectField_llq74mwl ==> selectField_lv3v3911
|
|
|
List<Map> maps = mapList.stream().filter(items -> items.get("selectField_lv3v3911").equals(data.get("firstName"))).collect(Collectors.toList());
|
|
|
if(maps.size()>0){
|
|
@@ -434,7 +537,7 @@ public class KKLImplService implements KKLService {
|
|
|
|
|
|
hashMap.put("textField_llkb7kd3",goodMap.get("textField_llkb7kd3")); //单位
|
|
|
hashMap.put("textField_llkb7kd4",goodMap.get("textField_llkb7kd4")); //规格
|
|
|
- hashMap.put("selectField_llkb7kd5",data.get("firstName")); //第一分类
|
|
|
+ hashMap.put("selectField_llkb7kd5",goodMap.get("selectField_llkb7kd5")); //第一分类
|
|
|
hashMap.put("selectField_llkk6cms",goodMap.get("selectField_llkk6cms")); //第二分类
|
|
|
|
|
|
|
|
@@ -691,11 +794,14 @@ public class KKLImplService implements KKLService {
|
|
|
Map data=ydClient.queryData(YDParam.builder().formInstId(formInstId).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
|
log.info("data:{}",JSONObject.toJSONString(data));
|
|
|
List<Map> list=UtilMap.getList(data,"tableField_llq9pqlu");
|
|
|
- String totalAmt="0";
|
|
|
+ String totalAmt="0"; // 小计
|
|
|
+ String totalAmt2="0";// 成本小计
|
|
|
Map<String,Map> typeAmt=new HashMap<>();
|
|
|
for (Map map:list){
|
|
|
- String amt=UtilMap.getString(map,"numberField_m2448gru_value");
|
|
|
+ String amt=UtilMap.getString(map,"numberField_lrafqg9w_value");
|
|
|
totalAmt=NumberUtil.add(amt,totalAmt).toString();
|
|
|
+ String amt2=UtilMap.getString(map,"numberField_m2448gru_value");
|
|
|
+ totalAmt2=NumberUtil.add(amt2,totalAmt2).toString();
|
|
|
String type=UtilMap.getString(map,"selectField_llkb7kd5");
|
|
|
Map typeAmtMap=typeAmt.containsKey(type)?typeAmt.get(type):new HashMap();
|
|
|
typeAmtMap.put("textField_lrhhan54",type); // 第一分类
|
|
@@ -707,7 +813,7 @@ public class KKLImplService implements KKLService {
|
|
|
for (String str:typeAmt.keySet()){
|
|
|
typeTable.add(typeAmt.get(str));
|
|
|
}
|
|
|
- Map upmap=UtilMap.map("numberField_m2448grv, tableField_lrhhan53",totalAmt,typeTable);
|
|
|
+ Map upmap=UtilMap.map("numberField_m2448grv, numberField_lrafqg9v, tableField_lrhhan53",totalAmt2, totalAmt,typeTable);
|
|
|
log.info("upmap:{}",JSONObject.toJSONString(upmap));
|
|
|
ydClient.operateData(YDParam.builder().formInstanceId(formInstId).updateFormDataJson(JSONObject.toJSONString(upmap)).build(), YDConf.FORM_OPERATION.update);
|
|
|
}
|