| 
					
				 | 
			
			
				@ -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; 
			 |