From d345794cdba673829a9f54db9ef55c29d589352f Mon Sep 17 00:00:00 2001 From: anthonywj Date: Thu, 28 Dec 2023 09:55:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=82=A3=E8=80=85=E5=A4=84=E6=96=B9=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/BasicSickPrescribeDiController.java | 34 ++++++++++++++++++ .../basic/BasicSickerController.java | 11 ++++-- .../inout/IoOrderDetailResultController.java | 15 +++++++- .../basic/BasicBussinessTypeEntity.java | 5 +++ .../basic/BasicSkPrescribeDiEntity.java | 19 ++++++++-- .../api/entity/thrsys/ThrProductsEntity.java | 7 ++++ .../req/basic/BasicSkPrescribeDiRequest.java | 13 ++++--- .../req/basic/BussinessTypeSaveRequest.java | 1 + .../req/basic/FilterBussinessTypeRequest.java | 1 + .../glxp/api/req/basic/GetSickRequest.java | 5 +++ .../res/basic/BasicBussinessTypeResponse.java | 1 + .../api/res/thrsys/ThrProductsResponse.java | 1 + .../service/BasicSkPrescribeDiService.java | 3 ++ .../service/basic/BasicSkSickerService.java | 7 ++++ .../impl/BasicSkPrescribeDiServiceImpl.java | 9 +++++ .../api/service/inout/IoAddInoutService.java | 36 +++++++++++++++++++ .../mapper/basic/BasicSkSickerMapper.xml | 2 +- .../mybatis/mapper/thrsys/ThrProductsDao.xml | 12 ++++--- src/main/resources/schemas/schema_v2.4.sql | 4 +++ 19 files changed, 166 insertions(+), 20 deletions(-) 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 7ce1b181f..eefb0be5d 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicSickPrescribeDiController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicSickPrescribeDiController.java @@ -7,12 +7,17 @@ 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; import com.glxp.api.req.basic.BasicSkPrescribeDiRequest; import com.glxp.api.req.basic.GetSickPrescribeRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.service.BasicSkPrescribeDiService; import com.glxp.api.service.basic.BasicSkPrescribeService; import com.glxp.api.service.basic.BasicSkSickerService; +import com.glxp.api.service.inout.IoAddInoutService; +import com.glxp.api.service.inout.IoOrderDetailCodeService; +import com.glxp.api.service.inout.IoOrderService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -45,6 +50,34 @@ public class BasicSickPrescribeDiController { } + /** + * 获取处方校验详情 + * + * @return + */ + @GetMapping("/udiwms/basic/sk/prescribe/check") + public BaseResponse checkPrescribe(BasicSkPrescribeDiRequest basicSkPrescribeDiRequest) { + List basicSkPrescribeDiEntities; + if (StrUtil.isEmpty(basicSkPrescribeDiRequest.getAdNum())) + return ResultVOUtils.error(500, "病人住院信息"); + if (StrUtil.isEmpty(basicSkPrescribeDiRequest.getBillNo())) { + basicSkPrescribeDiEntities = basicSkPrescribeDiService.findBySkAdNum(basicSkPrescribeDiRequest.getAdNum()); + return ResultVOUtils.success(basicSkPrescribeDiEntities); + } + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(basicSkPrescribeDiRequest.getBillNo()); + IoOrderEntity orderEntity = orderService.findByBillNo(basicSkPrescribeDiRequest.getBillNo()); + basicSkPrescribeDiEntities = addInoutService.checkPrescirbe(orderDetailCodeEntities, orderEntity); + return ResultVOUtils.success(basicSkPrescribeDiEntities); + } + + @Resource + IoOrderDetailCodeService orderDetailCodeService; + @Resource + IoAddInoutService addInoutService; + @Resource + IoOrderService orderService; + + /** * 下载并返回处方信息 */ @@ -71,4 +104,5 @@ public class BasicSickPrescribeDiController { return ResultVOUtils.success(pageSimpleResponse); } + } diff --git a/src/main/java/com/glxp/api/controller/basic/BasicSickerController.java b/src/main/java/com/glxp/api/controller/basic/BasicSickerController.java index 5f8bfbf85..67ccc6981 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicSickerController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicSickerController.java @@ -1,5 +1,6 @@ package com.glxp.api.controller.basic; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.thread.ThreadUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.CusRedissonAnnotation; @@ -57,9 +58,13 @@ public class BasicSickerController extends BaseController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - ThreadUtil.execAsync(() -> { - basicSkSickerService.downloadSicker(getSickRequest, null); - }); + if (CollUtil.isNotEmpty(getSickRequest.getSelectSickers())) { + basicSkSickerService.replaceBatchs(getSickRequest.getSelectSickers()); + } else { + ThreadUtil.execAsync(() -> { + basicSkSickerService.downloadSicker(getSickRequest, null); + }); + } return ResultVOUtils.success("后台已开始下载,请稍后刷新查看!"); } 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 43d371ef9..22f6f89c3 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -11,9 +11,11 @@ import com.glxp.api.annotation.AuthRuleAnnotation; 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.Constant; import com.glxp.api.constant.ConstantType; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.auth.AuthAdmin; +import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.system.CompanyEntity; @@ -26,6 +28,7 @@ import com.glxp.api.res.inout.CptTraceResultResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.res.inout.IoOrderDetailVo; import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; import com.glxp.api.service.inout.impl.IoCodeService; @@ -95,6 +98,9 @@ public class IoOrderDetailResultController extends BaseController { return ResultVOUtils.page(pageInfo); } + @Resource + InvWarehouseService invWarehouseService; + /** * 查询单据扫码明细列表 * @@ -121,7 +127,14 @@ public class IoOrderDetailResultController extends BaseController { } orderDetailResultRequest.setActions(actions); AuthAdmin authAdmin = customerService.getUserBean(); - if (StrUtil.isBlank(orderDetailResultRequest.getInvCode())) { + + if (orderDetailResultRequest.getActionType().equals(Constant.ORDER_ACTION_PRE_DETAIL)) { + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByPreInv(); + orderDetailResultRequest.setInvCode(invWarehouseEntity.getCode()); + } else if (orderDetailResultRequest.getActionType().equals(Constant.ORDER_ACTION_PREIN_DETAIL)) { + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByPreInInv(); + orderDetailResultRequest.setInvCode(invWarehouseEntity.getCode()); + } else if (StrUtil.isBlank(orderDetailResultRequest.getInvCode())) { orderDetailResultRequest.setInvCode(authAdmin.getLocInvCode()); } List list = orderDetailResultService.filterOrderList(orderDetailResultRequest); diff --git a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java index 9966a71fa..7884bea28 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java @@ -467,5 +467,10 @@ public class BasicBussinessTypeEntity { @TableField(value = "vailPrescribe") private Boolean vailPrescribe; + /** + * 出库时是否手输患者信息 + */ + @TableField(value = "inputSick") + private Boolean inputSick; } 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 95dfd69b7..54b7b4871 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeDiEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicSkPrescribeDiEntity.java @@ -1,15 +1,14 @@ package com.glxp.api.entity.basic; -import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; -import lombok.Data; - /** * 处方关联的耗材信息表 * @@ -128,6 +127,20 @@ public class BasicSkPrescribeDiEntity implements Serializable { @TableField(value = "amount") private BigDecimal amount; + + /** + * 实际数量 + */ + @TableField(exist = false) + private Integer realCount; + + /** + * 实际价格 + */ + @TableField(exist = false) + private BigDecimal realPrice; + + @TableField(exist = false) private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/entity/thrsys/ThrProductsEntity.java b/src/main/java/com/glxp/api/entity/thrsys/ThrProductsEntity.java index acace89e2..3c5839682 100644 --- a/src/main/java/com/glxp/api/entity/thrsys/ThrProductsEntity.java +++ b/src/main/java/com/glxp/api/entity/thrsys/ThrProductsEntity.java @@ -204,4 +204,11 @@ public class ThrProductsEntity { @TableField("prcitmcode") private String prcitmcode; + /** + * 所属仓库/科室 + */ + @TableField("invCode") + private String invCode; + + } diff --git a/src/main/java/com/glxp/api/req/basic/BasicSkPrescribeDiRequest.java b/src/main/java/com/glxp/api/req/basic/BasicSkPrescribeDiRequest.java index f0b51e96a..2c11dc24f 100644 --- a/src/main/java/com/glxp/api/req/basic/BasicSkPrescribeDiRequest.java +++ b/src/main/java/com/glxp/api/req/basic/BasicSkPrescribeDiRequest.java @@ -11,44 +11,43 @@ public class BasicSkPrescribeDiRequest extends ListPageRequest { /** * 项目组套外键 */ - @TableField(value = "pId") private Long pId; /** * 患者编码 */ - @TableField(value = "sickerCode") private String sickerCode; /** * 住院号 */ - @TableField(value = "adNum") private String adNum; /** * 处方编码 */ - @TableField(value = "prescribeCode") private String prescribeCode; /** * 耗材产品id */ - @TableField(value = "relId") private Long relId; /** * 耗材名称 */ - @TableField(value = "thrName") private String thrName; /** * 耗材编码 */ - @TableField(value = "thrCode") private String thrCode; + /** + * 单据号 + */ + private String billNo; + + } diff --git a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java index e3c56c0e3..f9a3c745f 100644 --- a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java +++ b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java @@ -314,4 +314,5 @@ public class BussinessTypeSaveRequest { */ private Integer deptNoInvType; private Boolean vailPrescribe; + private Boolean inputSick; } diff --git a/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java b/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java index 533ab136a..f0ed404fd 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java @@ -134,5 +134,6 @@ public class FilterBussinessTypeRequest extends ListPageRequest { */ private String detailType; private Boolean vailPrescribe; + private Boolean inputSick; } diff --git a/src/main/java/com/glxp/api/req/basic/GetSickRequest.java b/src/main/java/com/glxp/api/req/basic/GetSickRequest.java index 1f9e8af03..4810b4d53 100644 --- a/src/main/java/com/glxp/api/req/basic/GetSickRequest.java +++ b/src/main/java/com/glxp/api/req/basic/GetSickRequest.java @@ -1,8 +1,11 @@ package com.glxp.api.req.basic; +import com.glxp.api.res.basic.BasicSkSickerResponse; import com.glxp.api.util.page.ListPageRequest; import lombok.Data; +import java.util.List; + @Data public class GetSickRequest extends ListPageRequest { @@ -16,5 +19,7 @@ public class GetSickRequest extends ListPageRequest { private String thirdSys; + private List selectSickers; + } diff --git a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java index e28acc871..113011282 100644 --- a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java +++ b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java @@ -190,4 +190,5 @@ public class BasicBussinessTypeResponse { */ private Integer deptNoInvType; private Boolean vailPrescribe; + private Boolean inputSick; } diff --git a/src/main/java/com/glxp/api/res/thrsys/ThrProductsResponse.java b/src/main/java/com/glxp/api/res/thrsys/ThrProductsResponse.java index e9f65b55b..b958a0be4 100644 --- a/src/main/java/com/glxp/api/res/thrsys/ThrProductsResponse.java +++ b/src/main/java/com/glxp/api/res/thrsys/ThrProductsResponse.java @@ -52,6 +52,7 @@ public class ThrProductsResponse { private String manufactoryCode; private String supCode; private String prcitmcode; + private String invCode; public String getSpec() { if(StrUtil.isNotEmpty(spec)){ diff --git a/src/main/java/com/glxp/api/service/BasicSkPrescribeDiService.java b/src/main/java/com/glxp/api/service/BasicSkPrescribeDiService.java index 014d2c623..f21c171f0 100644 --- a/src/main/java/com/glxp/api/service/BasicSkPrescribeDiService.java +++ b/src/main/java/com/glxp/api/service/BasicSkPrescribeDiService.java @@ -20,4 +20,7 @@ public interface BasicSkPrescribeDiService extends IService filterList(BasicSkPrescribeDiRequest basicSkPrescribeDiRequest); + + List findBySkAdNum(String adNum); + } diff --git a/src/main/java/com/glxp/api/service/basic/BasicSkSickerService.java b/src/main/java/com/glxp/api/service/basic/BasicSkSickerService.java index b721bbc55..23d124b13 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicSkSickerService.java +++ b/src/main/java/com/glxp/api/service/basic/BasicSkSickerService.java @@ -64,6 +64,13 @@ public class BasicSkSickerService extends ServiceImpl().eq("adNum", adNum).last("limit 1")); } + public void replaceBatchs(List basicSkSickerEntities) { + basicSkSickerEntities.forEach(item -> { + BasicSkSickerEntity basicSkSickerEntity = new BasicSkSickerEntity(); + BeanUtil.copyProperties(item, basicSkSickerEntity); + basicSkSickerMapper.replace(basicSkSickerEntity); + }); + } public BaseResponse downloadSicker(GetSickRequest request, Integer startPage) { int page = (int) redisUtil.get("thr_sicker_page"); diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicSkPrescribeDiServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicSkPrescribeDiServiceImpl.java index 44e837ba3..7a9c2c813 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicSkPrescribeDiServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicSkPrescribeDiServiceImpl.java @@ -1,5 +1,7 @@ package com.glxp.api.service.basic.impl; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity; @@ -32,6 +34,13 @@ public class BasicSkPrescribeDiServiceImpl extends ServiceImpl findBySkAdNum(String adNum) { + if (StrUtil.isEmpty(adNum)) + return Collections.emptyList(); + return super.baseMapper.selectList(new QueryWrapper().eq("adNum", adNum)); + } + } 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 280927258..85e67b21f 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -2,6 +2,7 @@ package com.glxp.api.service.inout; import cn.hutool.core.bean.BeanUtil; import com.glxp.api.entity.basic.*; +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; @@ -1177,4 +1178,39 @@ public class IoAddInoutService { } + @Resource + BasicSkPrescribeDiService basicSkPrescribeDiService; + + /** + * 单据类型是否校验处方(边扫边校验) + */ + public void checkPrescirbe(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeTempEntity codeTempEntity, IoOrderEntity orderEntity) { + if (StrUtil.isEmpty(orderEntity.getSickerAdNum())) { + return; + } +// basicSkPrescribeDiService. + + } + + + /** + * 单据类型是否校验处方(单据提交时校验) + */ + public List checkPrescirbe(List orderDetailCodeEntities, IoOrderEntity orderEntity) { + + List skPrescribeDiEntities = basicSkPrescribeDiService.findBySkAdNum(orderEntity.getSickerAdNum()); + if (skPrescribeDiEntities.size() > 0) { + for (BasicSkPrescribeDiEntity skPrescribeDiEntity : skPrescribeDiEntities) { + for (IoOrderDetailCodeEntity orderDetailCodeEntity : orderDetailCodeEntities) { + if (IntUtil.value(skPrescribeDiEntity.getRelId()) == IntUtil.value(orderDetailCodeEntity.getBindRlFk())) { + skPrescribeDiEntity.setRealCount(IntUtil.value(skPrescribeDiEntity.getRealCount()) + IntUtil.value(orderDetailCodeEntity.getReCount())); + skPrescribeDiEntity.setRealPrice(orderDetailCodeEntity.getPrice()); + } + } + } + } + return skPrescribeDiEntities; + } + + } diff --git a/src/main/resources/mybatis/mapper/basic/BasicSkSickerMapper.xml b/src/main/resources/mybatis/mapper/basic/BasicSkSickerMapper.xml index 16553edc8..83747f5f8 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicSkSickerMapper.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicSkSickerMapper.xml @@ -76,6 +76,6 @@ AND basic_sk_sicker.code LIKE concat('%', #{code}, '%') - limit 1,10 + limit 0,10 diff --git a/src/main/resources/mybatis/mapper/thrsys/ThrProductsDao.xml b/src/main/resources/mybatis/mapper/thrsys/ThrProductsDao.xml index 2c2a9e780..e60bb0e32 100644 --- a/src/main/resources/mybatis/mapper/thrsys/ThrProductsDao.xml +++ b/src/main/resources/mybatis/mapper/thrsys/ThrProductsDao.xml @@ -171,7 +171,7 @@ (id, code, `name`, measname, spec, registerNo, manufactory, cplb, flbm, qxlb, ybbm, sptm, tyshxydm, zczbhhzbapzbh, ylqxzcrbarmc, ylqxzcrbarywmc, cpms, thirdSysFk, updateTime, supName, model, standard, qtbm, zczyxqz, remark, remark1, remark2, remark3, - price, createUser, createTime, updateUser, manufactoryCode, supCode, type, prcitmcode) + price, createUser, createTime, updateUser, manufactoryCode, supCode, type, prcitmcode,invCode) values (#{id}, #{code}, #{name}, @@ -203,7 +203,7 @@ #{price}, #{createUser}, #{createTime}, - #{updateUser}, #{manufactoryCode}, #{supCode}, #{type}, #{prcitmcode}) + #{updateUser}, #{manufactoryCode}, #{supCode}, #{type}, #{prcitmcode},#{invCode})