Commit bbe6b4d1609b288d8aa962eddd84e5aa4423f203
1 parent
c2ec6e2d
添加pda快速入库接口
Showing
6 changed files
with
125 additions
and
3 deletions
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/controller/ReceiptController.java
... | ... | @@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletRequest; |
6 | 6 | import org.jeecg.common.api.vo.Result; |
7 | 7 | import org.jeecg.common.aspect.annotation.AutoLog; |
8 | 8 | import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; |
9 | +import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean; | |
9 | 10 | import org.jeecg.modules.wms.api.mobile.service.IMobileService; |
10 | 11 | import org.jeecg.modules.wms.framework.aspectj.lang.annotation.ApiLogger; |
11 | 12 | import org.jeecg.modules.wms.framework.controller.HuahengBaseController; |
... | ... | @@ -50,4 +51,22 @@ public class ReceiptController extends HuahengBaseController { |
50 | 51 | }); |
51 | 52 | return result; |
52 | 53 | } |
54 | + | |
55 | + @AutoLog(value = "PDA入库-快速入库") | |
56 | + @ApiOperation(value = "PDA入库-快速入库", notes = "快速入库") | |
57 | + @PostMapping("/quickReceipt") | |
58 | + @ResponseBody | |
59 | + @ApiLogger(apiName = "PDA入库-快速入库", from = "PDA") | |
60 | + public Result<?> quickReceipt(@RequestBody QuickReceiptBean bean, HttpServletRequest req) { | |
61 | + String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req); | |
62 | + bean.setWarehouseCode(warehouseCode); | |
63 | + | |
64 | + Result<?> result = handleMultiProcess("quickReceipt", new MultiProcessListener() { | |
65 | + @Override | |
66 | + public Result<?> doProcess() { | |
67 | + return mobileService.quickReceipt(bean, warehouseCode); | |
68 | + } | |
69 | + }); | |
70 | + return result; | |
71 | + } | |
53 | 72 | } |
... | ... |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/entity/QuickReceiptBean.java
0 → 100644
1 | +package org.jeecg.modules.wms.api.mobile.entity; | |
2 | + | |
3 | +import io.swagger.annotations.ApiModelProperty; | |
4 | +import lombok.Data; | |
5 | +import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail; | |
6 | + | |
7 | +import java.util.List; | |
8 | + | |
9 | +@Data | |
10 | +public class QuickReceiptBean { | |
11 | + @ApiModelProperty(value = "托盘号", required = true) | |
12 | + private String containerCode; | |
13 | + @ApiModelProperty(value = "库位号", required = false) | |
14 | + private String locationCode; | |
15 | + @ApiModelProperty(value = "单据类型", required = true) | |
16 | + private String receiptType; | |
17 | + @ApiModelProperty(value = "货主编码", required = true) | |
18 | + private String companyCode; | |
19 | + @ApiModelProperty(value = "仓库编码", required = false) | |
20 | + private String warehouseCode; | |
21 | + @ApiModelProperty(value = "收货明细", required = true) | |
22 | + private List<ReceiptDetail> receiptDetails; | |
23 | +} | |
... | ... |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/IMobileService.java
... | ... | @@ -2,9 +2,11 @@ package org.jeecg.modules.wms.api.mobile.service; |
2 | 2 | |
3 | 3 | import org.jeecg.common.api.vo.Result; |
4 | 4 | import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; |
5 | +import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean; | |
5 | 6 | import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; |
6 | 7 | |
7 | 8 | public interface IMobileService { |
8 | 9 | |
9 | 10 | Result<TaskHeader> callBox(CallBoxBean bean, String warehouseCode); |
11 | + Result<TaskHeader> quickReceipt(QuickReceiptBean bean, String warehouseCode); | |
10 | 12 | } |
... | ... |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/impl/MobileService.java
... | ... | @@ -5,19 +5,30 @@ import javax.annotation.Resource; |
5 | 5 | import org.apache.commons.lang3.StringUtils; |
6 | 6 | import org.jeecg.common.api.vo.Result; |
7 | 7 | import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; |
8 | +import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean; | |
8 | 9 | import org.jeecg.modules.wms.api.mobile.service.IMobileService; |
9 | 10 | import org.jeecg.modules.wms.config.container.entity.Container; |
10 | 11 | import org.jeecg.modules.wms.config.container.service.IContainerService; |
11 | 12 | import org.jeecg.modules.wms.config.location.entity.Location; |
12 | 13 | import org.jeecg.modules.wms.config.location.service.ILocationService; |
14 | +import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail; | |
15 | +import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader; | |
16 | +import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptDetailService; | |
17 | +import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptHeaderService; | |
18 | +import org.jeecg.modules.wms.receipt.receiving.domain.Receive; | |
19 | +import org.jeecg.modules.wms.receipt.receiving.service.IReceiveService; | |
13 | 20 | import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; |
14 | 21 | import org.jeecg.modules.wms.task.taskHeader.service.ITaskHeaderService; |
15 | 22 | import org.jeecg.utils.constant.QuantityConstant; |
23 | +import org.springframework.beans.factory.annotation.Autowired; | |
16 | 24 | import org.springframework.stereotype.Service; |
17 | 25 | import org.springframework.transaction.annotation.Transactional; |
18 | 26 | |
19 | 27 | import com.aliyun.oss.ServiceException; |
20 | 28 | |
29 | +import java.util.ArrayList; | |
30 | +import java.util.List; | |
31 | + | |
21 | 32 | /** |
22 | 33 | */ |
23 | 34 | @Service |
... | ... | @@ -32,6 +43,15 @@ public class MobileService implements IMobileService { |
32 | 43 | @Resource |
33 | 44 | private ITaskHeaderService taskHeaderService; |
34 | 45 | |
46 | + @Autowired | |
47 | + private IReceiptHeaderService receiptHeaderService; | |
48 | + | |
49 | + @Autowired | |
50 | + private IReceiptDetailService receiptDetailService; | |
51 | + | |
52 | + @Resource | |
53 | + private IReceiveService receiveService; | |
54 | + | |
35 | 55 | @Override |
36 | 56 | @Transactional(rollbackFor = Exception.class) |
37 | 57 | public Result<TaskHeader> callBox(CallBoxBean bean, String warehouseCode) { |
... | ... | @@ -99,4 +119,62 @@ public class MobileService implements IMobileService { |
99 | 119 | |
100 | 120 | return Result.OK("呼叫料盒成功", taskHeader); |
101 | 121 | } |
122 | + | |
123 | + @Override | |
124 | + @Transactional(rollbackFor = Exception.class) | |
125 | + public Result<TaskHeader> quickReceipt(QuickReceiptBean bean, String warehouseCode) { | |
126 | + if (StringUtils.isEmpty(bean.getContainerCode())) { | |
127 | + return Result.error("托盘号containerCode不能为空"); | |
128 | + } | |
129 | + if (StringUtils.isEmpty(bean.getReceiptType())) { | |
130 | + return Result.error("单据类型不能为空"); | |
131 | + } | |
132 | + if (StringUtils.isEmpty(bean.getCompanyCode())) { | |
133 | + return Result.error("货主companyCode不能为空"); | |
134 | + } | |
135 | + if (bean.getReceiptDetails() == null || bean.getReceiptDetails().size() == 0) { | |
136 | + return Result.error("收货明细不能为空"); | |
137 | + } | |
138 | + | |
139 | + //创建入库单 | |
140 | + ReceiptHeader receiptHeader = new ReceiptHeader(); | |
141 | + receiptHeader.setType(bean.getReceiptType()); | |
142 | + receiptHeader.setCompanyCode(bean.getCompanyCode()); | |
143 | + receiptHeader.setWarehouseCode(bean.getWarehouseCode()); | |
144 | + Result<ReceiptHeader> rs1 = receiptHeaderService.saveReceiptHeader(receiptHeader); | |
145 | + | |
146 | + if (rs1.isSuccess()) { | |
147 | + receiptHeader = rs1.getResult(); | |
148 | + } else { | |
149 | + throw new ServiceException(rs1.getMessage()); | |
150 | + } | |
151 | + | |
152 | + List<Receive> receiveList = new ArrayList<>(); | |
153 | + for (ReceiptDetail d : bean.getReceiptDetails()) { | |
154 | + d.setReceiptId(receiptHeader.getId()); | |
155 | + Result rs2 = receiptDetailService.saveReceiptDetail(d); | |
156 | + if(!rs2.isSuccess()) { | |
157 | + throw new ServiceException(rs2.getMessage()); | |
158 | + } | |
159 | + Receive v = new Receive(); | |
160 | + v.setId(d.getId()); | |
161 | + v.setQty(d.getQty()); | |
162 | + v.setTaskQty(d.getQty()); | |
163 | + v.setInventoryStatus(d.getInventoryStatus()); | |
164 | + v.setMaterialCode(d.getMaterialCode()); | |
165 | + v.setMaterialName(d.getMaterialName()); | |
166 | + v.setBatch(d.getBatch()); | |
167 | + v.setMateiralSpec(d.getMaterialSpec()); | |
168 | + v.setMaterialUnit(d.getMaterialUnit()); | |
169 | + v.setContainerCode(bean.getContainerCode()); | |
170 | + receiveList.add(v); | |
171 | + } | |
172 | + | |
173 | + Result<TaskHeader> rs3 = receiveService.receivingAndCreateTask(receiveList, warehouseCode); | |
174 | + if(rs3.isSuccess()) { | |
175 | + return rs3; | |
176 | + }else{ | |
177 | + throw new ServiceException(rs3.getMessage()); | |
178 | + } | |
179 | + } | |
102 | 180 | } |
... | ... |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java
... | ... | @@ -29,7 +29,7 @@ public interface IReceiptHeaderService extends IService<ReceiptHeader> { |
29 | 29 | /** |
30 | 30 | * |
31 | 31 | */ |
32 | - public Result saveReceiptHeader(ReceiptHeader receiptHeader); | |
32 | + public Result<ReceiptHeader> saveReceiptHeader(ReceiptHeader receiptHeader); | |
33 | 33 | |
34 | 34 | public String createCode(String receiptType); |
35 | 35 | |
... | ... |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java
... | ... | @@ -83,7 +83,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R |
83 | 83 | |
84 | 84 | @Override |
85 | 85 | @Transactional |
86 | - public Result saveReceiptHeader(ReceiptHeader receiptHeader) { | |
86 | + public Result<ReceiptHeader> saveReceiptHeader(ReceiptHeader receiptHeader) { | |
87 | 87 | LambdaQueryWrapper<ReceiptType> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
88 | 88 | lambdaQueryWrapper.eq(ReceiptType::getCode, receiptHeader.getType()).eq(ReceiptType::getWarehouseCode, receiptHeader.getWarehouseCode()); |
89 | 89 | ReceiptType receiptType = receiptTypeService.getOne(lambdaQueryWrapper); |
... | ... | @@ -101,7 +101,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R |
101 | 101 | if (!success) { |
102 | 102 | return Result.OK("添加失败!"); |
103 | 103 | } |
104 | - return Result.OK("添加成功!"); | |
104 | + return Result.OK("添加成功!", receiptHeader); | |
105 | 105 | } |
106 | 106 | |
107 | 107 | @Override |
... | ... |