ソースを参照

校验是否重复挂号

yeguodong 2 ヶ月 前
コミット
27e6440829

+ 22 - 0
src/main/java/cn/hnthyy/thmz/controller/mz/MzyReqrecController.java

@@ -91,6 +91,28 @@ public class MzyReqrecController {
     @Resource
     private DictDataService dictDataService;
 
+    @UserLoginToken
+    @RequestMapping(value = "/beforeSaveMzyReqrec", method = {RequestMethod.POST})
+    public Map<String, Object> beforeSaveMzyReqrec(@RequestBody MzyReqrecPageDto mzyReqrecPageDto, HttpServletRequest httpServletRequest) {
+        Map<String, Object> resultMap = new HashMap<>();
+        try {
+            int num = mzyReqrecService.beforeSaveMzyReqrec(mzyReqrecPageDto);
+            if(num <= 0) {
+                resultMap.put("code", 0);
+                resultMap.put("message", "保存挂号信息成功");
+            } else {
+                resultMap.put("code", -1);
+                resultMap.put("message", "当前病人已经挂号成功,请不要重复挂号!");
+            }
+            return resultMap;
+        } catch (Exception e) {
+            resultMap.put("code", -1);
+            resultMap.put("message", StringUtils.isBlank(e.getMessage()) ? "挂号失败,系统出错,请联系管理员" : e.getMessage());
+            log.error(StrUtil.format("挂号失败,系统异常,错误信息{}", e.getMessage()),e);
+            return resultMap;
+        }
+    }
+
     /**
      * 保存挂号信息
      *

+ 4 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/mz/MzyReqrecMapper.java

@@ -16,6 +16,10 @@ import java.util.Map;
  * 门诊挂号记录
  */
 public interface MzyReqrecMapper {
+
+    @Select({"select patient_id  from mzy_reqrec WITH(NOLOCK) where patient_id=#{patientId,jdbcType=CHAR} and ampm = #{ampm,jdbcType=CHAR} and unit_code=#{unitCode,jdbcType=CHAR} and charge_type=#{chargeType,jdbcType=CHAR} and doctor_code=#{doctorCode,jdbcType=CHAR} and CONVERT(varchar(100), request_day, 23)=#{requestDayStr} and cancel_mark=0"})
+    List<MzyReqrec> getIsReq(MzyReqrec mzyReqrec);
+
     @Insert({"<script>",
             "<when test='cancelMark eq 0 and canRepeatedly eq 0' >",
             "if not exists (select patient_id  from mzy_reqrec WITH(NOLOCK) where patient_id=#{patientId,jdbcType=CHAR} and ampm = #{ampm,jdbcType=CHAR} and unit_code=#{unitCode,jdbcType=CHAR} and charge_type=#{chargeType,jdbcType=CHAR} and doctor_code=#{doctorCode,jdbcType=CHAR} and CONVERT(varchar(100), request_day, 23)=#{requestDayStr} and cancel_mark=0) " +

+ 3 - 0
src/main/java/cn/hnthyy/thmz/service/his/mz/MzyReqrecService.java

@@ -19,6 +19,9 @@ import java.util.Map;
  * 门诊挂号记录
  */
 public interface MzyReqrecService {
+
+    int beforeSaveMzyReqrec(MzyReqrecPageDto mzyReqrecPageDto) throws MzException, ParseException;
+
     /**
      * 保存挂号信息
      *

+ 26 - 0
src/main/java/cn/hnthyy/thmz/service/impl/his/mz/MzyReqrecServiceImpl.java

@@ -139,6 +139,32 @@ public class MzyReqrecServiceImpl implements MzyReqrecService {
     //不做重复挂号控制的号别
     private List<String> jsyChargeTypes = Arrays.asList(new String[]{"26", "27"});
 
+    @Override
+    public int beforeSaveMzyReqrec(MzyReqrecPageDto mzyReqrecPageDto) throws MzException, ParseException {
+        MzyReqrec mzyReqrec = mzyReqrecPageDto.getMzyReqrec();
+        MzPatientMi mzPatientMi = mzPatientMiMapper.selectByPatientId(mzyReqrec.getPatientId());
+        if (mzPatientMi == null) {
+            throw new MzException("当前挂号的病人信息不存在,请先保存病人信息!");
+        }
+        if (mzyReqrecPageDto.getResponceType() == null || StringUtils.isBlank(mzyReqrecPageDto.getResponceType())) {
+            mzyReqrecPageDto.setResponceType(mzPatientMi.getResponseType());
+        }
+        MzyZdChargeType mzyZdChargeType = mzyRequestService.calculateAddition(mzyReqrecPageDto,mzyReqrecPageDto.getMzyRequestId(), mzPatientMi.getBirthDay(),mzyReqrec.getPatientId());
+        if (mzyZdChargeType == null) {
+            throw new MzException("当前号别不存在,请先设置!");
+        }
+        MzyRequest mzyRequest = mzyRequestMapper.selectMzyRequestById(mzyReqrecPageDto.getMzyRequestId());
+        if (mzyRequest == null) {
+            throw new MzException("挂号对应的排班不存在!");
+        }
+        int times = getTimes(mzPatientMi);
+        int serialNo = mzSerialNoService.getMzSerialNo();
+        Date now = new Date();
+        fomartReqrec(mzyReqrec, mzPatientMi, null, mzyZdChargeType, times, serialNo, now, mzyRequest);
+        List<MzyReqrec> mzyReqrecList = mzyReqrecMapper.getIsReq(mzyReqrec);
+        return mzyReqrecList == null ? 0 : mzyReqrecList.size();
+    }
+
     @Override
     @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, timeout = 36000, rollbackFor = Exception.class)
     public int saveMzyReqrec(MzyReqrecPageDto mzyReqrecPageDto, String ipAddress) throws MzException, ParseException {

+ 1 - 1
src/main/resources/static/js/mz/registration.js

@@ -1702,7 +1702,7 @@ function saveMzyReqrec() {
     }
     $.ajax({
         type: "POST",
-        url: '/thmz/saveMzyReqrec',
+        url: '/thmz/beforeSaveMzyReqrec',
         contentType: "application/json;charset=UTF-8",
         dataType: "json",
         data: JSON.stringify({