From 201d03bf4e50f4f0dfdb1f371af08852a02c4e7b Mon Sep 17 00:00:00 2001 From: yewj Date: Sun, 25 Aug 2024 16:21:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=AB=E7=A0=81=E4=BD=9C=E4=B8=9A=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/entity/collect/IoCollectCode.java | 49 ++++--- .../collect/IoCollectOrderCodeAuto.java | 7 + .../res/collect/CollectOrderBizResponse.java | 2 +- .../service/collect/IoCollectCodeService.java | 121 ++++++++++++++++++ .../collect/IoCollectOrderService.java | 12 +- .../api/service/inout/IoSplitCodeService.java | 2 + 6 files changed, 166 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectCode.java b/src/main/java/com/glxp/api/entity/collect/IoCollectCode.java index 7eef35b03..183382a0c 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectCode.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectCode.java @@ -6,101 +6,118 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; 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-IoCollectCode") +@ApiModel(value = "com-glxp-api-entity-collect-IoCollectCode") @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor @TableName(value = "io_collect_code") public class IoCollectCode implements Serializable { - @TableId(value = "id", type = IdType.INPUT) - @ApiModelProperty(value="") + @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "") private Integer id; /** * 追溯码(UDI.药品) */ @TableField(value = "code") - @ApiModelProperty(value="追溯码(UDI.药品)") + @ApiModelProperty(value = "追溯码(UDI.药品)") private String code; /** * 单据来源 */ @TableField(value = "fromType") - @ApiModelProperty(value="单据来源") + @ApiModelProperty(value = "单据来源") private String fromType; /** * 单据类型 */ @TableField(value = "busType") - @ApiModelProperty(value="单据类型") + @ApiModelProperty(value = "单据类型") private String busType; /** * 单据号 */ @TableField(value = "billNo") - @ApiModelProperty(value="单据号") - private Integer billNo; + @ApiModelProperty(value = "单据号") + private String billNo; /** * 往来单位 */ @TableField(value = "fromCorp") - @ApiModelProperty(value="往来单位") + @ApiModelProperty(value = "往来单位") private String fromCorp; /** * 操作时间 */ @TableField(value = "operTime") - @ApiModelProperty(value="操作时间") + @ApiModelProperty(value = "操作时间") private Date operTime; /** * 操作人 */ @TableField(value = "operUser") - @ApiModelProperty(value="操作人") + @ApiModelProperty(value = "操作人") private String operUser; /** * 采集点 */ @TableField(value = "collectCode") - @ApiModelProperty(value="采集点") + @ApiModelProperty(value = "采集点") private String collectCode; /** * 采集点负责人 */ @TableField(value = "collectUser") - @ApiModelProperty(value="采集点负责人") + @ApiModelProperty(value = "采集点负责人") private String collectUser; /** * 工位 */ @TableField(value = "workPlaceCode") - @ApiModelProperty(value="工位") + @ApiModelProperty(value = "工位") private Long workPlaceCode; /** * 工位负责人 */ @TableField(value = "workPlaceUser") - @ApiModelProperty(value="工位负责人") + @ApiModelProperty(value = "工位负责人") private String workPlaceUser; /** * 备注 */ @TableField(value = "remark") - @ApiModelProperty(value="备注") + @ApiModelProperty(value = "备注") private String remark; + + /** + * 赋码方式 1:自动拆零赋码;2:自动整取赋码;3.手动赋码 + */ + @TableField(value = "fifoSplit") + @ApiModelProperty(value = "") + private Integer fifoSplit; + + private static final long serialVersionUID = 1L; } 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 26ba2f151..933a8db0e 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeAuto.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeAuto.java @@ -50,6 +50,10 @@ public class IoCollectOrderCodeAuto implements Serializable { @ApiModelProperty(value = "处方单号/业务单号") private String orderIdFk; + @TableField(value = "bizIdFk") + @ApiModelProperty(value = "业务详情ID外键") + private Long bizIdFk; + /** * 耗材字典ID */ @@ -93,6 +97,9 @@ public class IoCollectOrderCodeAuto implements Serializable { @TableField(value = "remark") @ApiModelProperty(value = "") private String remark; + /** + * 赋码方式 1:拆零;2:整取; + */ @TableField(value = "fifoSplit") @ApiModelProperty(value = "") private Integer fifoSplit; diff --git a/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java b/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java index de69badb9..edff03dfa 100644 --- a/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java +++ b/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java @@ -8,7 +8,7 @@ import java.util.Date; public class CollectOrderBizResponse { - private Integer id; + private Long id; /** * 单据号外键 */ diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectCodeService.java b/src/main/java/com/glxp/api/service/collect/IoCollectCodeService.java index 204e90614..92b0b42d0 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectCodeService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectCodeService.java @@ -1,12 +1,133 @@ package com.glxp.api.service.collect; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.glxp.api.entity.collect.IoCollectOrder; +import com.glxp.api.entity.collect.IoCollectOrderCodeAuto; +import com.glxp.api.entity.collect.IoCollectOrderCodeMan; +import com.glxp.api.req.collect.CollectOrderBizRequest; +import com.glxp.api.res.collect.CollectOrderBizResponse; +import com.glxp.api.util.IntUtil; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; + import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.dao.collect.IoCollectCodeMapper; import com.glxp.api.entity.collect.IoCollectCode; + @Service public class IoCollectCodeService extends ServiceImpl { + + @Resource + IoCollectCodeMapper collectCodeMapper; + @Resource + IoCollectOrderCodeAutoService collectOrderCodeAutoService; + @Resource + IoCollectOrderCodeManService collectOrderCodeManService; + @Resource + IoCollectOrderBizService collectOrderBizService; + @Resource + IoCollectOrderService collectOrderService; + + /** + * 根据单号插入扫码明细 + */ + public void insertCodesByBill(String billNo) { + + IoCollectOrder collectOrder = collectOrderService.getByBillNo(billNo); + + CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest(); + collectOrderBizRequest.setOrderIdFk(billNo); + + List list = collectOrderBizService.filterList(collectOrderBizRequest); + List splitCodes = collectOrderCodeAutoService.listByBillNo(collectOrderBizRequest.getOrderIdFk(), 1); + List unSplitCodes = collectOrderCodeAutoService.listByBillNo(collectOrderBizRequest.getOrderIdFk(), 2); + List manList = collectOrderCodeManService.listByBillNo(collectOrderBizRequest.getOrderIdFk()); + for (CollectOrderBizResponse collectOrderBiz : list) { + List temp1 = manList.stream() + .filter(obj -> obj.getBizIdFk().equals(collectOrderBiz.getId())) + .collect(Collectors.toList()); + List temp2 = splitCodes.stream() + .filter(obj -> obj.getBizIdFk().equals(collectOrderBiz.getId())) + .collect(Collectors.toList()); + List temp3 = unSplitCodes.stream() + .filter(obj -> obj.getBizIdFk().equals(collectOrderBiz.getId())) + .collect(Collectors.toList()); + if (CollUtil.isNotEmpty(temp1)) { + saveManuCode(temp1, collectOrder); + } else { + if (CollUtil.isNotEmpty(temp2)) { + saveSplitCode(temp2, collectOrder); + } + if (CollUtil.isNotEmpty(temp3)) { + saveUnSplitCode(temp3, collectOrder); + } + } + } + } + + + public void saveManuCode(List manList, IoCollectOrder collectOrder) { + if (CollUtil.isEmpty(manList)) + return; + List ioCollectCodes = new ArrayList<>(); + for (IoCollectOrderCodeMan ioCollectOrderCodeMan : manList) { + ioCollectCodes.add(IoCollectCode.builder().code(ioCollectOrderCodeMan.getUdiCode()) + .fromType(collectOrder.getFromType()) + .busType(collectOrder.getBusType()) + .billNo(collectOrder.getBillNo()) + .fromCorp(collectOrder.getFromCorp()) + .operTime(collectOrder.getUpdateTime()) + .operUser(collectOrder.getCreateUser()) + .fifoSplit(3) + .workPlaceCode(collectOrder.getWorkPlaceCode()) + .remark(collectOrder.getRemark()).build()); + } + saveBatch(ioCollectCodes); + } + + public void saveSplitCode(List codeAutoList, IoCollectOrder collectOrder) { + if (CollUtil.isEmpty(codeAutoList)) + return; + List ioCollectCodes = new ArrayList<>(); + for (IoCollectOrderCodeAuto ioCollectOrderCodeMan : codeAutoList) { + ioCollectCodes.add(IoCollectCode.builder().code(ioCollectOrderCodeMan.getUdiCode()) + .fromType(collectOrder.getFromType()) + .busType(collectOrder.getBusType()) + .billNo(collectOrder.getBillNo()) + .fromCorp(collectOrder.getFromCorp()) + .operTime(collectOrder.getUpdateTime()) + .operUser(collectOrder.getCreateUser()) + .fifoSplit(1) + .workPlaceCode(collectOrder.getWorkPlaceCode()) + .remark(collectOrder.getRemark()).build()); + } + saveBatch(ioCollectCodes); + } + + public void saveUnSplitCode(List codeAutoList, IoCollectOrder collectOrder) { + if (CollUtil.isEmpty(codeAutoList)) + return; + List ioCollectCodes = new ArrayList<>(); + for (IoCollectOrderCodeAuto ioCollectOrderCodeMan : codeAutoList) { + ioCollectCodes.add(IoCollectCode.builder().code(ioCollectOrderCodeMan.getUdiCode()) + .fromType(collectOrder.getFromType()) + .busType(collectOrder.getBusType()) + .billNo(collectOrder.getBillNo()) + .fromCorp(collectOrder.getFromCorp()) + .operTime(collectOrder.getUpdateTime()) + .operUser(collectOrder.getCreateUser()) + .fifoSplit(2) + .workPlaceCode(collectOrder.getWorkPlaceCode()) + .remark(collectOrder.getRemark()).build()); + } + saveBatch(ioCollectCodes); + } + } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index c89313ff9..baacf3fd5 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -112,10 +112,7 @@ public class IoCollectOrderService extends ServiceImpl