| 
					
				 | 
			
			
				@ -37,6 +37,7 @@ import com.ylzinfo.onepay.sdk.domain.RequestParams; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.ylzinfo.onepay.sdk.domain.ResponseParams; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.ylzinfo.onepay.sdk.utils.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.ylzinfo.onepay.sdk.utils.StringUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -574,7 +575,7 @@ public class PatientPrescriptionPayService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 长处方支付,成功则返回支付路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Map charge(int type, String addressJson, String orgCode, String prescriptionCode, int totalAmount, String people, String accessToken, String returnUrl) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Map charge(int type, String addressJson, String orgCode, String prescriptionCode, int totalAmount, String people, String accessToken, String returnUrl,String deliveryTime) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map resultMap = new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Prescription prescription = null; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -621,163 +622,176 @@ public class PatientPrescriptionPayService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String userIdcard = patient.getIdcard(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//       ***************************  测通流程 *************************************** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        OnepayDefaultClient onepayClient = new OnepayDefaultClient(config.getOnepayApi(), appId, appSecret, signType, encryptType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            OnepayDefaultClient onepayClient = new OnepayDefaultClient(config.getOnepayApi(), appId, appSecret, signType, encryptType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     未真正完成支付以前预存储支付信息到wlyy_prescription_pay表 更改wlyy_prescription表支付时间  wlyy_prescription_expressage 新增物流记录  续方code与物流code--对应 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        PrescriptionExpressage expressage = expressageDao.findByPrescriptionPay(prescriptionCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (expressage == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            expressage = new PrescriptionExpressage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            expressage.setCode(getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        expressage.setPrescriptionCode(prescriptionCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        prescription = prescriptionDao.findByCode(prescriptionCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 续方居民信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String paySsc = prescription.getSsc(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String payPatientCode = prescription.getPatient(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String payName = prescription.getPatientName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Patient payPatient = patientDao.findByCode(payPatientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String payIdcard = payPatient.getIdcard(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            PrescriptionExpressage expressage = expressageDao.findByPrescriptionPay(prescriptionCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (expressage == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage = new PrescriptionExpressage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setCode(getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            expressage.setPrescriptionCode(prescriptionCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            prescription = prescriptionDao.findByCode(prescriptionCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 续方居民信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String paySsc = prescription.getSsc(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String payPatientCode = prescription.getPatient(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String payName = prescription.getPatientName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Patient payPatient = patientDao.findByCode(payPatientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String payIdcard = payPatient.getIdcard(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        prescription.setPayTime(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            prescription.setPayTime(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject addressInfo = JSON.parseObject(addressJson); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject addressInfo = JSON.parseObject(addressJson); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String phone = addressInfo.getString("phone"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        expressage.setMobile(phone);//收货人手机号码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String phone = addressInfo.getString("phone"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            expressage.setMobile(phone);//收货人手机号码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        配药机构信息(签约机构) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        expressage.setHospitalCode(orgCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        expressage.setHospitalName(hos.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        expressage.setHospitalAddress(signAddress); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        switch (type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case 1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                prescription.setDispensaryType(1);//取药类型:1 自取 2快递配送 3健管师配送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //自取保存居民信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setName(userName);//居民姓名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setProvinceCode(userProvince);//省代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setProvinceName(userProvinceName);//省名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setCityCode(userCity);//市代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setCityName(userCityName);//市名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setTownCode(userTown);//区code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setTownName(userTownName);//区名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setStreetCode(userStreet);//街道code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setStreetName(userStreetName);//街道名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setAddress(userAddress);//居民详细地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setCreateTime(now);//创建时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setOneselfPickupFlg(1);//是否自取 1是 0否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setDel(1);//有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case 2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                prescription.setDispensaryType(2);//取药类型:1 自取 2快递配送 3健管师配送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //快递保存信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String name = addressInfo.getString("receiver"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String proviceCode = addressInfo.getString("provinceCode"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String proviceName = addressInfo.getString("provinceName"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String cityCode = addressInfo.getString("cityCode"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String cityName = addressInfo.getString("cityName"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String townCode = addressInfo.getString("townCode"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String townName = addressInfo.getString("townName"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String streeCode = addressInfo.getString("streeCode"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String streeName = addressInfo.getString("streeName"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String address = addressInfo.getString("address"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setName(name);//居民姓名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setProvinceCode(proviceCode);//省代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setProvinceName(proviceName);//省名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setCityCode(cityCode);//市代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setCityName(cityName);//市名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setTownCode(townCode);//区code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setTownName(townName);//区名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setStreetCode(streeCode);//街道code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setStreetName(streeName);//街道名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setAddress(address);//居民详细地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setExpressageHospitalName("顺丰快递"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setCreateTime(now);//创建时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setOneselfPickupFlg(0);//是否自取 1是 0否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setDel(1);//有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case 3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                prescription.setDispensaryType(3);//取药类型:1 自取 2快递配送 3健管师配送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //健管师配送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setName(userName);//居民姓名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setProvinceCode(userProvince);//省代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setProvinceName(userProvinceName);//省名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setCityCode(userCity);//市代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setCityName(userCityName);//市名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setTownCode(userTown);//区code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setTownName(userTownName);//区名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setStreetCode(userStreet);//街道code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setStreetName(userStreetName);//街道名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setAddress(userAddress);//居民详细地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //居民选择的要送达的服务站 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String userOrgCode = addressInfo.getString("code"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String userOrgName = addressInfo.getString("name"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String userOrgAddress = addressInfo.getString("address"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setPatientHospitalCode(userOrgCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setPatientHospitalName(userOrgName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setPatientHospitalAddress(userOrgAddress); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setCreateTime(now);//创建时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setOneselfPickupFlg(0);//是否自取 1是 0否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                expressage.setDel(1);//有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //根据居民code查询团队长及所在团队待处理订单数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String sql = "SELECT a.id teamCode,a.leader_code leaderCode,d.`name` leaderName " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        " FROM wlyy_sign_family t,wlyy_admin_team a,wlyy_doctor d " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        " WHERE t.admin_team_code=a.id AND d.code=a.leader_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        " AND t.patient=? "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> team = jdbcTemplate.queryForMap(sql, people); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                LOGGER.debug("================> get order amount!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String teamCode = team.get("teamCode").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String leaderCode = team.get("leaderCode").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String leaderName = team.get("leaderName").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String count = infoService.getCountExpressage(teamCode).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject jsonObject = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jsonObject = JSON.parseObject(count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                int amount = jsonObject.getInteger("count"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                amount+=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //增加wlyy_message 团队长健管师待分配系统消息记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Message message = new Message(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setCode(getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setReceiver(leaderCode);//接受者 团队长 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setReceiverName(leaderName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setSender("SYSTEM");//发送者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setSenderName("SYSTEM");//发送者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setTitle("新增系统消息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                SimpleDateFormat format = new SimpleDateFormat("MM月dd日"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String content = format.format(new Date()) + "新增1个续方订单待分配配送员,目前共" + amount + "人待处理"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setContent(content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setType(8);//8.续方支付成功后团队长分配健管师 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setPlatform(2);//消息平台,1微信端/患者端,2医生APP端 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setState(0);//消息状态,1已发送,0待发送,-1发送失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setRead(1);//查看状态,1未读,0已读 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setReadonly(1);//只读消息:1否,0是 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setCzrq(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setDel("1");//是否作废,1正常,0作废 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setOver("0");//是否操作结束 1是 0否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                message.setRelationCode(prescriptionCode);//业务关联code 续方code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                messageDao.save(message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            expressage.setHospitalCode(orgCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            expressage.setHospitalName(hos.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            expressage.setHospitalAddress(signAddress); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            switch (type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                case 1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    prescription.setDispensaryType(1);//取药类型:1 自取 2快递配送 3健管师配送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //自取保存居民信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setName(userName);//居民姓名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setProvinceCode(userProvince);//省代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setProvinceName(userProvinceName);//省名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setCityCode(userCity);//市代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setCityName(userCityName);//市名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setTownCode(userTown);//区code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setTownName(userTownName);//区名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setStreetCode(userStreet);//街道code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setStreetName(userStreetName);//街道名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setAddress(userAddress);//居民详细地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setCreateTime(now);//创建时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setOneselfPickupFlg(1);//是否自取 1是 0否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setDel(1);//有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(StringUtils.isNotBlank(deliveryTime)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Date dt = com.yihu.wlyy.util.DateUtil.stringToDate(deliveryTime,"yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        expressage.setDeliveryTime(dt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                case 2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    prescription.setDispensaryType(2);//取药类型:1 自取 2快递配送 3健管师配送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //快递保存信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String name = addressInfo.getString("receiver"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String proviceCode = addressInfo.getString("provinceCode"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String proviceName = addressInfo.getString("provinceName"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String cityCode = addressInfo.getString("cityCode"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String cityName = addressInfo.getString("cityName"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String townCode = addressInfo.getString("townCode"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String townName = addressInfo.getString("townName"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String streeCode = addressInfo.getString("streeCode"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String streeName = addressInfo.getString("streeName"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String address = addressInfo.getString("address"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setName(name);//居民姓名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setProvinceCode(proviceCode);//省代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setProvinceName(proviceName);//省名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setCityCode(cityCode);//市代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setCityName(cityName);//市名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setTownCode(townCode);//区code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setTownName(townName);//区名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setStreetCode(streeCode);//街道code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setStreetName(streeName);//街道名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setAddress(address);//居民详细地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setExpressageHospitalName("顺丰快递"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setCreateTime(now);//创建时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setOneselfPickupFlg(0);//是否自取 1是 0否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setDel(1);//有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //v1.3.6.1 新增deliveryTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(StringUtils.isNotBlank(deliveryTime)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Date dt = com.yihu.wlyy.util.DateUtil.stringToDate(deliveryTime,"yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        expressage.setDeliveryTime(dt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                case 3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    prescription.setDispensaryType(3);//取药类型:1 自取 2快递配送 3健管师配送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //健管师配送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setName(userName);//居民姓名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setProvinceCode(userProvince);//省代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setProvinceName(userProvinceName);//省名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setCityCode(userCity);//市代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setCityName(userCityName);//市名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setTownCode(userTown);//区code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setTownName(userTownName);//区名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setStreetCode(userStreet);//街道code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setStreetName(userStreetName);//街道名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setAddress(userAddress);//居民详细地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //居民选择的要送达的服务站 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String userOrgCode = addressInfo.getString("code"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String userOrgName = addressInfo.getString("name"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String userOrgAddress = addressInfo.getString("address"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setPatientHospitalCode(userOrgCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setPatientHospitalName(userOrgName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setPatientHospitalAddress(userOrgAddress); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setCreateTime(now);//创建时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setOneselfPickupFlg(0);//是否自取 1是 0否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    expressage.setDel(1);//有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //v1.3.6.1 新增deliveryTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(StringUtils.isNotBlank(deliveryTime)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Date dt = com.yihu.wlyy.util.DateUtil.stringToDate(deliveryTime,"yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        expressage.setDeliveryTime(dt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //根据居民code查询团队长及所在团队待处理订单数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String sql = "SELECT a.id teamCode,a.leader_code leaderCode,d.`name` leaderName " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            " FROM wlyy_sign_family t,wlyy_admin_team a,wlyy_doctor d " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            " WHERE t.admin_team_code=a.id AND d.code=a.leader_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            " AND t.patient=? "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Map<String, Object> team = jdbcTemplate.queryForMap(sql, people); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    LOGGER.debug("================> get order amount!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String teamCode = team.get("teamCode").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String leaderCode = team.get("leaderCode").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String leaderName = team.get("leaderName").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String count = infoService.getCountExpressage(teamCode).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject jsonObject = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jsonObject = JSON.parseObject(count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    int amount = jsonObject.getInteger("count"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    amount+=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //增加wlyy_message 团队长健管师待分配系统消息记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Message message = new Message(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setCode(getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setReceiver(leaderCode);//接受者 团队长 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setReceiverName(leaderName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setSender("SYSTEM");//发送者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setSenderName("SYSTEM");//发送者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setTitle("新增系统消息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    SimpleDateFormat format = new SimpleDateFormat("MM月dd日"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String content = format.format(new Date()) + "新增1个续方订单待分配配送员,目前共" + amount + "人待处理"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setContent(content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setType(8);//8.续方支付成功后团队长分配健管师 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setPlatform(2);//消息平台,1微信端/患者端,2医生APP端 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setState(0);//消息状态,1已发送,0待发送,-1发送失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setRead(1);//查看状态,1未读,0已读 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setReadonly(1);//只读消息:1否,0是 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setCzrq(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setDel("1");//是否作废,1正常,0作废 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setOver("0");//是否操作结束 1是 0否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    message.setRelationCode(prescriptionCode);//业务关联code 续方code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    messageDao.save(message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        PrescriptionPay prescriptionPay = new PrescriptionPay(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            PrescriptionPay prescriptionPay = new PrescriptionPay(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        居民信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        prescriptionPay.setCode(uuid);  //  接入应用支付业务流水号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        prescriptionPay.setPrescriptionCode(prescriptionCode);   //开处方的医生code 关联 wlyy_prescription 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        prescriptionPay.setType(1);//支付方式 1 医保支付 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        prescriptionPay.setOutChargeTime(new Date());//接入应用时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        prescriptionPay.setChannel(channel);//支付方式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        prescriptionPay.setChargeTime(new Date());//预支付时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        prescriptionPay.setOpenid(openid);     //  用戶微信openid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        prescriptionPay.setTotalAmount(totalAmount);//交易总金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        prescriptionPay.setCreateTime(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        prescriptionPay.setCzrq(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            prescriptionPay.setCode(uuid);  //  接入应用支付业务流水号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            prescriptionPay.setPrescriptionCode(prescriptionCode);   //开处方的医生code 关联 wlyy_prescription 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            prescriptionPay.setType(1);//支付方式 1 医保支付 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            prescriptionPay.setOutChargeTime(new Date());//接入应用时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            prescriptionPay.setChannel(channel);//支付方式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            prescriptionPay.setChargeTime(new Date());//预支付时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            prescriptionPay.setOpenid(openid);     //  用戶微信openid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            prescriptionPay.setTotalAmount(totalAmount);//交易总金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            prescriptionPay.setCreateTime(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            prescriptionPay.setCzrq(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 |