148 lines
5.8 KiB
Plaintext
148 lines
5.8 KiB
Plaintext
|
|
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, "提交失败");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|