Parcourir la source

海天二期出入库代码处理

xmy il y a 1 mois
Parent
commit
1af0019773

+ 13 - 0
mjava-mc/src/main/java/com/malk/mc/controller/McYdController.java

@@ -12,11 +12,13 @@ import com.malk.service.aliwork.YDClient;
 import com.malk.service.aliwork.YDService;
 import com.malk.utils.PublicUtil;
 import com.malk.utils.UtilMap;
+import com.malk.utils.UtilServlet;
 import lombok.extern.slf4j.Slf4j;
 import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.*;
 
 /***
@@ -141,4 +143,15 @@ public class McYdController {
         McException.assertParamException_Null(map,"formInstId","key");
         return mcYdService.saveApproverToForm(map);
     }
+
+    //海天二期开发部分(出库)
+    @PostMapping("/multiLocationOutbound")
+    public McR multiLocationOutbound(@RequestBody Map map){
+        return mcYdService.multiLocationOutbound(map);
+    }
+    //海天二期开发部分(入库)
+    @PostMapping("/WarehouseStorage")
+    public McR WarehouseStorage(@RequestBody Map map){
+        return mcYdService.WarehouseStorage(map);
+    }
 }

+ 4 - 0
mjava-mc/src/main/java/com/malk/mc/service/McYdService.java

@@ -14,4 +14,8 @@ public interface McYdService {
     McR convertSubTableNumber(Map map);
 
     McR saveApproverToForm(Map map);
+
+    McR multiLocationOutbound(Map map);
+
+    McR WarehouseStorage(Map map);
 }

+ 145 - 0
mjava-mc/src/main/java/com/malk/mc/service/impl/McYdServiceImpl.java

@@ -2,6 +2,7 @@ package com.malk.mc.service.impl;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.NumberUtil;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.malk.core.McProject;
@@ -23,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
+import javax.rmi.CORBA.Util;
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.util.*;
@@ -36,6 +38,8 @@ public class McYdServiceImpl implements McYdService {
     private DDClient ddClient;
     @Autowired
     private DDConf ddConf;
+    @Autowired
+    private YDConf ydConf;
 
     @Override
     @Async
@@ -224,6 +228,147 @@ public class McYdServiceImpl implements McYdService {
         return McR.success();
     }
 
+    @Override
+    public McR multiLocationOutbound(Map map) {
+
+        String formInstId = UtilMap.getString(map,"formInstId");//实例id(出库单)
+        Map d = ydClient.queryData(YDParam.builder().formInstId(formInstId)
+                        .formUuid("FORM-3208DFE5463549A9A57FB94358A75E80PV5F")
+                        .appType("APP_GNQ1RGK68X4JNZUEU8RQ")
+                        .systemToken("XH866P81QDOTQ0218TGZM9WCNXOF24WIP488M7A5")
+                        .userId("332051151139376769").build(),YDConf.FORM_QUERY.retrieve_id).getFormData();
+        System.out.println("出库单数据:"+d);
+        List<Map> mapList = (List<Map>)d.get("tableField_m8mo8506");
+        System.out.println("出库单明细数据:"+mapList);
+        ArrayList<Object> entries = new ArrayList<>();
+        for(Map map1 : mapList){
+            String LBJId = map1.get("textField_ma1usp6o").toString();//零部件的实例id
+            entries.add(LBJId);
+            System.out.println("物料名称:"+map1.get("textField_m99kztjo").toString());
+            Integer numberFieldM9qdwvu1 = (Integer) map1.get("numberField_m9qdwvu1") - (Integer) map1.get("numberField_m8mo8508");//存库数量 - 出库数量
+            System.out.println("出库后数量:"+numberFieldM9qdwvu1);
+
+            Map d1 = ydClient.queryData(YDParam.builder().formInstId(LBJId)
+                    .formUuid("FORM-2353BE632D97434DAD55AEBD0866C44DVAT5")
+                    .appType("APP_GNQ1RGK68X4JNZUEU8RQ")
+                    .systemToken("XH866P81QDOTQ0218TGZM9WCNXOF24WIP488M7A5")
+                    .userId("332051151139376769").build(),YDConf.FORM_QUERY.retrieve_id).getFormData();
+            System.out.println(map1.get("textField_m99kztjo").toString()+"的数据明细:"+ d1.get("tableField_m96gje14").toString());
+
+            String s = d1.get("tableField_m96gje14").toString();
+            String warehouse = JSON.parseArray(s).getJSONObject(0).get("selectField_m88f1qi8").toString();//所属仓库
+            String WarehouseLocation = JSON.parseArray(s).getJSONObject(0).get("textField_m8mnxgql").toString();//所属库位
+            String SafetyValue = JSON.parseArray(s).getJSONObject(0).get("numberField_m8873fn4").toString();//安全库存值
+
+            ArrayList<Map<String,String>> maps_YD = new ArrayList<>();
+            Map sss=new HashMap<>();
+            sss.put("selectField_m88f1qi8",warehouse);//所属仓库
+            sss.put("textField_m8mnxgql",WarehouseLocation);//所属库位
+            sss.put("numberField_m8873fn4",SafetyValue);//安全库存值
+            sss.put("numberField_m9c8n9go",numberFieldM9qdwvu1);//仓库数量
+            maps_YD.add(sss);
+
+            ydClient.operateData(YDParam.builder().formInstId(LBJId)
+                    .formUuid("FORM-2353BE632D97434DAD55AEBD0866C44DVAT5")
+                    .appType("APP_GNQ1RGK68X4JNZUEU8RQ")
+                    .systemToken("XH866P81QDOTQ0218TGZM9WCNXOF24WIP488M7A5")
+                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("tableField_m96gje14",maps_YD)))
+                    .userId("332051151139376769").build(),YDConf.FORM_OPERATION.update);
+            Integer InventoryQuantity = (Integer) d1.get("numberField_m8obn6wk");//库存数量
+            Integer FreezeQuantity = null;
+            if(!d1.get("numberField_m8obn6wl_value").toString().isEmpty()){
+                FreezeQuantity = (Integer) d1.get("numberField_m8obn6wl");//冻结数量
+            }else {
+                FreezeQuantity = 0;
+            }
+
+            System.out.println("--------------------零部件子表数据修改完毕!---------------------");
+
+            Integer FreezeQuantity_AAA = FreezeQuantity + (Integer) map1.get("numberField_m8mo8508");//冻结数量(新)
+            Integer AvailableQuantity_AAA = InventoryQuantity - FreezeQuantity_AAA;//可用存库数量(新)
+            ydClient.operateData(YDParam.builder().formInstId(LBJId)
+                    .formUuid("FORM-2353BE632D97434DAD55AEBD0866C44DVAT5")
+                    .appType("APP_GNQ1RGK68X4JNZUEU8RQ")
+                    .systemToken("XH866P81QDOTQ0218TGZM9WCNXOF24WIP488M7A5")
+                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("numberField_m8obn6wl, numberField_m8gz97nk",FreezeQuantity_AAA,AvailableQuantity_AAA)))
+                    .userId("332051151139376769")
+                    .build(),YDConf.FORM_OPERATION.update);
+            System.out.println("----------------------零部件主表数据修改完毕!------------------");
+        }
+
+        return McR.success();
+    }
+
+    @Override
+    public McR WarehouseStorage(Map map) {
+        String formInstId = UtilMap.getString(map,"formInstId");//实例id(出库单)
+        Map d = ydClient.queryData(YDParam.builder().formInstId(formInstId)
+                .formUuid("FORM-6DED8EB4CF0446DB8841C7798E106F2886OH")
+                .appType("APP_GNQ1RGK68X4JNZUEU8RQ")
+                .systemToken("XH866P81QDOTQ0218TGZM9WCNXOF24WIP488M7A5")
+                .userId("332051151139376769").build(),YDConf.FORM_QUERY.retrieve_id).getFormData();
+        System.out.println("入库单数据:"+d);
+        List<Map> mapList = (List<Map>)d.get("tableField_m8mseubi");
+        System.out.println("入库单明细数据:"+mapList);
+        ArrayList<Object> entries = new ArrayList<>();
+        for(Map map1 : mapList){
+            String LBJId = map1.get("textField_ma3jhnpr").toString();//零部件的实例id
+            entries.add(LBJId);
+            System.out.println("物料名称:"+map1.get("textField_m9b1vd2w").toString());
+            Integer numberFieldM9qdwvu1 = (Integer) map1.get("numberField_ma3jwnr3") + (Integer) map1.get("numberField_m8mseubm");//存库数量 + 入库数量
+            System.out.println("入库后数量:"+numberFieldM9qdwvu1);
+
+            Map d1 = ydClient.queryData(YDParam.builder().formInstId(LBJId)
+                    .formUuid("FORM-2353BE632D97434DAD55AEBD0866C44DVAT5")
+                    .appType("APP_GNQ1RGK68X4JNZUEU8RQ")
+                    .systemToken("XH866P81QDOTQ0218TGZM9WCNXOF24WIP488M7A5")
+                    .userId("332051151139376769").build(),YDConf.FORM_QUERY.retrieve_id).getFormData();
+            System.out.println(map1.get("textField_m9b1vd2w").toString()+"的数据明细:"+ d1.get("tableField_m96gje14").toString());
+
+            String s = d1.get("tableField_m96gje14").toString();
+            String warehouse = JSON.parseArray(s).getJSONObject(0).get("selectField_m88f1qi8").toString();//所属仓库
+            String WarehouseLocation = JSON.parseArray(s).getJSONObject(0).get("textField_m8mnxgql").toString();//所属库位
+            String SafetyValue = JSON.parseArray(s).getJSONObject(0).get("numberField_m8873fn4").toString();//安全库存值
+
+            ArrayList<Map<String,String>> maps_YD = new ArrayList<>();
+            Map sss=new HashMap<>();
+            sss.put("selectField_m88f1qi8",warehouse);//所属仓库
+            sss.put("textField_m8mnxgql",WarehouseLocation);//所属库位
+            sss.put("numberField_m8873fn4",SafetyValue);//安全库存值
+            sss.put("numberField_m9c8n9go",numberFieldM9qdwvu1);//仓库数量
+            maps_YD.add(sss);
+
+            ydClient.operateData(YDParam.builder().formInstId(LBJId)
+                    .formUuid("FORM-2353BE632D97434DAD55AEBD0866C44DVAT5")
+                    .appType("APP_GNQ1RGK68X4JNZUEU8RQ")
+                    .systemToken("XH866P81QDOTQ0218TGZM9WCNXOF24WIP488M7A5")
+                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("tableField_m96gje14",maps_YD)))
+                    .userId("332051151139376769").build(),YDConf.FORM_OPERATION.update);
+            Integer InventoryQuantity = (Integer) d1.get("numberField_m8obn6wk");//库存数量
+            Integer VirtualQuantity = null;
+            if(!d1.get("numberField_m8obn6wq_value").toString().isEmpty()){
+                VirtualQuantity = (Integer) d1.get("numberField_m8obn6wq");//虚拟数量
+            }else {
+                VirtualQuantity = 0;
+            }
+
+            System.out.println("--------------------零部件子表数据修改完毕!---------------------");
+
+            Integer VirtualQuantity_AAA = VirtualQuantity + (Integer) map1.get("numberField_m8mseubm");//虚拟数量(新)
+            Integer AvailableQuantity_AAA = InventoryQuantity + VirtualQuantity_AAA;//可用存库数量(新)
+            ydClient.operateData(YDParam.builder().formInstId(LBJId)
+                    .formUuid("FORM-2353BE632D97434DAD55AEBD0866C44DVAT5")
+                    .appType("APP_GNQ1RGK68X4JNZUEU8RQ")
+                    .systemToken("XH866P81QDOTQ0218TGZM9WCNXOF24WIP488M7A5")
+                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("numberField_m8obn6wq, numberField_m8gz97nk",VirtualQuantity_AAA,AvailableQuantity_AAA)))
+                    .userId("332051151139376769")
+                    .build(),YDConf.FORM_OPERATION.update);
+            System.out.println("----------------------零部件主表数据修改完毕!------------------");
+        }
+        return McR.success();
+    }
+
+
     private static void extractOperatorIds(JSONArray array, List<String> result) {
         for (Object item : array) {
             JSONObject obj = (JSONObject) item;