Forráskód Böngészése

兼容某些出院病人的医嘱还在在院医嘱表里

yeguodong 6 napja
szülő
commit
13747bd07a

+ 3 - 0
src/main/java/thyyxxk/webserver/dao/his/lc/company/LcCompanyDao.java

@@ -11,4 +11,7 @@ public interface LcCompanyDao extends BaseMapper<LcCompany> {
 
     @Select(" SELECT RIGHT('000' + CAST(MAX(CAST(serial_no AS INT)) + 1 AS VARCHAR(3)), 3) AS next_serial_no FROM lc_company where company_type = #{companyType}")
     String getSerialNo(@Param("companyType") String companyType);
+
+    @Select(" SELECT RIGHT('000' + CAST(MAX(CAST(serial_no AS INT)) + 1 AS VARCHAR(3)), 3) AS next_serial_no FROM #{tableName}")
+    String getSerialNoCommon(@Param("tableName") String tableName);
 }

+ 9 - 0
src/main/java/thyyxxk/webserver/dao/his/lc/sterile/SterileDao.java

@@ -0,0 +1,9 @@
+package thyyxxk.webserver.dao.his.lc.sterile;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import thyyxxk.webserver.entity.lc.sterile.Sterile;
+
+@Mapper
+public interface SterileDao extends BaseMapper<Sterile> {
+}

+ 14 - 0
src/main/java/thyyxxk/webserver/dao/his/lc/sterile/SterileDisinfectDao.java

@@ -0,0 +1,14 @@
+package thyyxxk.webserver.dao.his.lc.sterile;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Mapper;
+import thyyxxk.webserver.entity.lc.sterile.Sterile;
+import thyyxxk.webserver.entity.lc.sterile.SterileDisinfect;
+
+@Mapper
+public interface SterileDisinfectDao extends BaseMapper<SterileDisinfect> {
+
+    @Delete("delete from ")
+    int deleteBySterileId(String sterileId);
+}

+ 95 - 0
src/main/java/thyyxxk/webserver/entity/lc/sterile/Sterile.java

@@ -0,0 +1,95 @@
+package thyyxxk.webserver.entity.lc.sterile;
+import lombok.Data;
+
+/**
+ * 无菌物品实体类
+ */
+@Data
+public class Sterile {
+    /**
+     * 主键
+     */
+    private String id;
+
+    /**
+     * 流水号
+     */
+    private String serialNo;
+
+    /**
+     * 编码
+     */
+    private String sterileCode;
+
+    /**
+     * 关联项目id
+     */
+    private String lcProjectId;
+
+    /**
+     * 名称
+     */
+    private String sterileName;
+
+    /**
+     * 拼音码
+     */
+    private String pyCode;
+
+    /**
+     * 五笔码
+     */
+    private String wbCode;
+
+    /**
+     * 单位
+     */
+    private String sterileUnit;
+
+    /**
+     * 项目规格
+     */
+    private String projectSpecifications;
+
+    /**
+     * 是否单次耗材(0:否,1:是)
+     */
+    private String isSingle;
+
+    /**
+     * 最大使用次数(当是否单次耗材选择否时禁用)
+     */
+    private String maxUse;
+
+    /**
+     * 剩余使用次数
+     */
+    private String leaveUse;
+
+    /**
+     * 有效期
+     */
+    private String validityDate;
+
+    /**
+     * 有效期类型
+     */
+    private String validityType;
+
+    /**
+     * 总价
+     */
+    private String totalPrice;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 是否停用(0:启用,1:已删除)
+     */
+    private String delFlag;
+
+}
+

+ 27 - 0
src/main/java/thyyxxk/webserver/entity/lc/sterile/SterileDisinfect.java

@@ -0,0 +1,27 @@
+package thyyxxk.webserver.entity.lc.sterile;
+
+import lombok.Data;
+
+
+/**
+ * 无菌物品的消毒材料实体类
+ */
+@Data
+public class SterileDisinfect {
+    /**
+     * 主键
+     */
+    private String id;
+
+    /**
+     * 关联无菌物品ID
+     */
+    private String sterileId;
+
+    /**
+     * 关联消毒项目ID
+     */
+    private String lcProjectId;
+
+}
+

+ 17 - 0
src/main/java/thyyxxk/webserver/entity/lc/sterile/SterileParam.java

@@ -0,0 +1,17 @@
+package thyyxxk.webserver.entity.lc.sterile;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SterileParam extends Sterile{
+
+    private List<SterileDisinfect> sterileDisinfectList;
+
+    // 分页序号(从0开始)
+    private Integer pageNumber;
+
+    // 一页的记录条数
+    private Integer pageSize;
+}

+ 74 - 0
src/main/java/thyyxxk/webserver/service/lc/sterile/SterileService.java

@@ -0,0 +1,74 @@
+package thyyxxk.webserver.service.lc.sterile;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import thyyxxk.webserver.dao.his.lc.company.LcCompanyDao;
+import thyyxxk.webserver.dao.his.lc.sterile.SterileDao;
+import thyyxxk.webserver.dao.his.lc.sterile.SterileDisinfectDao;
+import thyyxxk.webserver.entity.lc.company.LcCompany;
+import thyyxxk.webserver.entity.lc.company.LcCompanyParam;
+import thyyxxk.webserver.entity.lc.sterile.Sterile;
+import thyyxxk.webserver.entity.lc.sterile.SterileDisinfect;
+import thyyxxk.webserver.entity.lc.sterile.SterileParam;
+
+import java.util.UUID;
+
+@Slf4j
+@Service
+public class SterileService {
+
+    @Autowired
+    private SterileDao sterileDao;
+
+    @Autowired
+    private LcCompanyDao lcCompanyDao;
+
+    @Autowired
+    private SterileDisinfectDao sterileDisinfectDao;
+
+    public Sterile getSterileById(String id) {
+        return sterileDao.selectById(id);
+    }
+
+    public Object getSterileList(SterileParam sterileParam) {
+        LambdaQueryWrapper<Sterile> queryWrapper = new LambdaQueryWrapper<>();
+        if (StringUtils.isNotBlank(sterileParam.getSterileName())) {
+            queryWrapper.like(Sterile::getSterileName, sterileParam.getSterileName());
+        }
+        Integer pageNumber = sterileParam.getPageNumber();
+        Integer pageSize = sterileParam.getPageSize();
+        if (pageNumber != null && pageSize != null) {
+            Page<Sterile> page = new Page<>(pageNumber, pageSize);
+            return sterileDao.selectPage(page, queryWrapper);
+        } else {
+            return sterileDao.selectList(queryWrapper);
+        }
+    }
+
+    public int insertSterile(SterileParam sterile) {
+        int num = 0;
+        if(StringUtils.isNotBlank(sterile.getId())) {
+            num = sterileDao.updateById(sterile);
+        } else {
+            sterile.setId(UUID.randomUUID().toString().replace("-", ""));
+            String serialNo = lcCompanyDao.getSerialNoCommon("sterile");
+            sterile.setSerialNo(serialNo);
+            String sterileCode = "WJ" + serialNo;
+
+            sterile.setSterileCode(sterileCode);
+            num = sterileDao.insert(sterile);
+
+            if(num > 0) {
+                for(SterileDisinfect sterileDisinfect: sterile.getSterileDisinfectList()) {
+                    sterileDisinfect.setId(UUID.randomUUID().toString().replace("-", ""));
+                    sterileDisinfectDao.insert(sterileDisinfect);
+                }
+            }
+        }
+        return num;
+    }
+}

+ 14 - 1
src/main/java/thyyxxk/webserver/service/medicaladvice/medicamanage/MedicalManagementService.java

@@ -84,13 +84,23 @@ public class MedicalManagementService {
         Map<String, Object> map = new HashMap<>(2);
         List<YzPrintVO> yzPrintVOList;
         String tableName = NumberEnum.ONE.getCode().equals(param.getInOutStatusFlag()) ? "yz_inact_order" : "yz_act_order";
+        String otherTableName = NumberEnum.ONE.getCode().equals(param.getInOutStatusFlag()) ? "yz_act_order" : "yz_inact_order";
         if (param.getType() == 1) {
             //长期医嘱
             String pageCondition = getPageCondition(param, "a.print_page");
             yzPrintVOList = dao.getcqYzPrint(param.getPatNo(), param.getTimes(), pageCondition,tableName);
+            // 兼容某些出院病人的医嘱还在在院医嘱表里
+            if(yzPrintVOList == null || yzPrintVOList.isEmpty()){
+                yzPrintVOList = dao.getcqYzPrint(param.getPatNo(), param.getTimes(), pageCondition,otherTableName);
+            }
+
         } else {
             String pageCondition = getPageCondition(param, "a.print_page_once");
             yzPrintVOList = dao.getlsYzPrint(param.getPatNo(), param.getTimes(), pageCondition,tableName);
+            // 兼容某些出院病人的医嘱还在在院医嘱表里
+            if(yzPrintVOList == null || yzPrintVOList.isEmpty()){
+                yzPrintVOList = dao.getcqYzPrint(param.getPatNo(), param.getTimes(), pageCondition,otherTableName);
+            }
         }
         if (CollUtil.isNotEmpty(yzPrintVOList)) {
             List<YzPrintVO> childrenList = yzPrintVOList.stream().filter(o -> o.getParentNo() != null).collect(Collectors.toList());
@@ -431,7 +441,10 @@ public class MedicalManagementService {
     public ResultVo<String> clearPrintPageNo(YzOrderParam param) {
         AssertUtil.isnotBlank(param.getPatNo(), "请选择一条病人");
         setYzActTableName(param);
-        dao.updatePrintPage(param, param.getType() == 1 ? "print_page =null" : "print_page_once=null", param.getTableName());
+        // 兼容某些出院病人的医嘱还在在院医嘱表里
+        dao.updatePrintPage(param, param.getType() == 1 ? "print_page =null" : "print_page_once=null", "yz_act_order");
+        dao.updatePrintPage(param, param.getType() == 1 ? "print_page =null" : "print_page_once=null", "yz_inact_order");
+
         dao.updatePrintPage(param, param.getType() == 1 ? "print_page =null" : "print_page_once=null", "yz_erase_order");
         QueryWrapper query = new QueryWrapper();
         query.eq("inpatient_no", param.getPatNo());