package com.nationalelectric.greenH5; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import javax.annotation.Resource; import org.apache.commons.beanutils.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; 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.po.GreenRentHouseApply; import com.nationalelectric.greenH5.po.GreenUserInfo; import com.nationalelectric.greenH5.utils.DateTime; import com.nationalelectric.greenH5.utils.DateUtil; import com.sgcc.uap.persistence.IHibernateDao; import com.sgcc.uap.service.validator.ServiceValidatorBaseException; import com.sgcc.uap.utils.StringUtils; /** * 租房管理 * @author 96048 * */ @Controller @RequestMapping("/greenEpidemic") public class GreenEpidemicController extends GreenBaseController{ @Autowired IHibernateDao hibernateDao; @Autowired private BaseServiceImpl baseService; @Resource private GreenImageInfoController greenImageInfoController; @Resource private AliasManageController aliasManageController; /** * 新增离鄂报备 * @return */ @SuppressWarnings("deprecation") @RequestMapping(value="/travelReportAdd", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult travelReportAdd(Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String userName = map.get("userName")==null?"":map.get("userName").toString(); String phone = map.get("phone")==null?"":map.get("phone").toString(); String orgId = map.get("orgId")==null?"":map.get("orgId").toString(); String orgName = map.get("orgName")==null?"":map.get("orgName").toString(); String travelDate = map.get("travelDate")==null?"":map.get("travelDate").toString(); String travelMethod = map.get("travelMethod")==null?"":map.get("travelMethod").toString(); String travelMethodInfo = map.get("travelMethodInfo")==null?"":map.get("travelMethodInfo").toString(); String travelType = map.get("travelType")==null?"":map.get("travelType").toString(); String travelPlace = map.get("travelPlace")==null?"":map.get("travelPlace").toString(); String reason = map.get("reason")==null?"":map.get("reason").toString(); String approvalForm = map.get("approvalForm")==null?"":map.get("approvalForm").toString(); String examinePersonId = map.get("examinePersonId")==null?"":map.get("examinePersonId").toString(); String examinePersonName = map.get("examinePersonName")==null?"":map.get("examinePersonName").toString(); String travelMethodBack = map.get("travelMethodBack")==null?"":map.get("travelMethodBack").toString(); String travelMethodInfoBack = map.get("travelMethodInfoBack")==null?"":map.get("travelMethodInfoBack").toString(); String approvalFormUUID = ""; // if(StringUtils.isNotEmpty(approvalForm)){ // SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); // String date = sdf.format(new Date()) + "/"; //// uuid = date + UUID.randomUUID().toString().replaceAll("-",""); // approvalFormUUID = greenImageInfoController.saveImage(approvalForm, userId); // baseService.saveImgToIO(approvalFormUUID+Constant.IMG_SUFFIX, approvalForm); // } //查询第一审核批次 String batchSql = "SELECT * FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = 'travelExamineSwitch' AND IS_DELETED = 'N' AND DATA_VALUE = 1 ORDER BY DATA_CODE ASC "; List> list = hibernateDao.queryForListWithSql(batchSql); String examineBatch = "0"; if (list.size() > 0) { examineBatch = list.get(0).get("DATA_CODE"); } String uuid = UUID.randomUUID().toString().replaceAll("-", ""); String sql = "INSERT INTO GREEN_EPIDEMIC_TRAVEL (" + "UUID,USER_ID,USER_NAME,PHONE,ORG_ID,ORG_NAME,TRAVEL_DATE," + "TRAVEL_METHOD,TRAVEL_METHOD_INFO,TRAVEL_TYPE,TRAVEL_PLACE," + "REASON,APPROVAL_FORM,CREATOR,EXAMINE_STATE,EXAMINE_BATCH," + "EXAMINE_PERSON_ID,EXAMINE_PERSON_NAME,TRAVEL_METHOD_BACK,TRAVEL_METHOD_INFO_BACK) " + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?,?,?,?) "; hibernateDao.executeSqlUpdate(sql,new Object[]{uuid,userId,userName,phone,orgId,orgName,travelDate,travelMethod, travelMethodInfo,travelType,travelPlace,reason,approvalForm,userId,examineBatch,examinePersonId,examinePersonName ,travelMethodBack,travelMethodInfoBack}); String title = "出行审批"; String text = "您好,您有新的出行报备需要审批,请点击查看。"; String url = "/pages/epidemic/travel-report-exam?examineBatch="+examineBatch; aliasManageController.pushToSingle(examinePersonId, title, text, url); return new RestResult(Constant.SUCCESS, "操作成功"); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 出行报备列表:个人查看 * @param rentHouseApply * @return */ @SuppressWarnings("deprecation") @RequestMapping(value="/travelReportPage", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult travelReportPage(Map map) { String userId = map.get("userId")==null?"":map.get("userId").toString(); Integer pageSize = map.get("pageSize")==null?10: (Integer)map.get("pageSize"); Integer pageNum = map.get("pageNum")==null?1: (Integer)map.get("pageNum"); int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize*pageNum; GreenUserInfo info = getUserInfo(userId); if (info == null) { return new RestResult(Constant.FAILED, "非法用户"); } try { GreenUserInfo userInfo = getUserInfo(userId); List params = new ArrayList(); String sql = "select * from (select rn.*,rownum rw from (" + "select * from GREEN_EPIDEMIC_TRAVEL where is_deleted='N' and USER_ID=? order by GMT_CREATED desc "; sql+=" ) rn )where rw>? and rw<=?"; params.add(userId); params.add(limit); params.add(pageSize); List> list = hibernateDao.queryForListWithSql(sql,params.toArray()); for (Map omap : list) { String pictureString = omap.get("APPROVAL_FORM"); omap.put("APPROVAL_FORM", baseService.getImageBase64(pictureString)); } return new RestResult(Constant.SUCCESS, "成功", list); } catch (ServiceValidatorBaseException e) { throw e; } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "返回异常"); } } /** * 出行报备申请详情 * @param map * @return */ @SuppressWarnings("deprecation") @RequestMapping(value="/travelReportDetail", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult travelReportDetail(Map map) { String userId = map.get("userId")==null?"":map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if (info == null) { return new RestResult(Constant.FAILED, "非法用户"); } try { String travelId = map.get("travelId")==null?"":map.get("travelId").toString(); List params = new ArrayList(); String sql = "SELECT * FROM GREEN_EPIDEMIC_TRAVEL WHERE IS_DELETED='N' AND UUID = ? ORDER BY GMT_CREATED desc "; params.add(travelId); List> list = hibernateDao.queryForListWithSql(sql,params.toArray()); if (list.size() > 0) { String pictureString = list.get(0).get("APPROVAL_FORM") == null ? "":list.get(0).get("APPROVAL_FORM").toString(); list.get(0).put("APPROVAL_FORM", baseService.getImageBase64(pictureString)); //获取审核详情 String sqls = "SELECT * from GREEN_EPIDEMIC_TRAVEL_EXAMINE where DEL_FLAG = 0 and TRAVEL_ID = ? order by EXAMINE_BATCH asc "; List> lists = hibernateDao.queryForListWithSql(sqls,new Object[]{list.get(0).get("UUID").toString()}); if (lists.size() > 0) { list.get(0).put("detail", lists.toArray()); } } return new RestResult(Constant.SUCCESS, "成功", list); } catch (ServiceValidatorBaseException e) { throw e; } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "返回异常"); } } /** * 出行报备审核 * @param map * @return */ @SuppressWarnings("deprecation") @RequestMapping(value="/travelExamine", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult travelExamine(@RequestBody Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String uuid = UUID.randomUUID().toString().replaceAll("-", ""); String travelId = map.get("travelId")==null?"":map.get("travelId").toString(); String userName = map.get("userName")==null?"":map.get("userName").toString(); String examineState = map.get("examineState")==null?"":map.get("examineState").toString(); String examineOpinion = map.get("examineOpinion")==null?"":map.get("examineOpinion").toString(); String examineBatch = map.get("examineBatch")==null?"":map.get("examineBatch").toString(); if (StringUtils.isBlank(examineState)) { return new RestResult(Constant.FAILED, "审核状态不能为空"); } if (StringUtils.isBlank(examineBatch)) { return new RestResult(Constant.FAILED, "审核批次不能为空"); } //查询下一审核批次 String batchSql = "SELECT * FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = 'travelExamineSwitch' " + "AND IS_DELETED = 'N' AND DATA_VALUE = 1 AND DATA_CODE > ? ORDER BY DATA_CODE ASC "; List> list = hibernateDao.queryForListWithSql(batchSql,new Object[]{examineBatch}); //不为空则更改审核批次,否则更改申请单的审核状态 if (list.size() > 0) { if ("1".equals(examineState)) { String lastExamineBatch = list.get(0).get("DATA_CODE"); String updateBatchSql = "UPDATE GREEN_EPIDEMIC_TRAVEL SET EXAMINE_BATCH = ? WHERE UUID = ? "; hibernateDao.executeSqlUpdate(updateBatchSql,new Object[]{lastExamineBatch,travelId}); }else if("2".equals(examineState)){ String updateStateSql = "UPDATE GREEN_EPIDEMIC_TRAVEL SET EXAMINE_STATE = ? WHERE UUID = ? "; hibernateDao.executeSqlUpdate(updateStateSql,new Object[]{examineState,travelId}); } }else { String updateStateSql = "UPDATE GREEN_EPIDEMIC_TRAVEL SET EXAMINE_STATE = ? WHERE UUID = ? "; hibernateDao.executeSqlUpdate(updateStateSql,new Object[]{examineState,travelId}); } //查询当前批次描述 String description = ""; String sqls = "SELECT DATA_CODE as \"id\",DATA_VALUE as \"name\",DESCRIPTION as \"description\" FROM GREEN_DICTIONARY_INFO " + "WHERE DATA_TYPE = 'travelExamineSwitch' AND IS_DELETED = 'N' and DATA_CODE = ? "; List> lists = hibernateDao.queryForListWithSql(sqls,new Object[]{examineBatch}); if (lists.size() > 0) { description = lists.get(0).get("description"); } //插入数据 String sql = "INSERT INTO GREEN_EPIDEMIC_TRAVEL_EXAMINE(ID,TRAVEL_ID,USER_ID,USER_NAME,EXAMINE_STATE,EXAMINE_OPINION," + "EXAMINE_TIME,DEL_FLAG,EXAMINE_BATCH,DESCRIPTION) " + "VALUES(?,?,?,?,?,?,SYSDATE,0,?,?) "; hibernateDao.executeSqlUpdate(sql,new Object[]{uuid,travelId,userId,userName,examineState,examineOpinion,examineBatch,description}); return new RestResult(Constant.SUCCESS, "操作成功"); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 出行报备审核列表 * @param rentHouseApply * @return */ @SuppressWarnings("deprecation") @RequestMapping(value="/travelExaminePage", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult travelExaminePage(@RequestBody Map map) { try { ArrayList paramList = new ArrayList(); String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } Integer pageSize = map.get("pageSize")==null?10: (Integer)map.get("pageSize"); Integer pageNum = map.get("pageNum")==null?1: (Integer)map.get("pageNum"); int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize*pageNum; String examineState = map.get("examineState")==null?"": map.get("examineState").toString(); String examineBatch = map.get("examineBatch")==null?"":map.get("examineBatch").toString(); if (StringUtils.isBlank(examineState)) { return new RestResult(Constant.FAILED, "审核状态不能为空"); } if (StringUtils.isBlank(examineBatch)) { return new RestResult(Constant.FAILED, "审核批次不能为空"); } if ("0".equals(examineState)) { String sql = "select count(*) from GREEN_DICTIONARY_INFO where data_type = 'travelExamineSwitch' and data_code = ? and data_value = 1 "; int count = hibernateDao.queryForIntWithSql(sql,new Object[]{examineBatch}); if (count == 0) { return new RestResult(Constant.SUCCESS, "操作成功",new ArrayList>()); } } String sql = "select * from (select rn.*,rownum from ( " + " SELECT DISTINCT A.UUID AS id,A.*, " + " to_char(A.GMT_CREATED,'YYYY-MM-DD HH24:MI:SS') as \"applyTime\" " + " FROM GREEN_EPIDEMIC_TRAVEL A " + " LEFT JOIN (select * from GREEN_EPIDEMIC_TRAVEL_EXAMINE where EXAMINE_BATCH= ? and DEL_FLAG=0) E ON A.UUID = E.TRAVEL_ID " + " WHERE A.IS_DELETED = 'N' "; paramList.add(examineBatch); //当查询审核批次为1时,只查询审核人为当前userid的数据 if("1".equals(examineBatch)){ // sql+= "AND A.ORG_ID IN (SELECT id FROM GREEN_DEPARTMENT START WITH ID = ? CONNECT BY PRIOR ID = PARENT_ID) "; sql+="AND A.EXAMINE_PERSON_ID = ? "; paramList.add(userId); } if ("1".equals(examineState)) {//已审核 sql += "and e.ID is not NULL " ; }else if("0".equals(examineState)) {//待审核 sql += "AND A.EXAMINE_STATE = 0 AND A.EXAMINE_BATCH = ? " ; paramList.add(examineBatch); } sql+= " ORDER BY A.GMT_CREATED DESC " + " ) rn )where rownum>? and rownum<=? "; paramList.add(limit); paramList.add(pageSize); List list = hibernateDao.queryForListWithSql(sql,paramList.toArray()); return new RestResult(Constant.SUCCESS, "操作成功",list); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 查询出行报备部门拥有审核权限人员 * @param map * @return */ @SuppressWarnings("deprecation") @RequestMapping(value="/getDeptExamineAuth", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult getDeptExamineAuth(@RequestBody Map map){ try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String departmentId = map.get("departmentId")==null?"":map.get("departmentId").toString(); String sql = "SELECT u.id as \"id\",u.REAL_NAME as \"name\" from GREEN_USER_INFO u " + "LEFT JOIN GREEN_USER_ROLE_REL urr ON u.ID = urr.USER_ID AND u.IS_DELETED = 'N' " + "LEFT JOIN GREEN_ROLE_PERMISSION rp ON urr.ROLE_ID = rp.ROLE_ID AND urr.IS_DELETED = 'N' " + "WHERE u.DEPARTMENT_ID = ? AND rp.PERMISSION_ID = '44009' ";//44009 List> list = hibernateDao.queryForListWithSql(sql,new Object[]{departmentId}); return new RestResult(Constant.SUCCESS, "操作成功",list); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 新增涉疫信息 * @return */ @RequestMapping(value="/addEpidemicInfo", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult addEpidemicInfo(@RequestBody Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String uuid = UUID.randomUUID().toString().replaceAll("-", ""); String userName = map.get("userName")==null?"":map.get("userName").toString(); String phone = map.get("phone")==null?"":map.get("phone").toString(); String orgId = map.get("orgId")==null?"":map.get("orgId").toString(); String orgName = map.get("orgName")==null?"":map.get("orgName").toString(); String address = map.get("address")==null?"":map.get("address").toString(); String currentStatus = map.get("currentStatus")==null?"":map.get("currentStatus").toString(); String healthStatus = map.get("healthStatus")==null?"":map.get("healthStatus").toString(); String healthCodeColor = map.get("healthCodeColor")==null?"":map.get("healthCodeColor").toString(); String involvedStatus = map.get("involvedStatus")==null?"":map.get("involvedStatus").toString(); String isReport = map.get("isReport")==null?"":map.get("isReport").toString(); String isVaccination = map.get("isVaccination")==null?"":map.get("isVaccination").toString(); String testingTime = map.get("testingTime")==null?"":map.get("testingTime").toString(); String cohabitantInvolvedStatus = map.get("cohabitantInvolvedStatus")==null?"":map.get("cohabitantInvolvedStatus").toString(); String cohabitantInterrelation = map.get("cohabitantInterrelation")==null?"":map.get("cohabitantInterrelation").toString(); String cohabitantStatus = map.get("cohabitantStatus")==null?"":map.get("cohabitantStatus").toString(); String userType = map.get("userType")==null?"":map.get("userType").toString(); String themeId = map.get("themeId")==null?"":map.get("themeId").toString(); String sql = "INSERT INTO GREEN_EPIDEMIC_COLLECT( " + "UUID,USER_ID,USER_NAME,ORG_ID,ORG_NAME,PHONE,ADDRESS,CURRENT_STATUS,HEALTH_STATUS,HEALTH_CODE_COLOR, " + "INVOLVED_STATUS,IS_REPORT,IS_VACCINATION,TESTING_TIME,COHABITANT_INVOLVED_STATUS,COHABITANT_INTERRELATION, " + "COHABITANT_STATUS,USER_TYPE,CREATOR,THEME_ID) " + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,to_date(?,'YYYY-MM-DD HH24:MI:SS'),?,?,?,?,?,?)"; hibernateDao.executeSqlUpdate(sql,new Object[]{uuid,userId,userName,orgId,orgName,phone,address,currentStatus, healthStatus,healthCodeColor,involvedStatus,isReport,isVaccination,testingTime,cohabitantInvolvedStatus, cohabitantInterrelation,cohabitantStatus,userType,userId,themeId}); return new RestResult(Constant.SUCCESS, "操作成功"); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 分页查询涉疫信息列表 * @return */ @RequestMapping(value="/epidemicPage", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult epidemicPage(@RequestBody Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } int pageNum = Integer.parseInt(map.get("pageNum")==null?"1":map.get("pageNum").toString()); int pageSize = Integer.parseInt(map.get("pageSize")==null?"10":map.get("pageSize").toString()); int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageNum; pageSize = pageNum*pageSize; String sql = "select * from (select rn.*,rownum from ( " + " SELECT t.*,h.TITLE,h.SUBTITLE " + " FROM GREEN_EPIDEMIC_COLLECT t " + " left join GREEN_EPIDEMIC_COLLECT_THEME h on t.THEME_ID = h.UUID " + " WHERE t.USER_ID = ? AND t.IS_DELETED='N' " + " ORDER BY t.GMT_CREATED DESC) rn )where rownum > ? and rownum <= ? "; List> list = hibernateDao.queryForListWithSql(sql,new Object[]{userId,limit,pageSize}); return new RestResult(Constant.SUCCESS, "操作成功",list); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 查询涉疫信息详情 * @return */ @RequestMapping(value="/epidemicDetail", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult epidemicDetail(@RequestBody Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String uuid = map.get("uuid").toString(); String sql = " SELECT t.* " + " FROM GREEN_EPIDEMIC_COLLECT t WHERE t.UUID = ? "; List> list = hibernateDao.queryForListWithSql(sql,new Object[]{uuid}); return new RestResult(Constant.SUCCESS, "操作成功",list.get(0)); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } @SuppressWarnings("unchecked") @RequestMapping(value = "/travelPolicy", method = RequestMethod.POST) public @ResponseBody RestResult travelPolicy(@RequestBody Map map) { try { String id = map.get("id")==null?"":map.get("id").toString(); String sql = "select title as \"title\" ,content as \"content\",create_time as \"create_time\",info_type as \"info_type\" from green_health_msg " + " where info_type='2' and is_del='1' and id= ? order by create_time desc "; List> list = hibernateDao.queryForListWithSql(sql.toString(),new Object[]{id}); return new RestResult(Constant.SUCCESS, "查询成功", list); }catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "查询失败!"); } } @SuppressWarnings("unchecked") @RequestMapping(value = "/travelPolicyList", method = RequestMethod.POST) public @ResponseBody RestResult travelPolicyList(@RequestBody Map map) { try { String sql = "select * from( select id as \"id\", title as \"title\" ,create_time as \"create_time\",info_type as \"info_type\" from green_health_msg " + " where info_type='2' and is_del='1' order by create_time desc ) where rownum>0 and rownum<=10 "; List> list = hibernateDao.queryForListWithSql(sql.toString()); return new RestResult(Constant.SUCCESS, "查询成功", list); }catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "查询失败!"); } } /** * 健康打卡新增 * @return */ @SuppressWarnings("unchecked") @RequestMapping(value = "/healthyClockAdd", method = RequestMethod.POST) public @ResponseBody RestResult healthyClockAdd(@RequestBody Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String uuid = UUID.randomUUID().toString().replaceAll("-", ""); String userName = map.get("userName")==null?"":map.get("userName").toString(); String phone = map.get("phone")==null?"":map.get("phone").toString(); String orgId = map.get("orgId")==null?"":map.get("orgId").toString(); String orgName = map.get("orgName")==null?"":map.get("orgName").toString(); String userType = map.get("userType")==null?"":map.get("userType").toString(); String healthState = map.get("healthState")==null?"":map.get("healthState").toString(); String cityOut = map.get("cityOut")==null?"":map.get("cityOut").toString(); String dangerRegion = map.get("dangerRegion")==null?"":map.get("dangerRegion").toString(); String healthCode = map.get("healthCode")==null?"":map.get("healthCode").toString(); String healthCodeImg = map.get("healthCodeImg")==null?"":map.get("healthCodeImg").toString(); String tourCodeImg = map.get("tourCodeImg")==null?"":map.get("tourCodeImg").toString(); String nucleic = map.get("nucleic")==null?"":map.get("nucleic").toString(); String location = map.get("location")==null?"":map.get("location").toString(); String dateToStr = DateUtil.dateToStr(new Date(), DateUtil.Y_M_D); String startTime = dateToStr + " 00:00:00"; String endTime = DateUtil.dateToStr(new Date(), DateUtil.Y_M_DH_MI_S); //新增之前修改当天的其他打卡记录 String updateSql = "UPDATE GREEN_EPIDEMIC_HEALTHY SET STATES = '2' WHERE USER_ID = ? " + "AND TO_CHAR(GMT_CREATED,'YYYY-MM-DD') = ? "; hibernateDao.executeSqlUpdate(updateSql,new Object[]{userId,dateToStr}); String sql = "INSERT INTO GREEN_EPIDEMIC_HEALTHY( " + "UUID,USER_ID,USER_NAME,PHONE,ORG_ID,ORG_NAME,HEALTH_STATE, " + "CITY_OUT,DANGER_REGION,HEALTH_CODE,HEALTH_CODE_IMG,TOUR_CODE_IMG,NUCLEIC,LOCATION, " + "STATES,CREATOR,USER_TYPE)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) "; hibernateDao.executeSqlUpdate(sql,new Object[]{uuid,userId,userName,phone,orgId,orgName,healthState,cityOut,dangerRegion, healthCode,healthCodeImg,tourCodeImg,nucleic,location,"1",userId,userType}); return new RestResult(Constant.SUCCESS, "操作成功"); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 查询健康打卡 * @param map * @return */ @RequestMapping(value="/healthyClockList", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult healthyClockList(@RequestBody Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String sql = " SELECT t.* " + " FROM GREEN_EPIDEMIC_HEALTHY t WHERE t.USER_ID = ? AND STATES = '1' AND IS_DELETED = 'N'" + " and TO_CHAR(GMT_CREATED,'YYYY-MM-DD')=TO_CHAR(SYSDATE,'YYYY-MM-DD') " + " ORDER BY GMT_CREATED DESC "; List> list = hibernateDao.queryForListWithSql(sql,new Object[]{userId}); for (Map maps : list) { String healthCodeImg=(String)maps.get("HEALTH_CODE_IMG"); maps.put("HEALTH_CODE_IMG", baseService.getImageBase64(healthCodeImg)); String tourCodeImg=(String)maps.get("TOUR_CODE_IMG"); maps.put("TOUR_CODE_IMG", baseService.getImageBase64(tourCodeImg)); } return new RestResult(Constant.SUCCESS, "操作成功",list); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 疫苗接种新增 * @param map * @return */ @SuppressWarnings("unchecked") @RequestMapping(value = "/vaccinationAdd", method = RequestMethod.POST) public @ResponseBody RestResult vaccinationAdd(@RequestBody Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String uuid = UUID.randomUUID().toString().replaceAll("-", ""); String userName = map.get("userName")==null?"":map.get("userName").toString(); String phone = map.get("phone")==null?"":map.get("phone").toString(); String orgId = map.get("orgId")==null?"":map.get("orgId").toString(); String orgName = map.get("orgName")==null?"":map.get("orgName").toString(); String vaccination = map.get("vaccination")==null?"":map.get("vaccination").toString(); String reason = map.get("reason")==null?"":map.get("reason").toString(); String proveImg = map.get("proveImg")==null?"":map.get("proveImg").toString(); String remarks = map.get("remarks")==null?"":map.get("remarks").toString(); String vaccineType = map.get("vaccineType")==null?"":map.get("vaccineType").toString(); String vaccinationNum = map.get("vaccinationNum")==null?"":map.get("vaccinationNum").toString(); String endDate = map.get("endDate")==null?"":map.get("endDate").toString(); String vaccinationStronge = map.get("vaccinationStronge")==null?"":map.get("vaccinationStronge").toString(); String ecpectStrongeDate = map.get("ecpectStrongeDate")==null?"":map.get("ecpectStrongeDate").toString(); String notStrongeReason = map.get("notStrongeReason")==null?"":map.get("notStrongeReason").toString(); String vaccinationProve = map.get("remarks")==null?"":map.get("vaccinationProve").toString(); String delSql = " DELETE FROM GREEN_EPIDEMIC_VACCINES WHERE USER_ID = ? "; hibernateDao.executeSqlUpdate(delSql,new Object[]{userId}); String sql = "INSERT INTO GREEN_EPIDEMIC_VACCINES( UUID,USER_ID,USER_NAME,PHONE,ORG_ID,ORG_NAME," + "VACCINATION,REASON,PROVE_IMG,REMARKS,CREATOR," + "VACCINE_TYPE,VACCINATION_NUM,END_DATE,VACCINATION_STRONGE," + "EXPECT_STRONGE_DATE,NOT_STRONGE_REASON,VACCINATION_PROVE" + ")VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) "; hibernateDao.executeSqlUpdate(sql, new Object[]{uuid,userId,userName,phone,orgId,orgName, vaccination,reason,proveImg,remarks,userId, vaccineType,vaccinationNum,endDate,vaccinationStronge, ecpectStrongeDate,notStrongeReason,vaccinationProve }); return new RestResult(Constant.SUCCESS, "操作成功"); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 疫苗接种列表 * @param map * @return */ @RequestMapping(value="/vaccinationList", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult vaccinationList(@RequestBody Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String sql = " SELECT t.* " + " FROM GREEN_EPIDEMIC_VACCINES t WHERE t.USER_ID = ? AND IS_DELETED = 'N' " + " ORDER BY GMT_CREATED DESC "; List> list = hibernateDao.queryForListWithSql(sql,new Object[]{userId}); for (Map maps : list) { String proveImg=(String)maps.get("PROVE_IMG"); String vaccinationProve = (String)maps.get("VACCINATION_PROVE"); maps.put("PROVE_IMG", baseService.getImageBase64(proveImg)); maps.put("VACCINATION_PROVE", baseService.getImageBase64(vaccinationProve)); } return new RestResult(Constant.SUCCESS, "操作成功",list); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 防疫物资申请新增 * @param map * @return */ @RequestMapping(value="/materialAdd", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult materialAdd(@RequestBody Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String uuid = UUID.randomUUID().toString().replaceAll("-", ""); String userName = map.get("userName")==null?"":map.get("userName").toString(); String phone = map.get("phone")==null?"":map.get("phone").toString(); String orgId = map.get("orgId")==null?"":map.get("orgId").toString(); String orgName = map.get("orgName")==null?"":map.get("orgName").toString(); String reason = map.get("reason")==null?"":map.get("reason").toString(); String examinePersonId = map.get("examinePersonId")==null?"":map.get("examinePersonId").toString(); String examinePersonName = map.get("examinePersonName")==null?"":map.get("examinePersonName").toString(); String batchSql = "SELECT * FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = 'materialExamineSwitch' AND IS_DELETED = 'N' AND DATA_VALUE = 1 ORDER BY DATA_CODE ASC "; List> list = hibernateDao.queryForListWithSql(batchSql); String examineBatch = "0"; if (list.size() > 0) { examineBatch = list.get(0).get("DATA_CODE"); } String sql = "INSERT INTO GREEN_EPIDEMIC_MATERIAL(UUID,USER_ID,USER_NAME,PHONE,ORG_ID,ORG_NAME,REASON,CREATOR,EXAMINE_STATE,EXAMINE_PERSON_ID,EXAMINE_PERSON_NAME,EXAMINE_BATCH) " + "VALUES(?,?,?,?,?,?,?,?,0,?,?,?) "; hibernateDao.executeSqlUpdate(sql,new Object[]{uuid,userId,userName,phone,orgId,orgName,reason,userId,examinePersonId,examinePersonName,examineBatch}); List> arr = (List>)map.get("supplies"); // Object[] arr = (Object[]) map.get("supplies"); for (int i = 0; i < arr.size(); i++) { Map maps = arr.get(i); String uuid2 = UUID.randomUUID().toString().replaceAll("-", ""); String name = maps.get("name") == null?"":maps.get("name").toString(); String specs = maps.get("specs") == null?"":maps.get("specs").toString(); String num = maps.get("num") == null?"":maps.get("num").toString(); String remarks = maps.get("remarks") == null?"":maps.get("remarks").toString(); String sql2 = "INSERT INTO GREEN_EPIDEMIC_MATERIAL_DETAIL(UUID,APPLY_ID,MATERIAL_NAME,SPECS,NUM,REMARKS,CREATOR) " + "VALUES(?,?,?,?,?,?,?) "; hibernateDao.executeSqlUpdate(sql2,new Object[]{uuid2,uuid,name,specs,num,remarks,userId}); } String title = "物资审批"; String text = "您好,您有新的物资申请需要审批,请点击查看。"; String url = "/pages/epidemic/epidemic-supplies-exam"; aliasManageController.pushToSingle(examinePersonId, title, text, url); return new RestResult(Constant.SUCCESS, "操作成功"); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 防疫物资申请记录 * @param map * @return */ @RequestMapping(value="/materialList", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult materialList(@RequestBody Map map) { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } try { StringBuffer sb = new StringBuffer(); //分页信息 Integer pageSize = map.get("pageSize")==null?10: (Integer)map.get("pageSize"); Integer pageNum = map.get("pageNum")==null?1: (Integer)map.get("pageNum"); int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize*pageNum; //查询订单 sb.append(" SELECT * FROM(SELECT RN.*,ROWNUM rw FROM( " + " select t.* from green_epidemic_material t where t.is_deleted='N' and t.user_id = ? order by t.gmt_created desc " + " )rn ) WHERE rw > ? AND rw <= ? "); List> applyList = hibernateDao.queryForListWithSql(sb.toString() ,new Object[]{ userId, limit, pageSize}); StringBuilder stringBuilder = new StringBuilder(); String stringId = null; if (!applyList.isEmpty()) { stringBuilder.append("('"); for (int i = 0;i> detailList =hibernateDao.queryForListWithSql( sql); String stringId2 = null; String stringId3 = null; for (int i = 0; i < applyList.size(); i++) { ArrayList arrayList = new ArrayList(); applyList.get(i).put("detailList",null); stringId2 = String.valueOf(applyList.get(i).get("UUID")); for (int j = 0; j < detailList.size(); j++) { stringId3 = String.valueOf(detailList.get(j).get("APPLY_ID")); if (stringId2.equals(stringId3)) { arrayList.add(detailList.get(j)); applyList.get(i).put("detailList",arrayList); } } } } return new RestResult(Constant.SUCCESS,"成功",applyList); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED,"返回异常"); } } /** * 防疫物资详情 * @param map * @return */ @RequestMapping(value="/materialDetail", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult materialDetail(@RequestBody Map map) { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } try { String uuid = map.get("uuid").toString(); String sql = " SELECT t.* " + " FROM GREEN_EPIDEMIC_MATERIAL t WHERE t.UUID = ? "; List> list = hibernateDao.queryForListWithSql(sql,new Object[]{uuid}); Map rmap = list.get(0); String dsql = " SELECT t.* " + " FROM GREEN_EPIDEMIC_MATERIAL_DETAIL t WHERE t.APPLY_ID = ? AND IS_DELETED = 'N' "; List> dlist = hibernateDao.queryForListWithSql(dsql,new Object[]{uuid}); rmap.put("DETAIL_LIST", dlist); if (list.size() > 0) { //获取审核详情 String sqls = "SELECT * from GREEN_EPIDEMIC_TRAVEL_EXAMINE where DEL_FLAG = 0 and TRAVEL_ID = ? order by EXAMINE_BATCH asc "; List> lists = hibernateDao.queryForListWithSql(sqls,new Object[]{list.get(0).get("UUID").toString()}); if (lists.size() > 0) { rmap.put("EXAM_LIST", lists.toArray()); } } return new RestResult(Constant.SUCCESS,"成功",rmap); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED,"返回异常"); } } /** * 防疫物资审批 * @param map * @return */ @RequestMapping(value="/materialExamPage", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult materialExamPage(@RequestBody Map map) { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } try { String examineState = map.get("examineState")==null?"0": map.get("examineState").toString(); //分页信息 Integer pageSize = map.get("pageSize")==null?10: (Integer)map.get("pageSize"); Integer pageNum = map.get("pageNum")==null?1: (Integer)map.get("pageNum"); int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize*pageNum; //查询订单 String sb = " SELECT * FROM(SELECT RN.*,ROWNUM rw FROM( " + " select t.* from green_epidemic_material t where t.is_deleted='N' "; if("0".equals(examineState)){ sb+=" and examine_state = 0"; }else{ sb+=" and examine_state <> 0"; } sb+= " order by t.gmt_created desc " + " )rn ) WHERE rw > ? AND rw <= ? "; List> applyList = hibernateDao.queryForListWithSql(sb ,new Object[]{limit, pageSize}); StringBuilder stringBuilder = new StringBuilder(); String stringId = null; if (!applyList.isEmpty()) { stringBuilder.append("('"); for (int i = 0;i> detailList =hibernateDao.queryForListWithSql( sql); String stringId2 = null; String stringId3 = null; for (int i = 0; i < applyList.size(); i++) { ArrayList arrayList = new ArrayList(); applyList.get(i).put("detailList",null); stringId2 = String.valueOf(applyList.get(i).get("UUID")); for (int j = 0; j < detailList.size(); j++) { stringId3 = String.valueOf(detailList.get(j).get("APPLY_ID")); if (stringId2.equals(stringId3)) { arrayList.add(detailList.get(j)); applyList.get(i).put("detailList",arrayList); } } } } return new RestResult(Constant.SUCCESS,"成功",applyList); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED,"返回异常"); } } /** * 防疫物资申请记录 * @param map * @return */ @RequestMapping(value="/travelCheckThemeList", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult travelCheckThemeList(@RequestBody Map map) { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } try { StringBuffer sb = new StringBuffer(); //分页信息 Integer pageSize = map.get("pageSize")==null?10: (Integer)map.get("pageSize"); Integer pageNum = map.get("pageNum")==null?1: (Integer)map.get("pageNum"); int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize*pageNum; //查询订单 sb.append(" SELECT * FROM(SELECT RN.*,ROWNUM rw FROM( " + " select t.* from GREEN_EPIDEMIC_COLLECT_THEME t where t.is_deleted='N' order by t.gmt_created desc " + " )rn ) WHERE rw > ? AND rw <= ? "); List> applyList = hibernateDao.queryForListWithSql(sb.toString(),new Object[]{ limit, pageSize}); return new RestResult(Constant.SUCCESS,"成功",applyList); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED,"返回异常"); } } /** * 查询物资申请部门拥有审核权限人员 * @param map * @return */ @SuppressWarnings("deprecation") @RequestMapping(value="/getMaterialExamUser", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult getMaterialExamUser(@RequestBody Map map){ try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String departmentId = map.get("departmentId")==null?"":map.get("departmentId").toString(); String depts[] = departmentId.split("/"); String dept = depts[0]+"/"+depts[1]; String sql = "SELECT u.id as \"id\",u.REAL_NAME as \"name\" from GREEN_USER_INFO u " + "LEFT JOIN GREEN_USER_ROLE_REL urr ON u.ID = urr.USER_ID AND u.IS_DELETED = 'N' " + "LEFT JOIN GREEN_ROLE_PERMISSION rp ON urr.ROLE_ID = rp.ROLE_ID AND urr.IS_DELETED = 'N' " + "WHERE u.dept_id_url like '"+dept+"%' AND rp.PERMISSION_ID = '44007' ";//44007 List> list = hibernateDao.queryForListWithSql(sql); return new RestResult(Constant.SUCCESS, "操作成功",list); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.SUCCESS, "操作成功",new ArrayList>()); } } /** * 查询疫苗接种统计数据 * @param map * @return */ @SuppressWarnings("deprecation") @RequestMapping(value="/vaccineStatic", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult vaccineStatic(@RequestBody Map map){ try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String sql = "select count(*) as ALL_NUM,count(v.uuid) AS VACCINE_NUM from GREEN_USER_INFO u left join GREEN_EPIDEMIC_VACCINES v on u.id = v.USER_ID where u.IS_DELETED='N' "; List> list = hibernateDao.queryForListWithSql(sql); SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); String year = sdf.format(new Date()); String mSql = "SELECT sum( CASE WHEN to_char( GMT_CREATED, 'yyyy-mm' ) <= '"+year+"-01' THEN 1 ELSE 0 END ) AS M1, " + " sum( CASE WHEN to_char( GMT_CREATED, 'yyyy-mm' ) <= '"+year+"-01' THEN 1 ELSE 0 END ) AS M1," + "sum( CASE WHEN to_char( GMT_CREATED, 'yyyy-mm' ) <= '"+year+"-02' THEN 1 ELSE 0 END ) AS M2," + "sum( CASE WHEN to_char( GMT_CREATED, 'yyyy-mm' ) <= '"+year+"-03' THEN 1 ELSE 0 END ) AS M3," + "sum( CASE WHEN to_char( GMT_CREATED, 'yyyy-mm' ) <= '"+year+"-04' THEN 1 ELSE 0 END ) AS M4," + "sum( CASE WHEN to_char( GMT_CREATED, 'yyyy-mm' ) <= '"+year+"-05' THEN 1 ELSE 0 END ) AS M5," + "sum( CASE WHEN to_char( GMT_CREATED, 'yyyy-mm' ) <= '"+year+"-06' THEN 1 ELSE 0 END ) AS M6," + "sum( CASE WHEN to_char( GMT_CREATED, 'yyyy-mm' ) <= '"+year+"-07' THEN 1 ELSE 0 END ) AS M7," + "sum( CASE WHEN to_char( GMT_CREATED, 'yyyy-mm' ) <= '"+year+"-08' THEN 1 ELSE 0 END ) AS M8," + "sum( CASE WHEN to_char( GMT_CREATED, 'yyyy-mm' ) <= '"+year+"-09' THEN 1 ELSE 0 END ) AS M9," + "sum( CASE WHEN to_char( GMT_CREATED, 'yyyy-mm' ) <= '"+year+"-10' THEN 1 ELSE 0 END ) AS M10," + "sum( CASE WHEN to_char( GMT_CREATED, 'yyyy-mm' ) <= '"+year+"-11' THEN 1 ELSE 0 END ) AS M11," + "sum( CASE WHEN to_char( GMT_CREATED, 'yyyy-mm' ) <= '"+year+"-12' THEN 1 ELSE 0 END ) AS M12 " + " FROM GREEN_EPIDEMIC_VACCINES "; List> mlist = hibernateDao.queryForListWithSql(mSql); String dSql = " select d.CODE,d.NAME,U.ALL_NUM, V.VACCINE_NUM,v2.VACCINE_NUM2 from GREEN_DEPARTMENT d left join " +" (SELECT COUNT(*) AS ALL_NUM ,DEPARTMENT_ID FROM GREEN_USER_INFO WHERE IS_DELETED = 'N' GROUP BY DEPARTMENT_ID ) U ON D.CODE = U.DEPARTMENT_ID " +" LEFT JOIN " +" (select count(*) as VACCINE_NUM,ORG_ID from GREEN_EPIDEMIC_VACCINES group by ORG_ID) v " +" on d.code = v.ORG_ID" +" LEFT JOIN " +" (select count(*) as VACCINE_NUM2,ORG_ID from GREEN_EPIDEMIC_VACCINES WHERE VACCINATION_STRONGE ='已接种' group by ORG_ID) v2 " +" on d.code = v2.ORG_ID" +" WHERE D.LEVEL_ = '0,1' ORDER BY D.SEQ"; List> dlist = hibernateDao.queryForListWithSql(dSql); Map rmap = new HashMap(); rmap.put("list", list); rmap.put("mlist", mlist); rmap.put("dlist", dlist); return new RestResult(Constant.SUCCESS, "操作成功",rmap); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 查询物资申请部门拥有审核权限人员 * @param map * @return */ @SuppressWarnings("deprecation") @RequestMapping(value="/getMaterialInfoList", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult getMaterialInfoList(@RequestBody Map map){ try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String sql = "select UUID AS \"id\",NAME AS \"name\",UNIT AS \"unit\" from green_epidemic_material_info where is_deleted = 'N' order by gmt_created"; List> list = hibernateDao.queryForListWithSql(sql); return new RestResult(Constant.SUCCESS, "操作成功",list); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 物资申请审核 * @param map * @return */ @SuppressWarnings("deprecation") @RequestMapping(value="/materialExam", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult materialExam(@RequestBody Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } String uuid = UUID.randomUUID().toString().replaceAll("-", ""); String materialId = map.get("materialId")==null?"":map.get("materialId").toString(); String userName = map.get("userName")==null?"":map.get("userName").toString(); String examineState = map.get("examineState")==null?"":map.get("examineState").toString(); String examineOpinion = map.get("examineOpinion")==null?"":map.get("examineOpinion").toString(); String examineBatch = map.get("examineBatch")==null?"":map.get("examineBatch").toString(); if (StringUtils.isBlank(examineState)) { return new RestResult(Constant.FAILED, "审核状态不能为空"); } if (StringUtils.isBlank(examineBatch)) { return new RestResult(Constant.FAILED, "审核批次不能为空"); } //查询下一审核批次 String batchSql = "SELECT * FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = 'materialExamineSwitch' " + "AND IS_DELETED = 'N' AND DATA_VALUE = 1 AND DATA_CODE > ? ORDER BY DATA_CODE ASC "; List> list = hibernateDao.queryForListWithSql(batchSql,new Object[]{examineBatch}); //不为空则更改审核批次,否则更改申请单的审核状态 if (list.size() > 0) { if ("1".equals(examineState)) { String lastExamineBatch = list.get(0).get("DATA_CODE"); String updateBatchSql = "UPDATE GREEN_EPIDEMIC_MATERIAL SET EXAMINE_BATCH = ? WHERE UUID = ? "; hibernateDao.executeSqlUpdate(updateBatchSql,new Object[]{lastExamineBatch,materialId}); }else if("2".equals(examineState)){ String updateStateSql = "UPDATE GREEN_EPIDEMIC_MATERIAL SET EXAMINE_STATE = ? WHERE UUID = ? "; hibernateDao.executeSqlUpdate(updateStateSql,new Object[]{examineState,materialId}); } }else { String updateStateSql = "UPDATE GREEN_EPIDEMIC_MATERIAL SET EXAMINE_STATE = ? WHERE UUID = ? "; hibernateDao.executeSqlUpdate(updateStateSql,new Object[]{examineState,materialId}); } //查询当前批次描述 String description = ""; String sqls = "SELECT DATA_CODE as \"id\",DATA_VALUE as \"name\",DESCRIPTION as \"description\" FROM GREEN_DICTIONARY_INFO " + "WHERE DATA_TYPE = 'materialExamineSwitch' AND IS_DELETED = 'N' and DATA_CODE = ? "; List> lists = hibernateDao.queryForListWithSql(sqls,new Object[]{examineBatch}); if (lists.size() > 0) { description = lists.get(0).get("description"); } //插入数据 String sql = "INSERT INTO GREEN_EPIDEMIC_TRAVEL_EXAMINE(ID,TRAVEL_ID,USER_ID,USER_NAME,EXAMINE_STATE,EXAMINE_OPINION," + "EXAMINE_TIME,DEL_FLAG,EXAMINE_BATCH,DESCRIPTION) " + "VALUES(?,?,?,?,?,?,SYSDATE,0,?,?) "; hibernateDao.executeSqlUpdate(sql,new Object[]{uuid,materialId,userId,userName,examineState,examineOpinion,examineBatch,description}); return new RestResult(Constant.SUCCESS, "操作成功"); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } /** * 物资申请审核列表 * @param rentHouseApply * @return */ @SuppressWarnings("deprecation") @RequestMapping(value="/materialExaminePage", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult materialExaminePage(@RequestBody Map map) { try { ArrayList paramList = new ArrayList(); String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } Integer pageSize = map.get("pageSize")==null?10: (Integer)map.get("pageSize"); Integer pageNum = map.get("pageNum")==null?1: (Integer)map.get("pageNum"); int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize*pageNum; String examineState = map.get("examineState")==null?"": map.get("examineState").toString(); String examineBatch = map.get("examineBatch")==null?"":map.get("examineBatch").toString(); if (StringUtils.isBlank(examineState)) { return new RestResult(Constant.FAILED, "审核状态不能为空"); } if (StringUtils.isBlank(examineBatch)) { return new RestResult(Constant.FAILED, "审核批次不能为空"); } if ("0".equals(examineState)) { String str = examineBatch.replace(",", "','"); String sql = "select count(*) from GREEN_DICTIONARY_INFO where data_type = 'materialExamineSwitch' and data_code in( '"+str+"') and data_value = 1 "; int count = hibernateDao.queryForIntWithSql(sql); if (count == 0) { return new RestResult(Constant.SUCCESS, "操作成功",new ArrayList>()); } } String examineBatchs[] = examineBatch.split(","); String sql =""; if(examineBatchs.length==1 || "1".equals(examineState)){ sql = "select * from (select rn.*,rownum from ( " + " SELECT DISTINCT A.UUID AS id,A.*, " + " to_char(A.GMT_CREATED,'YYYY-MM-DD HH24:MI:SS') as \"applyTime\" " + " FROM GREEN_EPIDEMIC_MATERIAL A " + " LEFT JOIN (select * from GREEN_EPIDEMIC_TRAVEL_EXAMINE where EXAMINE_BATCH IN ('"+ StringUtils.join(examineBatchs, "','")+"') and DEL_FLAG=0) E ON A.UUID = E.TRAVEL_ID " + " WHERE A.IS_DELETED = 'N' "; // paramList.add(examineBatch); //当查询审核批次为1时,只查询审核人为当前userid的数据 if("1".equals(examineBatch)){ // sql+= "AND A.ORG_ID IN (SELECT id FROM GREEN_DEPARTMENT START WITH ID = ? CONNECT BY PRIOR ID = PARENT_ID) "; sql+="AND A.EXAMINE_PERSON_ID = ? "; paramList.add(userId); } if ("1".equals(examineState)) {//已审核 sql += "and e.ID is not NULL " ; }else if("0".equals(examineState)) {//待审核 sql += "AND A.EXAMINE_STATE = 0 AND A.EXAMINE_BATCH = ? " ; paramList.add(examineBatch); } sql+= " ORDER BY A.GMT_CREATED DESC " + " ) rn )where rownum>? and rownum<=? "; paramList.add(limit); paramList.add(pageSize); }else{ sql = " select * from (select rn.*,rownum from ( " + " select * from ("; for(int i=0;i? and rownum<=? "; paramList.add(limit); paramList.add(pageSize); } @SuppressWarnings("unchecked") List list = hibernateDao.queryForListWithSql(sql,paramList.toArray()); return new RestResult(Constant.SUCCESS, "操作成功",list); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "操作失败"); } } }