瀏覽代碼

代码优化

hurugang 5 年之前
父節點
當前提交
2e812e932c

+ 38 - 0
src/main/java/cn/hnthyy/thmz/entity/his/JcZdItem.java

@@ -0,0 +1,38 @@
+package cn.hnthyy.thmz.entity.his;
+
+import lombok.Data;
+
+/**
+ * 检查字典
+ */
+@Data
+public class JcZdItem {
+    //tc_no
+    private String code;
+    //tc_name
+    private String name;
+    //标本类型
+    private String classCode;
+    //拼音码
+    private String pyCode;
+    // 五笔编码  对应数据库d_code
+    private String wbCode;
+    //删除标志
+    private String delFlag;
+    //执行科室
+    private String execUnit;
+    //体检标记
+    private String tjFlag;
+    //住院标记
+    private String zyFlag;
+    //住院医嘱吗
+    private String zyOrderCode;
+    //门诊标记
+    private String mzFlag;
+    //门诊处方码
+    private String mzCode;
+    //部位编码
+    private String bwCode;
+    //组编码
+    private String groupCode;
+}

+ 3 - 0
src/main/java/cn/hnthyy/thmz/entity/his/JyZdItem.java

@@ -2,6 +2,9 @@ package cn.hnthyy.thmz.entity.his;
 
 import lombok.Data;
 
+/**
+ * 检验字典
+ */
 @Data
 public class JyZdItem {
     //tc_no

+ 36 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/JcZdItemMapper.java

@@ -0,0 +1,36 @@
+package cn.hnthyy.thmz.mapper.his;
+
+import cn.hnthyy.thmz.entity.his.JcZdItem;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+public interface JcZdItemMapper {
+
+    /**根据单个检查字典查询收费编码
+     * @param code
+     * @return
+     */
+    @Select("select rtrim(code) code,name,rtrim(class) class_code,py_code,d_code wb_code,rtrim(del_flag) del_flag,rtrim(exec_unit) exec_unit,rtrim(tj_flag) tj_flag," +
+            "rtrim(zy_flag) zy_flag,zy_order_code,rtrim(mz_flag) mz_flag,mz_code,bw_code,group_code from jc_zd_item where code=#{code,jdbcType=CHAR}")
+    JcZdItem selectJcZdItemByCode(@Param("code") String code);
+
+    /**
+     * 根据检查字典集合查询所含的收费编码集合
+     * @param codes
+     * @return
+     */
+    @Select({"<script>",
+            "select rtrim(code) code,name,rtrim(class) class_code,py_code,d_code wb_code,rtrim(del_flag) del_flag,rtrim(exec_unit) exec_unit,rtrim(tj_flag) tj_flag," +
+                    "rtrim(zy_flag) zy_flag,zy_order_code,rtrim(mz_flag) mz_flag,mz_code,bw_code,group_code from jc_zd_item ",
+            "<when test='codes!=null'>",
+            " where code in",
+            "<foreach item='item' index='index' collection='codes' open='(' separator=',' close=')'>",
+            "#{item}",
+            "</foreach>",
+            "</when>",
+            "</script>"})
+    List<JcZdItem> selectJcZdItemByCodeList(@Param("codes") List<String> codes);
+
+}

+ 3 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/MzYshConfigMapper.java

@@ -26,6 +26,9 @@ public interface MzYshConfigMapper {
             "<when test='reqNo!=null'>",
             "req_no =#{reqNo,jdbcType=INTEGER}",
             "</when>",
+            "<when test='reqPageNo!=null'>",
+            "req_page_no =#{reqPageNo,jdbcType=INTEGER}",
+            "</when>",
             "</trim>",
             "</script>"})
     int updateMzYshConfig(MzYshConfig mzYshConfig);

+ 7 - 0
src/main/java/cn/hnthyy/thmz/service/his/MzYshConfigService.java

@@ -9,4 +9,11 @@ public interface MzYshConfigService {
      */
     int getReqNo() throws MzException;
 
+    /**
+     * 获取申请单号
+     * @return
+     * @throws MzException
+     */
+    int getReqPageNo() throws MzException;
+
 }

+ 47 - 4
src/main/java/cn/hnthyy/thmz/service/impl/his/MzChargeDetailServiceImpl.java

@@ -91,6 +91,9 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
     @SuppressWarnings("all")
     @Autowired
     private YpMzFytjMapper ypMzFytjMapper;
+    @SuppressWarnings("all")
+    @Autowired
+    private JcZdItemMapper jcZdItemMapper;
 
     @Override
     public int countMzChargeDetail(MzChargeDetailPageDto mzChargeDetailPageDto) {
@@ -625,9 +628,49 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
         updateMzPatientMi.setTimes(times);
         updateMzPatientMi.setLvDate(now);
         mzPatientMiMapper.updateMzPatientMi(updateMzPatientMi);
-        for (MzYjReq mzYjReq : mzPrescriptionVo.getMzYjReqList()) {
-            mzYjReq.setReqNo(mzYshConfigService.getReqNo());
-            mzYjReq.setTimes(times);
+        //保存医技入库
+        if (mzPrescriptionVo.getMzYjReqList() != null && mzPrescriptionVo.getMzYjReqList().size() > 0) {
+            for (MzYjReq mzYjReq : mzPrescriptionVo.getMzYjReqList()) {
+                mzYjReq.setReqNo(mzYshConfigService.getReqNo());
+                mzYjReq.setPageNo(String.valueOf(mzYshConfigService.getReqPageNo()));
+                mzYjReq.setReqDate(now);
+                mzYjReq.setOrderNo(0);
+                mzYjReq.setItemNo(0);
+                mzYjReq.setReceiptNo(0);
+                mzYjReq.setPatientId(mzPrescriptionVo.getPatientId());
+                mzYjReq.setPatientName(mzPatientMi.getName());
+                mzYjReq.setTimes(times);
+                mzYjReq.setReqWard(mzPrescriptionVo.getVisitDeptCode());
+                mzYjReq.setStatusFlag(YesNoEnum.YES.code.toString());
+                mzYjReq.setBirthDate(mzPrescriptionVo.getBirthDate());
+                mzYjReq.setPayMark(PayMarkEnum.NO_CHARGE.code);
+                JcZdItem jcZdItem = jcZdItemMapper.selectJcZdItemByCode(mzYjReq.getOrderCode());
+                if (jcZdItem != null) {
+                    mzYjReq.setOrderName(jcZdItem.getName());
+                    mzYjReq.setGroupName(jcZdItem.getName());
+                    mzYjReq.setReqType(ReqTypeEnum.JIAN_CHA.code);
+                    mzYjReq.setExecDept(jcZdItem.getExecUnit());
+                    mzYjReq.setInspectPart(mzPrescriptionVo.getInspectPart());
+                    mzYjReq.setReqComment(mzPrescriptionVo.getReqComment());
+                    mzYjReq.setReqTzComment(mzPrescriptionVo.getReqTzComment());
+                } else {
+                    JyZdItem jyZdItem = jyZdItemService.queryJyZdItemByCode(mzYjReq.getOrderCode());
+                    if (jyZdItem == null) {
+                        throw new MzException("没有找到医技编码【" + mzYjReq.getOrderCode() + "】对应的医技项目,请确认参数是否正确!");
+                    }
+                    mzYjReq.setOrderName(jyZdItem.getName());
+                    mzYjReq.setGroupName(jyZdItem.getName());
+                    mzYjReq.setReqType(ReqTypeEnum.JIAN_YAN.code);
+                    mzYjReq.setExecDept(jyZdItem.getExecUnit());
+                }
+                mzYjReqMapper.insertMzYjReq(mzYjReq);
+            }
+        }
+        //保存药品入库
+        if(mzPrescriptionVo.getMzChargeDetailList()!=null && mzPrescriptionVo.getMzChargeDetailList().size()>0){
+            for (MzChargeDetail mzChargeDetail:mzPrescriptionVo.getMzChargeDetailList()){
+
+            }
         }
         return 0;
     }
@@ -1352,7 +1395,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
         newMzVisitTable.setVisitDeptCode(mzPrescriptionVo.getVisitDeptCode());
         newMzVisitTable.setDoctorCode(mzPrescriptionVo.getDoctorCode());
         newMzVisitTable.setVisitDate(now);
-        newMzVisitTable.setOpId(mzPrescriptionVo.getOpId());
+        newMzVisitTable.setOpId(mzPrescriptionVo.getDoctorCode());
         newMzVisitTable.setOpDay(now);
         newMzVisitTable.setFirstOrNot(times == 1 ? YesNoEnum.NO.code : YesNoEnum.YES.code);
         newMzVisitTable.setReceiveFlag(YesNoEnum.NO.code);

+ 22 - 1
src/main/java/cn/hnthyy/thmz/service/impl/his/MzYshConfigServiceImpl.java

@@ -25,10 +25,31 @@ public class MzYshConfigServiceImpl implements MzYshConfigService {
             throw new MzException("序列号生成器不存在,请先设置!");
         }
         mzYshConfig.setReqNo(mzYshConfig.getReqNo() + 1);
-        int num = mzYshConfigMapper.updateMzYshConfig(mzYshConfig);
+        MzYshConfig updateMzYshConfig = new MzYshConfig();
+        updateMzYshConfig.setReqNo(mzYshConfig.getReqNo());
+        int num = mzYshConfigMapper.updateMzYshConfig(updateMzYshConfig);
         if (num == 0) {
             throw new MzException("获取医技申请单号失败,请重试!");
         }
         return mzYshConfig.getReqNo();
     }
+
+
+    @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, timeout = 36000, rollbackFor = Exception.class)
+    @Override
+    public int getReqPageNo() throws MzException {
+        mzYshConfigMapper.updateForBlock();
+        MzYshConfig mzYshConfig = mzYshConfigMapper.selectMzYshConfig();
+        if (mzYshConfig == null) {
+            throw new MzException("申请单号生成器不存在,请先设置!");
+        }
+        mzYshConfig.setReqPageNo(mzYshConfig.getReqPageNo() + 1);
+        MzYshConfig updateMzYshConfig = new MzYshConfig();
+        updateMzYshConfig.setReqPageNo(mzYshConfig.getReqPageNo());
+        int num = mzYshConfigMapper.updateMzYshConfig(updateMzYshConfig);
+        if (num == 0) {
+            throw new MzException("获取医技申请单号失败,请重试!");
+        }
+        return mzYshConfig.getReqPageNo();
+    }
 }

+ 13 - 2
src/main/java/cn/hnthyy/thmz/vo/MzPrescriptionVo.java

@@ -2,8 +2,11 @@ package cn.hnthyy.thmz.vo;
 
 import cn.hnthyy.thmz.entity.his.MzChargeDetail;
 import cn.hnthyy.thmz.entity.his.MzYjReq;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -17,10 +20,18 @@ public class MzPrescriptionVo {
     private List<MzYjReq> mzYjReqList;
     //病人id
     private String patientId;
-    //操作员代码
-    private String opId;
     //就诊科室
     private String visitDeptCode;
     //医生代码
     private String doctorCode;
+    //检查部位
+    private String inspectPart;
+    //申请说明  病史及症状
+    private String reqComment;
+    //申请人体征描述
+    private String reqTzComment;
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
+    //病人出生日期
+    private Date birthDate;
 }