From 2a9f6d72baa207bc91c98d0a5cd2235be9816691 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期三, 18 三月 2026 11:05:32 +0800
Subject: [PATCH] 对接接口开发
---
src/main/resources/mapper/OrderMapper.xml | 1
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java | 4
src/main/java/com/zy/asrs/task/handler/InventoryAdjustmentReportHandler.java | 78 ++++
src/main/java/com/zy/asrs/entity/param/OpenOrderParam.java | 145 +++++++
src/main/resources/mapper/LocDetlMapper.xml | 26 +
src/main/java/com/zy/asrs/entity/param/MatSyncParam.java | 9
src/main/java/com/zy/asrs/entity/result/OpenInventoryVo.java | 83 ++++
src/main/java/com/zy/common/model/MesReportParam.java | 52 ++
src/main/java/com/zy/asrs/entity/param/OpenInventoryParam.java | 42 ++
src/main/java/com/zy/asrs/service/OpenService.java | 8
src/main/java/com/zy/asrs/entity/result/TokenVo.java | 17
src/main/java/com/zy/asrs/entity/param/OpenSummaryParam.java | 17
src/main/java/com/zy/asrs/task/handler/MesOrderSyncHandler.java | 100 +++++
src/main/java/com/zy/common/model/InventoryAdjustmentParam.java | 42 ++
src/main/java/com/zy/asrs/entity/OrderDetl.java | 42 ++
src/main/java/com/zy/asrs/service/LocDetlService.java | 4
src/main/java/com/zy/asrs/controller/OpenController.java | 117 ++++++
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java | 10
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | 22
src/main/java/com/zy/asrs/entity/Order.java | 45 ++
src/main/java/com/zy/asrs/entity/param/TokenParam.java | 17
src/main/java/com/zy/asrs/entity/result/OpenSummaryVo.java | 44 ++
src/main/resources/mapper/OrderDetlMapper.xml | 6
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java | 6
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 159 +++++++
25 files changed, 1,074 insertions(+), 22 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 6cdf87b..e9735dc 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -9,6 +9,9 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.param.*;
+import com.zy.asrs.entity.result.OpenInventoryVo;
+import com.zy.asrs.entity.result.OpenSummaryVo;
+import com.zy.asrs.entity.result.TokenVo;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.OpenService;
@@ -292,4 +295,118 @@
// System.out.println(JSON.toJSONString(param1));
// }
+ /*========================================new Agreement==============================================================*/
+
+ /**
+ * 鑾峰彇token
+ * @param param
+ * @param request
+ * @return
+ */
+ @PostMapping("/getToken")
+ public synchronized R getToken(@RequestBody(required = true) TokenParam param,
+ HttpServletRequest request){
+ authNew(param, param, request);
+ if (Cools.isEmpty(param)) {
+ return R.parse(BaseRes.PARAM);
+ }
+ TokenVo tokenVo = new TokenVo();
+ String token = Cools.enToken(System.currentTimeMillis() + param.getAppId(), param.getAppSecret());
+ tokenVo.setToken(token);
+ tokenVo.setValidTime(30);
+ return R.ok().add(tokenVo);
+ }
+
+ private void authNew(TokenParam param, Object obj, HttpServletRequest request) {
+ log.info("{}鎺ュ彛琚闂紱appSecret:{}锛涜姹傛暟鎹細{}", "open/sensorType/list/auth/v1", param.getAppSecret(), JSON.toJSONString(obj));
+ request.setAttribute("cache", obj);
+ if (!auth) {
+ return;
+ }
+ if (Cools.isEmpty(param.getAppId()) || Cools.isEmpty(param.getAppSecret())) {
+ throw new CoolException("璁よ瘉澶辫触锛岃纭appId鍜宎ppSecret鏃犺锛�");
+ }
+ if (!param.getAppId().contains("HLWMS")){
+ throw new CoolException("璁よ瘉澶辫触锛岃纭appId鏃犺锛�");
+ }
+ if (!APP_KEY_LIST.contains(param.getAppSecret())) {
+ throw new CoolException("璁よ瘉澶辫触锛岃纭appSecret鏃犺锛�");
+ }
+ }
+
+ /**
+ * 鐗╂枡鍩虹淇℃伅鍚屾
+ * @param appkey
+ * @param param
+ * @param request
+ * @return
+ */
+ @PostMapping("/erp/mat/sync")
+ public synchronized R syncMatInfoV2(@RequestHeader(required = false) String appkey,
+ @RequestBody(required = false) List<MatSyncParam.MatParam> param,
+ HttpServletRequest request){
+ if (Cools.isEmpty(param)){
+ return R.parse(BaseRes.PARAM);
+ }
+ MatSyncParam matSyncParam = new MatSyncParam();
+ List<MatSyncParam.MatParam> objects = new ArrayList<>();
+ objects = param;
+ matSyncParam.matDetails = objects;
+ openService.syncMat(matSyncParam);
+ return R.ok();
+ }
+
+ /**
+ * 鍏�/鍑哄簱閫氱煡鍗曚笅鍙�
+ * @param param
+ * @return
+ */
+ @PostMapping("/erp/order/add")
+ public synchronized R addOrder(@RequestBody OpenOrderParam param){
+ if (Cools.isEmpty(param)) {
+ return R.parse(BaseRes.PARAM);
+ }
+ if (Cools.isEmpty(param.getOrderNo())){
+ return R.error("鍗曟嵁缂栧彿[orderNo]涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(param.getOrderType())){
+ return R.error("鍗曟嵁绫诲瀷[orderType]涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(param.getWkType())){
+ return R.error("涓氬姟绫诲瀷[wkType]涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(param.getOrderItems())){
+ return R.error("璁㈠崟鏄庣粏[orderItems]涓嶈兘涓虹┖");
+ }
+ openService.orderCreate(param);
+ return R.ok();
+ }
+
+ /**
+ * 搴撳瓨鏄庣粏鏌ヨ
+ * @param param
+ * @return
+ */
+ @PostMapping("/erp/inventory/details")
+ public synchronized R queryInventoryDetails(@RequestBody OpenInventoryParam param){
+ if (Cools.isEmpty(param)){
+ return R.parse(BaseRes.PARAM);
+ }
+ OpenInventoryVo openInventoryVo = openService.queryInventoryDetails(param);
+ return R.ok(openInventoryVo);
+ }
+
+ /**
+ * 搴撳瓨姹囨�绘煡璇�
+ * @param param
+ * @return
+ */
+ @PostMapping("/erp/inventory/summary")
+ public synchronized R queryInventorySummary(@RequestBody OpenSummaryParam param){
+ if (Cools.isEmpty(param)){
+ return R.parse(BaseRes.PARAM);
+ }
+ OpenSummaryVo openSummaryVo = openService.queryInventorySummary(param);
+ return R.ok(openSummaryVo);
+ }
}
diff --git a/src/main/java/com/zy/asrs/entity/Order.java b/src/main/java/com/zy/asrs/entity/Order.java
index 4b170de..79fbcaf 100644
--- a/src/main/java/com/zy/asrs/entity/Order.java
+++ b/src/main/java/com/zy/asrs/entity/Order.java
@@ -262,6 +262,13 @@
private String memo;
/**
+ * 鎿嶄綔绫诲瀷
+ */
+ @ApiModelProperty(value= "鎿嶄綔绫诲瀷")
+ @TableField("operate_type")
+ private Integer operateType;
+
+ /**
* 鐘舵�� 1: 杩涜涓� 0: 鍒濆 2:宸插畬鎴�
*/
@ApiModelProperty(value= "鐘舵�� 2:宸插畬鎴� 1: 杩涜涓� 0: 鍒濆 ")
@@ -285,6 +292,44 @@
public Order() {}
+ public Order(String uuid,String orderNo,String orderTime,Long docType,Long itemId,String itemName,Long allotItemId,String defNumber,String number,String cstmr,String cstmrName,String tel,String operMemb,Double totalFee,Double discount,Double discountFee,Double otherFee,Double actFee,Integer payType,String salesman,Integer accountDay,Integer postFeeType,Double postFee,Date payTime,Date sendTime,String shipName,String shipCode,Long settle,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo,Integer operateType) {
+ this.uuid = uuid;
+ this.orderNo = orderNo;
+ this.orderTime = orderTime;
+ this.docType = docType;
+ this.itemId = itemId;
+ this.itemName = itemName;
+ this.allotItemId = allotItemId;
+ this.defNumber = defNumber;
+ this.number = number;
+ this.cstmr = cstmr;
+ this.cstmrName = cstmrName;
+ this.tel = tel;
+ this.operMemb = operMemb;
+ this.totalFee = totalFee;
+ this.discount = discount;
+ this.discountFee = discountFee;
+ this.otherFee = otherFee;
+ this.actFee = actFee;
+ this.payType = payType;
+ this.salesman = salesman;
+ this.accountDay = accountDay;
+ this.postFeeType = postFeeType;
+ this.postFee = postFee;
+ this.payTime = payTime;
+ this.sendTime = sendTime;
+ this.shipName = shipName;
+ this.shipCode = shipCode;
+ this.settle = settle;
+ this.status = status;
+ this.createBy = createBy;
+ this.createTime = createTime;
+ this.updateBy = updateBy;
+ this.updateTime = updateTime;
+ this.memo = memo;
+ this.operateType = operateType;
+ }
+
public Order(String uuid,String orderNo,String orderTime,Long docType,Long itemId,String itemName,Long allotItemId,String defNumber,String number,String cstmr,String cstmrName,String tel,String operMemb,Double totalFee,Double discount,Double discountFee,Double otherFee,Double actFee,Integer payType,String salesman,Integer accountDay,Integer postFeeType,Double postFee,Date payTime,Date sendTime,String shipName,String shipCode,Long settle,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
this.uuid = uuid;
this.orderNo = orderNo;
diff --git a/src/main/java/com/zy/asrs/entity/OrderDetl.java b/src/main/java/com/zy/asrs/entity/OrderDetl.java
index 63f74ca..740cb17 100644
--- a/src/main/java/com/zy/asrs/entity/OrderDetl.java
+++ b/src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -341,6 +341,48 @@
@TableField("det_id")
private Integer detId;
+ /**
+ * 澶囩敤1
+ */
+ @ApiModelProperty(value= "琛屽唴鐮� 鍞竴鏍囪瘑")
+ @TableField("standby1")
+ private String standby1;
+
+ /**
+ * 澶囩敤2
+ */
+ @ApiModelProperty(value= "鎵樼洏鐮�")
+ @TableField("standby2")
+ private String standby2;
+
+ /**
+ * 澶囩敤3
+ */
+ @ApiModelProperty(value= "璁″垝璺熻釜鍙�")
+ @TableField("standby3")
+ private String standby3;
+
+ /**
+ * 澶囩敤1
+ */
+ @ApiModelProperty(value= "寤鸿鍏ュ簱浠撳簱")
+ @TableField("box_type1")
+ private String boxType1;
+
+ /**
+ * 澶囩敤2
+ */
+ @ApiModelProperty(value= "寤鸿鍑哄簱浠撳簱")
+ @TableField("box_type2")
+ private String boxType2;
+
+ /**
+ * 澶囩敤3
+ */
+ @ApiModelProperty(value= "澶囩敤3")
+ @TableField("box_type3")
+ private String boxType3 = "1";
+
public OrderDetl() {
}
diff --git a/src/main/java/com/zy/asrs/entity/param/MatSyncParam.java b/src/main/java/com/zy/asrs/entity/param/MatSyncParam.java
index ff2f451..e074d38 100644
--- a/src/main/java/com/zy/asrs/entity/param/MatSyncParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/MatSyncParam.java
@@ -1,5 +1,6 @@
package com.zy.asrs.entity.param;
+import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
@@ -23,16 +24,19 @@
/**
* 鍟嗗搧缂栧彿
*/
+ @JsonProperty("matNr")
private String matnr;
/**
* 鍟嗗搧鍚嶇О
*/
+ @JsonProperty("makTx")
private String maktx;
/**
* 鍟嗗搧鍒嗙被
*/
+ @JsonProperty("groupId")
private String groupCode;
/**
@@ -48,6 +52,7 @@
/**
* 瑙勬牸
*/
+ @JsonProperty("spec")
private String specs;
/**
@@ -176,8 +181,9 @@
private Integer danger;
/**
- * 鐘舵�� 1: 姝e父 0: 绂佺敤
+ * 鐘舵�� 1: 鏂板锛堥粯璁わ級 2: 淇敼 3: 绂佺敤 4: 鍚敤
*/
+ @JsonProperty("operateType")
private Integer status;
/**
@@ -193,6 +199,7 @@
/**
* 澶囨敞
*/
+ @JsonProperty("describle")
private String memo;
}
diff --git a/src/main/java/com/zy/asrs/entity/param/OpenInventoryParam.java b/src/main/java/com/zy/asrs/entity/param/OpenInventoryParam.java
new file mode 100644
index 0000000..1c74ee8
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/OpenInventoryParam.java
@@ -0,0 +1,42 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class OpenInventoryParam {
+
+ /**
+ * 浠撳簱缂栫爜
+ */
+ private String wareHouseId;
+
+ /**
+ * 搴撲綅缂栫爜
+ */
+ private String locId;
+
+ /**
+ * 鐗╂枡缂栫爜
+ */
+ private String matNr;
+
+ /**
+ * 璁㈠崟鍙�/宸ュ崟鍙�/mes宸ュ崟鍙�
+ */
+ private String orderNo;
+
+ /**
+ * 璁″垝璺熻釜鍙�
+ */
+ private String planNo;
+
+ /**
+ * 鎵规鍙�
+ */
+ private String batch;
+
+ /**
+ * 鐗╂枡缁�
+ */
+ private String matGroup;
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/OpenOrderParam.java b/src/main/java/com/zy/asrs/entity/param/OpenOrderParam.java
new file mode 100644
index 0000000..e2360bd
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/OpenOrderParam.java
@@ -0,0 +1,145 @@
+package com.zy.asrs.entity.param;
+
+import com.core.common.Cools;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class OpenOrderParam {
+
+ /**
+ * 璁㈠崟缂栫爜
+ */
+ private String orderNo;
+
+ /**
+ * 鍗曟嵁鍐呯爜 鍞竴鏍囪瘑 鑻ユ病鏈夊彲浠ヨˉ鍏呰鍗曠紪鐮�
+ */
+ private String orderInternalCode;
+
+ /**
+ * 璁㈠崟绫诲瀷 1 鍑哄簱鍗� 2 鍏ュ簱鍗� 3 璋冩嫧鍗�
+ */
+ private long orderType;
+
+ /**
+ * 涓氬姟绫诲瀷 鏋氫妇绫诲瀷 閲囪喘鍏ュ簱鍗� 閿�鍞��璐у崟 閿�鍞嚭搴撳崟 璋冩嫧鐢宠鍗�
+ */
+ private String wkType;
+
+ /**
+ * 涓氬姟鏃ユ湡 鏃堕棿鎴� 绮剧‘鍒扮
+ */
+ private Date businessTime;
+
+ /**
+ * 鍒涘缓鏃ユ湡
+ */
+ private Date createTime;
+
+ /**
+ * 璁㈠崟鏄庣粏
+ */
+ private List<OrderItem> orderItems;
+
+ /**
+ * 鍏�/鍑哄簱鎺ラ┏绔欑偣 锛堝嚭搴撴椂灏嗙墿鏂欏嚭搴撳悗杩愯緭鑷宠绔欑偣 鍏ュ簱鏃朵粠璇ョ珯鐐瑰皢鐗╂枡杩愬洖搴撲腑锛� 闇�瑕佸垯琛ュ厖 鍚﹀垯涓嶇敤琛ュ厖
+ */
+ private String stationId;
+
+ /**
+ * 鎿嶄綔绫诲瀷 1 鏂板锛堥粯璁わ級 2 淇敼 3 鍙栨秷
+ */
+ private Integer operateType;
+
+ @Data
+ @AllArgsConstructor
+ public static class OrderItem {
+ /**
+ * 琛屽唴鐮� 鍞竴鏍囪瘑
+ */
+ private String lineId;
+
+ /**
+ * 鐗╂枡缂栫爜
+ */
+ private String matNr;
+
+ /**
+ * 鐗╂枡鍚嶇О
+ */
+ private String makTx;
+
+ /**
+ * 鏁伴噺 灏忔暟鐐归粯璁�4浣�
+ */
+ private Double anfme;
+
+ /**
+ * 瑙勬牸
+ */
+ private String spec;
+
+ /**
+ * 鍨嬪彿
+ */
+ private String model;
+
+ /**
+ * 鍗曚綅
+ */
+ private String unit;
+
+ /**
+ * 鎵规鍙�
+ */
+ private String batch;
+
+ /**
+ * 鎵樼洏鐮� 鑻ヨ鍗曠被鍨嬩负鍑哄簱鍗曟椂 鍒欐寚瀹氳鎵樼洏鍑哄簱
+ */
+ private String palletId;
+
+ /**
+ * 璁″垝璺熻釜鍙�
+ */
+ private String planNo;
+
+ /**
+ * 寤鸿鍏ュ簱浠撳簱
+ */
+ private String targetWareHouseId;
+
+ /**
+ * 寤鸿鍑哄簱浠撳簱
+ */
+ private String sourceWareHouseId;
+
+ public static boolean hasLineNumber(List<OrderItem> list, OrderItem orderItem) {
+ for (OrderItem item : list) {
+ if (item.getLineId().equals(orderItem.getLineId()) && item.getMatNr().equals(orderItem.getMatNr()) && Cools.eq(item.getModel(),orderItem.getModel()) &&
+ Cools.eq(item.getBatch(),orderItem.getBatch()) && Cools.eq(item.getPalletId(),orderItem.getPalletId()) && Cools.eq(item.getPlanNo(),orderItem.getPlanNo()) &&
+ Cools.eq(item.getSourceWareHouseId(),orderItem.getSourceWareHouseId()) && Cools.eq(item.getSpec(),orderItem.getSpec()) && Cools.eq(item.getUnit(),orderItem.getUnit()) &&
+ Cools.eq(item.getTargetWareHouseId(),orderItem.getTargetWareHouseId())){
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static OrderItem findLineNumber(List<OrderItem> list, String lineId, String matNr, String makTx, Double anfme, String spec, String model, String unit, String batch, String palletId, String planNo, String targetWarehouseId, String sourceWarehouseId) {
+ for (OrderItem orderItem : list) {
+ if (orderItem.getLineId().equals(lineId) && orderItem.getMatNr().equals(matNr) && Cools.eq(orderItem.getModel(),model) &&
+ Cools.eq(orderItem.getBatch(),batch) && Cools.eq(orderItem.getPalletId(),palletId) && Cools.eq(orderItem.getPlanNo(),planNo) &&
+ Cools.eq(orderItem.getSourceWareHouseId(),sourceWarehouseId) && Cools.eq(orderItem.getSpec(),spec) && Cools.eq(orderItem.getUnit(),unit) &&
+ Cools.eq(orderItem.getTargetWareHouseId(),targetWarehouseId)){
+ return orderItem;
+ }
+ }
+ return null;
+ }
+ }
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/OpenSummaryParam.java b/src/main/java/com/zy/asrs/entity/param/OpenSummaryParam.java
new file mode 100644
index 0000000..afe9d1c
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/OpenSummaryParam.java
@@ -0,0 +1,17 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class OpenSummaryParam {
+
+ /**
+ * 浠撳簱缂栫爜
+ */
+ private String wareHouseId;
+
+ /**
+ * 鐗╂枡缂栫爜 澶氫釜浠ヨ嫳鏂� , 鍒嗛殧
+ */
+ private String matNr;
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/TokenParam.java b/src/main/java/com/zy/asrs/entity/param/TokenParam.java
new file mode 100644
index 0000000..e45390c
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/TokenParam.java
@@ -0,0 +1,17 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class TokenParam {
+ /**
+ * 搴旂敤缂栫爜 wms绾夸笅鍒嗛厤
+ */
+ private String appId;
+
+ /**
+ * 搴旂敤瀵嗛挜 wms绾夸笅鍒嗛厤
+ */
+ private String appSecret;
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/result/OpenInventoryVo.java b/src/main/java/com/zy/asrs/entity/result/OpenInventoryVo.java
new file mode 100644
index 0000000..e59cb14
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/OpenInventoryVo.java
@@ -0,0 +1,83 @@
+package com.zy.asrs.entity.result;
+
+import com.zy.asrs.entity.LocDetl;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OpenInventoryVo {
+
+ private List<LocDetl> inventoryList;
+
+ private class Inventory{
+
+ /**
+ * 搴撲綅缂栫爜
+ */
+ private String locId;
+
+ /**
+ * 浠撳簱缂栫爜
+ */
+ private String wareHouseId;
+
+ /**
+ * 浠撳簱鍚嶇О
+ */
+ private String wareHouseName;
+
+ /**
+ * 鎵樼洏鐮� 濡傛灉涓�涓墭鐩樹笂澶囦簡2涓伐鍗曞彿 鍒欏垎涓轰袱鏉�
+ */
+ private String palletId;
+
+ /**
+ * 鐗╂枡缂栫爜
+ */
+ private String matNr;
+
+ /**
+ * 鐗╂枡鍚嶇О
+ */
+ private String makTx;
+
+ /**
+ * 鏁伴噺 鑻ユ湁灏忔暟鐐归粯璁や繚鐣�2浣�
+ */
+ private Double anfme;
+
+ /**
+ * 鍗曚綅
+ */
+ private String unit;
+
+ /**
+ * 搴撳瓨鐘舵�� 1锛屾甯� 2.鍐荤粨
+ */
+ private Integer status;
+
+ /**
+ * 缁戝畾鐨勮鍗曠被鍨� 1 鍑哄簱鍗� 2 鍏ュ簱鍗� 3 澶囨枡鍗� 4 璋冩嫧鍗� 鏈粦瀹氭椂涓虹┖
+ */
+ private Integer orderType;
+
+ /**
+ * 璁㈠崟鍙枫�佸鏂欏崟鍙� 鏈粦瀹氭椂涓虹┖
+ */
+ private String orderNo;
+
+ /**
+ * 璁″垝璺熻釜鍙� 鏈粦瀹氭椂涓虹┖
+ */
+ private String planNo;
+
+ /**
+ * 鎵规鍙�
+ */
+ private String batch;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/entity/result/OpenSummaryVo.java b/src/main/java/com/zy/asrs/entity/result/OpenSummaryVo.java
new file mode 100644
index 0000000..c55f4ee
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/OpenSummaryVo.java
@@ -0,0 +1,44 @@
+package com.zy.asrs.entity.result;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OpenSummaryVo {
+
+ private List<OpenSummary> openSummaryList;
+
+ @Data
+ public static class OpenSummary {
+
+ /**
+ * 浠撳簱缂栫爜
+ */
+ private String wareHouseId;
+
+ /**
+ * 浠撳簱鍚嶇О
+ */
+ private String wareHouseName;
+
+ /**
+ * 鐗╂枡缂栫爜
+ */
+ private String matNr;
+
+ /**
+ * 鐗╂枡鍚嶇О
+ */
+ private String matTx;
+
+ /**
+ * 鏁伴噺 鑻ユ湁灏忔暟鐐归粯璁や繚鐣�2浣�
+ */
+ private Double anfme;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/entity/result/TokenVo.java b/src/main/java/com/zy/asrs/entity/result/TokenVo.java
new file mode 100644
index 0000000..fecbdec
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/TokenVo.java
@@ -0,0 +1,17 @@
+package com.zy.asrs.entity.result;
+
+import lombok.Data;
+
+@Data
+public class TokenVo {
+
+ /**
+ * token鍊�
+ */
+ private String token;
+
+ /**
+ * 鏈夋晥鏃堕棿 鍗曚綅锛氬垎閽�
+ */
+ private Integer validTime;
+}
diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index 74f82b0..b478768 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -90,4 +90,8 @@
List<StockStatisDTO> asrsAndErpList(Map<String, Object> condition);
long asrsAndErpCount(Map<String, Object> condition);
+
+ List<LocDetl> queryInventoryDetails(String locId, String matNr, String orderNo, String planNo, String batch);
+
+ Double queryInventorySummary(String wareHouseId, String s);
}
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index 81d25c3..88907e3 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -91,4 +91,8 @@
List<LocDetl> selectLocDetlUnilateralMoveShuttle(String matnr, String batch, String grade, Integer crnNo);
Map<String, Double> getAnfmeByLocNos(List<String> locNos);
+
+ List<LocDetl> queryInventoryDetails(String locId, String matNr, String orderNo, String planNo, String batch);
+
+ Double queryInventorySummary(java.lang.String wareHouseId, java.lang.String s);
}
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index dbd180c..bc2ef54 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -2,7 +2,9 @@
import com.core.common.R;
import com.zy.asrs.entity.param.*;
+import com.zy.asrs.entity.result.OpenInventoryVo;
import com.zy.asrs.entity.result.OpenOrderCompeteResult;
+import com.zy.asrs.entity.result.OpenSummaryVo;
import com.zy.asrs.entity.result.StockVo;
import java.util.List;
@@ -59,4 +61,10 @@
* @param param
*/
void syncMat(MatSyncParam param);
+
+ void orderCreate(OpenOrderParam param);
+
+ OpenInventoryVo queryInventoryDetails(OpenInventoryParam param);
+
+ OpenSummaryVo queryInventorySummary(OpenSummaryParam param);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index ed03412..314cb58 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -245,6 +245,16 @@
}
@Override
+ public List<LocDetl> queryInventoryDetails(String locId, String matNr, String orderNo, String planNo, String batch) {
+ return this.baseMapper.queryInventoryDetails(locId, matNr, orderNo, planNo, batch);
+ }
+
+ @Override
+ public Double queryInventorySummary(String wareHouseId, String s) {
+ return this.baseMapper.queryInventorySummary(wareHouseId, s);
+ }
+
+ @Override
public LocDetl selectItem(String locNo, WrkDetl wrkDetl) {
List<LocDetl> locDetls = this.baseMapper.selectItem3(locNo, wrkDetl.getMatnr());
if (locDetls != null) {
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 2dfd83b..f3c60b9 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1,14 +1,13 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.BaseRes;
-import com.core.common.Cools;
-import com.core.common.R;
-import com.core.common.SnowflakeIdWorker;
+import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
+import com.zy.asrs.entity.result.OpenInventoryVo;
import com.zy.asrs.entity.result.OpenOrderCompeteResult;
+import com.zy.asrs.entity.result.OpenSummaryVo;
import com.zy.asrs.entity.result.StockVo;
import com.zy.asrs.mapper.TagMapper;
import com.zy.asrs.service.*;
@@ -24,6 +23,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@@ -706,12 +706,12 @@
@Override
@Transactional
public void syncMat(MatSyncParam param) {
- if (Cools.isEmpty(param.getMatDetails()) || param.getMatDetails().size() <= 0) {
+ if (Cools.isEmpty(param.getMatDetails()) || param.getMatDetails().size() <=0 ) {
throw new CoolException("鍟嗗搧鏁版嵁涓虹┖");
}
- for (MatSyncParam.MatParam matParam : param.getMatDetails()) {
- if (Cools.isEmpty(matParam.getMatnr())) {
+ for(MatSyncParam.MatParam matParam : param.getMatDetails()){
+ if(Cools.isEmpty(matParam.getMatnr())){
throw new CoolException("鍟嗗搧缂栫爜涓嶈兘涓虹┖");
}
@@ -787,7 +787,7 @@
} else {
tagId = tagService.getTop().getId();
}
- mat.sync(param);
+ mat.sync(matParam);
// mat.setMatnr(param.getMatnr());
// mat.setMaktx(param.getMaktx());
// mat.setSpecs(param.getSpecs());
@@ -803,8 +803,8 @@
log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
}
} else {
- mat.sync(param);
- if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr", matParam.getMatnr()))) {
+ mat.sync(matParam);
+ if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr",matParam.getMatnr()))) {
throw new CoolException("鏇存柊宸插瓨鍦ㄥ晢鍝佷俊鎭け璐ワ紝璇疯仈绯荤鐞嗗憳");
}
}
@@ -812,4 +812,143 @@
}
+ @Override
+ public void orderCreate(OpenOrderParam param) {
+ Order order = orderService.selectByNo(param.getOrderNo());
+ if (!Cools.isEmpty(order)){
+ throw new CoolException(param.getOrderNo() + "璁㈠崟宸插瓨鍦紝璇峰嬁閲嶅鍒涘缓");
+ }
+ Date now = new Date();
+ order = new Order(
+ String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
+ param.getOrderNo(), // 璁㈠崟缂栫爜[闈炵┖]
+ DateUtils.convert(now), //鍗曟嵁鏃ユ湡
+ param.getOrderType(), //璁㈠崟绫诲瀷
+ null, //椤圭洰缂栧彿
+ null, //椤圭洰鍚嶇О 瀹㈡埛PO鍙�
+ null, //璋冩嫧椤圭洰缂栧彿
+ null, //鍒濆绁ㄦ嵁鍙�
+ null, //绁ㄦ嵁鍙�
+ null, //瀹㈡埛缂栧彿
+ null, //瀹㈡埛
+ param.getOrderInternalCode(), //鍗曟嵁鍐呯爜
+ param.getWkType(), //涓氬姟绫诲瀷
+ null, //鍚堣閲戦
+ null, //浼樻儬鐜�
+ null, //浼樻儬閲戦
+ null, //閿�鍞垨閲囪喘璐圭敤鍚堣
+ null, //瀹炰粯閲戦
+ null, //浠樻绫诲瀷 1: 鐜伴噾 2: 璁拌处
+ null, //涓氬姟鍛�
+ null, //缁撶畻澶╂暟
+ null, //閭垂鏀粯绫诲瀷 1: 鍦ㄧ嚎鏀粯 2: 璐у埌浠樻
+ null, //閭垂
+ param.getBusinessTime(), //涓氬姟鏃ユ湡
+ param.getCreateTime(), //鍒涘缓鏃ユ湡
+ null, //鐗╂祦鍚嶇О
+ null, //鐗╂祦鍗曞彿
+ 1L, //璁㈠崟鐘舵��
+ 1, //鐘舵�� 1: 姝e父 0: 绂佺敤
+ 9527L, //娣诲姞浜哄憳
+ now, //娣诲姞鏃堕棿
+ 9527L, //淇敼浜哄憳
+ now, //淇敼鏃堕棿
+ param.getStationId(), //鍏�/鍑哄簱鎺ラ┏绔欑偣
+ param.getOperateType() // 鎿嶄綔绫诲瀷 1.鏂板 2.淇敼 3.鍙栨秷
+ );
+ if (!orderService.insert(order)){
+ throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触,璇疯仈绯荤鐞嗗憳锛�"+order);
+ }
+ List<OpenOrderParam.OrderItem> list = new ArrayList<>();
+ List<OpenOrderParam.OrderItem> orderItems = param.getOrderItems();
+ for (OpenOrderParam.OrderItem item : orderItems){
+ OpenOrderParam.OrderItem orderItem = new OpenOrderParam.OrderItem(
+ item.getLineId(),
+ item.getMatNr(),
+ item.getMakTx(),
+ item.getAnfme(),
+ item.getSpec(),
+ item.getModel(),
+ item.getUnit(),
+ item.getBatch(),
+ item.getPalletId(),
+ item.getPlanNo(),
+ item.getTargetWareHouseId(),
+ item.getSourceWareHouseId()
+ );
+ if (OpenOrderParam.OrderItem.hasLineNumber(list,orderItem)){
+ OpenOrderParam.OrderItem oi = OpenOrderParam.OrderItem.findLineNumber(
+ list,
+ item.getLineId(),
+ item.getMatNr(),
+ item.getMakTx(),
+ item.getAnfme(),
+ item.getSpec(),
+ item.getModel(),
+ item.getUnit(),
+ item.getBatch(),
+ item.getPalletId(),
+ item.getPlanNo(),
+ item.getTargetWareHouseId(),
+ item.getSourceWareHouseId()
+ );
+ assert oi != null;
+ oi.setAnfme(oi.getAnfme() + orderItem.getAnfme());
+ } else {
+ list.add(orderItem);
+ }
+ }
+ for (OpenOrderParam.OrderItem orderItem : list) {
+ Mat mat = matService.selectByMatnr(orderItem.getMatNr());
+ if (Cools.isEmpty(mat)){
+ throw new CoolException("璁㈠崟鏄庣粏涓殑鍟嗗搧缂栧彿涓嶅瓨鍦細" + orderItem.getMatNr());
+ }
+ OrderDetl orderDetl = new OrderDetl();
+ orderDetl.sync(mat);
+ orderDetl.setOrderNo(order.getOrderNo()); // 璁㈠崟缂栧彿
+ orderDetl.setOrderId(order.getId()); // 璁㈠崟鍐呯爜
+ orderDetl.setStandby1(order.getTel()); // 琛屽唴鐮� 鍞竴鏍囪瘑
+ orderDetl.setAnfme(orderItem.getAnfme()); // 璁㈠崟鏁伴噺
+ orderDetl.setBarcode(orderItem.getBatch()); // 鎵规
+ orderDetl.setStandby2(orderItem.getPalletId()); // 鎵樼洏鐮�
+ orderDetl.setStandby3(orderItem.getPlanNo()); // 璁″垝璺熻釜鍙�
+ orderDetl.setBoxType1(orderItem.getSourceWareHouseId()); // 寤鸿鍏ュ簱浠撳簱
+ orderDetl.setBoxType2(orderItem.getTargetWareHouseId()); // 寤鸿鍑哄簱浠撳簱
+ orderDetl.setCreateBy(9527L);
+ orderDetl.setCreateTime(now);
+ orderDetl.setUpdateBy(9527L);
+ orderDetl.setUpdateTime(now);
+ orderDetl.setStatus(1);
+ orderDetl.setQty(0.0D);
+ // orderDetl.setPakinPakoutStatus(1);
+ if (!orderDetlService.insert(orderDetl)) {
+ throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触,璇疯仈绯荤鐞嗗憳锛�"+orderDetl);
+ }
+ }
+ }
+
+ @Override
+ public OpenInventoryVo queryInventoryDetails(OpenInventoryParam param) {
+ List<LocDetl> locDetlList = locDetlService.queryInventoryDetails(param.getLocId(), param.getMatNr(), param.getOrderNo(), param.getPlanNo(), param.getBatch());
+ if (Cools.isEmpty(locDetlList)){
+ return new OpenInventoryVo();
+ }
+ return new OpenInventoryVo(locDetlList);
+ }
+
+ @Override
+ public OpenSummaryVo queryInventorySummary(OpenSummaryParam param) {
+ String matNr = param.getMatNr();
+ String[] split = matNr.split(",");
+ List<OpenSummaryVo.OpenSummary> openSummaryList = new ArrayList<>();
+ for (String s : split) {
+ OpenSummaryVo.OpenSummary openSummary = new OpenSummaryVo.OpenSummary();
+ Double summary = locDetlService.queryInventorySummary(param.getWareHouseId(), s);
+ openSummary.setWareHouseId(param.getWareHouseId()); // 浠撳簱缂栫爜
+ openSummary.setMatNr(s); // 鐗╂枡缂栫爜
+ openSummary.setAnfme(summary); // 鏁伴噺
+ openSummaryList.add(openSummary);
+ }
+ return new OpenSummaryVo(openSummaryList);
+ }
}
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index d96ea94..1619b74 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -38,19 +38,19 @@
}
}
- //@Scheduled(cron = "0/5 * * * * ? ")
+ @Scheduled(cron = "0/5 * * * * ? ")
@Async("orderThreadPool")
public void completeAndReport(){
-// String erpReport = Parameter.get().getErpReport();
-// if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
-// List<Order> orders = orderService.selectComplete();
-// for (Order order : orders) {
-// ReturnT<String> result = orderSyncHandler.start(order);
-// if (!result.isSuccess()) {
-// log.error("鍗曟嵁[orderNo={}]涓婃姤erp澶辫触", order.getOrderNo());
-// }
-// }
-// }
+ String erpReport = Parameter.get().getErpReport();
+ if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
+ List<Order> orders = orderService.selectComplete();
+ for (Order order : orders) {
+ ReturnT<String> result = orderSyncHandler.start(order);
+ if (!result.isSuccess()) {
+ log.error("鍗曟嵁[orderNo={}]涓婃姤erp澶辫触", order.getOrderNo());
+ }
+ }
+ }
}
}
diff --git a/src/main/java/com/zy/asrs/task/handler/InventoryAdjustmentReportHandler.java b/src/main/java/com/zy/asrs/task/handler/InventoryAdjustmentReportHandler.java
new file mode 100644
index 0000000..524bb21
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/InventoryAdjustmentReportHandler.java
@@ -0,0 +1,78 @@
+package com.zy.asrs.task.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.WrkDetlLog;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.WrkDetlLogService;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.model.InventoryAdjustmentParam;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+public class InventoryAdjustmentReportHandler extends AbstractHandler<String> {
+
+ @Autowired
+ private WrkDetlLogService wrkDetlLogService;
+ @Autowired
+ private ApiLogService apiLogService;
+
+ @Transactional
+ public ReturnT<String> report(WrkMast wrkMast){
+ WrkDetlLog wrkDetlLog = wrkDetlLogService.selectOne(new EntityWrapper<WrkDetlLog>().eq("wrk_no", wrkMast.getWrkNo()).eq("io_time", wrkMast.getIoTime()));
+ InventoryAdjustmentParam param = new InventoryAdjustmentParam();
+ param.setChangeType(wrkMast.getIoType()); // 璋冩暣绫诲瀷
+ param.setWareHouseId("HLWMS"); // 浠撳簱缂栫爜
+ param.setSourceLocId(wrkMast.getIoType() != 1 ? wrkMast.getSourceLocNo() : ""); // 婧愬簱浣嶅彿
+ param.setTargetLocId(wrkMast.getIoType() != 101 ? wrkMast.getLocNo() : ""); // 鐩爣搴撲綅鍙� 绉诲簱鏃舵湁
+ param.setMatNr(wrkDetlLog.getMatnr()); // 鐗╂枡缂栫爜
+ param.setQty(wrkDetlLog.getAnfme().toString()); // 璋冩暣鏁伴噺
+ param.setPalletId(wrkMast.getBarcode()); // 鎵樼洏鍙�
+
+ String response = "";
+ boolean success = false;
+ try {
+ response = new HttpHandler.Builder()
+ .setUri("http://localhost:8080/api")
+ .setPath("/inventory/adjustment")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code") == 200){
+ success = true;
+ }else {
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", "http://localhost:8080/api"+"/inventory/adjustment", JSON.toJSONString(param), response);
+ throw new CoolException("搴撳瓨璋冩暣涓婃姤mes绯荤粺澶辫触");
+ }
+ }catch (Exception e){
+ log.error("fail",e);
+ return FAIL.setMsg(e.getMessage());
+ }finally {
+ try {
+ // 淇濆瓨鎺ュ彛鏃ュ織
+ apiLogService.save(
+ "搴撳瓨璋冩暣涓诲姩涓婃姤",
+ "http://localhost:8080/api/inventory/adjustment",
+ null,
+ "127.0.0.1",
+ JSON.toJSONString(param),
+ response,
+ success
+ );
+ }catch (Exception e) {
+ log.error("",e);
+ }
+ }
+ return SUCCESS;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/MesOrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/MesOrderSyncHandler.java
new file mode 100644
index 0000000..4550fde
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/MesOrderSyncHandler.java
@@ -0,0 +1,100 @@
+package com.zy.asrs.task.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.DocType;
+import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.DocTypeService;
+import com.zy.asrs.service.OrderDetlService;
+import com.zy.asrs.service.OrderService;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.constant.MesConstant;
+import com.zy.common.model.MesReportParam;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Slf4j
+@Service
+public class MesOrderSyncHandler extends AbstractHandler<String> {
+
+ @Autowired
+ private DocTypeService docTypeService;
+
+ @Autowired
+ private OrderDetlService orderDetlService;
+
+ @Autowired
+ private OrderService orderService;
+
+ @Autowired
+ private ApiLogService apiLogService;
+
+ @Transactional
+ public ReturnT<String> start(Order order) {
+ DocType docType = docTypeService.selectById(order.getDocType());
+ if (null == docType) {
+ return SUCCESS;
+ }
+ List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+ for (OrderDetl orderDetl : orderDetls) {
+ MesReportParam mesReportParam = new MesReportParam();
+ mesReportParam.setOrderNo(order.getOrderNo()); // 璁㈠崟缂栫爜
+ mesReportParam.setPlanNo(orderDetl.getStandby3()); // 璁″垝璺熻釜鍙�
+ mesReportParam.setLineId(orderDetl.getStandby1()); // 琛屽唴鐮�
+ mesReportParam.setWarehouseId("HL"); // 浠撳簱缂栫爜
+ mesReportParam.setLocId(""); // 搴撲綅鍙�
+ mesReportParam.setMatNr(orderDetl.getMatnr()); // 鐗╂枡缂栫爜
+ mesReportParam.setQty(orderDetl.getQty().toString()); // 鏈鍑�/鍏ユ暟閲�
+ mesReportParam.setPalletId(""); // 鎵樼洏鍙�
+ mesReportParam.setBatch(orderDetl.getBatch()); // 鎵规
+
+ String response = "";
+ boolean success = false;
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(MesConstant.URL)
+ .setPath(MesConstant.PAKIN_URL)
+ .setJson(JSON.toJSONString(mesReportParam))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code") == 200) {
+ success = true;
+ // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
+ if (!orderService.updateSettle(order.getId(), 6L, null)){
+ throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+ }
+ }else {
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(mesReportParam), response);
+ throw new CoolException("涓婃姤mes绯荤粺澶辫触");
+ }
+ }catch (Exception e) {
+ log.error("fail", e);
+ return FAIL.setMsg(e.getMessage());
+ }finally {
+ try {
+ // 淇濆瓨鎺ュ彛鏃ュ織
+ apiLogService.save(
+ "鍏�/鍑哄簱缁撴灉涓婃姤",
+ MesConstant.URL + MesConstant.PAKIN_URL,
+ null,
+ "127.0.0.1",
+ JSON.toJSONString(mesReportParam),
+ response,
+ success
+ );
+ } catch (Exception e) { log.error("", e); }
+ }
+ }
+ return SUCCESS;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
index 43b50b1..69644a2 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -44,6 +44,12 @@
@Autowired
private DocTypeService docTypeService;
+ /**
+ * 鍏ュ嚭搴撶粨鏋滀笂鎶�
+ * @param order
+ * @return
+ */
+
@Transactional
public ReturnT<String> start(Order order) {
DocType docType = docTypeService.selectById(order.getDocType());
diff --git a/src/main/java/com/zy/common/model/InventoryAdjustmentParam.java b/src/main/java/com/zy/common/model/InventoryAdjustmentParam.java
new file mode 100644
index 0000000..ab40bce
--- /dev/null
+++ b/src/main/java/com/zy/common/model/InventoryAdjustmentParam.java
@@ -0,0 +1,42 @@
+package com.zy.common.model;
+
+import lombok.Data;
+
+@Data
+public class InventoryAdjustmentParam {
+
+ /**
+ * 璋冩暣绫诲瀷
+ */
+ private Integer changeType;
+
+ /**
+ * 浠撳簱缂栫爜
+ */
+ private String wareHouseId;
+
+ /**
+ * 婧愬簱浣嶅彿
+ */
+ private String sourceLocId;
+
+ /**
+ * 鐩爣搴撲綅鍙� 绉诲簱鏃舵湁
+ */
+ private String targetLocId;
+
+ /**
+ * 鐗╂枡缂栫爜
+ */
+ private String matNr;
+
+ /**
+ * 璋冩暣鏁伴噺
+ */
+ private String qty;
+
+ /**
+ * 鎵樼洏鍙�
+ */
+ private String palletId;
+}
diff --git a/src/main/java/com/zy/common/model/MesReportParam.java b/src/main/java/com/zy/common/model/MesReportParam.java
new file mode 100644
index 0000000..e4c2f82
--- /dev/null
+++ b/src/main/java/com/zy/common/model/MesReportParam.java
@@ -0,0 +1,52 @@
+package com.zy.common.model;
+
+import lombok.Data;
+
+@Data
+public class MesReportParam {
+
+ /**
+ * 璁㈠崟缂栫爜
+ */
+ private String orderNo;
+
+ /**
+ * 璁″垝璺熻釜鍙�
+ */
+ private String planNo;
+
+ /**
+ * 琛屽唴鐮�
+ */
+ private String lineId;
+
+ /**
+ * 浠撳簱缂栫爜
+ */
+ private String warehouseId;
+
+ /**
+ * 搴撲綅鍙�
+ */
+ private String locId;
+
+ /**
+ * 鐗╂枡缂栫爜
+ */
+ private String matNr;
+
+ /**
+ * 鏈鍑�/鍏ュ簱鏁伴噺
+ */
+ private String qty;
+
+ /**
+ * 鎵樼洏鍙�
+ */
+ private String palletId;
+
+ /**
+ * 鎵规
+ */
+ private String batch;
+}
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 9d7f043..a801d3a 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -640,4 +640,30 @@
AND outOrderNo like '%' + #{outOrderNo} + '%'
</if>
</select>
+
+ <select id="queryInventoryDetails" parameterType="map" resultMap="BaseResultMap">
+ SELECT *
+ FROM asr_loc_detl
+ <where>
+ <if test="locId != null and locId != ''">
+ AND loc_id = #{locId}
+ </if>
+ <if test="matNr != null and matNr != ''">
+ AND mat_nr = #{matNr}
+ </if>
+ <if test="orderNo != null and orderNo != ''">
+ AND order_no = #{orderNo}
+ </if>
+ <if test="planNo != null and planNo != ''">
+ AND plan_no = #{planNo}
+ </if>
+ <if test="batch != null and batch != ''">
+ AND batch = #{batch}
+ </if>
+ </where>
+ </select>
+
+ <select id="queryInventorySummary" resultType="java.lang.Double">
+ SELECT SUM(anfme) FROM asr_loc_detl WHERE matnr = #{s}
+ </select>
</mapper>
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index f7ae4f7..f7fc826 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -59,6 +59,12 @@
<result column="ware_mame" property="wareName" />
<result column="packing" property="packing" />
<result column="det_id" property="detId"/>
+ <result column="standby1" property="standby1" />
+ <result column="standby2" property="standby2" />
+ <result column="standby3" property="standby3" />
+ <result column="box_type1" property="boxType1" />
+ <result column="box_type2" property="boxType2" />
+ <result column="box_type3" property="boxType3" />
</resultMap>
<select id="selectItem" resultMap="BaseResultMap">
diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml
index d74bcb9..6ccb54b 100644
--- a/src/main/resources/mapper/OrderMapper.xml
+++ b/src/main/resources/mapper/OrderMapper.xml
@@ -40,6 +40,7 @@
<result column="update_time" property="updateTime" />
<result column="memo" property="memo" />
<result column="move_status" property="moveStatus" />
+ <result column="operate_type" property="operateType" />
<result column="temp1" property="temp1" />
<result column="temp2" property="temp2" />
--
Gitblit v1.9.1