hz-zhhq-app-service/greenH5modul/.svn/pristine/56/56fe9cb1b013bcd50734b79360c...

148 lines
5.8 KiB
Plaintext
Raw Normal View History

2025-01-21 13:12:35 +08:00
package com.jysoft.questionnaire.service;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.jysoft.questionnaire.entity.GreenQuestionnaire;
import com.jysoft.questionnaire.entity.GreenQuestionnaireTopIc;
import com.nationalelectirc.Constant.Constant;
import com.nationalelectirc.utils.RestResult;
import com.nationalelectric.greenH5.utils.DateTimeHelper;
import com.sgcc.uap.persistence.IHibernateDao;
import com.sun.org.apache.bcel.internal.generic.NEW;
@Service
public class QuestionnaireService {
@Autowired
private IHibernateDao iHibernateDao;
/**
* 获取问卷调查列表
*
* @param entity
* 数据
* @return 响应数据
*/
public RestResult getQuestionnaireList(GreenQuestionnaire entity) {
try {
ArrayList<Object> paramList = new ArrayList<Object>();
StringBuilder sql = new StringBuilder();
sql.append(" SELECT * FROM (SELECT ROWNUM rn ,A.* FROM (SELECT gq.ID,gq.TITLE,gq.START_TIME,gq.END_TIME,"
+ " CASE WHEN A.NUM IS NOT NULL THEN A.NUM ELSE 0 END AS NUM,"
+ " CASE WHEN TO_DATE( START_TIME, 'yyyy-mm-dd' ) >TRUNC( CURRENT_DATE ) THEN '0'"
+ " WHEN TO_DATE( END_TIME, 'yyyy-mm-dd' ) < TRUNC( CURRENT_DATE ) "
+ " THEN '1' ELSE '2' END AS STATE " + " FROM GREEN_QUESTIONNAIRE gq "
+ " LEFT JOIN GREEN_QUESTIONNAIRE_RECORD gqr ON gqr.QUESTIONNAIRE_ID = gq.ID AND gqr.USER_ID = ? "
+ " LEFT JOIN (SELECT QUESTIONNAIRE_ID ,COUNT(USER_ID) AS NUM FROM GREEN_QUESTIONNAIRE_RECORD WHERE USER_ID IS NOT NULL GROUP BY QUESTIONNAIRE_ID) A ON A.QUESTIONNAIRE_ID = gq.ID"
+ " WHERE gq.STATE != '0' AND gq.IS_DEL = '0'");
if ("1".equals(entity.getType())) {
sql.append(" AND gqr.USER_ID IS NULL ");
} else {
sql.append(" AND gqr.USER_ID IS NOT NULL ");
}
sql.append(" ORDER BY gq.RELEASE_TIME DESC)A WHERE ROWNUM <= ?) WHERE rn > ? ");
int pageSize = entity.getPageSize();
int pageNum = entity.getPageNum();
int page = (pageNum - 1) * pageSize;
int limit = pageNum * pageSize;
paramList.add(entity.getUserId());
paramList.add(limit);
paramList.add(page);
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql.toString(), paramList.toArray());
return new RestResult(Constant.SUCCESS, "查询成功", list);
} catch (Exception e) {
System.err.println(e.getMessage());
return new RestResult(Constant.FAILED, "查询失败");
}
}
/**
* 获取数据详情
*
* @param entity
* @return
*/
public RestResult getQuestionnaireById(GreenQuestionnaire entity) {
ArrayList<Object> paramList = new ArrayList<Object>();
ArrayList<Object> paramListTopIc = new ArrayList<Object>();
StringBuilder sql = new StringBuilder();
StringBuilder sqlTopIc = new StringBuilder();
try {
sql.append("SELECT TITLE,DESCRIBE FROM GREEN_QUESTIONNAIRE WHERE IS_DEL = '0' AND ID = ?");
sqlTopIc.append(
"SELECT gqt.ID,gqt.TOPIC,gqp.\"OPTION\" , gqt.\"NUMBER\",gqt.TOPIC_TYPE FROM GREEN_QUESTIONNAIRE_TOPIC gqt "
+ "LEFT JOIN GREEN_QUESTIONNAIRE_PER gqp ON gqp.TOPIC_ID = gqt.ID and gqp.USER_ID = ?"
+ "WHERE gqt.QUESTIONNAIRE_ID = ? ORDER BY TO_NUMBER(gqt.\"NUMBER\")");
paramList.add(entity.getId());
paramListTopIc.add(entity.getUserId());
paramListTopIc.add(entity.getId());
Map<String, Object> map = new HashMap<String, Object>();
// 问卷数据
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql.toString(), paramList.toArray());
// 题目数据
List<Map<String, Object>> listTopIc = iHibernateDao.queryForListWithSql(sqlTopIc.toString(),
paramListTopIc.toArray());
map.put("list", list);
map.put("listTopIc", listTopIc);
return new RestResult(Constant.SUCCESS, "查询成功", map);
} catch (Exception e) {
System.err.println(e.getMessage());
return new RestResult(Constant.FAILED, "查询失败");
}
}
/**
* 获取数据详情
*
* @param entity
* @return
*/
public RestResult updateQuestionnaire(GreenQuestionnaire entity) {
ArrayList<Object> paramList = new ArrayList<Object>();
StringBuilder sql = new StringBuilder();
try {
List<GreenQuestionnaireTopIc> listTopIc = JSONArray.parseArray(entity.getTopIc(),
GreenQuestionnaireTopIc.class);
sql.append(
"INSERT INTO GREEN_QUESTIONNAIRE_RECORD (ID, QUESTIONNAIRE_ID, COMMIT_TIME, USER_ID, USER_NAME) VALUES (?,?,?,?,?)");
String uuid = UUID.randomUUID().toString().replace("-", "");
paramList.add(uuid);
paramList.add(entity.getId());
paramList.add(DateTimeHelper.getNowDate1());
paramList.add(entity.getUserId());
paramList.add(entity.getUserName());
iHibernateDao.executeSqlUpdate(sql.toString(), paramList.toArray());
for (GreenQuestionnaireTopIc topIc : listTopIc) {
System.err.println(topIc.toString());
ArrayList<Object> paramListTopIc = new ArrayList<Object>();
StringBuilder sqlTopIc = new StringBuilder();
String uuidPer = UUID.randomUUID().toString().replace("-", "");
sqlTopIc.append(
"INSERT INTO GREEN_QUESTIONNAIRE_PER ( ID, TOPIC_ID, \"OPTION\", CREATE_TIME, USER_ID, USER_NAME ) VALUES ( ?,?,?,?,?,? )");
paramListTopIc.add(uuidPer);
paramListTopIc.add(topIc.getId());
paramListTopIc.add(topIc.getOption());
paramListTopIc.add(DateTimeHelper.getNowDate1());
paramListTopIc.add(entity.getUserId());
paramListTopIc.add(entity.getUserName());
iHibernateDao.executeSqlUpdate(sqlTopIc.toString(), paramListTopIc.toArray());
}
return new RestResult(Constant.SUCCESS, "提交成功");
} catch (Exception e) {
System.err.println(e.getMessage());
return new RestResult(Constant.FAILED, "提交失败");
}
}
}