diff --git a/src/main/java/com/glxp/api/controller/inv/InvPreinOrderController.java b/src/main/java/com/glxp/api/controller/inv/InvPreinOrderController.java index 7b4862cde..b15ec40e1 100644 --- a/src/main/java/com/glxp/api/controller/inv/InvPreinOrderController.java +++ b/src/main/java/com/glxp/api/controller/inv/InvPreinOrderController.java @@ -15,6 +15,7 @@ import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inv.InvPreInProductDetailEntity; import com.glxp.api.entity.inv.InvPreinDetailEntity; import com.glxp.api.entity.inv.InvProductDetailEntity; +import com.glxp.api.req.inout.CheckPreInInvRequest; import com.glxp.api.req.inv.FilterInvPreinDetailRequest; import com.glxp.api.req.inv.FilterInvPreinRequest; import com.glxp.api.req.inv.FilterInvProductDetailRequest; @@ -24,6 +25,8 @@ import com.glxp.api.res.inv.InvPreinDetailResponse; import com.glxp.api.res.inv.InvPreinOrderResponse; import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.IBasicBussinessTypeService; +import com.glxp.api.service.inout.IoCodeTempService; +import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.service.inv.InvPreProductDetailService; import com.glxp.api.service.inv.InvPreinDetailService; import com.glxp.api.service.inv.InvPreinOrderService; @@ -84,27 +87,46 @@ public class InvPreinOrderController extends BaseController { } + @Resource + IoCodeTempService codeTempService; + @Resource + IoCodeService codeService; @AuthRuleAnnotation("") @PostMapping("spms/prein/inv/products/getDetaiByCode") - public BaseResponse getDetaiByCode(@RequestBody IoCodeTempEntity codeTempEntity) { + public BaseResponse getDetaiByCode(@RequestBody CheckPreInInvRequest checkPreInInvRequest) { InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_PREIN); - BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(codeTempEntity.getAction()); + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(checkPreInInvRequest.getAction()); + + if (bussinessTypeEntity.getBackPreinType() == 1 && bussinessTypeEntity.isPreInBack()) {//按单出库&& bussinessTypeEntity.isPreInBack() + String orderIds = checkPreInInvRequest.getCheckPreInOrders(); + if (StrUtil.isNotEmpty(orderIds)) { + String[] orderIdArray = orderIds.split(","); + List orderList = CollUtil.toList(orderIdArray); + int count = codeService.findByOrderIdsCount(orderList, checkPreInInvRequest.getCode()); + if (count <= 0) { + return ResultVOUtils.error(500, "非预验收单产品或预验收库存数量不足!"); + } + } else { + return ResultVOUtils.error(500, "未选择预验收入库单,请先选择预验收入库单!"); + } + } + int count = 0; if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) { - if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { - count = invPreinProductDetailService.vailStockCountByCode(null, invWarehouseEntity.getCode(), null, codeTempEntity.getCode()); + if (StrUtil.isNotEmpty(checkPreInInvRequest.getSerialNo())) { + count = invPreinProductDetailService.vailStockCountByCode(null, invWarehouseEntity.getCode(), null, checkPreInInvRequest.getCode()); } else - count = invPreinProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), null); + count = invPreinProductDetailService.vailStockCount(checkPreInInvRequest.getRelId(), checkPreInInvRequest.getBatchNo(), checkPreInInvRequest.getSupId(), null, invWarehouseEntity.getCode(), null); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) { - if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { - count = invPreinProductDetailService.vailStockCountByCode(null, invWarehouseEntity.getCode(), codeTempEntity.getPreInSpaceCode(), codeTempEntity.getCode()); + if (StrUtil.isNotEmpty(checkPreInInvRequest.getSerialNo())) { + count = invPreinProductDetailService.vailStockCountByCode(null, invWarehouseEntity.getCode(), checkPreInInvRequest.getPreInSpaceCode(), checkPreInInvRequest.getCode()); } else - count = invPreinProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), codeTempEntity.getPreInSpaceCode()); + count = invPreinProductDetailService.vailStockCount(checkPreInInvRequest.getRelId(), checkPreInInvRequest.getBatchNo(), checkPreInInvRequest.getSupId(), null, invWarehouseEntity.getCode(), checkPreInInvRequest.getPreInSpaceCode()); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) { //按指定货位出库 - if (StrUtil.isEmpty(codeTempEntity.getPreSpaceCode())) { - List invProductDetailEntities = invPreinProductDetailService.findByGroupCode(invWarehouseEntity.getCode(), codeTempEntity.getCode()); + if (StrUtil.isEmpty(checkPreInInvRequest.getPreSpaceCode())) { + List invProductDetailEntities = invPreinProductDetailService.findByGroupCode(invWarehouseEntity.getCode(), checkPreInInvRequest.getCode()); if (CollUtil.isNotEmpty(invProductDetailEntities) && invProductDetailEntities.size() > 1) { BaseResponse baseResponse = ResultVOUtils.error(511, "存在多个货位,请指定当前货位!"); baseResponse.setData(invProductDetailEntities); @@ -112,24 +134,24 @@ public class InvPreinOrderController extends BaseController { } else if (invProductDetailEntities.size() == 1) { InvPlaceDetailResponse invPlaceDetailResponse = invProductDetailEntities.get(0); count = invPlaceDetailResponse.getReCount(); - codeTempEntity.setPreSpaceCode(invPlaceDetailResponse.getInvSpaceCode()); + checkPreInInvRequest.setPreSpaceCode(invPlaceDetailResponse.getInvSpaceCode()); } else { return ResultVOUtils.error(500, "添加失败,该产品未上架货位!"); } } else { - if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { - count = invPreinProductDetailService.vailStockCountByCode(null, codeTempEntity.getInvCode(), codeTempEntity.getPreInSpaceCode(), codeTempEntity.getCode()); + if (StrUtil.isNotEmpty(checkPreInInvRequest.getSerialNo())) { + count = invPreinProductDetailService.vailStockCountByCode(null, checkPreInInvRequest.getInvCode(), checkPreInInvRequest.getPreInSpaceCode(), checkPreInInvRequest.getCode()); } else - count = invPreinProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, codeTempEntity.getInvCode(), codeTempEntity.getPreInSpaceCode()); + count = invPreinProductDetailService.vailStockCount(checkPreInInvRequest.getRelId(), checkPreInInvRequest.getBatchNo(), checkPreInInvRequest.getSupId(), null, checkPreInInvRequest.getInvCode(), checkPreInInvRequest.getPreInSpaceCode()); } } - InvPreInProductDetailEntity invPreinDetailEntity = invPreinProductDetailService.findUseOneByCode(codeTempEntity.getCode()); + InvPreInProductDetailEntity invPreinDetailEntity = invPreinProductDetailService.findUseOneByCode(checkPreInInvRequest.getCode()); if (count <= 0) { return ResultVOUtils.error(500, "预验收库存数量不足!"); } else { - if (invPreinDetailEntity != null && StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(codeTempEntity.getBatchNo()) - && !invPreinDetailEntity.getBatchNo().equals(codeTempEntity.getBatchNo())) { + if (invPreinDetailEntity != null && StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(checkPreInInvRequest.getBatchNo()) + && !invPreinDetailEntity.getBatchNo().equals(checkPreInInvRequest.getBatchNo())) { return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!"); } } diff --git a/src/main/java/com/glxp/api/controller/purchase/PurOrderPrintController.java b/src/main/java/com/glxp/api/controller/purchase/PurOrderPrintController.java index f5ff1ca62..365add0a2 100644 --- a/src/main/java/com/glxp/api/controller/purchase/PurOrderPrintController.java +++ b/src/main/java/com/glxp/api/controller/purchase/PurOrderPrintController.java @@ -178,7 +178,7 @@ public class PurOrderPrintController { Map data = new HashMap<>(1); List list = new ArrayList<>(); PurApplyDetailRequest purApplyDetailRequest = new PurApplyDetailRequest(); - purApplyDetailRequest.setOrderIdFk(purOrderPrintRequest.getBillNo()); + purApplyDetailRequest.setOrderIdFk(purApplyResponse.getId() + ""); List responseList = purApplyDetailService.joinQueryList(purApplyDetailRequest); int i = 1; if (CollUtil.isNotEmpty(responseList)) { @@ -208,6 +208,10 @@ public class PurOrderPrintController { supData.put("supName", obj.getSupName()); supData.put("ylqxzcrbarmc", obj.getYlqxzcrbarmc()); supData.put("zczbhhzbapzbh", obj.getZczbhhzbapzbh()); + supData.put("arrivalTime", MsDateUtil.formatDate(purApplyResponse.getArrivalTime(), "yyyy-MM-dd")); + supData.put("remark1", sysPdfTemplateRelevanceBizEntity.getRemark1() == null ? ' ' : sysPdfTemplateRelevanceBizEntity.getRemark1()); + supData.put("remark2", sysPdfTemplateRelevanceBizEntity.getRemark2() == null ? ' ' : sysPdfTemplateRelevanceBizEntity.getRemark2()); + supData.put("remark3", sysPdfTemplateRelevanceBizEntity.getRemark3() == null ? ' ' : sysPdfTemplateRelevanceBizEntity.getRemark3()); list.add(supData); i++; } diff --git a/src/main/java/com/glxp/api/req/inout/CheckPreInInvRequest.java b/src/main/java/com/glxp/api/req/inout/CheckPreInInvRequest.java new file mode 100644 index 000000000..49b23c8ef --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/CheckPreInInvRequest.java @@ -0,0 +1,149 @@ +package com.glxp.api.req.inout; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +@Data +public class CheckPreInInvRequest { + + + private Integer id; + + /** + * UDI码 + */ + private String code; + + /** + * 主单据类型(入库,出库) + */ + private String mainAction; + + /** + * 单据类型 + */ + private String action; + + /** + * 订单号外键 + */ + private String orderId; + + /** + * 手持终端订单号 + */ + private String corpOrderId; + + /** + * DI标识 + */ + private String nameCode; + + + /** + * 批次号 + */ + private String batchNo; + + /** + * 生产日期 + */ + private String produceDate; + + /** + * 失效日期 + */ + private String expireDate; + + /** + * 序列号 + */ + private String serialNo; + + /** + * 包装级别 + */ + private String packageLevel; + + /** + * 供应商ID外键 + */ + private String supId; + + /** + * 耗材字典ID外键 + */ + private Long relId; + + /** + * 扫码数量 + */ + private Integer count; + + /** + * 实际数量 + */ + private Integer reCount; + + /** + * 部门编码外键 + */ + private String deptCode; + + /** + * 仓库编码外键 + */ + private String invCode; + + /** + * 货位编码外键 + */ + private String warehouseCode; + + /** + * 预验收,寄售所在货位编码 + */ + private String preSpaceCode; + + private String preInSpaceCode; + + /** + * 更新日期 + */ + private Date updateTime; + + /** + * 创建日期 + */ + private Date createTime; + /** + * 入院批号 + */ + private String inBatchNo; + private String checkPreInOrders; + + + private int status; //条码校验状态 + private int checkStatus; //1:多余条码;2.同一产品条码超出 + private String mySupId; //更新供应商 + + private BigDecimal price; + private boolean checkSuccess; //临时字段校验是否成功 + + public int getMyCount() { + if (count == null) + return 0; + return count; + } + + public int getMyReCount() { + if (reCount == null) { + return 0; + } + return reCount; + } +}