diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java index 8af6002f4..cc3d5e37d 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -7,15 +7,15 @@ import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; +import com.glxp.api.entity.inout.IoOrderDetailBizEntity; +import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.req.inout.FilterCodeRequest; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.service.basic.IBasicBussinessTypeService; -import com.glxp.api.service.inout.IoCodeService; -import com.glxp.api.service.inout.IoOrderDetailResultService; -import com.glxp.api.service.inout.IoOrderService; +import com.glxp.api.service.inout.*; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -72,4 +72,23 @@ public class IoOrderDetailResultController { return ResultVOUtils.success(list); } + + @Resource + IoOrderDetailBizService orderDetailBizService; + @Resource + IoOrderDetailCodeService orderDetailCodeService; + @Resource + IoCheckInoutService checkInoutService; + + @AuthRuleAnnotation("") + @GetMapping("/udiwms/inout/wditCheck/filterList") + public BaseResponse waitCheckList(FilterOrderDetailResultRequest orderDetailResultRequest) { + + List orderDetailBizEntities = orderDetailBizService.findByOrderId(orderDetailResultRequest.getOrderIdFk()); + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderDetailResultRequest.getOrderIdFk()); + + return ResultVOUtils.success(checkInoutService.combineCheck(orderDetailBizEntities, orderDetailCodeEntities)); + } + + } diff --git a/src/main/java/com/glxp/api/res/inout/IoOrderCheckResultResponse.java b/src/main/java/com/glxp/api/res/inout/IoOrderCheckResultResponse.java new file mode 100644 index 000000000..963b44b9a --- /dev/null +++ b/src/main/java/com/glxp/api/res/inout/IoOrderCheckResultResponse.java @@ -0,0 +1,171 @@ +package com.glxp.api.res.inout; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class IoOrderCheckResultResponse { + + private Integer id; + + /** + * 订单号外键 + */ + private String orderIdFk; + + /** + * 耗材字典ID外键 + */ + private Long bindRlFk; + + /** + * DI信息UUID外键 + */ + private String uuidFk; + + /** + * DI + */ + private String nameCode; + + /** + * 批次号 + */ + private String bBatchNo; + + /** + * 生产日期 + */ + private String bProductDate; + + /** + * 失效日期 + */ + private String bExpireDate; + + + /** + * 批次号 + */ + private String sBatchNo; + + /** + * 生产日期 + */ + private String sProductDate; + + /** + * 失效日期 + */ + private String sExpireDate; + + /** + * 产品通用名称 + */ + private String coName; + + /** + * 注册证号 + */ + private String certCode; + + /** + * 医疗器械注册备案证号 + */ + private String ylqxzcrbarmc; + + /** + * 生产企业 + */ + private String manufacturer; + + /** + * 计量单位 + */ + private String measname; + + /** + * 规格型号 + */ + private String spec; + + /** + * 价格 + */ + private BigDecimal price; + + /** + * 销售清单号 + */ + private String secSalesListNo; + + /** + * 发票第一票 + */ + private String firstSalesInvNo; + + /** + * 发票第二票 + */ + private String secSalesInvNo; + + /** + * 发票有效期 + */ + private String invoiceDate; + + /** + * 供应商ID外键 + */ + private String supId; + + /** + * 绑定供应商状态 + */ + private String bindSupStatus; + + /** + * 单据数量 + */ + private int count; + + /** + * 备注 + */ + private String remark; + + /** + * 扩展字段1 + */ + private String remark1; + + /** + * 扩展字段2 + */ + private String remark2; + + /** + * 扩展字段3 + */ + private String remark3; + + /** + * 扩展字段4 + */ + private String remark4; + + /** + * 扩展字段5 + */ + private String remark5; + + private String bindRlIds; + + + private boolean checkSuccess; + + private int scanCount; + + +} diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index 2c64a917d..6229c1aa4 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -2,11 +2,13 @@ package com.glxp.api.service.inout; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantType; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.inv.InvPreinDetailEntity; +import com.glxp.api.res.inout.IoOrderCheckResultResponse; import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inout.IoOrderDetailCodeResponse; import com.glxp.api.service.basic.IBasicBussinessTypeService; @@ -17,10 +19,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 校验出入库服务 @@ -405,6 +404,64 @@ public class IoCheckInoutService { return errMsg; } + //单据合并校验 + public List combineCheck(List orderDetailBizEntities, List orderDetailCodeEntities) { + + List orderCheckResultResponses = new ArrayList<>(); + + for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { + boolean isPass = false; + for (IoOrderDetailCodeEntity codeEntity : orderDetailCodeEntities) { + if (!codeEntity.isCheckSuccess() && checkId(bizEntity, codeEntity) == null + && checkBatchNo(bizEntity, codeEntity) == null + ) { + //将产品ID,批次号匹配的合并,添加到列表 + IoOrderCheckResultResponse ioOrderCheckResultResponse = new IoOrderCheckResultResponse(); + BeanUtils.copyProperties(bizEntity, ioOrderCheckResultResponse); + ioOrderCheckResultResponse.setBBatchNo(bizEntity.getBatchNo()); + ioOrderCheckResultResponse.setBProductDate(bizEntity.getProductDate()); + ioOrderCheckResultResponse.setBExpireDate(bizEntity.getExpireDate()); + + ioOrderCheckResultResponse.setSBatchNo(codeEntity.getBatchNo()); + ioOrderCheckResultResponse.setSProductDate(codeEntity.getProductDate()); + ioOrderCheckResultResponse.setSExpireDate(codeEntity.getExpireDate()); + + bizEntity.setCheckSuccess(true); + codeEntity.setCheckSuccess(true); + bizEntity.setScanCount(codeEntity.getReCount()); + isPass = true; + orderCheckResultResponses.add(ioOrderCheckResultResponse); + break; + } + } + if (!isPass) { + //将未与扫码单 + IoOrderCheckResultResponse ioOrderCheckResultResponse = new IoOrderCheckResultResponse(); + BeanUtils.copyProperties(bizEntity, ioOrderCheckResultResponse); + ioOrderCheckResultResponse.setBBatchNo(bizEntity.getBatchNo()); + ioOrderCheckResultResponse.setBProductDate(bizEntity.getProductDate()); + ioOrderCheckResultResponse.setBExpireDate(bizEntity.getExpireDate()); + bizEntity.setScanCount(0); + ioOrderCheckResultResponse.setCheckSuccess(false); + orderCheckResultResponses.add(ioOrderCheckResultResponse); + } + } + for (IoOrderDetailCodeEntity codeEntity : orderDetailCodeEntities) { + if (!codeEntity.isCheckSuccess()) { + IoOrderCheckResultResponse ioOrderCheckResultResponse = new IoOrderCheckResultResponse(); + BeanUtils.copyProperties(codeEntity, ioOrderCheckResultResponse); + ioOrderCheckResultResponse.setSBatchNo(codeEntity.getBatchNo()); + ioOrderCheckResultResponse.setSProductDate(codeEntity.getProductDate()); + ioOrderCheckResultResponse.setSExpireDate(codeEntity.getExpireDate()); + ioOrderCheckResultResponse.setCount(0); + orderCheckResultResponses.add(ioOrderCheckResultResponse); + } + } + + + return orderCheckResultResponses; + } + //扫码单反向校验 public String codeOrderCheck(List orderDetailCodeEntities, List orderDetailBizEntities) {