Commit bbc2c94c56772d7f067605d7d5d5ae8b2b6158ef
1 parent
3ec16c51f3
Exists in
dev
各种bug修改
Showing 17 changed files with 290 additions and 65 deletions
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/ChatGroupController.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/OrderController.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/PatientController.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsHospital.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/enums/ChargeWay.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsChatgroupMapper.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/result/OrderListResponse.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsHisInfoServiceImpl.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsOrderServiceImpl.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/AutoEndChatTask.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/DoctorMsgNotifyTask.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/HisPatientsAutoUploadTask.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/WeiXinUtil.java
- talkonlineweb/src/main/resources/mapper/LymsHospitalMapper.xml
- talkonlineweb/src/main/resources/mapper/LymsOrderMapper.xml
- talkonlineweb/src/main/resources/mapper/LymsTcardMapper.xml
talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/ChatGroupController.java
View file @
bbc2c94
... | ... | @@ -769,13 +769,14 @@ |
769 | 769 | log.error("updateGroupStat回滚LymsChatgroup失败,{}",chatgroup); |
770 | 770 | throw new RuntimeException("回滚状态,执行失败,请联系管理员"); |
771 | 771 | } |
772 | - final PatientInfo patientInfo = patientInfoService.getOne(new QueryWrapper<PatientInfo>() | |
773 | - .lambda().eq(PatientInfo::getCid, chatgroup.getPcid())); | |
774 | - if (null==patientInfo) { | |
772 | + final List<PatientInfo> patientInfos = patientInfoService.list(new QueryWrapper<PatientInfo>() | |
773 | + .lambda().eq(PatientInfo::getCid, chatgroup.getPcid()).last(" limit 1")); | |
774 | + if (CollectionUtils.isEmpty(patientInfos)) { | |
775 | 775 | baseResponse.setErrorcode(1); |
776 | 776 | log.error("updateGroupStat回滚查询患者信息失败,{}",chatgroup); |
777 | 777 | throw new RuntimeException("回滚状态,执行失败,请联系管理员"); |
778 | 778 | } |
779 | + PatientInfo patientInfo = patientInfos.get(0); | |
779 | 780 | LymsTkrecord tkrecord=new LymsTkrecord(); |
780 | 781 | LymsTcard tcard = new LymsTcard(); |
781 | 782 | tcard.setPid(patientInfo.getId()); |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java
View file @
bbc2c94
... | ... | @@ -270,6 +270,25 @@ |
270 | 270 | return BaseResponse.error("失败"); |
271 | 271 | } |
272 | 272 | |
273 | + | |
274 | + @PostMapping("/openid") | |
275 | + public BaseResponse getWxOpenId(@RequestBody LymsDoctor doctor){ | |
276 | + try { | |
277 | + if(StringUtil.isNotEmpty(doctor.getCode())&& null!= doctor.getDid()){ | |
278 | + String openid = WeiXinUtil.getWxOpenId(doctor.getCode()); | |
279 | + if(StringUtil.isNotEmpty(openid)){ | |
280 | + doctor.setOpenid(openid); | |
281 | + //更新到登录患者的gzopenid | |
282 | + lymsDoctorService.updateById(doctor); | |
283 | + return BaseResponse.ok(); | |
284 | + } | |
285 | + } | |
286 | + } catch (Exception e) { | |
287 | + log.error("医生小程序获取openid异常",e); | |
288 | + } | |
289 | + return BaseResponse.error("失败"); | |
290 | + } | |
291 | + | |
273 | 292 | /** |
274 | 293 | * 统计医生信息 |
275 | 294 | * @return |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/OrderController.java
View file @
bbc2c94
... | ... | @@ -150,7 +150,7 @@ |
150 | 150 | |
151 | 151 | LymsOrder updateOrder = new LymsOrder(); |
152 | 152 | updateOrder.setId(lymsOrder.getId()); |
153 | - updateOrder.setPayorderid(data.get("payId")); | |
153 | + updateOrder.setPayorderid(data.get("packageValue")); | |
154 | 154 | //根据订单号更新支付订单号 |
155 | 155 | lymsOrderService.updateById(updateOrder); |
156 | 156 | data.put("orderNo",orderNo); |
... | ... | @@ -195,6 +195,25 @@ |
195 | 195 | return BaseResponse.ok(orderListResponses); |
196 | 196 | } |
197 | 197 | |
198 | + | |
199 | + /** | |
200 | + * | |
201 | + * @param authorization | |
202 | + * @return | |
203 | + */ | |
204 | + @PostMapping("queryPatientsUnpayOrders") | |
205 | + @TokenRequired | |
206 | + public BaseResponse queryPatiensOrders(@RequestHeader String authorization){ | |
207 | + | |
208 | + LymsPatient patient = lymsPatientService.getPatientByToken(authorization); | |
209 | + QueryWrapper<LymsOrder> queryWrapper = new QueryWrapper<>(); | |
210 | + queryWrapper.eq("pid",patient.getId()); | |
211 | + queryWrapper.eq("status",0); | |
212 | + queryWrapper.ge("createdtime",DateUtil.addDay(new Date(),-1)); | |
213 | + List<LymsOrder> list = lymsOrderService.list(queryWrapper); | |
214 | + return BaseResponse.ok(list); | |
215 | + } | |
216 | + | |
198 | 217 | @GetMapping("queryOrderLimit") |
199 | 218 | @TokenRequired |
200 | 219 | public BaseResponse queryOrderLimit(Integer pid,Integer pcid){ |
... | ... | @@ -355,7 +374,7 @@ |
355 | 374 | order.setPayTime(new Date()); |
356 | 375 | lymsOrderService.update(order, wrapper); |
357 | 376 | }else{ |
358 | - result.put("return_code","SUCCESS>"); | |
377 | + result.put("return_code","SUCCESS"); | |
359 | 378 | result.put("return_msg","OK"); |
360 | 379 | outResult(response, XmlUtil.mapToXml(result)); |
361 | 380 | log.info("已经处理过,重复通知!"); |
... | ... | @@ -366,7 +385,7 @@ |
366 | 385 | boolean flag = lymsOrderService.handleOrder(lymsOrders,true); |
367 | 386 | if (flag) |
368 | 387 | { |
369 | - result.put("return_code","SUCCESS>"); | |
388 | + result.put("return_code","SUCCESS"); | |
370 | 389 | result.put("return_msg","OK"); |
371 | 390 | } |
372 | 391 | } |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/PatientController.java
View file @
bbc2c94
... | ... | @@ -468,8 +468,8 @@ |
468 | 468 | @TokenRequired |
469 | 469 | public BaseResponse queryPatient(PatientInfo patientInfo) { |
470 | 470 | BaseResponse baseResponse = new BaseResponse(); |
471 | - PatientInfo patientInfo2 = patientInfoService.getOne(Wrappers.query(patientInfo)); | |
472 | - baseResponse.setObject(patientInfo2); | |
471 | + List<PatientInfo> patientInfos = patientInfoService.list(Wrappers.query(patientInfo)); | |
472 | + baseResponse.setObject(patientInfos.get(0)); | |
473 | 473 | return baseResponse; |
474 | 474 | } |
475 | 475 | /** |
... | ... | @@ -514,7 +514,7 @@ |
514 | 514 | */ |
515 | 515 | @GetMapping("getPatientHospitalPcase") |
516 | 516 | @TokenRequired |
517 | - public BaseResponse getPatientHospitalPcase(int pid, int hid, | |
517 | + public BaseResponse getPatientHospitalPcase(Integer pid, Integer hid, | |
518 | 518 | @RequestParam(required = false) String keyword) { |
519 | 519 | BaseResponse baseResponse = new BaseResponse(); |
520 | 520 | Map data = new HashMap(5); |
521 | 521 | |
... | ... | @@ -523,9 +523,12 @@ |
523 | 523 | data.put("patient", patient); |
524 | 524 | |
525 | 525 | //医院信息 |
526 | - LymsHospital hospital = lymsHospitalService.getById(pid); | |
527 | - data.put("hospital", hospital); | |
526 | + if(hid != null){ | |
527 | + LymsHospital hospital = lymsHospitalService.getById(hid); | |
528 | + data.put("hospital", hospital); | |
529 | + } | |
528 | 530 | |
531 | + | |
529 | 532 | List<Integer> ilist = new ArrayList<>(); |
530 | 533 | if (StringUtil.isNotEmpty(keyword)) { |
531 | 534 | LambdaQueryWrapper<LymsIllness> iwrapper = new QueryWrapper().lambda(); |
... | ... | @@ -540,7 +543,10 @@ |
540 | 543 | //查询患者的就诊记录 |
541 | 544 | LambdaQueryWrapper<LymsPcase> wrapper = new QueryWrapper().lambda(); |
542 | 545 | wrapper.eq(LymsPcase::getPid, pid); |
543 | - wrapper.eq(LymsPcase::getHid, hid); | |
546 | + if(hid != null){ | |
547 | + wrapper.eq(LymsPcase::getHid, hid); | |
548 | + } | |
549 | + | |
544 | 550 | if (StringUtil.isNotEmpty(keyword)) { |
545 | 551 | wrapper.and(i -> i.like(LymsPcase::getDname, keyword).or().like(LymsPcase::getDtname, keyword)); |
546 | 552 | if (CollectionUtils.isNotEmpty(ilist)) { |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsHospital.java
View file @
bbc2c94
talkonlineweb/src/main/java/com/lyms/talkonlineweb/enums/ChargeWay.java
View file @
bbc2c94
1 | +package com.lyms.talkonlineweb.enums; | |
2 | + | |
3 | +import lombok.Getter; | |
4 | + | |
5 | +/** | |
6 | + * | |
7 | + */ | |
8 | +@Getter | |
9 | +public enum ChargeWay { | |
10 | + PLATFORM(1, "平台收费"), | |
11 | + HIS(2, "医院his收费"); | |
12 | + | |
13 | + private Integer code; | |
14 | + private String name; | |
15 | + | |
16 | + ChargeWay(Integer code, String name){ | |
17 | + this.code = code; | |
18 | + this.name = name; | |
19 | + } | |
20 | + | |
21 | + public static String getName(Integer code) { | |
22 | + ChargeWay[] values = ChargeWay.values(); | |
23 | + for (ChargeWay value : values) { | |
24 | + if (value.getCode().equals(code)) { | |
25 | + return value.getName(); | |
26 | + } | |
27 | + } | |
28 | + return ""; | |
29 | + } | |
30 | +} |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsChatgroupMapper.java
View file @
bbc2c94
... | ... | @@ -38,15 +38,17 @@ |
38 | 38 | "pc.dtid," , |
39 | 39 | "pc.dtname," , |
40 | 40 | "d.dlogin," , |
41 | - "i.iname, " , | |
42 | - "i.iid, " , | |
43 | - "i.createdtime " , | |
41 | + "GROUP_CONCAT(i.iname) as iname, " , | |
42 | + "GROUP_CONCAT(i.iid) as iid, " , | |
43 | + "pc.createdtime " , | |
44 | 44 | "FROM " , |
45 | - "(`lyms_illness` i " , | |
46 | - "left join `lyms_pcase` pc ON (pc.pcid = i.pcid) " , | |
47 | - "left join `lyms_patient` p ON (p.id = pc.pid) " , | |
48 | - "left join `lyms_doctor` d ON (d.did = pc.dtid)) " , | |
49 | - "${ew.customSqlSegment}", | |
45 | + "( ", | |
46 | + "`lyms_pcase` pc " , | |
47 | + "left join `lyms_illness` i ON (pc.pcid = i.pcid) " , | |
48 | + "left join `lyms_patient` p ON (pc.pid = p.id ) " , | |
49 | + "left join `lyms_doctor` d ON (pc.dtid = d.did )) " , | |
50 | + "${ew.customSqlSegment} ", | |
51 | + "group by pc.pcid ", | |
50 | 52 | "</script>"}) |
51 | 53 | // "WHERE " + |
52 | 54 | // "dtid=#{doctorId}") |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/result/OrderListResponse.java
View file @
bbc2c94
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsHisInfoServiceImpl.java
View file @
bbc2c94
... | ... | @@ -5,6 +5,7 @@ |
5 | 5 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
6 | 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
7 | 7 | import com.lyms.talkonlineweb.domain.*; |
8 | +import com.lyms.talkonlineweb.enums.ChargeWay; | |
8 | 9 | import com.lyms.talkonlineweb.result.BaseResponse; |
9 | 10 | import com.lyms.talkonlineweb.result.Diagnose; |
10 | 11 | import com.lyms.talkonlineweb.service.*; |
... | ... | @@ -37,6 +38,8 @@ |
37 | 38 | @Autowired |
38 | 39 | private LymsPatientService lymsPatientService;//患者 |
39 | 40 | @Autowired |
41 | + private LymsHospitalService lymsHospitalService; //医院 | |
42 | + @Autowired | |
40 | 43 | private LymsHdepartService lymsHdepartService;//科室 |
41 | 44 | @Autowired |
42 | 45 | private LymsDoctorService lymsDoctorService;//医生 |
43 | 46 | |
44 | 47 | |
45 | 48 | |
46 | 49 | |
47 | 50 | |
... | ... | @@ -203,23 +206,37 @@ |
203 | 206 | queryWrapper.eq("pname",lymsHisInfo.getName()); |
204 | 207 | queryWrapper.eq("enrolment_phone",lymsHisInfo.getPhone()); |
205 | 208 | List<LymsPatient> list = lymsPatientService.list(queryWrapper); |
206 | - /*if(CollectionUtils.isNotEmpty(list)){ | |
209 | + if(CollectionUtils.isNotEmpty(list)){ | |
207 | 210 | String idno = list.get(0).getIdno(); |
208 | - //是否需要去查询订单 todo | |
209 | 211 | lymsHisInfo.setIdcard(idno); |
210 | 212 | this.updateById(lymsHisInfo); |
211 | - | |
212 | 213 | }else{ |
213 | 214 | return "患者身份证号不存在,请等待患者注册补全身份证信息后再上传。"; |
214 | - }*/ | |
215 | + } | |
215 | 216 | |
216 | - return "患者身份证号不存在,请等待患者注册补全身份证信息后再上传。"; | |
217 | + //return "患者身份证号不存在,请等待患者注册补全身份证信息后再上传。"; | |
217 | 218 | //idCard=lymsHisInfo.getVccardno(); |
218 | 219 | } |
219 | 220 | //判断患者是否存在 |
220 | 221 | LymsPatient patientQuery = new LymsPatient(); |
221 | 222 | patientQuery.setIdno(idCard.toLowerCase()); |
222 | 223 | LymsPatient patient = lymsPatientService.getOne(Wrappers.query(patientQuery)); |
224 | + | |
225 | + //判断医院是否平台收费,是否存在订单 | |
226 | + LymsHospital lymsHospital = lymsHospitalService.getById(Integer.valueOf(lymsHisInfo.getHospitalId())); | |
227 | + if(ChargeWay.PLATFORM.getCode()==lymsHospital.getChargeWay()){ | |
228 | + QueryWrapper<LymsOrder> queryWrapper = new QueryWrapper<>(); | |
229 | + queryWrapper.eq("pid",patient.getId()); | |
230 | + queryWrapper.gt("status",0); | |
231 | + queryWrapper.gt("createdtime", DateUtil.addDay(new Date(),-2)); | |
232 | + List<LymsOrder> list = lymsOrderService.list(queryWrapper); | |
233 | + if(CollectionUtils.isEmpty(list)){ | |
234 | + return "患者还没有缴费,暂时不能上传"; | |
235 | + } | |
236 | + } | |
237 | + | |
238 | + | |
239 | + | |
223 | 240 | if (null != patient) { |
224 | 241 | QueryWrapper<LymsPcase> queryWrapper = new QueryWrapper<>(); |
225 | 242 | queryWrapper.eq("pid", patient.getId()); |
226 | 243 | |
... | ... | @@ -244,13 +261,14 @@ |
244 | 261 | } |
245 | 262 | //添加患者信息及病例 |
246 | 263 | LymsPatient patient2 = new LymsPatient(); |
247 | - LymsPcase pcase = new LymsPcase(); | |
248 | 264 | patient2.setPname(name); |
249 | 265 | patient2.setIdno(idCard); |
250 | 266 | patient2.setBirth(birthday); |
251 | 267 | patient2.setSex(sex); |
252 | 268 | patient2.setCcnt(0); |
253 | 269 | patient2.setCreatedby(1); |
270 | + | |
271 | + LymsPcase pcase = new LymsPcase(); | |
254 | 272 | pcase.setMobile(phone); |
255 | 273 | pcase.setHid(Integer.valueOf(lymsHisInfo.getHospitalId())); |
256 | 274 | pcase.setHname(lymsHdeparts.getHname()); |
... | ... | @@ -272,6 +290,7 @@ |
272 | 290 | } |
273 | 291 | |
274 | 292 | //添加修改患者方法 |
293 | + @Transactional | |
275 | 294 | public BaseResponse saveOrUpdatePatient(LymsPatient patient, LymsPcase pcase, Map<String,Diagnose> diagnoseMap) { |
276 | 295 | BaseResponse baseResponse = new BaseResponse(); |
277 | 296 | log.info(">>>>>>>>>>>>>>>登记病例"); |
278 | 297 | |
... | ... | @@ -294,14 +313,14 @@ |
294 | 313 | patient.setOpenid(WeiXinUtil.getWxOpenId(patient.getCode())); |
295 | 314 | } |
296 | 315 | //his患者上传默认给4张问诊卡 |
297 | - patient.setCcnt(Constant.CARD_COUNT_MONTH); | |
298 | - boolean f = lymsPatientService.saveOrUpdate(patient); | |
316 | + //patient.setCcnt(Constant.CARD_COUNT_MONTH); | |
317 | + lymsPatientService.saveOrUpdate(patient); | |
299 | 318 | |
300 | 319 | // 添加病例 |
301 | 320 | pcase.setCreatedby(patient.getCreatedby()); |
302 | 321 | pcase.setPid(patient.getId()); |
303 | 322 | pcase.setCreatedtime(new Date()); |
304 | - f = lymsPcaseService.saveOrUpdate(pcase); | |
323 | + boolean f = lymsPcaseService.saveOrUpdate(pcase); | |
305 | 324 | |
306 | 325 | |
307 | 326 | log.info(patient); |
308 | 327 | |
... | ... | @@ -341,8 +360,12 @@ |
341 | 360 | List<LymsOrder> list = lymsOrderService.list(queryWrapper); |
342 | 361 | |
343 | 362 | if(CollectionUtils.isNotEmpty(list)){ |
344 | - lymsOrderService.handleOrder(list.get(0),false); | |
363 | + LymsOrder lymsOrder = list.get(0); | |
364 | + lymsOrder.setPcid(pcase.getPcid()); | |
365 | + lymsOrderService.handleOrder(lymsOrder,false); | |
345 | 366 | }else{ |
367 | + patient.setCcnt(Constant.CARD_COUNT_MONTH); | |
368 | + lymsPatientService.saveOrUpdate(patient); | |
346 | 369 | //不是通过订单生成的问诊卡 |
347 | 370 | for (int i = 0; i < patient.getCcnt() && Objects.nonNull(patient.getCcnt()); i++) { |
348 | 371 | LymsTcard tcard = new LymsTcard(); |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsOrderServiceImpl.java
View file @
bbc2c94
... | ... | @@ -17,6 +17,7 @@ |
17 | 17 | import com.lyms.talkonlineweb.result.OrderListResponse; |
18 | 18 | import com.lyms.talkonlineweb.service.LymsAttentionService; |
19 | 19 | import com.lyms.talkonlineweb.service.LymsOrderService; |
20 | +import com.lyms.talkonlineweb.service.LymsTcardService; | |
20 | 21 | import com.lyms.talkonlineweb.util.Constant; |
21 | 22 | import com.lyms.talkonlineweb.util.DateUtil; |
22 | 23 | import org.springframework.beans.factory.annotation.Autowired; |
... | ... | @@ -39,7 +40,7 @@ |
39 | 40 | private LymsPatientMapper lymsPatientMapper; |
40 | 41 | |
41 | 42 | @Resource |
42 | - private LymsTcardMapper lymsTcardMapper; | |
43 | + private LymsTcardService lymsTcardService; | |
43 | 44 | |
44 | 45 | @Resource |
45 | 46 | private LymsOrderMapper lymsOrderMapper; |
... | ... | @@ -47,7 +48,7 @@ |
47 | 48 | @Override |
48 | 49 | @Transactional(rollbackFor = Exception.class) |
49 | 50 | public boolean handleOrder(LymsOrder lymsOrders,boolean isPayCallBack) { |
50 | - Date currentTime = new Date(); | |
51 | + Date startDate = null; | |
51 | 52 | //说明是 |
52 | 53 | if (lymsOrders != null) { |
53 | 54 | LymsPatient patient = lymsPatientMapper.selectById(lymsOrders.getPid()); |
54 | 55 | |
... | ... | @@ -55,19 +56,37 @@ |
55 | 56 | { |
56 | 57 | return false; |
57 | 58 | } |
58 | - lymsOrders.setStatus(PayStatus.SUCCESS.getCode()); | |
59 | - lymsOrders.setServiceStartTime(currentTime); | |
60 | - lymsOrders.setServiceEndTime(DateUtil.addMonth(currentTime,lymsOrders.getCnt())); | |
61 | - lymsOrders.setUpdatedtime(new Date()); | |
62 | - updateById(lymsOrders); | |
59 | + | |
60 | + //病例不为空 续费 查询问诊卡得 | |
61 | + if(lymsOrders.getPcid() != null){ | |
62 | + QueryWrapper<LymsTcard> query = new QueryWrapper<>(); | |
63 | + query.eq("pid",patient.getId()); | |
64 | + query.eq("pcid",lymsOrders.getPcid()); | |
65 | + query.orderByDesc("end_time"); | |
66 | + query.last(" limit 1"); | |
67 | + LymsTcard one = lymsTcardService.getOne(query); | |
68 | + startDate = one != null && one.getEndTime() != null? | |
69 | + DateUtil.addDay(DateUtil.getYmdDate(one.getEndTime()),1) : new Date(); | |
70 | + } | |
71 | + | |
72 | + startDate = startDate== null?new Date():startDate; | |
73 | + //支付回调 | |
74 | + if(isPayCallBack){ | |
75 | + lymsOrders.setStatus(PayStatus.SUCCESS.getCode()); | |
76 | + lymsOrders.setServiceStartTime(startDate); | |
77 | + lymsOrders.setServiceEndTime(DateUtil.addMonth(startDate,lymsOrders.getCnt())); | |
78 | + lymsOrders.setUpdatedtime(new Date()); | |
79 | + updateById(lymsOrders); | |
80 | + } | |
81 | + | |
63 | 82 | //pcid不为空,说明是续期购买,直接生成生成问诊卡 或者his上传 |
64 | 83 | if(lymsOrders.getPcid() != null || !isPayCallBack){ |
65 | 84 | |
66 | 85 | //数量代表购买几个月 |
67 | 86 | int months = lymsOrders.getCnt(); |
68 | 87 | for(int j = 0 ;j < months ; j++){ |
69 | - Date startTime = DateUtil.addMonth(currentTime,j); | |
70 | - Date endTime = DateUtil.addMonth(currentTime,j+1); | |
88 | + Date startTime = DateUtil.addMonth(startDate,j); | |
89 | + Date endTime = DateUtil.addMonth(startDate,j+1); | |
71 | 90 | for (int i = 0; i < Constant.CARD_COUNT_MONTH; i++) |
72 | 91 | { |
73 | 92 | LymsTcard tcard = new LymsTcard(); |
... | ... | @@ -78,8 +97,8 @@ |
78 | 97 | tcard.setEndTime(endTime); |
79 | 98 | tcard.setOrderNo(lymsOrders.getOrderno()); |
80 | 99 | tcard.setPrice(lymsOrders.getPrice()); |
81 | - tcard.setCreatedtime(currentTime); | |
82 | - lymsTcardMapper.insert(tcard); | |
100 | + tcard.setCreatedtime(new Date()); | |
101 | + lymsTcardService.save(tcard); | |
83 | 102 | } |
84 | 103 | } |
85 | 104 | //更新患者的卡的数量,患者信息上的问诊卡数量其实没啥意义了 |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/AutoEndChatTask.java
View file @
bbc2c94
... | ... | @@ -6,6 +6,7 @@ |
6 | 6 | import com.lyms.talkonlineweb.domain.LymsTkrecord; |
7 | 7 | import com.lyms.talkonlineweb.service.LymsChatgroupService; |
8 | 8 | import com.lyms.talkonlineweb.service.LymsTkrecordService; |
9 | +import com.lyms.talkonlineweb.util.DateUtil; | |
9 | 10 | import lombok.extern.log4j.Log4j2; |
10 | 11 | import org.springframework.beans.factory.annotation.Autowired; |
11 | 12 | import org.springframework.scheduling.annotation.Scheduled; |
... | ... | @@ -29,7 +30,7 @@ |
29 | 30 | private LymsChatgroupService lymsChatgroupService; |
30 | 31 | |
31 | 32 | @Scheduled(cron = "0 59 23 * * ?") |
32 | - public void PushIllnessTypeData(){ | |
33 | + public void autoEndChatTask(){ | |
33 | 34 | |
34 | 35 | log.info("自动结束聊天任务开始>>>>>>>>>>auto end chart"); |
35 | 36 | LymsTkrecord tkrecord = new LymsTkrecord(); |
... | ... | @@ -72,6 +73,35 @@ |
72 | 73 | } |
73 | 74 | |
74 | 75 | } |
76 | + | |
77 | + } | |
78 | + | |
79 | + | |
80 | + @Scheduled(cron = "0 1 1 * * ?") | |
81 | + public void autoEndDoctorChatTask(){ | |
82 | + log.info("自动结束医生回访聊天组任务开始..."); | |
83 | + QueryWrapper<LymsChatgroup> queryWrapper = new QueryWrapper<>(); | |
84 | + queryWrapper.eq("type",1); | |
85 | + queryWrapper.eq("stat",0); | |
86 | + queryWrapper.eq("yn",1); | |
87 | + List<LymsChatgroup> hxGroupList = lymsChatgroupService.list(queryWrapper); | |
88 | + log.info("自动结束医生回访聊天组任,size={}",hxGroupList.size()); | |
89 | + for(int i = 0; i < hxGroupList.size(); i++){ | |
90 | + LymsChatgroup lymsChatgroup = hxGroupList.get(i); | |
91 | + if(lymsChatgroup.getCtime().getTime() > DateUtil.addDay(new Date() ,-3).getTime()){ | |
92 | + log.info("3天前的任务,需结束,{}",lymsChatgroup); | |
93 | + lymsChatgroup.setStat(1); | |
94 | + try{ | |
95 | + lymsChatgroupService.updateById(lymsChatgroup); | |
96 | + }catch (Exception e){ | |
97 | + log.error("自动结束聊天组异常",e); | |
98 | + } | |
99 | + } | |
100 | + | |
101 | + | |
102 | + } | |
103 | + | |
104 | + log.info("自动结束医生回访聊天组任务结束..."); | |
75 | 105 | |
76 | 106 | } |
77 | 107 |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/DoctorMsgNotifyTask.java
View file @
bbc2c94
... | ... | @@ -43,24 +43,24 @@ |
43 | 43 | List<DoctorChatCount> doctorChatCounts = doctorWorktimeService.selectDoctorChatCount(startTime); |
44 | 44 | int size = doctorChatCounts.size(); |
45 | 45 | log.info("医生消息提醒,数量:{}",size); |
46 | - for(DoctorChatCount doctorChatCount: doctorChatCounts) { | |
47 | - if(StringUtil.isEmpty(doctorChatCount.getGzopenid())){ | |
48 | - log.warn("医生消息提醒,未获取到公众号openid:{}",doctorChatCount); | |
46 | + for(DoctorChatCount doctor: doctorChatCounts) { | |
47 | + if(StringUtil.isEmpty(doctor.getGzopenid())){ | |
48 | + log.warn("医生消息提醒,未获取到公众号openid:{}",doctor); | |
49 | 49 | continue; |
50 | 50 | } |
51 | 51 | Map<String,Object> mapTemplate=new HashMap<>(); |
52 | 52 | mapTemplate.put("first","医生消息提醒"); |
53 | - mapTemplate.put("keyword1","尊敬的医生:"+doctorChatCount.getDname()); | |
54 | - mapTemplate.put("keyword2","您有患者消息"+doctorChatCount.getCount()+"条,请及时查看"); | |
53 | + mapTemplate.put("keyword1","尊敬的医生:"+doctor.getDname()); | |
54 | + mapTemplate.put("keyword2","您有患者消息"+doctor.getCount()+"条,请及时查看"); | |
55 | 55 | mapTemplate.put("remark","请点击下方进入小程序,根据病例点咨询查看医生回访信息。"); |
56 | 56 | Map<String,Object> map=new HashMap<>(); |
57 | - map.put("plogin", doctorChatCount.getDlogin()); | |
58 | - map.put("passwd", doctorChatCount.getDpasswd()); | |
57 | + map.put("plogin", doctor.getDlogin()); | |
58 | + map.put("passwd", doctor.getDpasswd()); | |
59 | 59 | try { |
60 | - Integer code= WeiXinUtil.DoctorSendWeChatMsg(doctorChatCount.getGzopenid(), Constant.GZ_TEMPLATE_ID_DOCTOR_VISIT,mapTemplate,map); | |
61 | - log.info("医生消息提醒,code:{},{}",code,doctorChatCount); | |
60 | + Integer code= WeiXinUtil.DoctorSendWeChatMsg(doctor.getGzopenid(), Constant.GZ_TEMPLATE_ID_DOCTOR_VISIT,mapTemplate,map); | |
61 | + log.info("医生消息提醒,code:{},{}",code,doctor); | |
62 | 62 | } catch (Exception e) { |
63 | - log.error("医生消息提醒异常,{}",doctorChatCount,e); | |
63 | + log.error("医生消息提醒异常,{}",doctor,e); | |
64 | 64 | } |
65 | 65 | |
66 | 66 | } |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/HisPatientsAutoUploadTask.java
View file @
bbc2c94
1 | +package com.lyms.talkonlineweb.task; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |
4 | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |
5 | +import com.lyms.talkonlineweb.domain.LymsHisInfo; | |
6 | +import com.lyms.talkonlineweb.domain.LymsHospital; | |
7 | +import com.lyms.talkonlineweb.domain.LymsOrder; | |
8 | +import com.lyms.talkonlineweb.enums.ChargeWay; | |
9 | +import com.lyms.talkonlineweb.service.LymsHisInfoService; | |
10 | +import com.lyms.talkonlineweb.service.LymsHospitalService; | |
11 | +import com.lyms.talkonlineweb.util.DateUtil; | |
12 | +import com.lyms.talkonlineweb.util.StringUtil; | |
13 | +import lombok.extern.log4j.Log4j2; | |
14 | +import org.springframework.beans.factory.annotation.Autowired; | |
15 | +import org.springframework.beans.factory.annotation.Value; | |
16 | +import org.springframework.scheduling.annotation.Scheduled; | |
17 | +import org.springframework.stereotype.Component; | |
18 | + | |
19 | +import java.util.Date; | |
20 | +import java.util.HashMap; | |
21 | +import java.util.List; | |
22 | +import java.util.Map; | |
23 | + | |
24 | +/** | |
25 | + * his患者信息自动上传功能 | |
26 | + */ | |
27 | +@Component | |
28 | +@Log4j2 | |
29 | +public class HisPatientsAutoUploadTask { | |
30 | + | |
31 | + @Value("${getAccessToken.on_off}") | |
32 | + public boolean on_off;//配置yml 微信公众号获取access_token(测试环境部署不要开启。会与线上环境冲突) | |
33 | + | |
34 | + @Autowired | |
35 | + private LymsHisInfoService lymsHisInfoService; | |
36 | + | |
37 | + @Autowired | |
38 | + private LymsHospitalService lymsHospitalService; //医院 | |
39 | + | |
40 | + @Scheduled(cron = "0 0 13,21 * * ?") | |
41 | + public void autoEndChatTask(){ | |
42 | + if(!on_off){ | |
43 | + return; | |
44 | + } | |
45 | + log.info("his患者信息自动上传任务开始..."); | |
46 | + //查询3天内未上传的数据 | |
47 | + LambdaQueryWrapper<LymsHisInfo> query = new QueryWrapper<LymsHisInfo>() | |
48 | + .lambda().eq(LymsHisInfo::getUpType, 0) | |
49 | + .ge(LymsHisInfo::getCreatedtime, DateUtil.addDay(new Date(),-3)); | |
50 | + List<LymsHisInfo> list = lymsHisInfoService.list(query); | |
51 | + log.info("his患者信息自动上传任务,size={}",list.size()); | |
52 | + for(LymsHisInfo hisInfo : list){ | |
53 | + try{ | |
54 | + String result = lymsHisInfoService.upHisInfo(hisInfo); | |
55 | + if(StringUtil.isNotEmpty(result)){ | |
56 | + log.error("his患者上传失败,result={},info={}",result,hisInfo); | |
57 | + } | |
58 | + | |
59 | + }catch (Exception e){ | |
60 | + log.error("his患者信息自动上传任务异常",e); | |
61 | + } | |
62 | + } | |
63 | + | |
64 | + log.info("his患者信息自动上传任务结束..."); | |
65 | + | |
66 | + | |
67 | + } | |
68 | +} |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/WeiXinUtil.java
View file @
bbc2c94
... | ... | @@ -145,15 +145,10 @@ |
145 | 145 | miniprogram.put("appid",Constant.DOCTOR_APP_ID); |
146 | 146 | //登录数据 |
147 | 147 | if(CollectionUtils.isNotEmpty(mapInfo) && null!=mapInfo.get("plogin") && null!=mapInfo.get("passwd")){ |
148 | - if(null==mapInfo.get("type") || 1==(int) mapInfo.get("type")) {//null是正常推送状态。 1有值是亲属关注时的状态 2没有病例的时候 | |
149 | - miniprogram.put("pagepath", "pages/news/news?plogin=" + mapInfo.get("plogin") + "&passwd=" + mapInfo.get("passwd"));// 注意,这里是支持传参的!!! | |
150 | - }else { | |
151 | - miniprogram.put("pagepath","pages/concernList/concernList?plogin="+mapInfo.get("plogin")+"&passwd="+mapInfo.get("passwd"));// 没有病例跳转地址 | |
152 | - } | |
153 | - | |
148 | + miniprogram.put("pagepath","pages/talkOnline/talkOnline?plogin="+mapInfo.get("plogin")+"&passwd="+mapInfo.get("passwd")); | |
154 | 149 | }else { |
155 | 150 | //意外情况自行登录 |
156 | - miniprogram.put("pagepath","pages/enroll/enroll");// 注意,这里是支持传参的!!! | |
151 | + miniprogram.put("pagepath","pages/login/login");// 注意,这里是支持传参的!!! | |
157 | 152 | } |
158 | 153 | paramMap.put("miniprogram", miniprogram); |
159 | 154 | paramMap.put("data", dataMap); |
talkonlineweb/src/main/resources/mapper/LymsHospitalMapper.xml
View file @
bbc2c94
... | ... | @@ -13,6 +13,7 @@ |
13 | 13 | <result property="city" column="city" jdbcType="INTEGER"/> |
14 | 14 | <result property="regin" column="regin" jdbcType="INTEGER"/> |
15 | 15 | <result property="haddr" column="haddr" jdbcType="VARCHAR"/> |
16 | + <result property="chargeWay" column="charge_way" jdbcType="INTEGER"/> | |
16 | 17 | <result property="createdby" column="createdby" jdbcType="INTEGER"/> |
17 | 18 | <result property="createdtime" column="createdtime" jdbcType="TIMESTAMP"/> |
18 | 19 | <result property="updatedby" column="updatedby" jdbcType="INTEGER"/> |
... | ... | @@ -22,8 +23,8 @@ |
22 | 23 | <sql id="Base_Column_List"> |
23 | 24 | hid,hname,hlevel, |
24 | 25 | htype,prov,city, |
25 | - regin,haddr,createdby, | |
26 | - createdtime,updatedby,updatedtime | |
26 | + regin,haddr,charge_way, | |
27 | + createdby,createdtime,updatedby,updatedtime | |
27 | 28 | </sql> |
28 | 29 | </mapper> |
talkonlineweb/src/main/resources/mapper/LymsOrderMapper.xml
View file @
bbc2c94
talkonlineweb/src/main/resources/mapper/LymsTcardMapper.xml
View file @
bbc2c94
... | ... | @@ -10,6 +10,9 @@ |
10 | 10 | <result property="fid" column="fid" jdbcType="INTEGER"/> |
11 | 11 | <result property="cnt" column="cnt" jdbcType="INTEGER"/> |
12 | 12 | <result property="price" column="price" jdbcType="INTEGER"/> |
13 | + <result property="startTime" column="start_time" jdbcType="TIMESTAMP"/> | |
14 | + <result property="endTime" column="end_time" jdbcType="TIMESTAMP"/> | |
15 | + <result property="orderNo" column="order_no" jdbcType="TIMESTAMP"/> | |
13 | 16 | <result property="createdby" column="createdby" jdbcType="INTEGER"/> |
14 | 17 | <result property="createdtime" column="createdtime" jdbcType="TIMESTAMP"/> |
15 | 18 | <result property="updatedby" column="updatedby" jdbcType="INTEGER"/> |
16 | 19 | |
... | ... | @@ -17,13 +20,12 @@ |
17 | 20 | </resultMap> |
18 | 21 | |
19 | 22 | <sql id="Base_Column_List"> |
20 | - id,pid,fid, | |
21 | - cnt,price,createdby, | |
22 | - createdtime,updatedby,updated_time | |
23 | + id,pid,fid,cnt,price, | |
24 | + start_time,end_time,order_no, | |
25 | + createdby,createdtime,updatedby,updated_time | |
23 | 26 | </sql> |
24 | 27 | |
25 | 28 | <select id="queryUnused" parameterType="com.lyms.talkonlineweb.domain.LymsTcard" resultMap="BaseResultMap"> |
26 | - | |
27 | 29 | select |
28 | 30 | <include refid="Base_Column_List"></include> |
29 | 31 | from lyms_tcard card |