From e00d0891b7477fd97c766b2cc6a66cdec94bfc5e Mon Sep 17 00:00:00 2001 From: lige <bestlige@outlook.com> Date: 星期四, 14 十二月 2023 20:23:42 +0800 Subject: [PATCH] 体检套餐优化 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java | 231 +++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 140 insertions(+), 91 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java index ee7de4a..7332e0d 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java @@ -8,11 +8,15 @@ import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.common.core.domain.entity.SysUser; import com.ltkj.common.core.redis.RedisCache; +import com.ltkj.common.enums.DataSourceType; import com.ltkj.common.utils.SecurityUtils; import com.ltkj.common.utils.StringUtils; import com.ltkj.framework.config.MatchUtils; +import com.ltkj.framework.datasource.DynamicDataSourceContextHolder; import com.ltkj.hosp.domain.*; +import com.ltkj.hosp.mapper.TestMapper; import com.ltkj.hosp.service.*; +import com.ltkj.hosp.sqlDomain.*; import com.ltkj.hosp.vodomain.CsProVo; import com.ltkj.hosp.vodomain.UpdateOrderRemarkVo; import com.ltkj.mall.mallOrderUtils.TjConstants; @@ -31,6 +35,8 @@ import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; + +import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.save; /** * @Author: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃/璧典匠璞� @@ -70,28 +76,41 @@ private ISysConfigService configService; @Resource private ISysDeptService deptService; + @Resource + private TestMapper testMapper; + @Resource + private TjvLtkjvtjpatService tjvLtkjvtjpatService; + @Resource + private LtkjMiddleDetailService middleDetailService; + + @Resource + private LtkjMiddleHeadService headService; + @Resource + private LtkjExamJcbgdService ltkjExamJcbgdService; + @Resource + private LtkjExamJcsqdService ltkjExamJcsqdService; + @Resource + private LtkjHybgdService ltkjHybgdService; + @Resource + private LtkjHysqdService ltkjHysqdService; @GetMapping("/getOperationPermissionsByTjNum") @ApiOperation(value = "(鍒濆椤甸潰 鍜� 鍖荤敓椤甸潰)鏍规嵁浣撴鍙疯幏鍙栨槸鍚﹀彲鎿嶄綔鏉冮檺鎺ュ彛 true鍙搷浣� 鍙嶄箣涓嶅彲") public AjaxResult getOperationPermissionsByTjNum(@ApiParam(value = "浣撴鍙�") @RequestParam String tjNumber) { TjOrder order = orderService.getOrderByTjNum(tjNumber); - if(null !=order){ + if (null != order) { Integer status = order.getStatus(); - if(status<300){ + if (status < 300) { return AjaxResult.success(true); } - if(status>300){ + if (status > 300) { return AjaxResult.success(false); } } return AjaxResult.success(false); } - - - - @GetMapping("/getCsList") @@ -161,7 +180,7 @@ } //鏉′欢鏌ヨ - if(null != tjNumber || null !=compId || (null !=beginTime && null !=endTime)){ + if (null != tjNumber || null != compId || (null != beginTime && null != endTime)) { orderList = orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes); return getResult(page, pageSize, orderList, customerList, map); } @@ -185,7 +204,6 @@ } - /** * 鍒濆 */ @@ -200,7 +218,7 @@ vo.setDeptName(deptService.getById(remark.getDeptId()).getDeptName()); vo.setProName(projectService.getById(remark.getProId()).getProName()); vo.setType(remark.getType()); - if(null !=remark.getDoctorName()){ + if (null != remark.getDoctorName()) { vo.setDoctorName(userService.getById(remark.getDoctorName()).getNickName()); vo.setBcdoctorName(userService.getById(remark.getDoctorName()).getNickName()); } @@ -215,7 +233,7 @@ Collections.sort(list, new Comparator<CsProVo>() { @Override public int compare(CsProVo o1, CsProVo o2) { - return o1.getType()-o2.getType(); + return o1.getType() - o2.getType(); } }); } @@ -227,11 +245,10 @@ * 鍒濆 */ @GetMapping("/confirmOrder") - @ApiOperation(value = "鍒濆(骞朵慨鏀圭姸鎬�)鎺ュ彛") -// @PreAuthorize("@ss.hasPermi('check:check:confirmOrder')") + @ApiOperation(value = "鍒濆(骞朵慨鏀圭姸鎬�)鎺ュ彛") @Transactional public AjaxResult confirmOrder(@ApiParam(value = "tjNumber") @RequestParam String tjNumber, - @ApiParam(value = "鐘舵�� 0鍚屾剰1鎷掔粷 榛樿鍚屾剰") @RequestParam(defaultValue = "0") Integer status, + @ApiParam(value = "鐘舵�� 0鍚屾剰 1鎷掔粷 榛樿鍚屾剰") @RequestParam(defaultValue = "0") Integer status, @ApiParam(value = "椹冲洖鐞嗙敱") @RequestParam(required = false) String remark) { int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber); if (num > 0) return AjaxResult.error("鏈夊欢鏈熼」鐩殏涓嶈兘瀹℃牳!"); @@ -245,9 +262,10 @@ tjOrder.setConfirmTime(new DateTime()); tjOrder.setConfirmDoctor(sysUser.getNickName()); tjOrder.setConfirmStatus(remark); - if(status==0){ + if (status == 0) { tjOrder.setStatus(TjConstants.TJ_CHECK); - }else { + asyncService.updateCheckType(tjNumber); + } else { tjOrder.setStatus(TjConstants.TJ_REFUSED); } if (orderService.updateById(tjOrder)) { @@ -256,6 +274,8 @@ confirmLog.setTjNum(tjNumber); confirmLog.setStatus(status); confirmLogService.save(confirmLog); + asyncService.wCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, 0, null, null, null)); + asyncService.yCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, 1, null, null, null)); return AjaxResult.success("鎿嶄綔鎴愬姛"); } return AjaxResult.error("鎿嶄綔澶辫触"); @@ -267,16 +287,50 @@ /** + * 鍚屾sql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛 + */ + @GetMapping("/dataSynchronization") + @ApiOperation(value = "鍚屾sql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛") + public AjaxResult dataSynchronization(@RequestParam String tjNumber) { + //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12 + final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); + if ("Y".equals(getInfoFromSqlData)) { + List<LtkjHysqd> one = testMapper.getHysqdByTmh(tjNumber); + if (one != null) { + DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); + ltkjHysqdService.saveBatch(one); + DynamicDataSourceContextHolder.clearDataSourceType(); + for (LtkjHysqd ltkjHysqd : one) { + List<LtkjHybgd> one1 = testMapper.getHybgdByTmh(ltkjHysqd.getTmh()); + if (one1 != null) { + DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); + ltkjHybgdService.saveBatch(one1); + DynamicDataSourceContextHolder.clearDataSourceType(); + } + } + } + + List<LtkjExamJcsqd> one2 = testMapper.getExamJcsqdTmh(tjNumber); + if (one2 != null) { + DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); + ltkjExamJcsqdService.saveBatch(one2); + DynamicDataSourceContextHolder.clearDataSourceType(); + for (LtkjExamJcsqd ltkjExamJcsqd : one2) { + List<LtkjExamJcbgd> one3 = testMapper.getExamJcbgdByTjh(ltkjExamJcsqd.getTmh()); + if (one3 != null) { + DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); + ltkjExamJcbgdService.saveBatch(one3); + DynamicDataSourceContextHolder.clearDataSourceType(); + } + } + } + } + return AjaxResult.success("鍚屾鎴愬姛"); + } + + + /** * 鏌ヨ浣撴璁板綍瀹㈡埛鍒楄〃 - * - * @param tjNumber - * @param checkStatus - * @param page - * @param pageSize - * @param compId - * @param beginTime - * @param endTime - * @return */ @GetMapping("/getList") @ApiOperation(value = "鏌ヨ浣撴璁板綍瀹㈡埛鍒楄〃")//0寰�1宸� @@ -325,6 +379,7 @@ customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone())); customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard())); customer.setConfirmStatus(String.valueOf(tjOrder.getStatus())); + customer.setTjCategory(tjOrder.getTjCategory()); if (tjOrder.getFirmId().equals("0")) { customer.setTjCompName(null); } else { @@ -346,7 +401,7 @@ } //鏉′欢鏌ヨ - if(null != tjNumber || null !=compId || (null !=beginTime && null !=endTime)){ + if (null != tjNumber || null != compId || (null != beginTime && null != endTime)) { //鍒ゆ柇鏄惁寮�鍚垵瀹� if ("Y".equals(config)) { orderList = orderService.getCsTjOrderList1(tjNumber, checkStatus, compId, beginTimes, endTimes); @@ -364,6 +419,7 @@ customers = redisCache.getCacheMapValue("check", "ys"); } if (customers != null && customers.size() > 0) { +// asyncService.addRedis(customers); List<TjCustomer> customerLists = customers.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); map.put("customers", customerLists); map.put("total", customers.size()); @@ -417,6 +473,7 @@ LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>(); wqq.eq(TbTransition::getCusId, customer.getCusIdcard()); transitionService.remove(wqq); + asyncService.updateCheckType(tjNumber); return AjaxResult.success("鎿嶄綔鎴愬姛"); } return AjaxResult.error("鎿嶄綔澶辫触"); @@ -438,22 +495,27 @@ */ @GetMapping("/updateCheckType") @ApiOperation(value = "鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏") -// @PreAuthorize("@ss.hasPermi('check:check:updateCheckType')") public AjaxResult updateCheckType(@ApiParam(value = "瀹㈡埛浣撴鍙�") @RequestParam String tjNumber) { + if (redisCache.hasKey("updateCheckType" + tjNumber)) { + List<Map<String, Object>> cacheMapValue = redisCache.getCacheMapValue("updateCheckType" + tjNumber, tjNumber); + return AjaxResult.success(cacheMapValue); + } + return getAjaxResult(tjNumber); + } + + private AjaxResult getAjaxResult(String tjNumber) { + + asyncService.updateCheckType(tjNumber); List<Map<String, Object>> list = new ArrayList<>(); - LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>(); - wq1.eq(TjOrder::getTjNumber, tjNumber); - TjOrder one = orderService.getOne(wq1); + TjOrder one = orderService.getOrderByTjNum(tjNumber); + if (one == null) { return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒"); } - LambdaQueryWrapper<TjCustomer> wq22 = new LambdaQueryWrapper<>(); - wq22.eq(TjCustomer::getCusId, one.getUserId()); - TjCustomer customer = customerService.getOne(wq22); - LambdaQueryWrapper<TjOrderRemark> wqm = new LambdaQueryWrapper<>(); - wqm.eq(TjOrderRemark::getTjNumber, tjNumber); - wqm.eq(TjOrderRemark::getType, 1); - List<TjOrderRemark> remarkList = orderRemarkService.list(wqm); + + TjCustomer customer = customerService.getById(one.getUserId()); + List<TjOrderRemark> remarkList = orderRemarkService.getRemarkListByTjNumAndType(tjNumber); + if (null != remarkList && remarkList.size() > 0) { for (TjOrderRemark remark : remarkList) { Map<String, Object> parent = new HashMap<>(); @@ -463,65 +525,50 @@ parent.put("parent", project.getProName()); parent.put("parentId", project.getProId().toString()); } - LambdaQueryWrapper<TjProject> wq2 = new LambdaQueryWrapper<>(); - wq2.eq(TjProject::getProParentId, remark.getProId()); - List<Long> sonsTjProjectList = projectService.list(wq2).stream().map(TjProject::getProId).collect(Collectors.toList()); - if (sonsTjProjectList.size() > 0) { - LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>(); - wq.eq(TjOrderDetail::getOrderId, one.getOrderId()); - wq.in(TjOrderDetail::getProId, sonsTjProjectList); - List<TjOrderDetail> tjOrderDetails = detailService.list(wq); - if (null != tjOrderDetails && tjOrderDetails.size() > 0) { - for (TjOrderDetail tjOrderDetail : tjOrderDetails) { - LambdaQueryWrapper<TjProject> wqqqq = new LambdaQueryWrapper<>(); - wqqqq.eq(TjProject::getProId, tjOrderDetail.getProId()); - tjOrderDetail.setProject(projectService.getOne(wqqqq)); - LambdaQueryWrapper<TjStandard> wq6 = new LambdaQueryWrapper<>(); - wq6.eq(TjStandard::getProId, tjOrderDetail.getProId()); - List<TjStandard> list2 = tjStandardService.list(wq6); - if (list2.size() == 0) { - tjOrderDetail.setStandard(new TjStandard()); - } else if (list2.size() == 1) { - tjOrderDetail.setStandard(list2.get(0)); - } else { - for (TjStandard tjStandard : list2) { - LambdaQueryWrapper<TjStandard> wq8 = new LambdaQueryWrapper<>(); - if (tjStandard.getTjSex() != null) { - wq8.eq(TjStandard::getTjSex, customer.getCusSex()); - } - if (tjStandard.getTjType() != null) { - wq8.eq(TjStandard::getTjType, StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday()))); - } - tjOrderDetail.setStandard(tjStandardService.getOne(wq8)); - } - } - } - String summary = remark.getSummary(); - if (null != summary) { - String[] split = summary.split(";"); - LambdaQueryWrapper<TjAdvice> wq3 = new LambdaQueryWrapper<>(); - wq3.in(TjAdvice::getId, Arrays.asList(split)); - List<TjAdvice> advices = tjAdviceService.list(wq3); - if (null != advices && advices.size() > 0) { - StringBuilder string = new StringBuilder(); - for (TjAdvice advice : advices) { - string.append(advice.getTitle()).append(";"); - } - parent.put("parentAdvice", string); - } + List<TjOrderDetail> tjOrderDetails = detailService.getDetailByOrderIdAndParId(one.getOrderId(), remark.getProId()); + if (null != tjOrderDetails && tjOrderDetails.size() > 0) { + for (TjOrderDetail tjOrderDetail : tjOrderDetails) { + final TjProject byId = projectService.selectTjProjectByProId(tjOrderDetail.getProId()); + if (null == byId) { + detailService.removeById(tjOrderDetail.getOrderDetailId()); } else { - parent.put("parentAdvice", null); + tjOrderDetail.setProject(byId); } - parent.put("sons", tjOrderDetails); - parent.put("remark", remark.getRemark()); - if (remark.getDoctorName() != null && null != userService.getById(remark.getDoctorName())) { - parent.put("doctorName", userService.getById(remark.getDoctorName()).getNickName()); + List<TjStandard> list2 = tjStandardService.getTjStandardListByProId(String.valueOf(tjOrderDetail.getProId())); + if (list2.size() == 0) { + tjOrderDetail.setStandard(new TjStandard()); + } else if (list2.size() == 1) { + tjOrderDetail.setStandard(list2.get(0)); + } else { + final int ageType = StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday())); + TjStandard tjStandard1 = tjStandardService.getListBySexAndType(customer.getCusSex(), ageType, String.valueOf(tjOrderDetail.getProId())); + tjOrderDetail.setStandard(tjStandard1); } - list.add(parent); - } else { - return AjaxResult.success("璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁"); } + String summary = remark.getSummary(); + if (null != summary) { + String[] split = summary.split(";"); +// List<Long> longList = new ArrayList<>(); +// for (String str : split) { +// if(!"".equals(str)){ +// longList.add(Long.valueOf(str)); +// } +// } + parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(split)); + + } else { + parent.put("parentAdvice", null); + } + parent.put("sons", tjOrderDetails); + parent.put("remark", remark.getRemark()); + if (remark.getDoctorName() != null && null != userService.getById(remark.getDoctorName())) { + parent.put("doctorName", userService.getById(remark.getDoctorName()).getNickName()); + } + list.add(parent); + } else { + return AjaxResult.success("璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁"); } +// } } return AjaxResult.success(list); } @@ -538,6 +585,7 @@ /** * 鎬绘淇敼澶囨敞 + * * @return */ @PostMapping("/checkUpdateOrderRemark") @@ -575,6 +623,7 @@ customer.setTjTime(tjOrder.getCreateTime()); customer.setFinishTime(tjOrder.getFinishTime()); customer.setConfirmStatus(String.valueOf(tjOrder.getStatus())); + customer.setTjCategory(tjOrder.getTjCategory()); if (tjOrder.getFirmId() == null) { customer.setTjCompName("鏃�"); } else { -- Gitblit v1.8.0