hz-zhhq-app-service/greenH5modul/.svn/pristine/8c/8c033a3e3f7621f52b3fdfb028a...

1395 lines
61 KiB
Plaintext
Raw Normal View History

2025-01-21 13:12:35 +08:00
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<String, Object> 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 ID,DATA_TYPE,DATA_CODE,DATA_VALUE FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = 'travelExamineSwitch' AND IS_DELETED = 'N' AND DATA_VALUE = 1 ORDER BY DATA_CODE ASC ";
List<Map<String,String>> 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<String, Object> 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<Object> params = new ArrayList<Object>();
String sql = "select * from (select rn.*,rownum rw from ("
+ "select UUID,USER_ID,USER_NAME,PHONE,ORG_ID,ORG_NAME,TRAVEL_DATE,"
+ "TRAVEL_METHOD,TRAVEL_METHOD_INFO,TRAVEL_TYPE,TRAVEL_PLACE,REASON,"
+ "APPROVAL_FORM,EXAMINE_STATE,EXAMINE_BATCH,EXAMINE_PERSON_ID,EXAMINE_PERSON_NAME,TRAVEL_METHOD_BACK,TRAVEL_METHOD_INFO_BACK,"
+ "to_char(GMT_CREATED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_CREATED\""
+ " 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<Map<String, String>> list = hibernateDao.queryForListWithSql(sql,params.toArray());
for (Map<String, String> 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<String, Object> 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<Object> params = new ArrayList<Object>();
String sql = "SELECT UUID,USER_ID,USER_NAME,PHONE,ORG_ID,ORG_NAME,TRAVEL_DATE,"
+ "TRAVEL_METHOD,TRAVEL_METHOD_INFO,TRAVEL_TYPE,TRAVEL_PLACE,TRAVEL_PLACE,"
+ "APPROVAL_FORM,EXAMINE_STATE,EXAMINE_STATE,EXAMINE_PERSON_ID,"
+ "EXAMINE_PERSON_NAME,TRAVEL_METHOD_BACK,TRAVEL_METHOD_INFO_BACK,"
+ "to_char(GMT_CREATED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_CREATED\","
+ "to_char(GMT_MODIFIED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_MODIFIED\",REASON"
+ " FROM GREEN_EPIDEMIC_TRAVEL"
+ " WHERE IS_DELETED='N' AND UUID = ? ORDER BY GMT_CREATED desc ";
params.add(travelId);
System.err.println("sql:"+sql);
List<Map<String, Object>> 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 ID,TRAVEL_ID,USER_ID,USER_NAME,EXAMINE_STATE,to_char(EXAMINE_TIME,'yyyy-mm-dd hh24:mi:ss') AS \"EXAMINE_TIME\","
+ "EXAMINE_OPINION,EXAMINE_OPINION,DESCRIPTION"
+ " from GREEN_EPIDEMIC_TRAVEL_EXAMINE where DEL_FLAG = 0 and TRAVEL_ID = ? order by EXAMINE_BATCH asc ";
List<Map<String,String>> 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<String, Object> 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 ID,DATA_TYPE,DATA_CODE,DATA_VALUE 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<Map<String,String>> 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<Map<String,String>> 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<String, Object> map) {
try {
ArrayList<Object> paramList = new ArrayList<Object>();
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<Map<String,String>>());
}
}
String sql = "select * from (select rn.*,rownum from ( "
+ " SELECT DISTINCT A.UUID AS id,A.UUID,A.USER_ID,A.USER_NAME,"
+ "A.PHONE,A.ORG_ID,A.ORG_NAME,A.TRAVEL_DATE,A.TRAVEL_METHOD,A.TRAVEL_METHOD_INFO,A.TRAVEL_TYPE,"
+ "A.TRAVEL_PLACE,A.REASON,A.APPROVAL_FORM,A.EXAMINE_STATE,A.EXAMINE_BATCH,A.EXAMINE_PERSON_ID,"
+ "A.EXAMINE_PERSON_NAME,A.TRAVEL_METHOD_BACK,A.TRAVEL_METHOD_INFO_BACK,"
+ "to_char(A.GMT_CREATED,'YYYY-MM-DD HH24:MI:SS') as \"applyTime\","
+ "to_char(A.GMT_CREATED, 'YYYY-MM-DD HH24:MI:SS') AS \"GMT_CREATED\" "
+ " FROM GREEN_EPIDEMIC_TRAVEL A "
+ " LEFT JOIN (select ID,TRAVEL_ID,USER_ID,USER_NAME,EXAMINE_STATE,to_char(EXAMINE_TIME,'yyyy-mm-dd hh24:mi:ss') AS \"EXAMINE_TIME\","
+ "EXAMINE_OPINION,DESCRIPTION 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 to_char(A.GMT_CREATED, 'YYYY-MM-DD HH24:MI:SS') DESC "
+ " ) rn )where rownum>? and rownum<=? ";
paramList.add(limit);
paramList.add(pageSize);
System.err.println("sql:" +sql);
List<GreenRentHouseApply> 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<String, Object> 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 = '15002' ";//44009 生产 //18502 测试
List<Map<String,Object>> list = hibernateDao.queryForListWithSql(sql);
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<String,Object> 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<String, Object> 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.UUID,t.USER_ID,t.USER_NAME,t.ORG_ID,t.ORG_NAME,"
+ "t.PHONE,t.ADDRESS,t.CURRENT_STATUS,t.HEALTH_STATUS,t.HEALTH_CODE_COLOR,"
+ "t.INVOLVED_STATUS,t.IS_REPORT,t.IS_VACCINATION,to_char(t.TESTING_TIME,'yyyy-mm-dd hh24:mi:ss') AS \"TESTING_TIME\","
+ "t.COHABITANT_INVOLVED_STATUS,t.COHABITANT_INTERRELATION,t.COHABITANT_STATUS,t.USER_TYPE,t.THEME_ID,"
+ "h.TITLE,h.SUBTITLE,to_char(t.GMT_MODIFIED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_MODIFIED\","
+ "to_char(t.GMT_CREATED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_CREATED\" "
+ " 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<Map<String,Object>> 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<String, Object> 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.UUID,t.USER_ID,t.USER_NAME,t.ORG_ID,t.ORG_NAME,"
+ "t.PHONE,t.ADDRESS,t.CURRENT_STATUS,t.HEALTH_STATUS,t.HEALTH_CODE_COLOR,"
+ "t.INVOLVED_STATUS,t.IS_REPORT,t.IS_VACCINATION,to_char(t.TESTING_TIME,'yyyy-mm-dd hh24:mi:ss'),"
+ "t.COHABITANT_INVOLVED_STATUS,t.COHABITANT_INTERRELATION,t.COHABITANT_STATUS,t.USER_TYPE,t.THEME_ID"
+ " FROM GREEN_EPIDEMIC_COLLECT t WHERE t.UUID = ? ";
List<Map<String,Object>> 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<String,Object> map) {
try {
String id = map.get("id")==null?"":map.get("id").toString();
String sql = "select title as \"title\" ,content as \"content\",to_char(create_time,'yyyy-mm-dd hh24:mi:ss') 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<Map<String,Object>> 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<String,Object> map) {
try {
String sql = "select * from( select id as \"id\", title as \"title\" ,to_char(create_time,'YYYY-MM-DD HH24:MI:SS') 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<Map<String,Object>> 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<String,Object> 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<String, Object> map) {
try {
String userId = map.get("userId").toString();
GreenUserInfo info = getUserInfo(userId);
if(info==null){
return new RestResult(Constant.FAILED, "非法用户");
}
String sql = " SELECT t.UUID,t.USER_ID,t.USER_NAME,t.PHONE,"
+ "t.ORG_ID,t.ORG_NAME,t.HEALTH_STATE,t.CITY_OUT,t.DANGER_REGION,t.DANGER_REGION,t.HEALTH_CODE_IMG,"
+ "t.TOUR_CODE_IMG,t.NUCLEIC,t.STATES,t.LOCATION,t.USER_TYPE,t.HEALTH_CODE,"
+ "to_char(t.GMT_CREATED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_CREATED\","
+ "to_char(t.GMT_MODIFIED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_MODIFIED\""
+ " 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<Map<String,Object>> list = hibernateDao.queryForListWithSql(sql,new Object[]{userId});
for (Map<String, Object> 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<String,Object> 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<String, Object> map) {
try {
String userId = map.get("userId").toString();
GreenUserInfo info = getUserInfo(userId);
if(info==null){
return new RestResult(Constant.FAILED, "非法用户");
}
String sql = " SELECT t.UUID,t.USER_ID,t.USER_NAME,t.PHONE,t.ORG_ID,t.ORG_NAME,t.VACCINATION,"
+ "t.REASON,t.PROVE_IMG,t.REMARKS,t.VACCINE_TYPE,t.VACCINATION_NUM,t.END_DATE,t.END_DATE,"
+ "t.EXPECT_STRONGE_DATE,t.EXPECT_STRONGE_DATE,t.VACCINATION_PROVE "
+ " FROM GREEN_EPIDEMIC_VACCINES t WHERE t.USER_ID = ? AND IS_DELETED = 'N' "
+ " ORDER BY GMT_CREATED DESC ";
List<Map<String,Object>> list = hibernateDao.queryForListWithSql(sql,new Object[]{userId});
for (Map<String, Object> 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<String, Object> 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 ID,DATA_TYPE,DATA_CODE,DATA_VALUE FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = 'materialExamineSwitch' AND IS_DELETED = 'N' AND DATA_VALUE = 1 ORDER BY DATA_CODE ASC ";
List<Map<String,String>> 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<Map<String,Object>> arr = (List<Map<String,Object>>)map.get("supplies");
// Object[] arr = (Object[]) map.get("supplies");
for (int i = 0; i < arr.size(); i++) {
Map<String,Object> 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<String, Object> 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.UUID,t.USER_ID,t.USER_NAME,t.PHONE,t.ORG_ID,"
+ "t.ORG_NAME,t.REASON,t.EXAMINE_STATE,t.EXAMINE_PERSON_ID,t.EXAMINE_PERSON_NAME,"
+ "t.EXAMINE_CONTENT,to_char(t.EXAMINE_TIME,'yyyy-mm-dd hh24:mi:ss') AS \"EXAMINE_TIME\",t.EXAMINE_BATCH,"
+ "to_char(t.GMT_CREATED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_CREATED\""
+ " 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<Map<String,Object>> 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<applyList.size();i++) {
stringId = String.valueOf(applyList.get(i).get("UUID"));
stringBuilder.append(stringId + "','");
}
String substring = null;
if (stringBuilder != null) {
substring = stringBuilder.substring(0, stringBuilder.length()-2) +")";
}
//查询订单详情
String sql = "select t.UUID,t.MATERIAL_NAME,t.SPECS,t.NUM,t.REMARKS,t.APPLY_ID"
+ " from green_epidemic_material_detail t where t.is_deleted='N' and t.apply_id in " + substring;
List<Map<String,Object>> detailList =hibernateDao.queryForListWithSql( sql);
String stringId2 = null;
String stringId3 = null;
for (int i = 0; i < applyList.size(); i++) {
ArrayList<Object> arrayList = new ArrayList<Object>();
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<String, Object> 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.UUID,t.USER_ID,t.USER_NAME,t.PHONE,t.ORG_ID,t.ORG_NAME,"
+ "t.REASON,t.EXAMINE_STATE,t.EXAMINE_PERSON_ID,t.EXAMINE_PERSON_NAME,"
+ "t.EXAMINE_CONTENT,to_char(t.EXAMINE_TIME,'yyyy-mm-dd hh24:mi:ss') AS \"EXAMINE_TIME\",t.EXAMINE_BATCH,"
+ "to_char(t.GMT_CREATED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_CREATED\""
+ " FROM GREEN_EPIDEMIC_MATERIAL t WHERE t.UUID = ? ";
List<Map<String,Object>> list = hibernateDao.queryForListWithSql(sql,new Object[]{uuid});
Map<String,Object> rmap = list.get(0);
String dsql = " SELECT t.UUID,t.MATERIAL_NAME,"
+ "t.SPECS,t.NUM,t.REMARKS,t.APPLY_ID "
+ " FROM GREEN_EPIDEMIC_MATERIAL_DETAIL t WHERE t.APPLY_ID = ? AND IS_DELETED = 'N' ";
List<Map<String,Object>> dlist = hibernateDao.queryForListWithSql(dsql,new Object[]{uuid});
rmap.put("DETAIL_LIST", dlist);
if (list.size() > 0) {
//获取审核详情
String sqls = "SELECT ID,TRAVEL_ID,USER_ID,USER_NAME,EXAMINE_STATE,to_char(EXAMINE_TIME,'yyyy-mm-dd hh24:mi:ss') AS \"EXAMINE_TIME\","
+ "EXAMINE_OPINION,EXAMINE_BATCH,DESCRIPTION,to_char(UPD_TIME,'yyyy-mm-dd hh24:mi:ss') AS \"UPD_TIME\""
+ " from GREEN_EPIDEMIC_TRAVEL_EXAMINE where DEL_FLAG = 0 and TRAVEL_ID = ? order by EXAMINE_BATCH asc ";
List<Map<String,String>> 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<String, Object> 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.UUID,t.USER_ID,t.USER_NAME,t.PHONE,t.ORG_ID,t.ORG_NAME,"
+ "t.REASON,t.EXAMINE_STATE,t.EXAMINE_PERSON_ID,t.EXAMINE_PERSON_NAME,t.EXAMINE_CONTENT,"
+ "to_char(t.EXAMINE_TIME,'yyyy-mm-dd hh24:mi:ss') AS \"EXAMINE_TIME\",t.EXAMINE_BATCH"
+ " 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<Map<String,Object>> 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<applyList.size();i++) {
stringId = String.valueOf(applyList.get(i).get("UUID"));
stringBuilder.append(stringId + "','");
}
String substring = null;
if (stringBuilder != null) {
substring = stringBuilder.substring(0, stringBuilder.length()-2) +")";
}
//查询订单详情
String sql = "select t.UUID,t.MATERIAL_NAME,t.SPECS,t.NUM,t.REMARKS,t.APPLY_ID,to_char(t.GMT_CREATED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_CREATED\""
+ " from green_epidemic_material_detail t where t.is_deleted='N' and t.apply_id in " + substring;
List<Map<String,Object>> detailList =hibernateDao.queryForListWithSql( sql);
String stringId2 = null;
String stringId3 = null;
for (int i = 0; i < applyList.size(); i++) {
ArrayList<Object> arrayList = new ArrayList<Object>();
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<String, Object> 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.UUID,t.TITLE,t.SUBTITLE,to_char(t.GMT_CREATED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_CREATED\""
+ " from GREEN_EPIDEMIC_COLLECT_THEME t where t.is_deleted='N' order by t.gmt_created desc "
+ " )rn ) WHERE rw > ? AND rw <= ? ");
List<Map<String,Object>> 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<String, Object> 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<Map<String,Object>> list = hibernateDao.queryForListWithSql(sql);
return new RestResult(Constant.SUCCESS, "操作成功",list);
} catch (Exception e) {
e.printStackTrace();
return new RestResult(Constant.SUCCESS, "操作成功",new ArrayList<Map<String,Object>>());
}
}
/**
* 查询疫苗接种统计数据
* @param map
* @return
*/
@SuppressWarnings("deprecation")
@RequestMapping(value="/vaccineStatic", method = RequestMethod.POST)
@Transactional(rollbackFor=Exception.class)
@ResponseBody
public RestResult vaccineStatic(@RequestBody Map<String, Object> 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<Map<String,Object>> 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<Map<String,Object>> 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<Map<String,Object>> dlist = hibernateDao.queryForListWithSql(dSql);
Map<String,Object> rmap = new HashMap<String,Object>();
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<String, Object> 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<Map<String,Object>> 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<String, Object> 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 ID,DATA_TYPE,DATA_CODE,DATA_VALUE 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<Map<String,String>> 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<Map<String,String>> 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<String, Object> map) {
try {
ArrayList<Object> paramList = new ArrayList<Object>();
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<Map<String,String>>());
}
}
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.UUID,A.USER_ID,"
+ "A.USER_NAME,A.PHONE,A.ORG_ID,A.ORG_NAME,A.REASON,A.EXAMINE_BATCH,"
+ "A.EXAMINE_STATE,A.EXAMINE_PERSON_ID,A.EXAMINE_PERSON_NAME,A.EXAMINE_CONTENT,"
+ " to_char(A.GMT_CREATED,'YYYY-MM-DD HH24:MI:SS') as \"applyTime\","
+ " to_char(A.GMT_CREATED,'YYYY-MM-DD HH24:MI:SS') as \"GMT_CREATED\" "
+ " FROM GREEN_EPIDEMIC_MATERIAL A "
+ " LEFT JOIN (select ID,TRAVEL_ID,USER_ID,USER_NAME,EXAMINE_STATE,EXAMINE_OPINION,"
+ "EXAMINE_BATCH,DESCRIPTION,to_char(EXAMINE_TIME,'yyyy-mm-dd hh24:mi:ss') AS \"EXAMINE_TIME\""
+ " 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 to_char(A.GMT_CREATED,'YYYY-MM-DD HH24:MI:SS') 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<examineBatchs.length;i++){
if(i!=0){
sql+=" union all ";
}
sql+= " SELECT DISTINCT A.UUID AS id,A.USER_ID,"
+ "A.USER_NAME,A.PHONE,A.ORG_ID,A.ORG_NAME,A.REASON,A.EXAMINE_BATCH,"
+ "A.EXAMINE_STATE,A.EXAMINE_PERSON_ID,A.EXAMINE_PERSON_NAME,A.EXAMINE_CONTENT, "
+ " to_char(A.GMT_CREATED,'YYYY-MM-DD HH24:MI:SS') as \"applyTime\" "
+ " FROM GREEN_EPIDEMIC_MATERIAL A "
+ " LEFT JOIN (select ID,TRAVEL_ID,USER_ID,USER_NAME,EXAMINE_STATE,EXAMINE_OPINION,"
+ "EXAMINE_BATCH,DESCRIPTION,to_char(EXAMINE_TIME,'yyyy-mm-dd hh24:mi:ss') AS \"EXAMINE_TIME\" 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(examineBatchs[i]);
//当查询审核批次为1时只查询审核人为当前userid的数据
if("1".equals(examineBatchs[i])){
// 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(examineBatchs[i]);
}
}
sql +=" ) ORDER BY GMT_CREATED DESC "
+ " ) rn )where rownum>? and rownum<=? ";
paramList.add(limit);
paramList.add(pageSize);
}
System.err.println("sql:" +sql);
@SuppressWarnings("unchecked")
List<GreenRentHouseApply> list = hibernateDao.queryForListWithSql(sql,paramList.toArray());
return new RestResult(Constant.SUCCESS, "操作成功",list);
} catch (Exception e) {
e.printStackTrace();
return new RestResult(Constant.FAILED, "操作失败");
}
}
}