| 
					
				 | 
			
			
				@ -231,13 +231,15 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public boolean orderWithPackageItemFeeAdd(JSONObject result, JSONObject jsonObjectParam, WlyyDoorServiceOrderDO order ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public boolean orderWithPackageItemFeeAdd(JSONObject result, JSONObject jsonObjectParam, WlyyDoorServiceOrderDO order,String doctorId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyDoorFeeDetailDO> feeDetailDOList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyDoorOrderItemDO> orderItemDOList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BigDecimal totalFee = order.getTotalFee(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == totalFee){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            totalFee = new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //新增服务项 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int addNum = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //服务项费用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray packageItemArray = jsonObjectParam.getJSONArray("packageItemArr"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!CollectionUtils.isEmpty(packageItemArray)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -277,7 +279,7 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    feeDetailDO.setStatus(status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                feeDetailDO.setPayStatus(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                feeDetailDO.setNumber(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                feeDetailDO.setOrderId(order.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(StringUtils.isBlank(feeDetailDO.getId())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -285,7 +287,12 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    feeDetailDO.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                feeDetailDOList.add(feeDetailDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(StringUtils.isBlank(feeDetailDO.getId())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    feeDetailDO.setPayStatus(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    addNum++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    feeDetailDOList.add(feeDetailDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            order.setTotalFee(totalFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            this.save(order); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -305,6 +312,10 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            order.setTotalFee(new BigDecimal(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            this.save(order); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(addNum>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doorOrderService.putTemplateTobePay(order,doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -344,11 +355,12 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(Object oneId : itemArray) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject oneIdJson = (JSONObject) oneId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                WlyyDoorFeeDetailDO doorFeeDetail = wlyyDoorFeeDetailDao.findOne(String.valueOf(oneIdJson.get("id"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                doorFeeDetail.setStatus(3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                doorFeeDetail.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                list.add(doorFeeDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                itemFee = itemFee.add(doorFeeDetail.getFee().multiply(BigDecimal.valueOf(doorFeeDetail.getNumber()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(doorFeeDetail.getPayStatus()==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doorFeeDetail.setStatus(3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doorFeeDetail.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    list.add(doorFeeDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    itemFee = itemFee.add(doorFeeDetail.getFee().multiply(BigDecimal.valueOf(doorFeeDetail.getNumber()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            wlyyDoorFeeDetailDao.save(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            orderDO.setTotalFee(totalFee.subtract(itemFee)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -625,7 +637,7 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderDO.setServiceStatus("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        this.save(orderDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("orderId",orderDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //创建咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject successOrNot = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -644,8 +656,7 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ConsultTeamDo consultTeam = (ConsultTeamDo)successOrNot.get(ResponseContant.resultMsg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //新增工单与服务项费用关联关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (orderWithPackageItemFeeAdd(result, jsonObjectParam, orderDO)) {return result;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (orderWithPackageItemFeeAdd(result, jsonObjectParam, orderDO,null)) {return result;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if ( StringUtils.isNotBlank(orderDO.getDoctor())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orderDO.setStatus(2); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1469,7 +1480,7 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("id", orderDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","smyyyqx",patient.getOpenid(),first,null,null,30,json,DateUtil.dateToStrShort(new Date()),"上门预约已取消"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","smyyyqx",patient.getOpenid(),first,null,null,30,json,DateUtil.dateToChineseDate(new Date()),"上门预约已取消"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/*        Consult consult = consultDao.queryByRelationCode(orderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 发送微信模板消息,通知居民工单已取消(smyyyqx-上门预约已取消) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1517,7 +1528,7 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("id", orderDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","smyyyqx",patient.getOpenid(),first,url,null,30,json,DateUtil.dateToStrShort(new Date()),"知情同意书已推送"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","smyyyqx",patient.getOpenid(),first,url,null,30,json,DateUtil.dateToChineseDate(new Date()),"知情同意书已推送"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/*        BasePatientDO patient = patientDao.findById(orderDO.getPatient()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_process_feedback","smyyyqx"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2745,7 +2756,7 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        this.save(orderDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("orderId",orderDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //新增工单与服务项费用关联关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (orderWithPackageItemFeeAdd(result, jsonObjectParam, orderDO)) {return result;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (orderWithPackageItemFeeAdd(result, jsonObjectParam, orderDO,doctorCode)) {return result;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if("1".equals(orderDO.getShortcutType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //快捷的当前医生直接接单 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2845,7 +2856,7 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        this.save(orderDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("orderId",orderDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //新增工单与服务项费用关联关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (orderWithPackageItemFeeAdd(result, jsonObjectParam, orderDO)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (orderWithPackageItemFeeAdd(result, jsonObjectParam, orderDO,doctorCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2939,7 +2950,10 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getServiceItemFees(String orderId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyDoorFeeDetailDO> feeDetailDOs = wlyyDoorFeeDetailDao.findByOrderIdAndPayStatus(orderId, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BigDecimal sum = feeDetailDOs.stream().map(WlyyDoorFeeDetailDO::getFee).reduce(BigDecimal::add).get(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BigDecimal sum = new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (WlyyDoorFeeDetailDO feeDetailDO: feeDetailDOs){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sum.add(feeDetailDO.getFee().multiply(new BigDecimal(feeDetailDO.getNumber()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sum = sum.setScale(1, BigDecimal.ROUND_DOWN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("orderId",orderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("sum",sum); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2948,7 +2962,14 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void payServiceItemFees(String[] ids){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject payServiceItemFees(String[] ids,String orderId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        wlyyDoorFeeDetailDao.updatePayStatusById(ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        WlyyDoorServiceOrderDO orderDO = wlyyDoorServiceOrderDao.findOne(orderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ConsultDo consult = consultDao.queryByRelationCode(orderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("patient",consult.getPatient()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("consult",consult.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return json; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |