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 +6,7 @@ import javax.servlet.http.HttpServletRequest; | ||
6 | import org.jeecg.common.api.vo.Result; | 6 | import org.jeecg.common.api.vo.Result; |
7 | import org.jeecg.common.aspect.annotation.AutoLog; | 7 | import org.jeecg.common.aspect.annotation.AutoLog; |
8 | import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; | 8 | import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; |
9 | +import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean; | ||
9 | import org.jeecg.modules.wms.api.mobile.service.IMobileService; | 10 | import org.jeecg.modules.wms.api.mobile.service.IMobileService; |
10 | import org.jeecg.modules.wms.framework.aspectj.lang.annotation.ApiLogger; | 11 | import org.jeecg.modules.wms.framework.aspectj.lang.annotation.ApiLogger; |
11 | import org.jeecg.modules.wms.framework.controller.HuahengBaseController; | 12 | import org.jeecg.modules.wms.framework.controller.HuahengBaseController; |
@@ -50,4 +51,22 @@ public class ReceiptController extends HuahengBaseController { | @@ -50,4 +51,22 @@ public class ReceiptController extends HuahengBaseController { | ||
50 | }); | 51 | }); |
51 | return result; | 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,9 +2,11 @@ package org.jeecg.modules.wms.api.mobile.service; | ||
2 | 2 | ||
3 | import org.jeecg.common.api.vo.Result; | 3 | import org.jeecg.common.api.vo.Result; |
4 | import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; | 4 | import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; |
5 | +import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean; | ||
5 | import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; | 6 | import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; |
6 | 7 | ||
7 | public interface IMobileService { | 8 | public interface IMobileService { |
8 | 9 | ||
9 | Result<TaskHeader> callBox(CallBoxBean bean, String warehouseCode); | 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,19 +5,30 @@ import javax.annotation.Resource; | ||
5 | import org.apache.commons.lang3.StringUtils; | 5 | import org.apache.commons.lang3.StringUtils; |
6 | import org.jeecg.common.api.vo.Result; | 6 | import org.jeecg.common.api.vo.Result; |
7 | import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; | 7 | import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; |
8 | +import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean; | ||
8 | import org.jeecg.modules.wms.api.mobile.service.IMobileService; | 9 | import org.jeecg.modules.wms.api.mobile.service.IMobileService; |
9 | import org.jeecg.modules.wms.config.container.entity.Container; | 10 | import org.jeecg.modules.wms.config.container.entity.Container; |
10 | import org.jeecg.modules.wms.config.container.service.IContainerService; | 11 | import org.jeecg.modules.wms.config.container.service.IContainerService; |
11 | import org.jeecg.modules.wms.config.location.entity.Location; | 12 | import org.jeecg.modules.wms.config.location.entity.Location; |
12 | import org.jeecg.modules.wms.config.location.service.ILocationService; | 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 | import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; | 20 | import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; |
14 | import org.jeecg.modules.wms.task.taskHeader.service.ITaskHeaderService; | 21 | import org.jeecg.modules.wms.task.taskHeader.service.ITaskHeaderService; |
15 | import org.jeecg.utils.constant.QuantityConstant; | 22 | import org.jeecg.utils.constant.QuantityConstant; |
23 | +import org.springframework.beans.factory.annotation.Autowired; | ||
16 | import org.springframework.stereotype.Service; | 24 | import org.springframework.stereotype.Service; |
17 | import org.springframework.transaction.annotation.Transactional; | 25 | import org.springframework.transaction.annotation.Transactional; |
18 | 26 | ||
19 | import com.aliyun.oss.ServiceException; | 27 | import com.aliyun.oss.ServiceException; |
20 | 28 | ||
29 | +import java.util.ArrayList; | ||
30 | +import java.util.List; | ||
31 | + | ||
21 | /** | 32 | /** |
22 | */ | 33 | */ |
23 | @Service | 34 | @Service |
@@ -32,6 +43,15 @@ public class MobileService implements IMobileService { | @@ -32,6 +43,15 @@ public class MobileService implements IMobileService { | ||
32 | @Resource | 43 | @Resource |
33 | private ITaskHeaderService taskHeaderService; | 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 | @Override | 55 | @Override |
36 | @Transactional(rollbackFor = Exception.class) | 56 | @Transactional(rollbackFor = Exception.class) |
37 | public Result<TaskHeader> callBox(CallBoxBean bean, String warehouseCode) { | 57 | public Result<TaskHeader> callBox(CallBoxBean bean, String warehouseCode) { |
@@ -99,4 +119,62 @@ public class MobileService implements IMobileService { | @@ -99,4 +119,62 @@ public class MobileService implements IMobileService { | ||
99 | 119 | ||
100 | return Result.OK("呼叫料盒成功", taskHeader); | 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,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 | public String createCode(String receiptType); | 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,7 +83,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R | ||
83 | 83 | ||
84 | @Override | 84 | @Override |
85 | @Transactional | 85 | @Transactional |
86 | - public Result saveReceiptHeader(ReceiptHeader receiptHeader) { | 86 | + public Result<ReceiptHeader> saveReceiptHeader(ReceiptHeader receiptHeader) { |
87 | LambdaQueryWrapper<ReceiptType> lambdaQueryWrapper = Wrappers.lambdaQuery(); | 87 | LambdaQueryWrapper<ReceiptType> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
88 | lambdaQueryWrapper.eq(ReceiptType::getCode, receiptHeader.getType()).eq(ReceiptType::getWarehouseCode, receiptHeader.getWarehouseCode()); | 88 | lambdaQueryWrapper.eq(ReceiptType::getCode, receiptHeader.getType()).eq(ReceiptType::getWarehouseCode, receiptHeader.getWarehouseCode()); |
89 | ReceiptType receiptType = receiptTypeService.getOne(lambdaQueryWrapper); | 89 | ReceiptType receiptType = receiptTypeService.getOne(lambdaQueryWrapper); |
@@ -101,7 +101,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R | @@ -101,7 +101,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R | ||
101 | if (!success) { | 101 | if (!success) { |
102 | return Result.OK("添加失败!"); | 102 | return Result.OK("添加失败!"); |
103 | } | 103 | } |
104 | - return Result.OK("添加成功!"); | 104 | + return Result.OK("添加成功!", receiptHeader); |
105 | } | 105 | } |
106 | 106 | ||
107 | @Override | 107 | @Override |