diff --git a/src/main/java/com/glxp/api/constant/WorkOperType.java b/src/main/java/com/glxp/api/constant/WorkOperType.java new file mode 100644 index 000000000..470e6bf5a --- /dev/null +++ b/src/main/java/com/glxp/api/constant/WorkOperType.java @@ -0,0 +1,13 @@ +package com.glxp.api.constant; + +public interface WorkOperType { + + Integer TYPE_GEN_ORDER = 1; //扫码生成业务单(必须插入) + Integer TYPE_VAIL_BATCH = 2; //按单校验三期(是否插入可选) + Integer TYPE_UNVAIL_BATCH = 3; //按单不校验三期(是否插入可选) + + + Integer TYPE_INSERT = 1; + Integer TYPE_NOT_INSERT = 2; + +} diff --git a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java index e625ec25f..a046b2eae 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java @@ -157,8 +157,8 @@ public class UdiRelevanceController extends BaseController { List temps = udiRelevanceService.filterUdiGp(filterUdiRelRequest); if (temps != null && temps.size() > 0) { filterUdiRelRequest.setOriginUuid(temps.get(0).getOriginUuid()); - filterUdiRelRequest.setNameCode(null); } + filterUdiRelRequest.setNameCode(null); } } else { diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java index 46d21b751..e85a0c11f 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java @@ -6,7 +6,10 @@ import com.github.pagehelper.PageInfo; 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.constant.WorkOperType; import com.glxp.api.controller.BaseController; +import com.glxp.api.entity.auth.SysWorkplace; +import com.glxp.api.entity.basic.BasicCollectBustypeEntity; import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrderBiz; @@ -16,6 +19,8 @@ import com.glxp.api.req.inout.AddTagCodeReqeust; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.collect.CollectOrderCodeManResponse; +import com.glxp.api.service.auth.SysWorkplaceService; +import com.glxp.api.service.basic.BasicCollectBustypeService; import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.collect.IoCollectOrderBizService; import com.glxp.api.service.collect.IoCollectOrderCodeManService; @@ -74,6 +79,10 @@ public class IoCollectOrderCodeManController extends BaseController { return ResultVOUtils.success(pageSimpleResponse); } + @Resource + BasicCollectBustypeService bustypeService; + @Resource + SysWorkplaceService sysWorkPlaceService; /** * 器械拆零处方赋码(手动赋码) @@ -88,6 +97,9 @@ public class IoCollectOrderCodeManController extends BaseController { } IoCollectOrder collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); + BasicCollectBustypeEntity bustypeEntity = bustypeService.findByCode(collectOrder.getBusType()); + SysWorkplace workPlace = sysWorkPlaceService.getWorkplace(collectOrder.getWorkPlaceCode()); + if (collectOrder == null) return ResultVOUtils.error(500, "单据不存在!"); //1.校验UDI码完整性 @@ -105,18 +117,49 @@ public class IoCollectOrderCodeManController extends BaseController { return ResultVOUtils.error(500, "耗材字典不存在此产品!"); else udiRelevanceResponse = udiRelevanceResponses.get(0); - //2.校验是否处方单UDI码 + + IoCollectOrderBiz collectOrderBiz = null; List collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo()); - IoCollectOrderBiz collectOrderBiz = vailPrescribeProduct(udiRelevanceResponses, collectOrderBizs, udiEntity); - if (collectOrderBiz == null) - return ResultVOUtils.error(500, "非此单据UDI码!"); - - //3.校验该UDI码是否已经出库(是否在预出库队列) - Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode()); - if (!b1) { - return ResultVOUtils.error(500, "该UDI码未出库,无法使用!"); + //2.校验是否处方单UDI码 + if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_GEN_ORDER) { + //直接扫码单生成业务单 + collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); + collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); + collectOrderBizService.saveOrUpdate(collectOrderBiz); + } else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_VAIL_BATCH) { + + //3.校验该UDI码是否已经出库(是否在预出库队列) + Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode()); + if (!b1) { + return ResultVOUtils.error(500, "该追溯码未上货,无法使用!"); + } + + //按单校验三期 + collectOrderBiz = vailByBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity); + if (collectOrderBiz == null) + return ResultVOUtils.error(500, "非此单据追溯码!"); + else { + collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1); + } + + } else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_UNVAIL_BATCH) { + + //3.校验该UDI码是否已经出库(是否在预出库队列) + Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode()); + if (!b1) { + return ResultVOUtils.error(500, "该追溯码未上货,无法使用!"); + } + + //按单不校验三期 + collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs); + if (collectOrderBiz == null) + return ResultVOUtils.error(500, "非此单据追溯码!"); + else { + collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1); + } } - //4. + collectOrderBizService.updateById(collectOrderBiz); + IoCollectOrderCodeMan exitCode = collectOrderCodeManService.findByCode(collectOrderBiz.getOrderIdFk(), code); if (StrUtil.isEmpty(udiEntity.getSerialNo()) && exitCode != null) { exitCode.setScanCount(IntUtil.value(exitCode.getScanCount()) + 1); @@ -127,8 +170,12 @@ public class IoCollectOrderCodeManController extends BaseController { IoCollectOrderCodeMan collectOrderCodeMan = IoCollectOrderCodeMan.builder() .udiCode(code) + .orderIdFk(collectOrder.getBillNo()) .relId(collectOrderBiz.getRelId()) .nameCode(udiRelevanceResponse.getNameCode()) + .batchNo(udiEntity.getBatchNo()) + .productDate(udiEntity.getProduceDate()) + .expireDate(udiEntity.getExpireDate()) .createTime(new Date()) .createUser(getUserId()) .updateTime(new Date()) @@ -141,10 +188,46 @@ public class IoCollectOrderCodeManController extends BaseController { } - public IoCollectOrderBiz vailPrescribeProduct(List udiRelevanceResponses, List collectOrderBizs, UdiEntity udiEntity) { + public IoCollectOrderBiz scanGenOrder(List udiRelevanceResponses, List collectOrderBizs, UdiEntity udiEntity) { + for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { + for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { + if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) && + (StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo())) + ) { + collectOrderBiz.setCount(IntUtil.value(collectOrderBiz.getCount()) + 1); + collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); + return collectOrderBiz; + } + + } + } + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); + return IoCollectOrderBiz.builder() + .relId(udiRelevanceResponse.getRelId()) + .thrCode(udiRelevanceResponse.getMainId()) + .ybbm(udiRelevanceResponse.getYbbm()) + .payFeeCode(udiRelevanceResponse.getPayFeeCode()) + .cpmctymc(udiRelevanceResponse.getCpmctymc()) + .nameCode(udiRelevanceResponse.getNameCode()) + .ggxh(udiRelevanceResponse.getGgxh()) + .batchNo(udiEntity.getBatchNo()) + .productDate(udiEntity.getProduceDate()) + .expireDate(udiEntity.getExpireDate()) + .count(1) + .actCount(1) + .scanCount(1) + .scanActCount(1) + .measureUnit(udiRelevanceResponse.getMeasname()) + .createTime(new Date()) + .updateTime(new Date()) + .build(); + + } + + public IoCollectOrderBiz vailByBatchNo(List udiRelevanceResponses, List collectOrderBizs, UdiEntity udiEntity) { for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { - if (udiRelevanceResponse.getId().equals(collectOrderBiz) && + if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) && (StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo())) ) { return collectOrderBiz; @@ -156,4 +239,18 @@ public class IoCollectOrderCodeManController extends BaseController { } + public IoCollectOrderBiz vailNoBatchNo(List udiRelevanceResponses, List collectOrderBizs) { + for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { + for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { + if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) + ) { + return collectOrderBiz; + } + + } + } + return null; + } + + } diff --git a/src/main/java/com/glxp/api/entity/auth/SysWorkplace.java b/src/main/java/com/glxp/api/entity/auth/SysWorkplace.java index 643ef7704..46b08a499 100644 --- a/src/main/java/com/glxp/api/entity/auth/SysWorkplace.java +++ b/src/main/java/com/glxp/api/entity/auth/SysWorkplace.java @@ -11,9 +11,8 @@ import java.io.Serializable; import java.util.Date; /** -* -* @TableName system_workplace -*/ + * @TableName system_workplace + */ @Data @TableName(value = "sys_workplace") @@ -26,49 +25,48 @@ public class SysWorkplace implements Serializable { private Long id; /** - * 工位编码 - */ + * 工位编码 + */ @ApiModelProperty("工位编码") @TableField(value = "workplaceId") private Long workplaceId; /** - * 工位名称 - */ - @Size(max= 255,message="编码长度不能超过255") + * 工位名称 + */ + @Size(max = 255, message = "编码长度不能超过255") @ApiModelProperty("工位名称") - @Length(max= 255,message="编码长度不能超过255") + @Length(max = 255, message = "编码长度不能超过255") @TableField(value = "workplaceName") private String workplaceName; /** - * 所属仓库 - */ + * 所属仓库 + */ @ApiModelProperty("所属仓库") @TableField(value = "invCode") private Integer invCode; /** - * 备注 - */ - @Size(max= 255,message="编码长度不能超过255") + * 备注 + */ + @Size(max = 255, message = "编码长度不能超过255") @ApiModelProperty("备注") - @Length(max= 255,message="编码长度不能超过255") + @Length(max = 255, message = "编码长度不能超过255") @TableField(value = "remake") private String remake; /** - * - */ + * + */ @ApiModelProperty("") @TableField(value = "createTime") private Date createTime; /** - * - */ + * + */ @ApiModelProperty("") @TableField(value = "updateTime") private Date updateTime; - @TableField(value = "chargeUser") private String chargeUser; @@ -76,12 +74,25 @@ public class SysWorkplace implements Serializable { private Long constituencies; + /** + * 1.扫码生成业务单(必须插入); + * 2.按单校验三期(是否插入可选) + * 3.按单不校验三期(是否插入可选) + */ @TableField(value = "operationType") private Integer operationType; + /** + * 1.不插入 + * 2. 要插入 + */ @TableField(value = "checkInsert") private Integer checkInsert; + /** + * 1:信息提醒 + * 2。禁止录入 + */ @TableField(value = "warnType") private Integer warnType; @@ -102,6 +113,4 @@ public class SysWorkplace implements Serializable { private String employeeName; - - } diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderBiz.java b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderBiz.java index dc1940ab4..25b4edfd3 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderBiz.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderBiz.java @@ -10,16 +10,22 @@ import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 采集点单据详情 */ @ApiModel(value = "com-glxp-api-entity-collect-IoCollectOrderBiz") @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor @TableName(value = "io_collect_order_biz") public class IoCollectOrderBiz implements Serializable { - @TableId(value = "id", type = IdType.INPUT) + @TableId(value = "id", type = IdType.AUTO) @ApiModelProperty(value = "") private Integer id; /** diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeAuto.java b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeAuto.java index 7a0fce600..0ac1b828d 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeAuto.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeAuto.java @@ -64,7 +64,15 @@ public class IoCollectOrderCodeAuto implements Serializable { @TableField(value = "batchNo") @ApiModelProperty(value = "批次号") private String batchNo; - + @TableField(value = "productDate") + @ApiModelProperty(value = "") + private String productDate; + @TableField(value = "expireDate") + @ApiModelProperty(value = "") + private String expireDate; + @TableField(value = "serialNo") + @ApiModelProperty(value = "") + private String serialNo; @TableField(value = "createTime") @ApiModelProperty(value = "") diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java index 8163d32e5..b470e840f 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java @@ -45,6 +45,25 @@ public class IoCollectOrderCodeMan implements Serializable { @ApiModelProperty(value = "") private String nameCode; + + @TableField(value = "productDate") + @ApiModelProperty(value = "") + private String productDate; + @TableField(value = "expireDate") + @ApiModelProperty(value = "") + private String expireDate; + @TableField(value = "batchNo") + @ApiModelProperty(value = "") + private String batchNo; + @TableField(value = "serialNo") + @ApiModelProperty(value = "") + private String serialNo; + + @TableField(value = "scanCount") + @ApiModelProperty(value = "") + private Integer scanCount; + + @TableField(value = "remark") @ApiModelProperty(value = "") private String remark; @@ -65,10 +84,6 @@ public class IoCollectOrderCodeMan implements Serializable { @ApiModelProperty(value = "") private Long updateUser; - @TableField(value = "scanCount") - @ApiModelProperty(value = "扫码数量") - private Integer scanCount; - private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/req/collect/CollectOrderCodeManRequest.java b/src/main/java/com/glxp/api/req/collect/CollectOrderCodeManRequest.java index 2dcd10578..b4af15f3d 100644 --- a/src/main/java/com/glxp/api/req/collect/CollectOrderCodeManRequest.java +++ b/src/main/java/com/glxp/api/req/collect/CollectOrderCodeManRequest.java @@ -22,10 +22,10 @@ public class CollectOrderCodeManRequest extends ListPageRequest { private Date createTime; - private String createUser; + private Long createUser; private Date updateTime; - private Date updateUser; + private Long updateUser; } diff --git a/src/main/java/com/glxp/api/res/collect/CollectOrderCodeManResponse.java b/src/main/java/com/glxp/api/res/collect/CollectOrderCodeManResponse.java index 9471d3e85..6d2507731 100644 --- a/src/main/java/com/glxp/api/res/collect/CollectOrderCodeManResponse.java +++ b/src/main/java/com/glxp/api/res/collect/CollectOrderCodeManResponse.java @@ -21,11 +21,19 @@ public class CollectOrderCodeManResponse { private Date createTime; - private String createUser; + private Long createUser; private Date updateTime; - private Date updateUser; - - + private Long updateUser; + + private String cpmctymc; + private String ggxh; + private String batchNo; + private Integer scanCount; + private String zczbhhzbapzbh; + private String manufactory; + private String productDate; + private String expireDate; + private String serialNo; } diff --git a/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java b/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java index 9d3b426c5..c893e3f83 100644 --- a/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java +++ b/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java @@ -1,5 +1,6 @@ package com.glxp.api.service.auth; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -33,7 +34,13 @@ public class SysWorkplaceService extends ServiceImplpage = super.baseMapper.filterList(request); + List page = super.baseMapper.filterList(request); return page; } + + + public SysWorkplace getWorkplace(String code) { + return super.baseMapper.selectOne( + new LambdaQueryWrapper().eq(SysWorkplace::getWorkplaceId, code).last("limit 1")); + } } diff --git a/src/main/java/com/glxp/api/service/basic/BasicCollectBustypeService.java b/src/main/java/com/glxp/api/service/basic/BasicCollectBustypeService.java index 5c62e8ab7..70fbed378 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicCollectBustypeService.java +++ b/src/main/java/com/glxp/api/service/basic/BasicCollectBustypeService.java @@ -1,19 +1,25 @@ package com.glxp.api.service.basic; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.req.basic.BasicCollectBusTypeRequest; import com.glxp.api.res.basic.BasicCollectBusTypeResponse; +import lombok.Data; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.dao.basic.BasicCollectBustypeMapper; import com.glxp.api.entity.basic.BasicCollectBustypeEntity; +import javax.annotation.Resource; import java.util.Collections; import java.util.List; @Service public class BasicCollectBustypeService extends ServiceImpl { + @Resource + BasicCollectBustypeMapper basicCollectBustypeMapper; + public List filterList(BasicCollectBusTypeRequest request) { if (null == request) { return Collections.emptyList(); @@ -21,6 +27,11 @@ public class BasicCollectBustypeService extends ServiceImpl().eq(BasicCollectBustypeEntity::getCode, code).last("limit 1 ")); } + } diff --git a/src/main/resources/mybatis/mapper/collect/IoCollectOrderCodeAutoMapper.xml b/src/main/resources/mybatis/mapper/collect/IoCollectOrderCodeAutoMapper.xml index 85dee67e8..43e289346 100644 --- a/src/main/resources/mybatis/mapper/collect/IoCollectOrderCodeAutoMapper.xml +++ b/src/main/resources/mybatis/mapper/collect/IoCollectOrderCodeAutoMapper.xml @@ -3,10 +3,16 @@ - SELECT icocm.* + SELECT icocm.*, + bp.cpmctymc, + bp.ggxh, + bp.zczbhhzbapzbh, + bp.manufactory FROM io_collect_order_code_man icocm + left join basic_udirel bu on icocm.relId = bu.id + left join basic_products bp on bu.uuid = bp.uuid AND icocm.orderIdFk = #{orderIdFk}