Commit bbe6b4d1609b288d8aa962eddd84e5aa4423f203

Authored by 周峰
1 parent c2ec6e2d

添加pda快速入库接口

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&lt;ReceiptHeader&gt; {
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&lt;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&lt;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
... ...