diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/controller/ReceiptController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/controller/ReceiptController.java index d3a3973..918276a 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/controller/ReceiptController.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/controller/ReceiptController.java @@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; +import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean; import org.jeecg.modules.wms.api.mobile.service.IMobileService; import org.jeecg.modules.wms.framework.aspectj.lang.annotation.ApiLogger; import org.jeecg.modules.wms.framework.controller.HuahengBaseController; @@ -50,4 +51,22 @@ public class ReceiptController extends HuahengBaseController { }); return result; } + + @AutoLog(value = "PDA入库-快速入库") + @ApiOperation(value = "PDA入库-快速入库", notes = "快速入库") + @PostMapping("/quickReceipt") + @ResponseBody + @ApiLogger(apiName = "PDA入库-快速入库", from = "PDA") + public Result<?> quickReceipt(@RequestBody QuickReceiptBean bean, HttpServletRequest req) { + String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req); + bean.setWarehouseCode(warehouseCode); + + Result<?> result = handleMultiProcess("quickReceipt", new MultiProcessListener() { + @Override + public Result<?> doProcess() { + return mobileService.quickReceipt(bean, warehouseCode); + } + }); + return result; + } } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/entity/QuickReceiptBean.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/entity/QuickReceiptBean.java new file mode 100644 index 0000000..2e571c6 --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/entity/QuickReceiptBean.java @@ -0,0 +1,23 @@ +package org.jeecg.modules.wms.api.mobile.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail; + +import java.util.List; + +@Data +public class QuickReceiptBean { + @ApiModelProperty(value = "托盘号", required = true) + private String containerCode; + @ApiModelProperty(value = "库位号", required = false) + private String locationCode; + @ApiModelProperty(value = "单据类型", required = true) + private String receiptType; + @ApiModelProperty(value = "货主编码", required = true) + private String companyCode; + @ApiModelProperty(value = "仓库编码", required = false) + private String warehouseCode; + @ApiModelProperty(value = "收货明细", required = true) + private List<ReceiptDetail> receiptDetails; +} diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/IMobileService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/IMobileService.java index 04aa932..15cb482 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/IMobileService.java +++ b/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; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; +import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean; import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; public interface IMobileService { Result<TaskHeader> callBox(CallBoxBean bean, String warehouseCode); + Result<TaskHeader> quickReceipt(QuickReceiptBean bean, String warehouseCode); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/impl/MobileService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/impl/MobileService.java index 0cc32bd..405ddc3 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/impl/MobileService.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/impl/MobileService.java @@ -5,19 +5,30 @@ import javax.annotation.Resource; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; +import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean; import org.jeecg.modules.wms.api.mobile.service.IMobileService; import org.jeecg.modules.wms.config.container.entity.Container; import org.jeecg.modules.wms.config.container.service.IContainerService; import org.jeecg.modules.wms.config.location.entity.Location; import org.jeecg.modules.wms.config.location.service.ILocationService; +import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail; +import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader; +import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptDetailService; +import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptHeaderService; +import org.jeecg.modules.wms.receipt.receiving.domain.Receive; +import org.jeecg.modules.wms.receipt.receiving.service.IReceiveService; import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; import org.jeecg.modules.wms.task.taskHeader.service.ITaskHeaderService; import org.jeecg.utils.constant.QuantityConstant; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.aliyun.oss.ServiceException; +import java.util.ArrayList; +import java.util.List; + /** */ @Service @@ -32,6 +43,15 @@ public class MobileService implements IMobileService { @Resource private ITaskHeaderService taskHeaderService; + @Autowired + private IReceiptHeaderService receiptHeaderService; + + @Autowired + private IReceiptDetailService receiptDetailService; + + @Resource + private IReceiveService receiveService; + @Override @Transactional(rollbackFor = Exception.class) public Result<TaskHeader> callBox(CallBoxBean bean, String warehouseCode) { @@ -99,4 +119,62 @@ public class MobileService implements IMobileService { return Result.OK("呼叫料盒成功", taskHeader); } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result<TaskHeader> quickReceipt(QuickReceiptBean bean, String warehouseCode) { + if (StringUtils.isEmpty(bean.getContainerCode())) { + return Result.error("托盘号containerCode不能为空"); + } + if (StringUtils.isEmpty(bean.getReceiptType())) { + return Result.error("单据类型不能为空"); + } + if (StringUtils.isEmpty(bean.getCompanyCode())) { + return Result.error("货主companyCode不能为空"); + } + if (bean.getReceiptDetails() == null || bean.getReceiptDetails().size() == 0) { + return Result.error("收货明细不能为空"); + } + + //创建入库单 + ReceiptHeader receiptHeader = new ReceiptHeader(); + receiptHeader.setType(bean.getReceiptType()); + receiptHeader.setCompanyCode(bean.getCompanyCode()); + receiptHeader.setWarehouseCode(bean.getWarehouseCode()); + Result<ReceiptHeader> rs1 = receiptHeaderService.saveReceiptHeader(receiptHeader); + + if (rs1.isSuccess()) { + receiptHeader = rs1.getResult(); + } else { + throw new ServiceException(rs1.getMessage()); + } + + List<Receive> receiveList = new ArrayList<>(); + for (ReceiptDetail d : bean.getReceiptDetails()) { + d.setReceiptId(receiptHeader.getId()); + Result rs2 = receiptDetailService.saveReceiptDetail(d); + if(!rs2.isSuccess()) { + throw new ServiceException(rs2.getMessage()); + } + Receive v = new Receive(); + v.setId(d.getId()); + v.setQty(d.getQty()); + v.setTaskQty(d.getQty()); + v.setInventoryStatus(d.getInventoryStatus()); + v.setMaterialCode(d.getMaterialCode()); + v.setMaterialName(d.getMaterialName()); + v.setBatch(d.getBatch()); + v.setMateiralSpec(d.getMaterialSpec()); + v.setMaterialUnit(d.getMaterialUnit()); + v.setContainerCode(bean.getContainerCode()); + receiveList.add(v); + } + + Result<TaskHeader> rs3 = receiveService.receivingAndCreateTask(receiveList, warehouseCode); + if(rs3.isSuccess()) { + return rs3; + }else{ + throw new ServiceException(rs3.getMessage()); + } + } } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java index 53c8964..887da8a 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java +++ b/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> { /** * */ - public Result saveReceiptHeader(ReceiptHeader receiptHeader); + public Result<ReceiptHeader> saveReceiptHeader(ReceiptHeader receiptHeader); public String createCode(String receiptType); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java index e9527e9..2426bb3 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java +++ b/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 @Override @Transactional - public Result saveReceiptHeader(ReceiptHeader receiptHeader) { + public Result<ReceiptHeader> saveReceiptHeader(ReceiptHeader receiptHeader) { LambdaQueryWrapper<ReceiptType> lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(ReceiptType::getCode, receiptHeader.getType()).eq(ReceiptType::getWarehouseCode, receiptHeader.getWarehouseCode()); ReceiptType receiptType = receiptTypeService.getOne(lambdaQueryWrapper); @@ -101,7 +101,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R if (!success) { return Result.OK("添加失败!"); } - return Result.OK("添加成功!"); + return Result.OK("添加成功!", receiptHeader); } @Override