北广待上架查询
This commit is contained in:
		
							parent
							
								
									f4bedb7f23
								
							
						
					
					
						commit
						4220afb829
					
				|  | @ -1,7 +1,10 @@ | ||||||
| package tqq9.lc123.cloud.app.plugin.operate.pm; | package tqq9.lc123.cloud.app.plugin.operate.pm; | ||||||
| 
 | 
 | ||||||
|  | import com.alibaba.fastjson.JSON; | ||||||
| import com.alibaba.fastjson.JSONArray; | import com.alibaba.fastjson.JSONArray; | ||||||
| import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||||
|  | import com.fasterxml.jackson.databind.JsonNode; | ||||||
|  | import com.fasterxml.jackson.databind.ObjectMapper; | ||||||
| import kd.bos.dataentity.entity.DynamicObject; | import kd.bos.dataentity.entity.DynamicObject; | ||||||
| import kd.bos.dataentity.entity.DynamicObjectCollection; | import kd.bos.dataentity.entity.DynamicObjectCollection; | ||||||
| import kd.bos.entity.plugin.AbstractOperationServicePlugIn; | import kd.bos.entity.plugin.AbstractOperationServicePlugIn; | ||||||
|  | @ -9,6 +12,8 @@ import kd.bos.entity.plugin.args.AfterOperationArgs; | ||||||
| import kd.bos.exception.KDBizException; | import kd.bos.exception.KDBizException; | ||||||
| import kd.bos.logging.Log; | import kd.bos.logging.Log; | ||||||
| import kd.bos.logging.LogFactory; | import kd.bos.logging.LogFactory; | ||||||
|  | import kd.bos.orm.query.QCP; | ||||||
|  | import kd.bos.orm.query.QFilter; | ||||||
| import kd.bos.servicehelper.BusinessDataServiceHelper; | import kd.bos.servicehelper.BusinessDataServiceHelper; | ||||||
| import kd.bos.servicehelper.operation.SaveServiceHelper; | import kd.bos.servicehelper.operation.SaveServiceHelper; | ||||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||||
|  | @ -19,6 +24,7 @@ import java.io.IOException; | ||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| 
 | 
 | ||||||
|  | //收货通知单待上架查询 | ||||||
| public class PmReceiptNoticeOpPlugin extends AbstractOperationServicePlugIn { | public class PmReceiptNoticeOpPlugin extends AbstractOperationServicePlugIn { | ||||||
| 
 | 
 | ||||||
|     private final static Log logger = LogFactory.getLog(PmReceiptNoticeOpPlugin.class); |     private final static Log logger = LogFactory.getLog(PmReceiptNoticeOpPlugin.class); | ||||||
|  | @ -35,15 +41,74 @@ public class PmReceiptNoticeOpPlugin extends AbstractOperationServicePlugIn { | ||||||
|                 dataEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getLong("id"), "pm_receiptnotice"); |                 dataEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getLong("id"), "pm_receiptnotice"); | ||||||
|                 String ownerCode = "LICHI"; |                 String ownerCode = "LICHI"; | ||||||
|                 String billno = dataEntity.getString("billno"); |                 String billno = dataEntity.getString("billno"); | ||||||
|                 String warehouseCode = null; |                 DynamicObject receiveorg = dataEntity.getDynamicObject("receiveorg"); | ||||||
|                 DynamicObjectCollection billentry = dataEntity.getDynamicObjectCollection("billentry"); |                 DynamicObjectCollection billentry = dataEntity.getDynamicObjectCollection("billentry"); | ||||||
|  |                 if (null != receiveorg) { | ||||||
|  |                     String number = receiveorg.getString("number"); | ||||||
|  |                     //BJLC	北京励齿 | ||||||
|  |                     //GZLC	广州励齿 | ||||||
|  |                     //SHLC	上海励齿 | ||||||
|  |                     HashMap<String, Object> body = new HashMap<>(); | ||||||
|  |                     body.put("cVouCode", billno); | ||||||
|  |                     body.put("VoucherType", "采购订单"); | ||||||
|  |                     String jsonBody = JSON.toJSONString(body); | ||||||
|  |                     Map<String, String> jsonHeadMap = new HashMap<>(); | ||||||
|  |                     if ("BJLC".equals(number)) { | ||||||
|  |                         DynamicObject BJURL = BusinessDataServiceHelper.loadSingle("tqq9_thirdconfig", "name", | ||||||
|  |                                 new QFilter[]{new QFilter("number", QCP.equals, "BJ_POSTURL")}); | ||||||
|  |                         String BJ_URL = BJURL.getString("name"); | ||||||
|  |                         logger.info("北京待上架库存查询接口body:" + jsonBody); | ||||||
|  |                         try { | ||||||
|  |                             String response = HttpRequestUtils.postJson(BJ_URL + "/api/WMS/ASNInfo", jsonBody, jsonHeadMap); | ||||||
|  |                             logger.info("北京待上架库存查询接口返回结果:" + response); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |                             Map<Long, Double> result = BGQtyResult(response); | ||||||
|  |                             if (null != result && result.size() > 0) { | ||||||
|  |                                 for (DynamicObject entry : billentry) { | ||||||
|  |                                     long entryId = entry.getLong("id"); | ||||||
|  |                                     if (result.containsKey(entryId)) { | ||||||
|  |                                         entry.set("tqq9_ckqty", result.get(entryId)); | ||||||
|  |                                     } | ||||||
|  |                                 } | ||||||
|  |                                 SaveServiceHelper.save(new DynamicObject[]{dataEntity}); | ||||||
|  |                             } | ||||||
|  | 
 | ||||||
|  |                         } catch (IOException ex) { | ||||||
|  |                             throw new RuntimeException(ex); | ||||||
|  |                         } | ||||||
|  |                     } else if ("GZLC".equals(number)) { | ||||||
|  |                         DynamicObject GZURL = BusinessDataServiceHelper.loadSingle("tqq9_thirdconfig", "name", | ||||||
|  |                                 new QFilter[]{new QFilter("number", QCP.equals, "GZ_POSTURL")}); | ||||||
|  |                         String GZ_URL = GZURL.getString("name"); | ||||||
|  |                         logger.info("广州待上架库存查询接口body:" + jsonBody); | ||||||
|  |                         try { | ||||||
|  |                             String response = HttpRequestUtils.postJson(GZ_URL + "/api/WMS/ASNInfo", jsonBody, jsonHeadMap); | ||||||
|  |                             logger.info("广州待上架库存查询接口返回结果:" + response); | ||||||
|  | 
 | ||||||
|  |                             Map<Long, Double> result = BGQtyResult(response); | ||||||
|  |                             if (null != result && result.size() > 0) { | ||||||
|  |                                 for (DynamicObject entry : billentry) { | ||||||
|  |                                     long entryId = entry.getLong("id"); | ||||||
|  |                                     if (result.containsKey(entryId)) { | ||||||
|  |                                         entry.set("tqq9_ckqty", result.get(entryId)); | ||||||
|  |                                     } | ||||||
|  |                                 } | ||||||
|  |                                 SaveServiceHelper.save(new DynamicObject[]{dataEntity}); | ||||||
|  |                             } | ||||||
|  |                         } catch (IOException ex) { | ||||||
|  |                             throw new RuntimeException(ex); | ||||||
|  |                         } | ||||||
|  |                     } else if ("SHLC".equals(number)) { | ||||||
|  | 
 | ||||||
|  |                         String warehouseCode = null; | ||||||
|  | 
 | ||||||
|                         for (DynamicObject entry : billentry) { |                         for (DynamicObject entry : billentry) { | ||||||
|                             DynamicObject warehouse = entry.getDynamicObject("warehouse"); |                             DynamicObject warehouse = entry.getDynamicObject("warehouse"); | ||||||
|                             if (null != warehouse) { |                             if (null != warehouse) { | ||||||
|                                 warehouseCode = warehouse.getString("number"); |                                 warehouseCode = warehouse.getString("number"); | ||||||
|                             } |                             } | ||||||
|                         } |                         } | ||||||
| 
 |  | ||||||
|                         String ttx_customerId = ConfigUtils.getThirdConfigByNumber("Ttx_CustomerId"); |                         String ttx_customerId = ConfigUtils.getThirdConfigByNumber("Ttx_CustomerId"); | ||||||
|                         String ttx_mainUrl = ConfigUtils.getThirdConfigByNumber("Ttx_MainURL"); |                         String ttx_mainUrl = ConfigUtils.getThirdConfigByNumber("Ttx_MainURL"); | ||||||
|                         Map<String, String> headMap = new HashMap<>(); |                         Map<String, String> headMap = new HashMap<>(); | ||||||
|  | @ -56,11 +121,11 @@ public class PmReceiptNoticeOpPlugin extends AbstractOperationServicePlugIn { | ||||||
|                         StringBuilder xmlBuilder = new StringBuilder(); |                         StringBuilder xmlBuilder = new StringBuilder(); | ||||||
|                         xmlBuilder.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); |                         xmlBuilder.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); | ||||||
|                         HttpRequestUtils.buildXml(xmlBuilder, finalMap, 0); |                         HttpRequestUtils.buildXml(xmlBuilder, finalMap, 0); | ||||||
|                 logger.info("待上架库存查询接口xml:" + xmlBuilder); |                         logger.info("上海待上架库存查询接口xml:" + xmlBuilder); | ||||||
|                         ttx_mainUrl = ttx_mainUrl + "?method=checkInReport.query&v=2.0&format=xml&customerId=" + ttx_customerId; |                         ttx_mainUrl = ttx_mainUrl + "?method=checkInReport.query&v=2.0&format=xml&customerId=" + ttx_customerId; | ||||||
|                         try { |                         try { | ||||||
|                             String response = HttpRequestUtils.postXml(ttx_mainUrl, xmlBuilder.toString(), headMap); |                             String response = HttpRequestUtils.postXml(ttx_mainUrl, xmlBuilder.toString(), headMap); | ||||||
|                     logger.info("待上架库存查询接口结果:" + response); |                             logger.info("上海待上架库存查询接口结果:" + response); | ||||||
|                             if (StringUtils.isNotBlank(response)) { |                             if (StringUtils.isNotBlank(response)) { | ||||||
|                                 JSONObject resJSON = HttpRequestUtils.xmlToJson(response); |                                 JSONObject resJSON = HttpRequestUtils.xmlToJson(response); | ||||||
|                                 if (null != resJSON) { |                                 if (null != resJSON) { | ||||||
|  | @ -75,7 +140,7 @@ public class PmReceiptNoticeOpPlugin extends AbstractOperationServicePlugIn { | ||||||
|                                             JSONObject items = responseJson.getJSONObject("items"); |                                             JSONObject items = responseJson.getJSONObject("items"); | ||||||
|                                             if (null != items) { |                                             if (null != items) { | ||||||
|                                                 Object item1 = items.get("item"); |                                                 Object item1 = items.get("item"); | ||||||
|                                         if (item1 instanceof JSONObject){ |                                                 if (item1 instanceof JSONObject) { | ||||||
|                                                     JSONObject item = items.getJSONObject("item"); |                                                     JSONObject item = items.getJSONObject("item"); | ||||||
|                                                     String erpOrderLineNum = item.getString("erpOrderLineNum").replace("\"", "");//行号 |                                                     String erpOrderLineNum = item.getString("erpOrderLineNum").replace("\"", "");//行号 | ||||||
|                                                     int quantity = item.getIntValue("quantity"); |                                                     int quantity = item.getIntValue("quantity"); | ||||||
|  | @ -122,9 +187,51 @@ public class PmReceiptNoticeOpPlugin extends AbstractOperationServicePlugIn { | ||||||
|                             throw new RuntimeException(ex); |                             throw new RuntimeException(ex); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|  | 
 | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * 返回北广待上架数量 | ||||||
|  |      * | ||||||
|  |      * @param response 北广返回信息 | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     private static Map<Long, Double> BGQtyResult(String response) { | ||||||
|  |         Map<Long, Double> result = new HashMap<>(); | ||||||
|  |         try { | ||||||
|  |             ObjectMapper objectMapper = new ObjectMapper(); | ||||||
|  |             JsonNode rootNode = objectMapper.readTree(response); | ||||||
|  |             // 获取基本字段 | ||||||
|  |             String code = rootNode.get("code").asText(); | ||||||
|  |             String message = rootNode.get("message").asText(); | ||||||
|  |             // 遍历数组 | ||||||
|  |             JsonNode dataArray = rootNode.get("data"); | ||||||
|  | 
 | ||||||
|  |             for (JsonNode item : dataArray) { | ||||||
|  |                 long iVouID = item.get("iVouID").asLong(); | ||||||
|  |                 double iTQuantity = item.get("iTQuantity").asDouble();//收货数量 | ||||||
|  |                 double iGQuantity = item.get("iGQuantity").asDouble();// 上架数量 | ||||||
|  |                 double qty = iTQuantity - iGQuantity; | ||||||
|  |                 if (result.containsKey(iVouID)) { | ||||||
|  |                     double currentSum = result.get(iVouID); | ||||||
|  |                     result.put(iVouID, currentSum + qty); | ||||||
|  |                 } else { | ||||||
|  |                     result.put(iVouID, qty); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             return result; | ||||||
|  | 
 | ||||||
|  |         } catch (Exception exception) { | ||||||
|  |             exception.printStackTrace(); | ||||||
|  |         } | ||||||
|  |         return result; | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue