package com.nationalelectric.greenH5; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.nationalelectirc.Constant.Constant; import com.nationalelectirc.utils.RestResult; import com.nationalelectric.greenH5.bizc.BaseServiceImpl; import com.nationalelectric.greenH5.bizc.IGreenApplyBizc; import com.nationalelectric.greenH5.bizc.IGreenApplyDetailBizc; import com.nationalelectric.greenH5.po.GreenApply; import com.nationalelectric.greenH5.po.GreenUserInfo; import com.nationalelectric.greenH5.utils.DateUtil; import com.sgcc.uap.persistence.IHibernateDao; @Controller @RequestMapping("/greenApply") public class GreenApplyController extends GreenBaseController { @Autowired IHibernateDao hibernateDao; @Autowired private BaseServiceImpl baseService; @Autowired private IGreenApplyBizc IGreenApplyBizc; /** * 获取我的理发预约记录列表 * * @param userId * @return */ @RequestMapping(value = "/getMyHaircutList") @ResponseBody public RestResult getMyHaircutList(String userId, int pageNum, int pageSize) { try { GreenUserInfo userInfo = getUserInfo(userId); if (userInfo == null) { return new RestResult(Constant.FAILED, "非法用户"); } int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize*pageNum; String sql = "select * from (select rn.*,rownum from (" + " SELECT ga.id as \"id\",gi.id as \"detailId\", gi.apply_person_name as \"userName\", gi.barber_name as \"barberName\",gi.barbershop_area as \"barbershop_area\",gi.barber_id as \"barber_id\", ga.comment_status as \"conmentStatus\",( gi.apply_date||' '||gi.apply_time) as \"timeQ\"," + "gi.apply_date as \"apply_date\"," // + "gi.apply_time as \"apply_time\", " + "(CASE WHEN ga.status='8' THEN to_char('预约成功') WHEN ga.status='9' THEN to_char('已完成') ELSE to_char('进行中') END ) as \"status\", " + " to_char(ga.apply_time,'yyyy-mm-dd hh24:mi:ss') as \"apply_time\", " + " gi.int_status as \"int_status\" " + " FROM green_apply ga LEFT JOIN green_haircut_info gi ON gi.id = ga.detail_id " + " WHERE ga.apply_type = '06' AND del_flag = 0 AND gi.id IS NOT NULL and ga.user_id = ? and gi.is_deleted='N' " + " ORDER BY ga.apply_time DESC) rn )where rownum>? and rownum<=?"; List> map = hibernateDao.queryForListWithSql(sql, new Object[] { userId, limit, pageSize }); return new RestResult(Constant.SUCCESS, map); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "查询失败"); } } /** * 获取我的理发预约记录列表 * * @param userId * @return */ @RequestMapping(value = "/getAllHaircutList") @ResponseBody public RestResult getAllHaircutList(Map map) { try { String userId = map.get("userId").toString(); Integer pageNum = (Integer)map.get("pageNum"); Integer pageSize = (Integer)map.get("pageSize"); String startDate = map.get("startDate").toString(); String endDate = map.get("endDate").toString(); GreenUserInfo userInfo = getUserInfo(userId); if (userInfo == null) { return new RestResult(Constant.FAILED, "非法用户"); } int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize*pageNum; String sql = " select * from (select rn.*,rownum from (" + " SELECT ga.id as \"id\",gi.id as \"detailId\", gi.apply_person_name as \"userName\", gi.barber_name as \"barberName\",gi.barbershop_area as \"barbershop_area\",gi.barber_id as \"barber_id\", ga.comment_status as \"conmentStatus\",( gi.apply_date||' '||gi.apply_time) as \"timeQ\"," + "gi.apply_date as \"apply_date\"," // + "gi.apply_time as \"apply_time\", " + "(CASE WHEN ga.status='8' THEN to_char('预约成功') WHEN ga.status='9' THEN to_char('已完成') ELSE to_char('进行中') END ) as \"status\", " + " to_char(ga.apply_time,'yyyy-mm-dd hh24:mi:ss') as \"apply_time\", " + " gi.int_status as \"int_status\" " + " FROM green_apply ga LEFT JOIN green_haircut_info gi ON gi.id = ga.detail_id " + " WHERE ga.apply_type = '06' AND del_flag = 0 AND gi.id IS NOT NULL " + " and gi.is_deleted='N' " + " and gi.apply_date<=? " + " and gi.apply_date>=? " + " ORDER BY ga.apply_time DESC) rn )where rownum>? and rownum<=?"; List> list = hibernateDao.queryForListWithSql(sql, new Object[] { endDate,startDate, limit, pageSize }); String countSql = "select count(*) from green_apply ga LEFT JOIN green_haircut_info gi ON gi.id = ga.detail_id " + " WHERE ga.apply_type = '06' AND del_flag = 0 AND gi.id IS NOT NULL " + " and gi.is_deleted='N' " + " and gi.apply_date<=? " + " and gi.apply_date>=? "; Integer count = hibernateDao.queryForIntWithSql(countSql,new Object[] { endDate,startDate }); Map rmap = new HashMap(); rmap.put("list", list); rmap.put("count", count); return new RestResult(Constant.SUCCESS, rmap); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "查询失败"); } } /** * 获取我的故障报修记录列表 * * @param userId * @return */ @RequestMapping(value = "/getMyHitchList") @ResponseBody public RestResult getMyHitchList(String userId, int pageNum, int pageSize) { try { GreenUserInfo userInfo = getUserInfo(userId); if (userInfo == null) { return new RestResult(Constant.FAILED, "非法用户"); } int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize > 0 ? pageSize : 10; String sql = " SELECT ga.id, gi.repair_person_name as userName,gi.fault_detail as faultDetail, gi.repair_addr as repairAddr, gi.repair_option as opt, ga.`status` as statusCode , ga.apply_time as applyTime," + " gi.fault_pic1 as pic1, gi.fault_pic2 as pic2, gi.fault_pic3 as pic3, " + "CASE ga.`status` WHEN '10' THEN '待接受' WHEN '11' THEN '已接受' ELSE '' END as status, " + " to_char(ga.apply_time,'yyyy-mm-dd hh24:mi:ss') as \"apply_time\" FROM green_apply AS ga LEFT JOIN green_fault_repair_info AS gi ON gi.id = ga.detail_id " + " WHERE ga.apply_type = '05' AND del_flag = 0 AND gi.id IS NOT NULL and ga.user_id = ? " + " ORDER BY ga.apply_time DESC limit ?,? "; List> map = hibernateDao.queryForListWithSql(sql, new Object[] { userId, limit, pageSize }); for (Map mapiMap : map) { List list = new ArrayList(); String pic1 = baseService.getImageBase64((String) mapiMap.get("pic1")); if (pic1 != null && !"".equals(pic1)) { list.add(pic1); } String pic2 = baseService.getImageBase64((String) mapiMap.get("pic2")); if (pic2 != null && !"".equals(pic2)) { list.add(pic2); } String pic3 = baseService.getImageBase64((String) mapiMap.get("pic3")); if (pic3 != null && !"".equals(pic3)) { list.add(pic3); } mapiMap.put("pictures", list); } // 清除图片地址信息 baseService.initImage(); return new RestResult(Constant.SUCCESS, map); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "查询失败"); } } /** * 获取 故障报修受理列表 * * @param userId * @return */ @RequestMapping(value = "/getDoHitchList") @ResponseBody public RestResult getDoHitchList(String userId, int pageNum, int pageSize) { try { GreenUserInfo userInfo = getUserInfo(userId); if (userInfo == null) { return new RestResult(Constant.FAILED, "非法用户"); } int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize > 0 ? pageSize : 10; String sql = " SELECT ga.id, gi.id repairId,gi.person_id,gu.real_name disposeName, gi.repair_person_name as userName,gi.fault_detail as faultDetail, gi.repair_addr as repairAddr, gi.repair_option as opt, ga.`status` as statusCode ," + " gi.fault_pic1 as pic1, gi.fault_pic2 as pic2, gi.fault_pic3 as pic3, " + "CASE ga.`status` WHEN '10' THEN '待接受' WHEN '11' THEN '已接受' WHEN '14' THEN '已拒绝' ELSE '' END as status, " + " to_char(ga.apply_time,'yyyy-mm-dd hh24:mi:ss') as \"apply_time\" FROM green_apply AS ga LEFT JOIN green_fault_repair_info AS gi ON gi.id = ga.detail_id " + " left join green_user_info gu on gi.person_id = gu.id " + " WHERE ga.apply_type = '05' AND del_flag = 0 AND gi.id IS NOT NULL " + " ORDER BY ga.apply_time DESC limit ?,? "; List> map = hibernateDao.queryForListWithSql(sql, new Object[] {limit, pageSize}); for (Map mapiMap : map) { List list = new ArrayList(); String pic1 = baseService.getImageBase64((String) mapiMap.get("pic1")); if (pic1 != null && !"".equals(pic1)) { list.add(pic1); } String pic2 = baseService.getImageBase64((String) mapiMap.get("pic2")); if (pic2 != null && !"".equals(pic2)) { list.add(pic2); } String pic3 = baseService.getImageBase64((String) mapiMap.get("pic3")); if (pic3 != null && !"".equals(pic3)) { list.add(pic3); } mapiMap.put("pictures", list); } // 清除图片地址信息 baseService.initImage(); return new RestResult(Constant.SUCCESS, map); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "查询失败"); } } /** * 获取 故障报修受理列表 * * @param userId * @return */ @RequestMapping(value = "/getDisposeList") @ResponseBody public RestResult getDisposeList(String userId, int pageNum, int pageSize) { try { GreenUserInfo userInfo = getUserInfo(userId); if (userInfo == null) { return new RestResult(Constant.FAILED, "非法用户"); } int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize > 0 ? pageSize : 10; String sql = " SELECT ga.id, gi.id repairId,gi.person_id,gu.real_name disposeName, gi.repair_person_name as userName,gi.fault_detail as faultDetail, gi.repair_addr as repairAddr, gi.repair_option as opt, ga.`status` as statusCode ," + " gi.fault_pic1 as pic1, gi.fault_pic2 as pic2, gi.fault_pic3 as pic3, " + "CASE ga.`status` WHEN '11' THEN '待处理' WHEN '15' THEN '已处理' ELSE '' END as status, " + " to_char(ga.apply_time,'yyyy-mm-dd hh24:mi:ss') as \"apply_time\" FROM green_apply AS ga LEFT JOIN green_fault_repair_info AS gi ON gi.id = ga.detail_id " + " left join green_user_info gu on gi.person_id = gu.id " + " WHERE ga.apply_type = '05' AND del_flag = 0 AND gi.id IS NOT NULL " +" and gi.person_id=? " + " ORDER BY ga.apply_time DESC limit ?,? "; List> map = hibernateDao.queryForListWithSql(sql, new Object[] {userId, limit, pageSize}); for (Map mapiMap : map) { List list = new ArrayList(); String pic1 = baseService.getImageBase64((String) mapiMap.get("pic1")); if (pic1 != null && !"".equals(pic1)) { list.add(pic1); } String pic2 = baseService.getImageBase64((String) mapiMap.get("pic2")); if (pic2 != null && !"".equals(pic2)) { list.add(pic2); } String pic3 = baseService.getImageBase64((String) mapiMap.get("pic3")); if (pic3 != null && !"".equals(pic3)) { list.add(pic3); } mapiMap.put("pictures", list); } // 清除图片地址信息 baseService.initImage(); return new RestResult(Constant.SUCCESS, map); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "查询失败"); } } /** * 受理 故障报修 * * @param userId * @return */ @RequestMapping(value = "/doHitch") @ResponseBody public RestResult hitch(String userId, Integer type, Long id, String personId) { try { GreenUserInfo userInfo = getUserInfo(userId); if (userInfo == null) { return new RestResult(Constant.FAILED, "非法用户"); } if (type == null || type > 2 || type < 1) { return new RestResult(Constant.FAILED, "参数有误"); } return IGreenApplyBizc.hitch(userId, type, id, personId); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 处理完成 故障报修 * * @param userId * @return */ @RequestMapping(value = "/dispose") @ResponseBody public RestResult dispose(String userId, Long id) { try { GreenUserInfo userInfo = getUserInfo(userId); if (userInfo == null) { return new RestResult(Constant.FAILED, "非法用户"); } GreenApply apply = hibernateDao.getObject(GreenApply.class, id); if (apply == null) { return new RestResult(Constant.FAILED, "未查询到该记录"); } if (!apply.getApplyType().equals(Constant.FAULT_REPAIR_APPLY)) { return new RestResult(Constant.FAILED, "数据有误"); } if (apply.getStatus().equals(Constant.DISPOSE)) { return new RestResult(Constant.FAILED, "该记录已处理"); } String status = Constant.DISPOSE; apply.setStatus(status); hibernateDao.updateObject(apply); return new RestResult(Constant.SUCCESS, "操作成功"); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 获取我的洗车预约记录列表 * * @param userId * @return */ @RequestMapping(value = "/getMyWashCarList") @ResponseBody public RestResult getMyWashCarList(String userId, int pageNum, int pageSize) { try { GreenUserInfo userInfo = getUserInfo(userId); if (userInfo == null) { return new RestResult(Constant.FAILED, "非法用户"); } int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize*pageNum; String sql = "select * from (select rn.*,rownum from ( " + "SELECT ga.id as \"id\", gi.id as \"detailId\", gi.user_name as \"userName\", gi.concat_user_name as \"concatUserName\"," + "gi.apply_place as \"apply_place\", gi.concat_phone as \"concatPhone\", ga.comment_status as \"conmentStatus\"," + " ( gi.apply_date||' '||gi.apply_time) as \"timeQ\",gi.apply_date as \"apply_date\"," + "gi.apply_time as \"apply_time_interval\", " + " gi.int_status as \"int_status\"," + " (CASE WHEN ga.status='8' THEN to_char('预约成功') WHEN ga.status='9' THEN to_char('已完成') ELSE to_char('进行中') END ) as \"status\", " + " to_char(ga.apply_time,'yyyy-mm-dd hh24:mi:ss') as \"apply_time\"" + " FROM green_apply ga LEFT JOIN green_wash_car_info gi ON gi.id = ga.detail_id " + " WHERE ga.apply_type = '09' AND ga.del_flag = 0 AND gi.id IS NOT NULL and ga.user_id = ? " + " ORDER BY ga.apply_time DESC ) rn )where rownum>? and rownum<=?"; List> map = hibernateDao.queryForListWithSql(sql, new Object[] { userId, limit, pageSize }); return new RestResult(Constant.SUCCESS, map); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "查询失败"); } } /** * 获取我的洗车预约记录列表 * * @param userId * @return */ @RequestMapping(value = "/getAllWashCarList") @ResponseBody public RestResult getAllWashCarList(Map map) { try { String userId = map.get("userId").toString(); Integer pageNum = (Integer)map.get("pageNum"); Integer pageSize = (Integer)map.get("pageSize"); String startDate = map.get("startDate").toString(); String endDate = map.get("endDate").toString(); GreenUserInfo userInfo = getUserInfo(userId); if (userInfo == null) { return new RestResult(Constant.FAILED, "非法用户"); } int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize*pageNum; String sql = "select * from (select rn.*,rownum rw from ( " + "SELECT ga.id as \"id\", gi.id as \"detailId\", gi.user_name as \"userName\", gi.concat_user_name as \"concatUserName\"," + "gi.apply_place as \"apply_place\", gi.concat_phone as \"concatPhone\", ga.comment_status as \"conmentStatus\"," + " ( gi.apply_date||' '||gi.apply_time) as \"timeQ\",gi.apply_date as \"apply_date\"," + "gi.apply_time as \"apply_time_interval\", " + " gi.int_status as \"int_status\",gi.LICENSEPLATE as \"licenseplate\"" + " (CASE WHEN ga.status='8' THEN to_char('预约成功') WHEN ga.status='9' THEN to_char('已完成') ELSE to_char('进行中') END ) as \"status\", " + " to_char(ga.apply_time,'yyyy-mm-dd hh24:mi:ss') as \"apply_time\"" + " FROM green_apply ga LEFT JOIN green_wash_car_info gi ON gi.id = ga.detail_id " + " WHERE ga.apply_type = '09' AND ga.del_flag = 0 AND gi.id IS NOT NULL" + " and gi.apply_date<=? " + " and gi.apply_date>=? " + " ORDER BY ga.apply_time DESC) rn )where rw>? and rw<=?"; List> list = hibernateDao.queryForListWithSql(sql, new Object[] { endDate,startDate, limit, pageSize }); String countSql = "select count(*) from green_apply ga LEFT JOIN green_wash_car_info gi ON gi.id = ga.detail_id " + " WHERE ga.apply_type = '09' AND ga.del_flag = 0 AND gi.id IS NOT NULL" + " and gi.apply_date<=? " + " and gi.apply_date>=? "; Integer count = hibernateDao.queryForIntWithSql(countSql,new Object[] { endDate,startDate }); Map rmap = new HashMap(); rmap.put("list", list); rmap.put("count", count); return new RestResult(Constant.SUCCESS, rmap); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "查询失败"); } } /** * 获取 洗车预约 受理列表 * * @param userId * @return */ @RequestMapping(value = "/getDoWashCarList") @ResponseBody public RestResult getDoWashCarList(String userId,String applyDate, int pageNum, int pageSize) { try { GreenUserInfo userInfo = getUserInfo(userId); if (userInfo == null) { return new RestResult(Constant.FAILED, "非法用户"); } if (applyDate == null || applyDate.equals("")) { applyDate = DateUtil.now(new SimpleDateFormat("yyyy-MM-dd")); } int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize > 0 ? pageSize : 10; String sql = " SELECT ga.id, gi.id as detailId, gi.user_name as userName, gi.concat_user_name as concatUserName, gi.concat_phone as concatPhone, ga.comment_status as conmentStatus, CONCAT( gi.apply_date,' ', gi.apply_time) as timeQ, " + " CASE ga.`status` WHEN '8' THEN '预约成功' WHEN '9' THEN '已完成' ELSE '进行中' END as status, " + " to_char(ga.apply_time,'yyyy-mm-dd hh24:mi:ss') FROM green_apply AS ga LEFT JOIN green_wash_car_info AS gi ON gi.id = ga.detail_id " + " WHERE ga.apply_type = '09' AND ga.del_flag = 0 AND gi.id IS NOT NULL and gi.apply_date = ? " + " ORDER BY ga.apply_time DESC limit ?,? "; List> map = hibernateDao.queryForListWithSql(sql, new Object[] {applyDate, limit, pageSize }); return new RestResult(Constant.SUCCESS, map); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "查询失败"); } } }