소스 검색

快客利

lfx 6 달 전
부모
커밋
66232d6f00

+ 17 - 17
mjava-kuaikeli/src/main/java/com/malk/kuaikeli/schedule/ScheduleTask.java

@@ -18,8 +18,8 @@ import org.springframework.scheduling.annotation.Scheduled;
 @ConditionalOnProperty(name = {"enable.scheduling"})
 public class ScheduleTask {
 
-//    @Autowired
-//    private KKLService kklService;
+    @Autowired
+    private KKLService kklService;
 
     @Autowired
     private SupplierMaterialService supplierMaterialService;
@@ -31,25 +31,25 @@ public class ScheduleTask {
     public void syncDingTalkFailedList() {
         log.info("开始同步原材料下周单价到本周");
         try {
-//            kklService.syncPrice();
-            supplierMaterialService.syncPrice();
+            kklService.syncPrice();
+//            supplierMaterialService.syncPrice();
         } catch (Exception e) {
             // 记录错误信息
             e.printStackTrace();
         }
     }
 
-    /**
-     * 每10分钟同步
-     */
-    @Scheduled(cron = "0 0/10 * * * ?")
-    public void sync() {
-        log.info("开始同步供应商原材料");
-        try {
-            supplierMaterialService.sync();
-        } catch (Exception e) {
-            // 记录错误信息
-            e.printStackTrace();
-        }
-    }
+//    /**
+//     * 每10分钟同步
+//     */
+//    @Scheduled(cron = "0 0/10 * * * ?")
+//    public void sync() {
+//        log.info("开始同步供应商原材料");
+//        try {
+//            supplierMaterialService.sync();
+//        } catch (Exception e) {
+//            // 记录错误信息
+//            e.printStackTrace();
+//        }
+//    }
 }

+ 129 - 23
mjava-kuaikeli/src/main/java/com/malk/kuaikeli/service/impl/KKLImplService.java

@@ -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);
     }

+ 90 - 5
mjava-kuaikeli/src/test/java/com/malk/kuaikeli/DdTest.java

@@ -1,7 +1,10 @@
 package com.malk.kuaikeli;
 
+import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.RandomUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.malk.kuaikeli.service.KKLService;
 import com.malk.kuaikeli.service.SupplierMaterialService;
@@ -9,7 +12,9 @@ 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.UtilMap;
+import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -17,10 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Slf4j
 @SpringBootTest
@@ -57,6 +59,7 @@ public class DdTest {
     @Test
     public void test(){
         kklService.validateApprove(JSONObject.parseObject(data));
+        kklService.additionMaterial(JSONObject.parseObject("{\"firstName\":\"水果其他\",\"gysNumber\":\"GYS-20241031-071\",\"state\":\"已启用\",\"goodNumber\":\"XKL02273\"}"));
 
 //        kklService.planApproval(JSONObject.parseObject(data));
 //        List<Map> table=null;
@@ -114,7 +117,9 @@ public class DdTest {
         }
     }
 
-
+    /***
+     * 测试宜搭查询接口
+     */
     @Test
     public void getYdData(){
         YDSearch ydSearch=new YDSearch("textField_llkb7kd2","XKL184","原材料编号", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ);
@@ -123,4 +128,84 @@ public class DdTest {
         )).build(), YDConf.FORM_QUERY.retrieve_list).getData();
         log.info("list2:{}",list2);
     }
+
+    /***
+     * 菜品管理原材料数据矫正
+     */
+    @Test
+    public void testData(){
+        List<String> list= FileUtil.readUtf8Lines("/home/ids.txt");
+        List<String> errList=new ArrayList<>();
+        for (int i = 0; i < list.size(); i++) {
+            log.info("处理进度:{}/{}",i+1,list.size());
+            Map formData = ydClient.queryData(YDParam.builder().formInstId(list.get(i)).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
+            List<Map> list1=UtilMap.getList(formData,"tableField_llm1i9yy");
+            String pid=UtilMap.getString(formData,"textField_lln3lmn1");
+            for (int j = 0; j < list1.size(); j++) {
+                String yclId=UtilMap.getString(list1.get(j),"textField_lmk94yf5");
+                YDSearch ydSearch=new YDSearch("textField_llkb7kd2",yclId,"原材料编号", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ);
+                YDSearch ydSearch2=new YDSearch("textField_llm1vtjm",pid,"项目编号", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ);
+                List<Map> list2=(List<Map>) ydClient.queryData(YDParam.builder().formUuid("FORM-E6766M811CKD2PIXEAKOM9S2DKBM2PBQU1MLL5").searchCondition(JSONObject.toJSONString(
+                        Arrays.asList(ydSearch,ydSearch2)
+                )).build(), YDConf.FORM_QUERY.retrieve_list).getData();
+                if(list2!=null&&list2.size()==1){
+                    String fid=UtilMap.getString(list2.get(0),"formInstanceId");
+                    String data=String.valueOf(list1.get(j).get("associationFormField_lln3lmmv_id"));
+                    JSONArray ass= JSONObject.parseArray(data.substring(1,data.length()-1).replaceAll("\\\\",""));
+                    list1.get(j).put("associationFormField_lln3lmmv",Arrays.asList(ass.getJSONObject(0).fluentPut("instanceId",fid)));
+                }else{
+                    errList.add(list.get(i)+"|"+ UtilMap.getString(formData,"serialNumberField_llm1i9yr")+"|"+ pid + "|" + yclId);
+                }
+            }
+            ydClient.operateData(YDParam.builder().formInstId(list.get(i)).updateFormDataJson(JSONObject.toJSONString(UtilMap.map("tableField_llm1i9yy", list1))).build(), YDConf.FORM_OPERATION.update);
+        }
+        log.info("errList:{}",JSONObject.toJSONString(errList));
+    }
+
+    @Autowired
+    private YDService ydService;
+    @Test
+    public void t() throws InterruptedException {
+        projectMaterials("GYS-20240621-017","半成品");
+//        Thread.sleep(30*1000);
+    }
+    List<Map> projectMaterials(String code, String type) {
+        List<Map> dataList = ydService.queryFormData_all(YDParam.builder()
+                .formUuid("FORM-E6766M811CKD2PIXEAKOM9S2DKBM2PBQU1MLL5")
+                .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_llzzbyj1, selectField_llkk6cms", code, type)))
+                .build());
+        log.info("projectMaterials, {}", dataList.get(0).get("formInstanceId"));
+
+        return dataList;
+    }
+
+
+    @Test
+    public void tt(){
+        String formInstId="565d8ad9-fe5e-4262-98f7-432bd9c06e82";
+        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";
+        Map<String,Map> typeAmt=new HashMap<>();
+        for (Map map:list){
+            String amt=UtilMap.getString(map,"numberField_m2448gru_value");
+            totalAmt=NumberUtil.add(amt,totalAmt).toString();
+            String type=UtilMap.getString(map,"selectField_llkb7kd5");
+            Map typeAmtMap=typeAmt.containsKey(type)?typeAmt.get(type):new HashMap();
+            typeAmtMap.put("textField_lrhhan54",type); // 第一分类
+            typeAmtMap.put("numberField_lrhhan58",UtilMap.getString(map,"numberField_lmjzdeh2_value")); // 预算
+            typeAmtMap.put("numberField_lrhhan59",NumberUtil.add(amt,UtilMap.getString(typeAmtMap,"numberField_lrhhan59")).toString());// 采购
+            typeAmt.put(type,typeAmtMap);
+        }
+        List typeTable=new ArrayList();
+        for (String str:typeAmt.keySet()){
+            typeTable.add(typeAmt.get(str));
+        }
+
+        Map upmap=UtilMap.map("numberField_m2448grv, tableField_lrhhan53",totalAmt,typeTable);
+
+//        ydClient.operateData(YDParam.builder().formInstanceId("69237090-699f-43e6-a5d5-f36d421b1c13").updateFormDataJson(JSONObject.toJSONString(upmap)).build(), YDConf.FORM_OPERATION.update);
+    }
 }