diff --git a/src/main/java/com/glxp/api/controller/basic/BasicSickPrescribeDiController.java b/src/main/java/com/glxp/api/controller/basic/BasicSickPrescribeDiController.java index 3c2cf1578..abd69f9c8 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicSickPrescribeDiController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicSickPrescribeDiController.java @@ -5,7 +5,6 @@ import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; -import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity; import com.glxp.api.entity.basic.BasicSkSickerEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderEntity; @@ -13,7 +12,7 @@ import com.glxp.api.req.basic.BasicSkPrescribeDiRequest; import com.glxp.api.req.basic.GetSickPrescribeRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.BasicSkPrescribeDiResponse; -import com.glxp.api.service.BasicSkPrescribeDiService; +import com.glxp.api.service.basic.BasicSkPrescribeDiService; import com.glxp.api.service.basic.BasicSkPrescribeService; import com.glxp.api.service.basic.BasicSkSickerService; import com.glxp.api.service.inout.IoAddInoutService; @@ -36,8 +35,6 @@ public class BasicSickPrescribeDiController { @Resource BasicSkSickerService basicSkSickerService; @Resource - IoAddInoutService addInoutService; - @Resource IoCheckInoutService checkInoutService; diff --git a/src/main/java/com/glxp/api/dao/inout/IoSplitCodeMapper.java b/src/main/java/com/glxp/api/dao/inout/IoSplitCodeMapper.java index 4ecee6bac..a755b3342 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoSplitCodeMapper.java +++ b/src/main/java/com/glxp/api/dao/inout/IoSplitCodeMapper.java @@ -1,14 +1,17 @@ package com.glxp.api.dao.inout; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.dao.thrsys.ThrOrderDetailDao; import com.glxp.api.entity.inout.IoSplitCodeEntity; +import com.glxp.api.entity.thrsys.ThrOrderDetailEntity; import com.glxp.api.req.inout.IoSplitCodeRequest; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper -public interface IoSplitCodeMapper extends BaseMapper { +public interface IoSplitCodeMapper extends BaseMapperPlus { List filterList(IoSplitCodeRequest splitCodeRequest); } diff --git a/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeDiEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeDiEntity.java index e6e40a31e..747125874 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeDiEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeDiEntity.java @@ -109,6 +109,12 @@ public class BasicSkPrescribeDiEntity implements Serializable { @TableField(value = "ggxh") private String ggxh; + /** + * 批次号 + */ + @TableField(value = "batchNo") + private String batchNo; + /** * 备注 */ @@ -125,6 +131,20 @@ public class BasicSkPrescribeDiEntity implements Serializable { @TableField(value = "updateTime") private Date updateTime; + + /** + * 处方赋码状态 1:未赋码;2:部分赋码;3:已赋码 + */ + @TableField(value = "tagStatus") + private Integer tagStatus; + + + /** + * 处方赋码信息 + */ + @TableField(value = "tagMsg") + private String tagMsg; + /** * 实际数量 */ diff --git a/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeEntity.java index 074ecaaad..5f3687ce5 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeEntity.java @@ -128,4 +128,28 @@ public class BasicSkPrescribeEntity { @TableField(value = "updateTime") @ApiModelProperty(value = "更新时间") private LocalDateTime updateTime; + /** + * 处方下载转换状态 1:未转换;2:部分转换;3:已转换 + */ + @TableField(value = "trDiStatus") + private Integer trDiStatus; + + /** + * 处方赋码状态 1:未赋码;2:赋码中;3:已赋码 + */ + @TableField(value = "tagStatus") + private Integer tagStatus; + + /** + * 处方赋码信息 + */ + @TableField(value = "tagMsg") + private Integer tagMsg; + + /** + * 工位编码 + */ + @TableField(value = "workPlaceCode") + private String workPlaceCode; + } diff --git a/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeItemEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeItemEntity.java index eff843d1d..14233122f 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeItemEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeItemEntity.java @@ -120,7 +120,11 @@ public class BasicSkPrescribeItemEntity implements Serializable { */ @TableField(value = "adNum") private String adNum; - + /** + * 批次号 + */ + @TableField(value = "batchNo") + private String batchNo; @TableField(exist = false) private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/glxp/api/entity/inout/IoSplitCodeEntity.java b/src/main/java/com/glxp/api/entity/inout/IoSplitCodeEntity.java index f30e14293..78ae275b1 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoSplitCodeEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoSplitCodeEntity.java @@ -6,188 +6,204 @@ 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.Data; /** - * 科室出库码拆零表 - */ -@ApiModel(value="com-glxp-api-entity-inout-IoSplitCode") + * 科室出库码拆零表 + */ +@ApiModel(value = "com-glxp-api-entity-inout-IoSplitCode") @Data @TableName(value = "io_split_code") public class IoSplitCodeEntity implements Serializable { @TableId(value = "id", type = IdType.INPUT) - @ApiModelProperty(value="") + @ApiModelProperty(value = "") private Integer id; /** * UDI码 */ @TableField(value = "code") - @ApiModelProperty(value="UDI码") + @ApiModelProperty(value = "UDI码") private String code; /** * 缺少GS1标识UDI码 */ @TableField(value = "errUdiCode") - @ApiModelProperty(value="缺少GS1标识UDI码") + @ApiModelProperty(value = "缺少GS1标识UDI码") private String errUdiCode; /** * 所属出库单号 */ @TableField(value = "orderId") - @ApiModelProperty(value="所属出库单号") + @ApiModelProperty(value = "所属出库单号") private String orderId; /** * 单据类型 */ @TableField(value = "`action`") - @ApiModelProperty(value="单据类型") + @ApiModelProperty(value = "单据类型") private String action; /** * 物资字典主键 */ @TableField(value = "relId") - @ApiModelProperty(value="物资字典主键") + @ApiModelProperty(value = "物资字典主键") private Long relId; /** * 最小销售产品标识 */ @TableField(value = "nameCode") - @ApiModelProperty(value="最小销售产品标识") + @ApiModelProperty(value = "最小销售产品标识") private String nameCode; /** * 批次号 */ @TableField(value = "batchNo") - @ApiModelProperty(value="批次号") + @ApiModelProperty(value = "批次号") private String batchNo; /** * 生产日期 */ @TableField(value = "produceDate") - @ApiModelProperty(value="生产日期") + @ApiModelProperty(value = "生产日期") private String produceDate; /** * 失效日期 */ @TableField(value = "expireDate") - @ApiModelProperty(value="失效日期") + @ApiModelProperty(value = "失效日期") private String expireDate; /** * 序列号 */ @TableField(value = "serialNo") - @ApiModelProperty(value="序列号") + @ApiModelProperty(value = "序列号") private String serialNo; /** * 供应商ID */ @TableField(value = "supId") - @ApiModelProperty(value="供应商ID") + @ApiModelProperty(value = "供应商ID") private Long supId; /** * 部门编码 */ @TableField(value = "deptCode") - @ApiModelProperty(value="部门编码") + @ApiModelProperty(value = "部门编码") private String deptCode; /** * 仓库编码 */ @TableField(value = "invCode") - @ApiModelProperty(value="仓库编码") + @ApiModelProperty(value = "仓库编码") private String invCode; /** * 货位编码 */ @TableField(value = "warehouseCode") - @ApiModelProperty(value="货位编码") + @ApiModelProperty(value = "货位编码") private String warehouseCode; /** * 1:耗材;2:药品 */ @TableField(value = "productType") - @ApiModelProperty(value="1:耗材;2:药品") + @ApiModelProperty(value = "1:耗材;2:药品") private Integer productType; /** * 1:手动扫码拆包;2.自动拆包 */ @TableField(value = "splitType") - @ApiModelProperty(value="1:手动扫码拆包;2.自动拆包") + @ApiModelProperty(value = "1:手动扫码拆包;2.自动拆包") private Integer splitType; /** * 扫码数量 */ @TableField(value = "scanCount") - @ApiModelProperty(value="扫码数量") + @ApiModelProperty(value = "扫码数量") private Integer scanCount; /** * 总数量 */ @TableField(value = "totalCount") - @ApiModelProperty(value="总数量") + @ApiModelProperty(value = "总数量") private Integer totalCount; /** * 剩余数量 */ @TableField(value = "remainCount") - @ApiModelProperty(value="剩余数量") + @ApiModelProperty(value = "剩余数量") private Integer remainCount; /** * 内部批号 */ @TableField(value = "inBactchNo") - @ApiModelProperty(value="内部批号") + @ApiModelProperty(value = "内部批号") private String inBactchNo; /** * 创建日期 */ @TableField(value = "createTime") - @ApiModelProperty(value="创建日期") + @ApiModelProperty(value = "创建日期") private Date createTime; /** * 创建人 */ @TableField(value = "`createUser`") - @ApiModelProperty(value="创建人") + @ApiModelProperty(value = "创建人") private String createUser; /** * 更新日期 */ @TableField(value = "updateTime") - @ApiModelProperty(value="更新日期") + @ApiModelProperty(value = "更新日期") private Date updateTime; /** * 备注 */ @TableField(value = "remark") - @ApiModelProperty(value="备注") + @ApiModelProperty(value = "备注") private String remark; + /** + * 工位编码 + */ + @TableField(value = "workPlaceCode") + @ApiModelProperty(value = "工位编码") + private String workPlaceCode; + + + /** + * 拆零状态 1:未拆零;2:拆零中;3:已拆零 + */ + @TableField(value = "status") + @ApiModelProperty(value = "状态") + private Integer status; private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/entity/inout/IoSplitFifoCodeEntity.java b/src/main/java/com/glxp/api/entity/inout/IoSplitFifoCodeEntity.java index bedb608b3..0654e9a70 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoSplitFifoCodeEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoSplitFifoCodeEntity.java @@ -6,187 +6,189 @@ 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.Data; /** - * 预出库队列 - */ -@ApiModel(value="com-glxp-api-entity-inout-IoSplitFifoCode") + * 预出库队列 + */ +@ApiModel(value = "com-glxp-api-entity-inout-IoSplitFifoCode") @Data @TableName(value = "io_split_fifo_code") public class IoSplitFifoCodeEntity implements Serializable { @TableId(value = "id", type = IdType.INPUT) - @ApiModelProperty(value="") + @ApiModelProperty(value = "") private Integer id; /** * UDI码/药品追溯码 */ @TableField(value = "code") - @ApiModelProperty(value="UDI码/药品追溯码") + @ApiModelProperty(value = "UDI码/药品追溯码") private String code; /** * 缺少GS1标识UDI码 */ @TableField(value = "errUdiCode") - @ApiModelProperty(value="缺少GS1标识UDI码") + @ApiModelProperty(value = "缺少GS1标识UDI码") private String errUdiCode; /** * 所属出库单号 */ @TableField(value = "orderId") - @ApiModelProperty(value="所属出库单号") + @ApiModelProperty(value = "所属出库单号") private String orderId; /** * 单据类型 */ @TableField(value = "`action`") - @ApiModelProperty(value="单据类型") + @ApiModelProperty(value = "单据类型") private String action; /** * 物资字典主键 */ @TableField(value = "relId") - @ApiModelProperty(value="物资字典主键") + @ApiModelProperty(value = "物资字典主键") private Long relId; /** * 最小销售产品标识 */ @TableField(value = "nameCode") - @ApiModelProperty(value="最小销售产品标识") + @ApiModelProperty(value = "最小销售产品标识") private String nameCode; /** * 批次号 */ @TableField(value = "batchNo") - @ApiModelProperty(value="批次号") + @ApiModelProperty(value = "批次号") private String batchNo; /** * 生产日期 */ @TableField(value = "produceDate") - @ApiModelProperty(value="生产日期") + @ApiModelProperty(value = "生产日期") private String produceDate; /** * 失效日期 */ @TableField(value = "expireDate") - @ApiModelProperty(value="失效日期") + @ApiModelProperty(value = "失效日期") private String expireDate; /** * 序列号 */ @TableField(value = "serialNo") - @ApiModelProperty(value="序列号") + @ApiModelProperty(value = "序列号") private String serialNo; /** * 供应商ID */ @TableField(value = "supId") - @ApiModelProperty(value="供应商ID") + @ApiModelProperty(value = "供应商ID") private Long supId; /** * 部门编码 */ @TableField(value = "deptCode") - @ApiModelProperty(value="部门编码") + @ApiModelProperty(value = "部门编码") private String deptCode; /** * 仓库编码 */ @TableField(value = "invCode") - @ApiModelProperty(value="仓库编码") + @ApiModelProperty(value = "仓库编码") private String invCode; /** * 货位编码 */ @TableField(value = "warehouseCode") - @ApiModelProperty(value="货位编码") + @ApiModelProperty(value = "货位编码") private String warehouseCode; /** * 工位 */ @TableField(value = "workPlaceCode") - @ApiModelProperty(value="工位") + @ApiModelProperty(value = "工位") private String workPlaceCode; /** * 1:耗材;2:药品 */ @TableField(value = "productType") - @ApiModelProperty(value="1:耗材;2:药品") - private Byte productType; + @ApiModelProperty(value = "1:耗材;2:药品") + private Integer productType; /** * 1:手动扫码拆包;2.自动拆包 */ @TableField(value = "splitType") - @ApiModelProperty(value="1:手动扫码拆包;2.自动拆包") - private Byte splitType; + @ApiModelProperty(value = "1:手动扫码拆包;2.自动拆包") + private Integer splitType; /** * 扫码数量 */ @TableField(value = "scanCount") - @ApiModelProperty(value="扫码数量") + @ApiModelProperty(value = "扫码数量") private Integer scanCount; /** * 总数量 */ @TableField(value = "totalCount") - @ApiModelProperty(value="总数量") + @ApiModelProperty(value = "总数量") private Integer totalCount; /** * 内部批号 */ @TableField(value = "inBactchNo") - @ApiModelProperty(value="内部批号") + @ApiModelProperty(value = "内部批号") private String inBactchNo; /** * 创建日期 */ @TableField(value = "createTime") - @ApiModelProperty(value="创建日期") + @ApiModelProperty(value = "创建日期") private Date createTime; /** * 创建人 */ @TableField(value = "`createUser`") - @ApiModelProperty(value="创建人") + @ApiModelProperty(value = "创建人") private String createUser; /** * 更新日期 */ @TableField(value = "updateTime") - @ApiModelProperty(value="更新日期") + @ApiModelProperty(value = "更新日期") private Date updateTime; /** * 备注 */ @TableField(value = "remark") - @ApiModelProperty(value="备注") + @ApiModelProperty(value = "备注") private String remark; private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/glxp/api/service/BasicSkPrescribeDiService.java b/src/main/java/com/glxp/api/service/BasicSkPrescribeDiService.java deleted file mode 100644 index a67053aea..000000000 --- a/src/main/java/com/glxp/api/service/BasicSkPrescribeDiService.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.glxp.api.service; - -import com.github.pagehelper.PageHelper; -import com.glxp.api.dao.basic.BasicSkPrescribeDiMapper; -import com.glxp.api.dao.basic.BasicSkProjectMapper; -import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity; -import com.baomidou.mybatisplus.extension.service.IService; -import com.glxp.api.req.basic.BasicSkPrescribeDiRequest; -import com.glxp.api.req.basic.BasicSkPrescribeRequest; -import com.glxp.api.res.basic.BasicSkPrescribeDiResponse; -import com.glxp.api.res.basic.BasicSkPrescribeResponse; - -import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; - -/** - * 针对表【basic_sk_prescribe_item_detail(处方使用耗材信息表)】的数据库操作Service - */ -public interface BasicSkPrescribeDiService extends IService { - - List filterList(BasicSkPrescribeDiRequest basicSkPrescribeDiRequest); - - List findBySkAdNum(String adNum); - - BasicSkPrescribeDiEntity findByRelId(String adNum, Long relId); - - BasicSkPrescribeDiEntity findByThrCode(String adNum, String thrCode); -} diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicSkPrescribeDiServiceImpl.java b/src/main/java/com/glxp/api/service/basic/BasicSkPrescribeDiService.java similarity index 83% rename from src/main/java/com/glxp/api/service/basic/impl/BasicSkPrescribeDiServiceImpl.java rename to src/main/java/com/glxp/api/service/basic/BasicSkPrescribeDiService.java index 22a3967b0..f83bfeff9 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicSkPrescribeDiServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/BasicSkPrescribeDiService.java @@ -1,4 +1,4 @@ -package com.glxp.api.service.basic.impl; +package com.glxp.api.service.basic; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -6,12 +6,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity; import com.glxp.api.req.basic.BasicSkPrescribeDiRequest; -import com.glxp.api.req.basic.BasicSkPrescribeRequest; import com.glxp.api.res.basic.BasicSkPrescribeDiResponse; -import com.glxp.api.res.basic.BasicSkPrescribeResponse; -import com.glxp.api.service.BasicSkPrescribeDiService; import com.glxp.api.dao.basic.BasicSkPrescribeDiMapper; -import org.apache.regexp.RE; import org.springframework.stereotype.Service; import java.util.Collections; @@ -21,8 +17,7 @@ import java.util.List; * 针对表【basic_sk_prescribe_item_detail(处方关联的耗材信息表)】的数据库操作Service实现 */ @Service -public class BasicSkPrescribeDiServiceImpl extends ServiceImpl - implements BasicSkPrescribeDiService { +public class BasicSkPrescribeDiService extends ServiceImpl { public List filterList(BasicSkPrescribeDiRequest basicSkPrescribeDiRequest) { if (basicSkPrescribeDiRequest == null) { @@ -36,7 +31,7 @@ public class BasicSkPrescribeDiServiceImpl extends ServiceImpl findBySkAdNum(String adNum) { if (StrUtil.isEmpty(adNum)) return Collections.emptyList(); @@ -53,13 +48,22 @@ public class BasicSkPrescribeDiServiceImpl extends ServiceImpl() .eq("adNum", adNum).eq("thrCode", thrCode).last("limit 1")); return data; } + + public List findByPrescribe(String prescribeCode) { + List datas = super.baseMapper.selectList( + new QueryWrapper() + .eq("prescribeCode", prescribeCode)); + return datas; + } + + } diff --git a/src/main/java/com/glxp/api/service/basic/BasicSkPrescribeService.java b/src/main/java/com/glxp/api/service/basic/BasicSkPrescribeService.java index 23af4fbc1..146d9db33 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicSkPrescribeService.java +++ b/src/main/java/com/glxp/api/service/basic/BasicSkPrescribeService.java @@ -20,7 +20,6 @@ import com.glxp.api.req.basic.GetSickPrescribeRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.BasicSkPrescribeResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; -import com.glxp.api.service.BasicSkPrescribeDiService; import com.glxp.api.service.thrsys.ThrProductsService; import com.glxp.api.util.IntUtil; import org.springframework.stereotype.Service; @@ -170,7 +169,7 @@ public class BasicSkPrescribeService extends ServiceImpl skPrescribeItemEntities = basicSkPrescirbeDetailService.list(new QueryWrapper().eq("prescribeCode", skPrescribeEntity.getCode())); - if (CollUtil.isNotEmpty(skPrescribeItemEntities)) { - for (BasicSkPrescribeItemEntity skPrescribeItemEntity : skPrescribeItemEntities) { - } - } - } - - } diff --git a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java index 5c9412954..9414ef1fa 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -3,8 +3,6 @@ package com.glxp.api.service.inout; import cn.hutool.core.bean.BeanUtil; import com.glxp.api.entity.basic.*; import com.glxp.api.entity.inv.InvProductEntity; -import com.glxp.api.res.basic.BasicSkPrescribeDiResponse; -import com.glxp.api.service.BasicSkPrescribeDiService; import com.glxp.api.service.basic.*; import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.service.inv.impl.InvProductDetailService; 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 134b938b6..ba5bbd6c7 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -20,8 +20,8 @@ import com.glxp.api.res.basic.BasicSkPrescribeDiResponse; 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.BasicSkPrescribeDiService; import com.glxp.api.service.auth.InvWarehouseService; +import com.glxp.api.service.basic.BasicSkPrescribeDiService; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.service.inv.InvPreinProductDetailService; diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java index 641137a87..ec2de9e2f 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java @@ -1,17 +1,40 @@ package com.glxp.api.service.inout; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.inout.IoSplitCodeMapper; +import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity; +import com.glxp.api.entity.basic.BasicSkPrescribeEntity; import com.glxp.api.entity.inout.IoSplitCodeEntity; +import com.glxp.api.entity.inout.IoSplitFifoCodeEntity; import com.glxp.api.req.inout.IoSplitCodeRequest; +import com.glxp.api.service.basic.BasicSkPrescribeDiService; +import com.glxp.api.service.basic.BasicSkPrescribeService; +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.Collections; import java.util.List; @Service public class IoSplitCodeService extends ServiceImpl { + + @Resource + BasicSkPrescribeDiService basicSkPrescribeDiService; + @Resource + IoSplitCodeMapper splitCodeMapper; + @Resource + IoSplitFifoCodeService splitFifoCodeService; + @Resource + BasicSkPrescribeService basicSkPrescribeService; + + public List filterList(IoSplitCodeRequest splitCodeRequest) { if (splitCodeRequest == null) { return Collections.emptyList(); @@ -23,4 +46,148 @@ public class IoSplitCodeService extends ServiceImpl findSplitCodes(Long relId, String batchNo, String workPlaceCode) { + List ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper() + .eq(IoSplitCodeEntity::getRelId, relId) + .eq(StrUtil.isNotEmpty(batchNo), IoSplitCodeEntity::getBatchNo, batchNo) + .eq(StrUtil.isNotEmpty(workPlaceCode), IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode) + .in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo)); + return ioSplitCodeEntities; + } + + + /** + * 处方赋码 + */ + public void prescribeTagCode(BasicSkPrescribeEntity basicSkPrescribeEntity) { + + List basicSkPrescribeDiEntities = basicSkPrescribeDiService.findByPrescribe(basicSkPrescribeEntity.getAdNum()); + //处方赋码状态 1:未赋码,2:部分赋码,3:全部赋码 + for (BasicSkPrescribeDiEntity basicSkPrescribeDiEntity : basicSkPrescribeDiEntities) { + + //1.按照先进先出原则,查询拆零表,获取拆零表ID + List ioSplitCodeEntities = findSplitCodes(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), basicSkPrescribeEntity.getWorkPlaceCode()); + + //2.如果拆零表为空,则自动从预出库队列中获拉取数据 + if (CollUtil.isEmpty(ioSplitCodeEntities)) { + addFifoCode(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), IntUtil.value(basicSkPrescribeDiEntity.getMeasureCount())); + } + ioSplitCodeEntities = findSplitCodes(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), basicSkPrescribeEntity.getWorkPlaceCode()); + + //3.如果拆零表不为空,则开始扣除数量 + int count = 0; + int unCount = 0; //剩余未扣减数量 + unCount = IntUtil.value(basicSkPrescribeDiEntity.getMeasureCount()); + for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) { + count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount; + if (count > 0) { + ioSplitCodeEntity.setRemainCount(count); + break; + } else if (count == 0) { + ioSplitCodeEntity.setRemainCount(0); + } else { + ioSplitCodeEntity.setRemainCount(0); + unCount = -count; + } + } + + if (unCount > 0) { + //4.拆零表数量不足,则从预出库队列中获取数据 + Integer fifoCount = addFifoCode(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), unCount); + if (fifoCount == 0) { + //预出库队列数量不足 + basicSkPrescribeDiEntity.setTagStatus(2); + basicSkPrescribeDiEntity.setTagMsg("预出库队列码数量不足,赋码失败!"); + } else { + //再次执行赋码 + ioSplitCodeEntities = findSplitCodes(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), basicSkPrescribeEntity.getWorkPlaceCode()); + for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) { + count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount; + if (count > 0) { + ioSplitCodeEntity.setRemainCount(count); + break; + } else if (count == 0) { + ioSplitCodeEntity.setRemainCount(0); + } else { + ioSplitCodeEntity.setRemainCount(0); + unCount = -count; + } + } + if (unCount > 0) { + basicSkPrescribeDiEntity.setTagStatus(2); + basicSkPrescribeDiEntity.setTagMsg("预出库队列码数量不足,赋码失败!"); + } else { + basicSkPrescribeDiEntity.setTagStatus(3); + basicSkPrescribeDiEntity.setTagMsg("赋码完成!"); + } + } + } + basicSkPrescribeDiService.updateById(basicSkPrescribeDiEntity); + } + basicSkPrescribeEntity.setTagStatus(checkStatus(basicSkPrescribeDiEntities)); + basicSkPrescribeService.updateById(basicSkPrescribeEntity); + } + + + /** + * 从预出库队列里面取出数据,添加至拆零表 + */ + public Integer addFifoCode(Long relId, String batchNo, Integer needCount) { + + List splitFifoCodeEntities = splitFifoCodeService + .list(new LambdaQueryWrapper() + .eq(IoSplitFifoCodeEntity::getRelId, relId) + .eq(StrUtil.isNotEmpty(batchNo), IoSplitFifoCodeEntity::getBatchNo, batchNo) + .orderByAsc(IoSplitFifoCodeEntity::getInBactchNo) + ); + Integer count = 0; + List addSplitCodeEntities = new ArrayList<>(); + List removeIds = new ArrayList<>(); + for (IoSplitFifoCodeEntity splitFifoCodeEntity : splitFifoCodeEntities) { + count = IntUtil.value(splitFifoCodeEntity.getTotalCount()) + count; + IoSplitCodeEntity splitCodeEntity = new IoSplitCodeEntity(); + BeanUtils.copyProperties(splitFifoCodeEntity, splitCodeEntity); + splitCodeEntity.setStatus(1); + splitCodeEntity.setId(null); + addSplitCodeEntities.add(splitCodeEntity); + removeIds.add(splitFifoCodeEntity.getId()); + if (count >= needCount) { + break; + } + } + if (removeIds.size() > 0) { + splitFifoCodeService.removeByIds(removeIds); + } + if (addSplitCodeEntities.size() > 0) { + splitCodeMapper.insertBatch(addSplitCodeEntities); + } + return count; + + } + + + public int checkStatus(List list) { + boolean hasTwo = false; + boolean hasOne = false; + for (BasicSkPrescribeDiEntity di : list) { + int tagStatus = di.getTagStatus(); + if (tagStatus == 2) { + hasTwo = true; + } else if (tagStatus == 1) { + hasOne = true; + } else if (tagStatus != 3) { + throw new IllegalArgumentException("Invalid tagStatus value: " + tagStatus); + } + } + if (hasTwo) { + return 2; + } else if (hasOne) { + return 1; + } else { + return 3; + } + } + } diff --git a/src/main/resources/mybatis/mapper/basic/BasicSkPrescribeDiMapper.xml b/src/main/resources/mybatis/mapper/basic/BasicSkPrescribeDiMapper.xml index 884249c80..d6bd881c4 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicSkPrescribeDiMapper.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicSkPrescribeDiMapper.xml @@ -3,25 +3,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - - -