|
@@ -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,153 @@ 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());
|
|
|
+ BigDecimal InventoryCount = BigDecimal.valueOf(0);//库存数量
|
|
|
+ BigDecimal OutboundQuantity = BigDecimal.valueOf(0);//
|
|
|
+ if(!map1.get("numberField_m9qdwvu1_value").toString().isEmpty()){
|
|
|
+ InventoryCount = new BigDecimal( map1.get("numberField_m9qdwvu1").toString());
|
|
|
+ }
|
|
|
+ BigDecimal numberFieldM9qdwvu1 = InventoryCount.subtract( new BigDecimal( map1.get("numberField_m8mo8508").toString()));//存库数量 - 出库数量
|
|
|
+ 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);
|
|
|
+ BigDecimal InventoryQuantity = new BigDecimal( d1.get("numberField_m8obn6wk").toString());//库存数量
|
|
|
+ BigDecimal FreezeQuantity = null;
|
|
|
+ if(!d1.get("numberField_m8obn6wl_value").toString().isEmpty()){
|
|
|
+ FreezeQuantity = new BigDecimal( d1.get("numberField_m8obn6wl").toString());//冻结数量
|
|
|
+ }else {
|
|
|
+ FreezeQuantity = BigDecimal.valueOf(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ System.out.println("--------------------零部件子表数据修改完毕!---------------------");
|
|
|
+
|
|
|
+ BigDecimal FreezeQuantity_AAA = FreezeQuantity.add( new BigDecimal( map1.get("numberField_m8mo8508").toString()));//冻结数量(新)
|
|
|
+ BigDecimal AvailableQuantity_AAA = numberFieldM9qdwvu1;//可用存库数量(新)
|
|
|
+ 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());
|
|
|
+
|
|
|
+ BigDecimal numberFieldM9qdwvu1 = new BigDecimal( map1.get("numberField_ma3jwnr3").toString() ).add(new BigDecimal( map1.get("numberField_m8mseubm").toString()));//存库数量 + 入库数量
|
|
|
+ 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);
|
|
|
+ BigDecimal InventoryQuantity = new BigDecimal( d1.get("numberField_m8obn6wk").toString());//库存数量
|
|
|
+ BigDecimal VirtualQuantity = null;
|
|
|
+ if(!d1.get("numberField_m8obn6wq_value").toString().isEmpty()){
|
|
|
+ VirtualQuantity = new BigDecimal( d1.get("numberField_m8obn6wq").toString());//虚拟数量
|
|
|
+ }else {
|
|
|
+ VirtualQuantity = BigDecimal.valueOf(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ System.out.println("--------------------零部件子表数据修改完毕!---------------------");
|
|
|
+
|
|
|
+ BigDecimal VirtualQuantity_AAA = VirtualQuantity.add( new BigDecimal( map1.get("numberField_m8mseubm").toString()));//虚拟数量(新)
|
|
|
+ BigDecimal AvailableQuantity_AAA = InventoryQuantity .add (new BigDecimal( map1.get("numberField_m8mseubm").toString()));//可用存库数量(新)
|
|
|
+ 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;
|