Commit 9f38dea55d084f11b0175617ebac2c5cfd95dd7d

Authored by 肖超群
1 parent 456522ed

修改ERP、MES接口

huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/controller/ErpController.java
... ... @@ -8,7 +8,6 @@ import org.jeecg.modules.wms.api.erp.entity.*;
8 8 import org.jeecg.modules.wms.api.erp.service.IErpService;
9 9 import org.jeecg.modules.wms.framework.aspectj.lang.annotation.ApiLogger;
10 10 import org.jeecg.modules.wms.framework.controller.HuahengBaseController;
11   -import org.jeecg.utils.HuahengJwtUtil;
12 11 import org.springframework.web.bind.annotation.*;
13 12  
14 13 import io.swagger.annotations.Api;
... ... @@ -29,9 +28,8 @@ public class ErpController extends HuahengBaseController {
29 28 @ResponseBody
30 29 @ApiOperation("入库单下发")
31 30 @ApiLogger(apiName = "入库单下发", from = "ERP")
32   - public Result receipt(@RequestBody ErpReceipt erpReceipt, @RequestHeader(value = "token", required = false) String token) {
33   - String operator = HuahengJwtUtil.getAudienceByToken(token);
34   - return erpService.receipt(erpReceipt, operator);
  31 + public Result receipt(@RequestBody ErpReceipt erpReceipt) {
  32 + return erpService.receipt(erpReceipt);
35 33 }
36 34  
37 35 @PostMapping("/cancelReceipt")
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/entity/ErpReceiptDetail.java
1 1 package org.jeecg.modules.wms.api.erp.entity;
2 2  
3   -import lombok.Data;
4   -
5 3 import java.math.BigDecimal;
6 4  
  5 +import io.swagger.annotations.ApiModelProperty;
  6 +import lombok.Data;
  7 +
7 8 /**
8 9 * @author 游杰
9 10 */
... ... @@ -13,45 +14,54 @@ public class ErpReceiptDetail {
13 14 /**
14 15 * 物料编码
15 16 */
  17 + @ApiModelProperty(value = "物料编码", required = true)
16 18 private String materialCode;
17 19  
18 20 /**
19 21 * 物料名称
20 22 */
  23 + @ApiModelProperty(value = "物料名称", required = true)
21 24 private String materialName;
22 25  
23 26 /**
24 27 * 物料规格
25 28 */
  29 + @ApiModelProperty(value = "物料规格")
26 30 private String materialSpec;
27 31  
28 32 /**
29 33 * 物料单位
30 34 */
  35 + @ApiModelProperty(value = "物料单位")
31 36 private String materialUnit;
32 37  
33 38 /**
34 39 * 单据数量
35 40 */
  41 + @ApiModelProperty(value = "单据数量", required = true)
36 42 private BigDecimal qty;
37 43  
38 44 /**
39 45 * 库存状况
40 46 */
  47 + @ApiModelProperty(value = "库存状况", required = true)
41 48 private String inventoryStatus;
42 49  
43 50 /**
44 51 * 批次
45 52 */
  53 + @ApiModelProperty(value = "批次")
46 54 private String batch;
47 55  
48 56 /**
49 57 * 批号
50 58 */
  59 + @ApiModelProperty(value = "批号")
51 60 private String lot;
52 61  
53 62 /**
54 63 * 项目号
55 64 */
  65 + @ApiModelProperty(value = "项目号")
56 66 private String project;
57 67 }
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/entity/ErpReceiptHeader.java
1 1 package org.jeecg.modules.wms.api.erp.entity;
2 2  
  3 +import io.swagger.annotations.ApiModelProperty;
3 4 import lombok.Data;
4 5  
5 6 /**
... ... @@ -11,26 +12,32 @@ public class ErpReceiptHeader {
11 12 /**
12 13 * 仓库编码
13 14 */
  15 + @ApiModelProperty(value = "仓库编码", required = true)
14 16 private String warehouseCode;
15 17 /**
16 18 * 货主
17 19 */
  20 + @ApiModelProperty(value = "货主编码", required = true)
18 21 private String companyCode;
19 22 /**
20 23 * 入库单类型
21 24 */
  25 + @ApiModelProperty(value = "入库单类型", required = true)
22 26 private String receiptType;
23 27 /**
24 28 * 上游单号
25 29 */
  30 + @ApiModelProperty(value = "上游单号", required = true)
26 31 private String referCode;
27 32 /**
28 33 * 供应商编码
29 34 */
  35 + @ApiModelProperty(value = "供应商编码")
30 36 private String supplierCode;
31 37 /**
32 38 * 备注
33 39 */
  40 + @ApiModelProperty(value = "备注")
34 41 private String remark;
35 42  
36 43 }
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/entity/ErpShipmentDetail.java
1 1 package org.jeecg.modules.wms.api.erp.entity;
2 2  
3   -import lombok.Data;
4   -
5 3 import java.math.BigDecimal;
6 4  
  5 +import io.swagger.annotations.ApiModelProperty;
  6 +import lombok.Data;
  7 +
7 8 @Data
8 9 public class ErpShipmentDetail {
9 10  
10 11 /**
11 12 * 物料编码
12 13 */
  14 + @ApiModelProperty(value = "物料编码", required = true)
13 15 private String materialCode;
14 16  
15 17 /**
16 18 * 单据数量
17 19 */
  20 + @ApiModelProperty(value = "单据数量", required = true)
18 21 private BigDecimal qty;
19 22  
20 23 /**
21 24 * 库存状况
22 25 */
  26 + @ApiModelProperty(value = "库存状况", required = true)
23 27 private String inventoryStatus;
24 28  
25 29 /**
26 30 * 批次
27 31 */
  32 + @ApiModelProperty(value = "批次")
28 33 private String batch;
29 34  
30 35 /**
31 36 * 批号
32 37 */
  38 + @ApiModelProperty(value = "批号")
33 39 private String lot;
34 40  
35 41 /**
36 42 * 项目号
37 43 */
  44 + @ApiModelProperty(value = "项目号")
38 45 private String project;
39 46 }
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/entity/ErpShipmentHeader.java
1 1 package org.jeecg.modules.wms.api.erp.entity;
2 2  
  3 +import io.swagger.annotations.ApiModelProperty;
3 4 import lombok.Data;
4 5  
5 6 @Data
... ... @@ -8,26 +9,32 @@ public class ErpShipmentHeader {
8 9 /**
9 10 * 仓库编码
10 11 */
  12 + @ApiModelProperty(value = "仓库编码", required = true)
11 13 private String warehouseCode;
12 14 /**
13 15 * 货主
14 16 */
  17 + @ApiModelProperty(value = "货主编码", required = true)
15 18 private String companyCode;
16 19 /**
17 20 * 出库单类型
18 21 */
  22 + @ApiModelProperty(value = "出库单类型", required = true)
19 23 private String shipmentType;
20 24 /**
21 25 * 上游单号
22 26 */
  27 + @ApiModelProperty(value = "上游单号", required = true)
23 28 private String referCode;
24 29 /**
25 30 * 客户编码
26 31 */
  32 + @ApiModelProperty(value = "客户编码")
27 33 private String customerCode;
28 34 /**
29 35 * 备注
30 36 */
  37 + @ApiModelProperty(value = "备注")
31 38 private String remark;
32 39  
33 40 }
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/service/IErpService.java
... ... @@ -13,7 +13,7 @@ public interface IErpService {
13 13 /**
14 14 * 下发入库单
15 15 */
16   - public Result receipt(ErpReceipt erpReceipt, String operator);
  16 + public Result receipt(ErpReceipt erpReceipt);
17 17  
18 18 /**
19 19 * 取消入库单
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/service/impl/ErpServiceImpl.java
... ... @@ -71,7 +71,7 @@ public class ErpServiceImpl implements IErpService {
71 71  
72 72 @Override
73 73 @Transactional(rollbackFor = Exception.class)
74   - public Result receipt(ErpReceipt erpReceipt, String operator) {
  74 + public Result receipt(ErpReceipt erpReceipt) {
75 75 boolean success = false;
76 76 if (erpReceipt == null) {
77 77 return Result.error("入库单下发,没有传receipt");
... ... @@ -122,7 +122,6 @@ public class ErpServiceImpl implements IErpService {
122 122 receiptHeader.setReferCode(referCode);
123 123 receiptHeader.setSupplierCode(supplierCode);
124 124 receiptHeader.setRemark(remark);
125   - receiptHeader.setCreateBy(operator);
126 125 Result result = receiptHeaderService.saveReceiptHeader(receiptHeader);
127 126 if (!result.isSuccess()) {
128 127 throw new ServiceException("创建入库单头失败" + result.getMessage());
... ... @@ -176,7 +175,6 @@ public class ErpServiceImpl implements IErpService {
176 175 receiptDetail.setBatch(batch);
177 176 receiptDetail.setLot(lot);
178 177 receiptDetail.setProject(project);
179   - receiptDetail.setCreateBy(operator);
180 178 success = receiptDetailService.save(receiptDetail);
181 179 if (!success) {
182 180 throw new ServiceException("入库单下发, 保存入库单详情失败");
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/controller/MesController.java
1 1 package org.jeecg.modules.wms.api.mes.controller;
2 2  
3   -import java.util.Map;
4   -
5 3 import javax.annotation.Resource;
6 4 import javax.servlet.http.HttpServletRequest;
7 5  
8 6 import org.jeecg.common.api.vo.Result;
  7 +import org.jeecg.modules.wms.api.erp.entity.ErpCancel;
9 8 import org.jeecg.modules.wms.api.erp.entity.ErpReceipt;
10 9 import org.jeecg.modules.wms.api.erp.entity.ErpShipment;
11 10 import org.jeecg.modules.wms.api.erp.entity.InventoryQueryParam;
... ... @@ -15,14 +14,17 @@ import org.jeecg.modules.wms.api.mes.entity.MesShipmentMaterial;
15 14 import org.jeecg.modules.wms.api.mes.servuce.IMesService;
16 15 import org.jeecg.modules.wms.framework.aspectj.lang.annotation.ApiLogger;
17 16 import org.jeecg.modules.wms.framework.controller.HuahengBaseController;
18   -import org.jeecg.utils.HuahengJwtUtil;
19 17 import org.springframework.web.bind.annotation.*;
20 18  
  19 +import io.swagger.annotations.Api;
  20 +import io.swagger.annotations.ApiOperation;
  21 +
21 22 /**
22 23 * @author 游杰
23 24 */
24 25 @RestController
25 26 @RequestMapping("/api/mes")
  27 +@Api(tags = "MES接口")
26 28 public class MesController extends HuahengBaseController {
27 29  
28 30 @Resource
... ... @@ -32,39 +34,43 @@ public class MesController extends HuahengBaseController {
32 34  
33 35 @PostMapping("/receipt")
34 36 @ResponseBody
  37 + @ApiOperation("入库单下发")
35 38 @ApiLogger(apiName = "入库单下发", from = "MES")
36   - public Result receipt(@RequestBody ErpReceipt erpReceipt, @RequestHeader(value = "token", required = false) String token) {
37   - String operator = HuahengJwtUtil.getAudienceByToken(token);
38   - return erpService.receipt(erpReceipt, operator);
  39 + public Result receipt(@RequestBody ErpReceipt erpReceipt) {
  40 + return erpService.receipt(erpReceipt);
39 41 }
40 42  
41 43 @PostMapping("/cancelReceipt")
42 44 @ResponseBody
  45 + @ApiOperation("取消入库单")
43 46 @ApiLogger(apiName = "取消入库单", from = "MES")
44   - public Result cancelReceipt(@RequestBody Map<String, String> param) {
45   - String referCode = param.get("referCode");
46   - String warehouseCOde = param.get("warehouseCode");
  47 + public Result cancelReceipt(@RequestBody ErpCancel erpCancel) {
  48 + String referCode = erpCancel.getReferCode();
  49 + String warehouseCOde = erpCancel.getWarehouseCode();
47 50 return erpService.cancelReceipt(referCode, warehouseCOde);
48 51 }
49 52  
50 53 @PostMapping("/shipment")
51 54 @ResponseBody
  55 + @ApiOperation("出库单下发")
52 56 @ApiLogger(apiName = "出库单下发", from = "MES")
53   - public Result shipment(@RequestBody ErpShipment erpShipment, HttpServletRequest req) {
  57 + public Result shipment(@RequestBody ErpShipment erpShipment) {
54 58 return erpService.shipment(erpShipment);
55 59 }
56 60  
57 61 @PostMapping("/cancelShipment")
58 62 @ResponseBody
  63 + @ApiOperation("取消出库单")
59 64 @ApiLogger(apiName = "取消出库单", from = "MES")
60   - public Result cancelShipment(@RequestBody Map<String, String> param, HttpServletRequest req) {
61   - String referCode = param.get("referCode");
62   - String warehouseCode = param.get("warehouseCode");
  65 + public Result cancelShipment(@RequestBody ErpCancel erpCancel) {
  66 + String referCode = erpCancel.getReferCode();
  67 + String warehouseCode = erpCancel.getWarehouseCode();
63 68 return erpService.cancelShipment(referCode, warehouseCode);
64 69 }
65 70  
66 71 @PostMapping("/searchInventory")
67 72 @ResponseBody
  73 + @ApiOperation("查询库存")
68 74 @ApiLogger(apiName = "查询库存", from = "MES")
69 75 public Result searchInventory(@RequestBody InventoryQueryParam inventoryQueryParam, HttpServletRequest req) {
70 76 Result result = erpService.searchInventory(inventoryQueryParam);
... ... @@ -73,19 +79,19 @@ public class MesController extends HuahengBaseController {
73 79  
74 80 @PostMapping("/receiptMaterial")
75 81 @ResponseBody
  82 + @ApiOperation("物料入库")
76 83 @ApiLogger(apiName = "物料入库", from = "MES")
77   - public Result receiptMaterial(@RequestBody MesReceiptMaterial mesReceiptMaterial, HttpServletRequest req) {
78   - String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req);
79   - Result result = mesService.receiptMaterial(mesReceiptMaterial, warehouseCode);
  84 + public Result receiptMaterial(@RequestBody MesReceiptMaterial mesReceiptMaterial) {
  85 + Result result = mesService.receiptMaterial(mesReceiptMaterial);
80 86 return result;
81 87 }
82 88  
83 89 @PostMapping("/shipmentMaterial")
84 90 @ResponseBody
  91 + @ApiOperation("物料出库")
85 92 @ApiLogger(apiName = "物料出库", from = "MES")
86   - public Result shipmentMaterial(@RequestBody MesShipmentMaterial mesShipmentMaterial, HttpServletRequest req) {
87   - String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req);
88   - Result result = mesService.shipmentMaterial(mesShipmentMaterial, warehouseCode);
  93 + public Result shipmentMaterial(@RequestBody MesShipmentMaterial mesShipmentMaterial) {
  94 + Result result = mesService.shipmentMaterial(mesShipmentMaterial);
89 95 return result;
90 96 }
91 97 }
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/entity/MaterialInfo.java
1 1 package org.jeecg.modules.wms.api.mes.entity;
2 2  
3   -import lombok.Data;
  3 +import java.math.BigDecimal;
  4 +
4 5 import org.jetbrains.annotations.NotNull;
5 6  
6   -import java.math.BigDecimal;
  7 +import io.swagger.annotations.ApiModelProperty;
  8 +import lombok.Data;
7 9  
  10 +/**
  11 + * @author 游杰
  12 + */
8 13 @Data
9 14 public class MaterialInfo implements Comparable<MaterialInfo> {
10 15  
  16 + /**
  17 + * 物料编码
  18 + */
  19 + @ApiModelProperty(value = "物料编码", required = true)
11 20 private String materialCode;
  21 + /**
  22 + * 数量
  23 + */
  24 + @ApiModelProperty(value = "数量", required = true)
12 25 private BigDecimal qty;
  26 + /**
  27 + * 顺序
  28 + */
  29 + @ApiModelProperty(value = "顺序")
13 30 private int sequence;
14 31  
15 32 @Override
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/entity/MesReceiptMaterial.java
1 1 package org.jeecg.modules.wms.api.mes.entity;
2 2  
3   -import lombok.Data;
4   -
5   -import java.math.BigDecimal;
6 3 import java.util.List;
7 4  
  5 +import io.swagger.annotations.ApiModelProperty;
  6 +import lombok.Data;
  7 +
8 8 /**
9 9 * @author 游杰
10 10 */
11 11 @Data
12 12 public class MesReceiptMaterial {
13 13  
  14 + /**
  15 + * 上游单号
  16 + */
  17 + @ApiModelProperty(value = "上游单号", required = true)
14 18 private String referCode;
  19 + /**
  20 + * 容器号
  21 + */
  22 + @ApiModelProperty(value = "容器号", required = true)
15 23 private String containerCode;
  24 + /**
  25 + * 仓库编码
  26 + */
  27 + @ApiModelProperty(value = "仓库编码", required = true)
  28 + private String warehouseCode;
  29 + /**
  30 + * 入库口
  31 + */
  32 + @ApiModelProperty(value = "入库口", required = true)
16 33 private String toPort;
  34 + /**
  35 + * 物料信息
  36 + */
  37 + @ApiModelProperty(value = "物料信息", required = true)
17 38 private List<MaterialInfo> materialInfoList;
18 39  
19 40 }
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/entity/MesShipmentMaterial.java
1 1 package org.jeecg.modules.wms.api.mes.entity;
2 2  
3   -import lombok.Data;
4   -
5 3 import java.util.List;
6 4  
  5 +import io.swagger.annotations.ApiModelProperty;
  6 +import lombok.Data;
  7 +
7 8 /**
8 9 * @author 游杰
9 10 */
10 11 @Data
11 12 public class MesShipmentMaterial {
12 13  
  14 + /**
  15 + * 上游单号
  16 + */
  17 + @ApiModelProperty(value = "上游单号", required = true)
13 18 private String referCode;
  19 + /**
  20 + * 出库口
  21 + */
  22 + @ApiModelProperty(value = "出库口", required = true)
14 23 private String toPort;
  24 + /**
  25 + * 仓库编码
  26 + */
  27 + @ApiModelProperty(value = "仓库编码", required = true)
  28 + private String warehouseCode;
  29 + /**
  30 + * 物料信息
  31 + */
  32 + @ApiModelProperty(value = "物料信息", required = true)
15 33 private List<MaterialInfo> materialInfoList;
16 34 }
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/servuce/IMesService.java
... ... @@ -10,9 +10,9 @@ import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader;
10 10 */
11 11 public interface IMesService {
12 12  
13   - public Result receiptMaterial(MesReceiptMaterial mesReceiptMaterial, String warehouseCode);
  13 + public Result receiptMaterial(MesReceiptMaterial mesReceiptMaterial);
14 14  
15   - public Result shipmentMaterial(MesShipmentMaterial mesShipmentMaterial, String warehouseCode);
  15 + public Result shipmentMaterial(MesShipmentMaterial mesShipmentMaterial);
16 16  
17 17 public Result backMesReceipt(TaskHeader taskHeader);
18 18  
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/servuce/impl/MesServiceImpl.java
... ... @@ -12,6 +12,8 @@ import org.jeecg.common.api.vo.Result;
12 12 import org.jeecg.modules.wms.api.mes.entity.*;
13 13 import org.jeecg.modules.wms.api.mes.servuce.IMesService;
14 14 import org.jeecg.modules.wms.config.address.service.IAddressService;
  15 +import org.jeecg.modules.wms.config.container.entity.Container;
  16 +import org.jeecg.modules.wms.config.container.service.IContainerService;
15 17 import org.jeecg.modules.wms.receipt.receiptContainerHeader.entity.ReceiptContainerHeader;
16 18 import org.jeecg.modules.wms.receipt.receiptContainerHeader.service.IReceiptContainerHeaderService;
17 19 import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail;
... ... @@ -73,6 +75,8 @@ public class MesServiceImpl implements IMesService {
73 75 private IAddressService addressService;
74 76 @Resource
75 77 private ITaskHeaderService taskHeaderService;
  78 + @Resource
  79 + private IContainerService containerService;
76 80  
77 81 /**
78 82 * 要求入库单详情 必须是不重样的
... ... @@ -80,11 +84,22 @@ public class MesServiceImpl implements IMesService {
80 84 */
81 85 @Override
82 86 @Transactional(rollbackFor = Exception.class)
83   - public Result receiptMaterial(MesReceiptMaterial mesReceiptMaterial, String warehouseCode) {
  87 + public Result receiptMaterial(MesReceiptMaterial mesReceiptMaterial) {
84 88 List<Receive> receiveList = new ArrayList<>();
85 89 String referCode = mesReceiptMaterial.getReferCode();
86 90 String containerCode = mesReceiptMaterial.getContainerCode();
  91 + String warehouseCode = mesReceiptMaterial.getWarehouseCode();
87 92 String toPort = mesReceiptMaterial.getToPort();
  93 + if (StringUtils.isEmpty(containerCode)) {
  94 + return Result.error("MES下发入库信息,容器号为空");
  95 + }
  96 + if (StringUtils.isEmpty(warehouseCode)) {
  97 + return Result.error("MES下发入库信息,仓库编码为空");
  98 + }
  99 + Container container = containerService.getContainerByCode(containerCode, warehouseCode);
  100 + if (container == null) {
  101 + return Result.error("MES下发入库信息,没有找到容器");
  102 + }
88 103 List<MaterialInfo> materialInfoList = mesReceiptMaterial.getMaterialInfoList();
89 104 ReceiptHeader receiptHeader = receiptHeaderService.getReceiptHeaderByReferCode(referCode, warehouseCode);
90 105 if (receiptHeader == null) {
... ... @@ -137,9 +152,10 @@ public class MesServiceImpl implements IMesService {
137 152  
138 153 @Override
139 154 @Transactional(rollbackFor = Exception.class)
140   - public Result shipmentMaterial(MesShipmentMaterial mesShipmentMaterial, String warehouseCode) {
  155 + public Result shipmentMaterial(MesShipmentMaterial mesShipmentMaterial) {
141 156 String referCode = mesShipmentMaterial.getReferCode();
142 157 String toPort = mesShipmentMaterial.getToPort();
  158 + String warehouseCode = mesShipmentMaterial.getWarehouseCode();
143 159 List<MaterialInfo> materialInfoList = mesShipmentMaterial.getMaterialInfoList();
144 160 ShipmentHeader shipmentHeader = shipmentHeaderService.getShipmentHeaderByReferCode(referCode, warehouseCode);
145 161 if (shipmentHeader == null) {
... ...