From 925c77a0feb784fcac09a986ee5e13f8bb1b0851 Mon Sep 17 00:00:00 2001 From: yewj Date: Mon, 18 Nov 2024 22:22:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E6=96=B9=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/mipsdl/client/ctqyy/CtqyyClient.java | 46 +++++- .../mipsdl/entity/ctqyy/VYpzsPresInfo.java | 9 ++ .../entity/inout/IoCollectOrderCodeMan.java | 104 +++++++++++++ .../base/UdiwmsBasicSkPrescribeRequest.java | 2 + .../other/ctqyy/VYpzsPresInfoMapper.xml | 138 ++++++++++-------- 5 files changed, 239 insertions(+), 60 deletions(-) create mode 100644 src/main/java/com/glxp/mipsdl/entity/inout/IoCollectOrderCodeMan.java diff --git a/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java b/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java index 3e29e50..53f6003 100644 --- a/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java @@ -36,6 +36,7 @@ import com.glxp.mipsdl.entity.auth.AuthWarehouseEntity; import com.glxp.mipsdl.entity.basic.*; import com.glxp.mipsdl.entity.ctqyy.*; import com.glxp.mipsdl.entity.inout.*; +import com.glxp.mipsdl.entity.system.UdiEntity; import com.glxp.mipsdl.entity.thrsys.*; import com.glxp.mipsdl.http.HttpClient; import com.glxp.mipsdl.req.base.*; @@ -671,7 +672,7 @@ public class CtqyyClient extends CommonHttpClient { .selectList(Wrappers.lambdaQuery(IoOrderInvoiceEntity.class).eq(IoOrderInvoiceEntity::getOrderIdFk, orderEntity.getBillNo()) .eq(IoOrderInvoiceEntity::getBindRlFk, i.getBindRlFk()) .eq(StrUtil.isNotEmpty(i.getBatchNo()), IoOrderInvoiceEntity::getBatchNo, i.getBatchNo()). - groupBy(IoOrderInvoiceEntity::getInvoiceEncode)); + groupBy(IoOrderInvoiceEntity::getInvoiceEncode)); if (CollectionUtil.isNotEmpty(invoiceList)) { fphm = invoiceList.stream().map(IoOrderInvoiceEntity::getInvoiceEncode).collect(Collectors.joining(",")); if (invoiceList.get(0).getInvoiceDate() != null) @@ -1395,7 +1396,11 @@ public class CtqyyClient extends CommonHttpClient { .or().like(VInsurNationGoodsPhysic::getPSN_NO, key) ); wrapper.and(StrUtil.isNotEmpty(fromCorpName), t -> t.eq(VInsurNationGoodsPhysic::getPSN_NAME, fromCorpName)); - + if (udiwmsBasicSkPrescribeRequest.getBusType().equals("YPCF003")) { + udiwmsBasicSkPrescribeRequest.setIN_HOSP("1"); + } else { + udiwmsBasicSkPrescribeRequest.setIN_HOSP("2"); + } udiwmsBasicSkPrescribeRequest.setDatabaseProductName(getDataSourceType()); // 拉取处方时,改成拉取v_ypzs_pres_info @@ -1730,6 +1735,13 @@ public class CtqyyClient extends CommonHttpClient { VYpzsPresInfo presInfoEntity = value.get(0); StringBuilder errorMsg = new StringBuilder(); IoCollectOrder ioCollectOrder = new IoCollectOrder(); + + //区分住院、门诊处方 + if (IntUtil.value(presInfoEntity.getIN_HOSP()) == 1) { + ioCollectOrder.setBusType("YPCF003"); + } else { + ioCollectOrder.setBusType("YPCF002"); + } ioCollectOrder.setBillNo(presInfoEntity.getPRESCRIBE_NUMBER()); ioCollectOrder.setFromType("HIS系统"); ioCollectOrder.setFromCorp(presInfoEntity.getSICK_ID()); @@ -1769,6 +1781,36 @@ public class CtqyyClient extends CommonHttpClient { collectOrderBiz.setCpmctymc(entity.getPHYSIC_NAME()); collectOrderBiz.setOrderIdFk(ioCollectOrder.getBillNo()); collectOrderBiz.setYbbm(entity.getCOUNTRY_CODE()); + if (StrUtil.isNotEmpty(entity.getCODE_LIST())) { + String[] codeArray = entity.getCODE_LIST().split(";"); + if (codeArray != null && codeArray.length > 0) { + List codeList = Arrays.asList(codeArray); + for (String code : codeList) { + UdiEntity udiEntity = FilterUdiUtils.getUdi(code); + IoCollectOrderCodeMan.builder() + .udiCode(code) + .orderIdFk(ioCollectOrder.getBillNo()) + .bizIdFk(collectOrderBiz.getId()) + .relId(collectOrderBiz.getRelId()) + .nameCode(udiEntity.getUdi()) + .batchNo(udiEntity.getBatchNo()) + .serialNo(udiEntity.getSerialNo()) + .productDate(udiEntity.getProduceDate()) + .expireDate(udiEntity.getExpireDate()) + .createTime(new Date()) + .createUser(1l) + .updateTime(new Date()) + .updateUser(1l) + .scanCount(1) + .isSplitCode(true) + .scanActCount(1) + .build(); + } + + } + + + } // collectOrderBiz.setRemark1(entity.get() + ""); collectOrderBiz.setTagStatus(1); diff --git a/src/main/java/com/glxp/mipsdl/entity/ctqyy/VYpzsPresInfo.java b/src/main/java/com/glxp/mipsdl/entity/ctqyy/VYpzsPresInfo.java index 1c1ebaa..5924802 100644 --- a/src/main/java/com/glxp/mipsdl/entity/ctqyy/VYpzsPresInfo.java +++ b/src/main/java/com/glxp/mipsdl/entity/ctqyy/VYpzsPresInfo.java @@ -68,5 +68,14 @@ public class VYpzsPresInfo implements Serializable { @TableField(value = "NL") private String NL; + + @TableField(value = "IN_HOSP") + private String IN_HOSP; + @TableField(value = "DEPT_CODE") + private String DEPT_CODE; + + @TableField(value = "CODE_LIST") + private String CODE_LIST; + private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/mipsdl/entity/inout/IoCollectOrderCodeMan.java b/src/main/java/com/glxp/mipsdl/entity/inout/IoCollectOrderCodeMan.java new file mode 100644 index 0000000..41cb8df --- /dev/null +++ b/src/main/java/com/glxp/mipsdl/entity/inout/IoCollectOrderCodeMan.java @@ -0,0 +1,104 @@ +package com.glxp.mipsdl.entity.inout; + +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 lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Date; + +/** + * 采集点单据手动赋码 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "io_collect_order_code_man") +public class IoCollectOrderCodeMan implements Serializable { + @TableId(value = "id", type = IdType.INPUT) + private Integer id; + + @TableField(value = "orderIdFk") + private String orderIdFk; + + + /** + * 绑定业务表ID + */ + @TableField(value = "bizIdFk") + private Long bizIdFk; + + @TableField(value = "udiCode") + private String udiCode; + + @TableField(value = "relId") + private Long relId; + + @TableField(value = "nameCode") + private String nameCode; + + + @TableField(value = "productDate") + private String productDate; + @TableField(value = "expireDate") + private String expireDate; + @TableField(value = "batchNo") + private String batchNo; + @TableField(value = "serialNo") + private String serialNo; + + @TableField(value = "scanCount") + private Integer scanCount; + + + @TableField(value = "scanActCount") + private Integer scanActCount; + + + @TableField(value = "remark") + private String remark; + + @TableField(value = "createTime") + private Date createTime; + + @TableField(value = "`createUser`") + private Long createUser; + + @TableField(value = "updateTime") + private Date updateTime; + + @TableField(value = "updateUser") + private Long updateUser; + + @TableField(value = "isSplitCode") + private Boolean isSplitCode; + + @TableField(exist = false) + private Boolean removeFlag; + + @TableField(exist = false) + private Boolean splitFlag; + @TableField(exist = false) + private Integer remainCount; + + /** + * 父级编码 + */ + @TableField(value = "parentCode") + private String parentCode; + + + /** + * 爷级编码 + */ + @TableField(value = "grantPaCode") + private String grantPaCode; + + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/com/glxp/mipsdl/req/base/UdiwmsBasicSkPrescribeRequest.java b/src/main/java/com/glxp/mipsdl/req/base/UdiwmsBasicSkPrescribeRequest.java index 23e2f22..ae765d4 100644 --- a/src/main/java/com/glxp/mipsdl/req/base/UdiwmsBasicSkPrescribeRequest.java +++ b/src/main/java/com/glxp/mipsdl/req/base/UdiwmsBasicSkPrescribeRequest.java @@ -134,5 +134,7 @@ public class UdiwmsBasicSkPrescribeRequest extends ListPageRequest { private String databaseProductName; + + private String IN_HOSP; } diff --git a/src/main/resources/mybatis/mapper/other/ctqyy/VYpzsPresInfoMapper.xml b/src/main/resources/mybatis/mapper/other/ctqyy/VYpzsPresInfoMapper.xml index 91a4e0b..4177888 100644 --- a/src/main/resources/mybatis/mapper/other/ctqyy/VYpzsPresInfoMapper.xml +++ b/src/main/resources/mybatis/mapper/other/ctqyy/VYpzsPresInfoMapper.xml @@ -1,92 +1,114 @@ - - - - - - - - - - - - - - - - - - - - - - - - LAY_TIME, STOOUT_NO, PRESCRIBE_NUMBER, PHYSIC_CODE, PHYSIC_NAME, BATCH_NUMBER, PACK_SPEC, - LAY_PHYSIC_QUANTITY, PHYSIC_UNIT, SICK_ID, RESIDENCE_NO, COUNTRY_CODE, CONFECT_MAN,SICK_NAME,SEX,IC_CARD_ID,NL - + + + + + + + + + + + + + + + + + + + + + + + + LAY_TIME, + STOOUT_NO, + PRESCRIBE_NUMBER, + PHYSIC_CODE, + PHYSIC_NAME, + BATCH_NUMBER, + PACK_SPEC, + LAY_PHYSIC_QUANTITY, + PHYSIC_UNIT, + SICK_ID, + RESIDENCE_NO, + COUNTRY_CODE, + CONFECT_MAN, + SICK_NAME, + SEX, + IC_CARD_ID, + NL + - - SELECT PRESCRIBE_NUMBER FROM v_ypzs_pres_info + and udiwmsBasicSkPrescribeRequest.databaseProductName == 'Oracle'"> = TO_DATE(#{udiwmsBasicSkPrescribeRequest.startTime} , 'YYYY-MM-DD HH24:MI:SS') ]]> + and udiwmsBasicSkPrescribeRequest.databaseProductName == 'Oracle'"> - - = #{udiwmsBasicSkPrescribeRequest.startTime} - ]]> - - - - + + = #{udiwmsBasicSkPrescribeRequest.startTime} + ]]> + + + + and ( STOOUT_NO = #{udiwmsBasicSkPrescribeRequest.code} - or PHYSIC_CODE = #{udiwmsBasicSkPrescribeRequest.code} - or PRESCRIBE_NUMBER = #{udiwmsBasicSkPrescribeRequest.code} - ) + or PHYSIC_CODE = #{udiwmsBasicSkPrescribeRequest.code} + or PRESCRIBE_NUMBER = #{udiwmsBasicSkPrescribeRequest.code} + ) + + + and IN_HOSP = #{udiwmsBasicSkPrescribeRequest.IN_HOSP} - - and (STOOUT_NO like '%' || #{udiwmsBasicSkPrescribeRequest.key} || '%' - or PHYSIC_CODE like '%' || #{udiwmsBasicSkPrescribeRequest.key} || '%' - or PRESCRIBE_NUMBER like '%' || #{udiwmsBasicSkPrescribeRequest.key} || '%' - ) + and udiwmsBasicSkPrescribeRequest.databaseProductName == 'Oracle'"> + and (STOOUT_NO like '%' || #{udiwmsBasicSkPrescribeRequest.key} || '%' + or PHYSIC_CODE like '%' || #{udiwmsBasicSkPrescribeRequest.key} || '%' + or PRESCRIBE_NUMBER like '%' || #{udiwmsBasicSkPrescribeRequest.key} || '%' + ) - and (STOOUT_NO like concat('%', #{udiwmsBasicSkPrescribeRequest.key}, '%') - or PHYSIC_CODE like concat('%', #{udiwmsBasicSkPrescribeRequest.key}, '%') - or PRESCRIBE_NUMBER like concat('%', #{udiwmsBasicSkPrescribeRequest.key}, '%') - ) + and udiwmsBasicSkPrescribeRequest.databaseProductName == 'MySQL'"> + and (STOOUT_NO like concat('%' + , #{udiwmsBasicSkPrescribeRequest.key} + , '%') + or PHYSIC_CODE like concat('%' + , #{udiwmsBasicSkPrescribeRequest.key} + , '%') + or PRESCRIBE_NUMBER like concat('%' + , #{udiwmsBasicSkPrescribeRequest.key} + , '%') + ) GROUP BY - PRESCRIBE_NUMBER + PRESCRIBE_NUMBER ORDER BY - PRESCRIBE_NUMBER + PRESCRIBE_NUMBER