|  | @ -97,6 +97,8 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private DoctorServicePermissionsService doctorServicePermissionsService;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     //是否开启支付 false 不需要支付
 | 
	
		
			
				|  |  |     public static final boolean  isNeedPay = false;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 记录完成情况
 | 
	
	
		
			
				|  | @ -450,16 +452,19 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
 | 
	
		
			
				|  |  |             logger.error(failMsg);
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(orderDO.getStatus() != LifeCareOrderDO.Status.waitForPay.getType()){
 | 
	
		
			
				|  |  |             result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
	
		
			
				|  |  |             String failMsg = "无法取消工单,已支付的工单需要到我的订单中进行申请退款," + orderId;
 | 
	
		
			
				|  |  |             result.put(ResponseContant.resultMsg, failMsg);
 | 
	
		
			
				|  |  |             logger.error(failMsg);
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         if(isNeedPay){
 | 
	
		
			
				|  |  |             if(orderDO.getStatus() != LifeCareOrderDO.Status.waitForPay.getType()){
 | 
	
		
			
				|  |  |                 result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
	
		
			
				|  |  |                 String failMsg = "无法取消工单,已支付的工单需要到我的订单中进行申请退款," + orderId;
 | 
	
		
			
				|  |  |                 result.put(ResponseContant.resultMsg, failMsg);
 | 
	
		
			
				|  |  |                 logger.error(failMsg);
 | 
	
		
			
				|  |  |                 return result;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(orderDO.getId());
 | 
	
		
			
				|  |  |             businessOrderDO.setStatus(2);
 | 
	
		
			
				|  |  |             businessOrderDao.save(businessOrderDO);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(orderDO.getId());
 | 
	
		
			
				|  |  |         businessOrderDO.setStatus(2);
 | 
	
		
			
				|  |  |         businessOrderDao.save(businessOrderDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | //        if(orderDO.getStatus().equals(LifeCareOrderDO.Status.complete.getType())){
 | 
	
		
			
				|  |  | //            result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
	
		
			
				|  |  | //            String failMsg = "只有医生服务前的工单才可取消";
 | 
	
	
		
			
				|  | @ -489,16 +494,19 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
 | 
	
		
			
				|  |  |         lifeCareCancelLogDao.save(cancelLogDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // 发送微信模板消息,通知居民工单已取消(smyyyqx-上门预约已取消)
 | 
	
		
			
				|  |  | //        String first = "key1,您好,您的上门预约服务已退回,点击查看原因";
 | 
	
		
			
				|  |  | //        BasePatientDO patient = patientDao.findById(orderDO.getPatient());
 | 
	
		
			
				|  |  | //        first  = first.replace("key1", null != patient.getName() ? patient.getName() : "");
 | 
	
		
			
				|  |  | //        JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  | //        json.put("id", orderDO.getId());
 | 
	
		
			
				|  |  | //        List<BasePatientWechatDo> basePatientWechatDos = basePatientWechatDao.findByWechatIdAndPatientId(wxId,patient.getId());
 | 
	
		
			
				|  |  | //        if(basePatientWechatDos.size()>0){
 | 
	
		
			
				|  |  | //            String openId = basePatientWechatDos.get(0).getOpenid();
 | 
	
		
			
				|  |  | //            messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","smyyyqx",openId,first,null,null,30,json, DateUtil.dateToChineseDate(new Date()),"生活照料已取消");
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  |         if(!isNeedPay){
 | 
	
		
			
				|  |  |             String first = "key1,您好,您的上门预约服务已退回,点击查看原因";
 | 
	
		
			
				|  |  |             BasePatientDO patient = patientDao.findById(orderDO.getPatient());
 | 
	
		
			
				|  |  |             first  = first.replace("key1", null != patient.getName() ? patient.getName() : "");
 | 
	
		
			
				|  |  |             JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  |             json.put("id", orderDO.getId());
 | 
	
		
			
				|  |  |             List<BasePatientWechatDo> basePatientWechatDos = basePatientWechatDao.findByWechatIdAndPatientId(wxId,patient.getId());
 | 
	
		
			
				|  |  |             if(basePatientWechatDos.size()>0){
 | 
	
		
			
				|  |  |                 String openId = basePatientWechatDos.get(0).getOpenid();
 | 
	
		
			
				|  |  |                 messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","smyyyqx",openId,first,null,null,30,json, DateUtil.dateToChineseDate(new Date()),"生活照料已取消");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         result.put(ResponseContant.resultFlag, ResponseContant.success);
 | 
	
		
			
				|  |  |         result.put(ResponseContant.resultMsg, "工单服务已取消!");
 | 
	
		
			
				|  |  |         return result;
 | 
	
	
		
			
				|  | @ -520,19 +528,37 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             jsonObjectParam = JSONObject.parseObject(jsonData);
 | 
	
		
			
				|  |  |             orderDO = EntityUtils.jsonToEntity(jsonObjectParam.get("order").toString(), LifeCareOrderDO.class);
 | 
	
		
			
				|  |  |             //存在未支付的订单不能发起
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             boolean bool = lifeCareOrderDao.existsByPatientAndStatusIn(orderDO.getPatient(),
 | 
	
		
			
				|  |  |                     new Integer[]{
 | 
	
		
			
				|  |  |                             BaseDoorCoachOrderDO.Status.waitForPay.getType()
 | 
	
		
			
				|  |  |                     });
 | 
	
		
			
				|  |  |             if(isNeedPay){
 | 
	
		
			
				|  |  |                 //存在未支付的订单不能发起
 | 
	
		
			
				|  |  |                 boolean bool = lifeCareOrderDao.existsByPatientAndStatusIn(orderDO.getPatient(),
 | 
	
		
			
				|  |  |                         new Integer[]{
 | 
	
		
			
				|  |  |                                 LifeCareOrderDO.Status.waitForPay.getType(),
 | 
	
		
			
				|  |  |                                 LifeCareOrderDO.Status.waitForAccept.getType(),
 | 
	
		
			
				|  |  |                                 LifeCareOrderDO.Status.signIn.getType()
 | 
	
		
			
				|  |  |                         });
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 if(bool){
 | 
	
		
			
				|  |  |                     String failMsg = "当前服务对象存在未支付或未完成,无法再次申请!";
 | 
	
		
			
				|  |  |                     result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
	
		
			
				|  |  |                     result.put(ResponseContant.resultMsg, failMsg);
 | 
	
		
			
				|  |  |                     logger.error(failMsg);
 | 
	
		
			
				|  |  |                     return result;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 boolean bool = lifeCareOrderDao.existsByPatientAndStatusIn(orderDO.getPatient(),
 | 
	
		
			
				|  |  |                         new Integer[]{
 | 
	
		
			
				|  |  |                                 LifeCareOrderDO.Status.waitForAccept.getType(),
 | 
	
		
			
				|  |  |                                 LifeCareOrderDO.Status.signIn.getType()
 | 
	
		
			
				|  |  |                         });
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 if(bool){
 | 
	
		
			
				|  |  |                     String failMsg = "当前服务对象存在未完成,无法再次申请!";
 | 
	
		
			
				|  |  |                     result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
	
		
			
				|  |  |                     result.put(ResponseContant.resultMsg, failMsg);
 | 
	
		
			
				|  |  |                     logger.error(failMsg);
 | 
	
		
			
				|  |  |                     return result;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if(bool){
 | 
	
		
			
				|  |  |                 String failMsg = "当前服务对象存在未支付或未完成,无法再次申请!";
 | 
	
		
			
				|  |  |                 result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
	
		
			
				|  |  |                 result.put(ResponseContant.resultMsg, failMsg);
 | 
	
		
			
				|  |  |                 logger.error(failMsg);
 | 
	
		
			
				|  |  |                 return result;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             Integer type = orderDO.getType();
 | 
	
		
			
				|  |  |             if (type==1||type==2){
 | 
	
	
		
			
				|  | @ -547,12 +573,14 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
 | 
	
		
			
				|  |  |                 orderDO.setProxyPatient(proxyPatient);
 | 
	
		
			
				|  |  |                 orderDO.setProxyPatientName(doctorDO.getName());
 | 
	
		
			
				|  |  |                 orderDO.setProxyPatientPhone(doctorDO.getMobile());
 | 
	
		
			
				|  |  |                 List<BasePatientWechatDo> basePatientWechatDos = basePatientWechatDao.findByWechatIdAndPatientId(wxId,orderDO.getPatient());
 | 
	
		
			
				|  |  |                 if (basePatientWechatDos.size()>0){
 | 
	
		
			
				|  |  |                     JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  |                     String openId = basePatientWechatDos.get(0).getOpenid();
 | 
	
		
			
				|  |  |                     messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","shzldzf",openId,null,null,"请在30分钟内完成支付",3,json,
 | 
	
		
			
				|  |  |                             DateUtil.dateToChineseDate(new Date()),"助老员已为您代预约生活照料","待支付");
 | 
	
		
			
				|  |  |                 if(isNeedPay){
 | 
	
		
			
				|  |  |                     List<BasePatientWechatDo> basePatientWechatDos = basePatientWechatDao.findByWechatIdAndPatientId(wxId,orderDO.getPatient());
 | 
	
		
			
				|  |  |                     if (basePatientWechatDos.size()>0){
 | 
	
		
			
				|  |  |                         JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  |                         String openId = basePatientWechatDos.get(0).getOpenid();
 | 
	
		
			
				|  |  |                         messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","shzldzf",openId,null,null,"请在30分钟内完成支付",3,json,
 | 
	
		
			
				|  |  |                                 DateUtil.dateToChineseDate(new Date()),"助老员已为您代预约生活照料","待支付");
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if(StringUtils.isNotBlank(agent)){
 | 
	
	
		
			
				|  | @ -597,7 +625,12 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         orderDO.setNumber(orderNoService.getOrderNo(1));
 | 
	
		
			
				|  |  |         orderDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |         orderDO.setStatus(0);//待付款状态
 | 
	
		
			
				|  |  |         if(isNeedPay){
 | 
	
		
			
				|  |  |             orderDO.setStatus(0);//待付款状态
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             orderDO.setStatus(1);//待(医生)接单
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             BaseAdminServiceDynamic baseAdminServiceDynamic = new BaseAdminServiceDynamic();
 | 
	
	
		
			
				|  | @ -628,7 +661,9 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
 | 
	
		
			
				|  |  |         result.put(ResponseContant.resultMsg, orderDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //发起支付订单
 | 
	
		
			
				|  |  |         payService.submitOrder(orderDO.getPatient(),"4",orderDO.getId(),orderDO.getTotalFee().doubleValue());
 | 
	
		
			
				|  |  |         if (isNeedPay){
 | 
	
		
			
				|  |  |             payService.submitOrder(orderDO.getPatient(),"4",orderDO.getId(),orderDO.getTotalFee().doubleValue());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //给签约医生发送预约短信
 | 
	
		
			
				|  |  |         String sql ="SELECT i.code,r.team_code,pack.org_code,pack.org_name from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack  \n" +
 | 
	
	
		
			
				|  | @ -640,9 +675,11 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
 | 
	
		
			
				|  |  |         for (BaseDoctorDO doctorDO:doctorDOS){
 | 
	
		
			
				|  |  |             try {
 | 
	
		
			
				|  |  |                 if (StringUtils.isNotBlank(doctorDO.getMobile())){
 | 
	
		
			
				|  |  |                     messageUtil.sendTXYSJson("1099805",doctorDO.getMobile(),orderDO.getPatientName());
 | 
	
		
			
				|  |  |                     messageUtil.sendTXYSJson("1099807",doctorDO.getMobile(),orderDO.getPatientName(),"生活照料");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }catch (Exception e){}
 | 
	
		
			
				|  |  |             }catch (Exception e){
 | 
	
		
			
				|  |  |                 e.printStackTrace();
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return result;
 |