|  | @ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 | 
	
		
			
				|  |  | import com.yihu.jw.doctor.dao.BaseDoctorDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.door.dao.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.door.util.MessageUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.door.util.StreamUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.im.ConsultDo;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.im.ConsultTeamDo;
 | 
	
	
		
			
				|  | @ -23,7 +24,6 @@ import com.yihu.jw.util.date.DateUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.http.HttpClientUtil;
 | 
	
		
			
				|  |  | import jxl.Workbook;
 | 
	
		
			
				|  |  | import jxl.write.*;
 | 
	
		
			
				|  |  | import org.apache.commons.collections.CollectionUtils;
 | 
	
		
			
				|  |  | import org.apache.commons.lang.StringUtils;
 | 
	
		
			
				|  |  | import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 | 
	
		
			
				|  |  | import org.jsoup.Jsoup;
 | 
	
	
		
			
				|  | @ -770,15 +770,14 @@ public class DoorOrderService {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public void doorOrderOutExcel(String orderId,String patientName,String patientPhone,String hospitalCode,
 | 
	
		
			
				|  |  |                                   Integer status,String createTimeStart,String createTimeEnd,String serverDoctorName,String doctorCode,Integer examPaperStatus, HttpServletResponse response)throws Exception{
 | 
	
		
			
				|  |  |                                   Integer[] status,String createTimeStart,String createTimeEnd,String serverDoctorName,String doctorCode,Integer examPaperStatus, HttpServletResponse response)throws Exception{
 | 
	
		
			
				|  |  |         WritableWorkbook book = null;
 | 
	
		
			
				|  |  |         OutputStream os = null;
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             String sql = "select DISTINCT o.id as orderId,o.number,o.status,f.hospital,f.hospital_name as hospitalName1,o.is_trans_other_org," +
 | 
	
		
			
				|  |  |                     " o.transed_org_code,h.name as hospitalName2,o.patient_name,f.idcard,o.doctor_sign_time,o.total_fee," +
 | 
	
		
			
				|  |  |             String sql = "select DISTINCT o.id as orderId,o.number,o.status,o.is_trans_other_org," +
 | 
	
		
			
				|  |  |                     " o.transed_org_code,o.patient_name,p.idcard,o.doctor_sign_time,o.total_fee," +
 | 
	
		
			
				|  |  |                     " o.patient_phone,o.remark,o.create_time,o.patient as patientCode from wlyy_door_service_order o " +
 | 
	
		
			
				|  |  |                     " LEFT JOIN wlyy_sign_family f ON f.patient = o.patient AND f. STATUS = 1 AND f.expenses_status = 1 " +
 | 
	
		
			
				|  |  |                     " LEFT JOIN base_org h on h.code=o.transed_org_code and h.del=1 " ;
 | 
	
		
			
				|  |  |                     " LEFT JOIN base_patient p on p.id=o.patient " ;
 | 
	
		
			
				|  |  |             if(!StringUtils.isEmpty(serverDoctorName)){
 | 
	
		
			
				|  |  |                 sql+=" RIGHT JOIN wlyy_door_doctor d on d.order_id = o.id";
 | 
	
		
			
				|  |  |             }
 | 
	
	
		
			
				|  | @ -793,13 +792,15 @@ public class DoorOrderService {
 | 
	
		
			
				|  |  |             if (!StringUtils.isEmpty(patientPhone)) {
 | 
	
		
			
				|  |  |                 sql += " and o.patient_phone ='" + patientPhone + "'";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (StringUtils.isNotBlank(hospitalCode) && !hospitalCode.contains("%")) {
 | 
	
		
			
				|  |  |                 sql += " and (f.hospital = '" + hospitalCode + "' or o.transed_org_code='" + hospitalCode + "') ";
 | 
	
		
			
				|  |  | /*            if (StringUtils.isNotBlank(hospitalCode) && !hospitalCode.contains("%")) {
 | 
	
		
			
				|  |  | //                sql += " and (h.code = '" + hospitalCode + "' or o.transed_org_code='" + hospitalCode + "') ";
 | 
	
		
			
				|  |  |                 sql += " and ( o.transed_org_code='" + hospitalCode + "') ";
 | 
	
		
			
				|  |  |             }else if(StringUtils.isNotBlank(hospitalCode) && hospitalCode.contains("%")){
 | 
	
		
			
				|  |  |                 sql += " and (f.hospital like '" + hospitalCode + "' or o.transed_org_code like '" + hospitalCode + "') ";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | //                sql += " and (h.code like '" + hospitalCode + "' or o.transed_org_code like '" + hospitalCode + "') ";
 | 
	
		
			
				|  |  |                 sql += " and ( o.transed_org_code like '" + hospitalCode + "') ";
 | 
	
		
			
				|  |  |             }*/
 | 
	
		
			
				|  |  |             if (status != null) {
 | 
	
		
			
				|  |  |                 sql += " and o.status ='" + status + "'";
 | 
	
		
			
				|  |  |                 sql += " and o.status in ("+StringUtils.strip(Arrays.toString(status),"[]")+") ";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (!StringUtils.isEmpty(createTimeStart)) {
 | 
	
		
			
				|  |  |                 sql += " and o.create_time >='" + createTimeStart + "'";
 | 
	
	
		
			
				|  | @ -889,14 +890,7 @@ public class DoorOrderService {
 | 
	
		
			
				|  |  |                 sheet.addCell(new Label(1, b + 1, statusName,cellFormat));//工单状态
 | 
	
		
			
				|  |  |                 //工单是否转给其他机构,0-不转,1-已转
 | 
	
		
			
				|  |  |                 String transOtherOrg = list.get(i).get("is_trans_other_org") + "";
 | 
	
		
			
				|  |  |                 String hospitalName = null;
 | 
	
		
			
				|  |  |                 if ("0".equals(transOtherOrg)) {
 | 
	
		
			
				|  |  |                     hospitalName = list.get(i).get("hospitalName1") + "";//签约表中的机构
 | 
	
		
			
				|  |  |                 } else if ("1".equals(transOtherOrg)) {
 | 
	
		
			
				|  |  |                     hospitalName = list.get(i).get("hospitalName2") + "";//转机构中的机构
 | 
	
		
			
				|  |  |                 }else if("null".equals(transOtherOrg)){
 | 
	
		
			
				|  |  |                     hospitalName = list.get(i).get("hospitalName1") + "";//签约表中的机构
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 String hospitalName = "泰安市中医医院";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 sheet.addCell(new Label(2, b + 1, hospitalName,cellFormat));//服务机构
 | 
	
		
			
				|  |  |                 Date createTime = (Date) list.get(i).get("create_time");
 | 
	
	
		
			
				|  | @ -1046,8 +1040,7 @@ public class DoorOrderService {
 | 
	
		
			
				|  |  |         // 更新记录
 | 
	
		
			
				|  |  |         this.setUpdateColumnInfo(one);
 | 
	
		
			
				|  |  |         doorServiceOrderDao.save(one);
 | 
	
		
			
				|  |  |         // 更新居民签约服务包服务项次数
 | 
	
		
			
				|  |  |         this.reduceServiceItemTimes(serverPackagePriceByOrderId(orderId), one.getPatient());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // 发送微信消息通知--用户评价//·
 | 
	
		
			
				|  |  |         BasePatientDO patient = patientInfoService.findById(one.getPatient());
 | 
	
		
			
				|  |  |         // 获取微信模板  fwyspf-服务医生评分
 | 
	
	
		
			
				|  | @ -1292,42 +1285,6 @@ public class DoorOrderService {
 | 
	
		
			
				|  |  |         return map;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 更新居民签约服务包服务项次数
 | 
	
		
			
				|  |  |      * @param itemInfo 格式[{"itemCode":"","fee":"","number":""}]
 | 
	
		
			
				|  |  |      * @param patient 居民code
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public void reduceServiceItemTimes(String itemInfo, String patient){
 | 
	
		
			
				|  |  |         Map<String, Object> map = new HashMap<>();
 | 
	
		
			
				|  |  |         //获取居民签约服务项及次数
 | 
	
		
			
				|  |  | //        SignFamily signFamily = signFamilyDao.findByPatient(patient);
 | 
	
		
			
				|  |  |         String sql = "SELECT ip.`code`,ip.service_item_code as itemCode, ip.service_times as times  FROM wlyy_server_package_patient pp , wlyy_server_package_item_patient ip " +
 | 
	
		
			
				|  |  | //                "where pp.`code` = ip.server_package_patient_code and  pp.patient = '" + patient + "' and pp.hospital = '" + signFamily.getHospital() + "' and pp.`status` = 1 " +
 | 
	
		
			
				|  |  |                 "where pp.`code` = ip.server_package_patient_code and  pp.patient = '" + patient + "' and pp.hospital = '" + "" + "' and pp.`status` = 1 " +
 | 
	
		
			
				|  |  |                 "order BY pp.end_time ";
 | 
	
		
			
				|  |  |         List<Map<String, Object>> list =jdbcTemplate.query(sql, new BeanPropertyRowMapper(String.class));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         JSONArray jsonArray = JSONArray.parseArray(itemInfo);
 | 
	
		
			
				|  |  |         for(Object o : jsonArray) {
 | 
	
		
			
				|  |  |             JSONObject jsonObject = (JSONObject) o;
 | 
	
		
			
				|  |  |             String itemCode = jsonObject.getString("itemCode");
 | 
	
		
			
				|  |  |             Integer number = jsonObject.getInteger("number");
 | 
	
		
			
				|  |  |             //遍历是否是居民签约的服务项,如果是,看服务项次数够不够减,不够减的继续遍历其他服务项,够减则跳出循环更新次数
 | 
	
		
			
				|  |  |             for (Map<String, Object> m : list) {
 | 
	
		
			
				|  |  |                 if ((m.get(itemCode) + "").equals(itemCode)) {
 | 
	
		
			
				|  |  |                     String itemPatientCode = map.get("code") + "";
 | 
	
		
			
				|  |  |                     Integer times = (Integer) map.get("times");
 | 
	
		
			
				|  |  |                     if (number <= times) {
 | 
	
		
			
				|  |  | //                        serverPackageItemPatientDao.updateTimesByCode(itemPatientCode, times - number);
 | 
	
		
			
				|  |  |                         break;
 | 
	
		
			
				|  |  |                     } else {
 | 
	
		
			
				|  |  | //                        serverPackageItemPatientDao.updateTimesByCode(itemPatientCode, 0);
 | 
	
		
			
				|  |  |                         number -= times;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取订单下服务包数量、单价
 | 
	
	
		
			
				|  | @ -1657,9 +1614,10 @@ public class DoorOrderService {
 | 
	
		
			
				|  |  |             fileName = java.net.URLEncoder.encode(fileName,"UTF-8");
 | 
	
		
			
				|  |  |             fileName = java.net.URLDecoder.decode(fileName,"UTF-8");
 | 
	
		
			
				|  |  |             response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
 | 
	
		
			
				|  |  |             String pathName = this.getClass().getResource("/").getPath() + "conclusion.mht";
 | 
	
		
			
				|  |  |             System.out.println("路径pathName:" + pathName);
 | 
	
		
			
				|  |  |             Document doc = Jsoup.parse(new File(pathName), "UTF-8");
 | 
	
		
			
				|  |  | //            String pathName = this.getClass().getResource("/").getPath() + "conclusion.mht";
 | 
	
		
			
				|  |  | //            System.out.println("路径pathName:" + pathName);
 | 
	
		
			
				|  |  | //            Document doc = Jsoup.parse(new File(pathName), "UTF-8");
 | 
	
		
			
				|  |  |             Document doc = Jsoup.parse(StreamUtil.readResources());
 | 
	
		
			
				|  |  |             String html = this.handleData(doc, orderId.get(i));//16
 | 
	
		
			
				|  |  |             BufferedWriter bw = new BufferedWriter(new FileWriter(path+"/"+fileName));//创建的文件
 | 
	
		
			
				|  |  |             bw.write(html);
 | 
	
	
		
			
				|  | @ -1773,12 +1731,11 @@ public class DoorOrderService {
 | 
	
		
			
				|  |  |    public List<Map<String,Object>> getOrderIdList(Integer status,String doctorCode){
 | 
	
		
			
				|  |  |        String sqlList = "select DISTINCT o.id as orderId";
 | 
	
		
			
				|  |  |        String sql = " from wlyy_door_service_order o " +
 | 
	
		
			
				|  |  |                " LEFT JOIN wlyy_sign_family f ON f.patient = o.patient AND f. STATUS = 1 AND f.expenses_status = 1 " +
 | 
	
		
			
				|  |  |                " LEFT JOIN base_org h on h.code=o.hospital and h.del=1 "
 | 
	
		
			
				|  |  |                +" LEFT JOIN wlyy_door_doctor d on d.order_id = o.id ";
 | 
	
		
			
				|  |  |        sql+= " where 1=1 ";
 | 
	
		
			
				|  |  |        if(status == 6){//已完成状态
 | 
	
		
			
				|  |  |            sql+=" and o.status ='"+status+"'";
 | 
	
		
			
				|  |  |            sql+=" and o.status in (5,6) ";
 | 
	
		
			
				|  |  |        }else {//5是待补录状态
 | 
	
		
			
				|  |  |            sql+=" and o.conclusion_status =1 ";
 | 
	
		
			
				|  |  |        }
 |