Commit 0b61d940 authored by 梁钊炜's avatar 梁钊炜

更新根据年份自动生成报表

parent f22390c7
......@@ -26,8 +26,11 @@ public enum QuestionEnum {
FULL_STATUS_POSITION("职务"),
FULL_STATUS_PHONE("联系方式"),
FULL_STATUS_JOB("是否专职"),
OPERATION_SITUATION("关于众创空间运营情况的说明"),
FULL_STATUS_DESCRIPTION("关于众创空间运营情况的相关说明"),
INCUBATED_ENTERPRISES("入孵企业情况"),
ENTERPRISES_NAME("企业名称"),
ENTERPRISES_PROF("是否提交学信网截图或8年以内学历证明"),
......@@ -97,6 +100,8 @@ public enum QuestionEnum {
INCUBATED_NAME("企业名称"),
INCUBATED_AMOUNT("合同金额"),
INCUBATED_MATERIAL("是否发送佐证材料"),
DEBT_FINANCING("本评估周期实现股权或债权融资情况(含股东增资或股东借款)"),
INCUBATED_FINANCING_NAME("融资企业名称"),
INCUBATED_FINANCING_AMOUNT("融资金额"),
INCUBATED_FINANCING_MODE("融资方式"),
......@@ -143,8 +148,7 @@ public enum QuestionEnum {
BOOLEAN_NATIONAL_RECORD("是否为国家级备案众创空间"),
NATIONAL_ENTREPRENEURSHIP("是否为国家创业孵化示范基地"),
BOOLEAN_NATIONAL_ENTREPRENEURSHIP("是否为国家创业孵化示范基地")
;
BOOLEAN_NATIONAL_ENTREPRENEURSHIP("是否为国家创业孵化示范基地");
private final String questionCode;
......
......@@ -375,4 +375,16 @@ public interface QuestionnaireDao {
@Param("status") int status);
Integer queryAnswer(@Param("recordId") int recordId);
List<Group> selectGroupByYear(@Param("qnYear") Integer qnYear);
Questions queryQuestionsById(@Param("parseInt") int parseInt);
int queryQuestionsByTitle(@Param("question") String question,
@Param("uuid") Integer uuid);
int addQuestionsList(@Param("newGroups") List<Group> newGroups);
List<Options> queryOptionByTitle(@Param("str") String str,
@Param("qnYear") int qnYear);
}
......@@ -47,10 +47,15 @@ public class Options {//选项表
*/
private int answerId;
/**
* 年份
*/
private int qnYear;
public Options() {
}
public Options(Long id, Long questionId, int status, String optionValue, int formTag, String formOption, String formContent, int answerId) {
public Options(Long id, Long questionId, int status, String optionValue, int formTag, String formOption, Object formContent, int answerId, int qnYear) {
this.id = id;
this.questionId = questionId;
this.status = status;
......@@ -59,6 +64,7 @@ public class Options {//选项表
this.formOption = formOption;
this.formContent = formContent;
this.answerId = answerId;
this.qnYear = qnYear;
}
public Long getId() {
......@@ -113,7 +119,7 @@ public class Options {//选项表
return formContent;
}
public void setFormContent(String formContent) {
public void setFormContent(Object formContent) {
this.formContent = formContent;
}
......@@ -124,4 +130,12 @@ public class Options {//选项表
public void setAnswerId(int answerId) {
this.answerId = answerId;
}
public int getQnYear() {
return qnYear;
}
public void setQnYear(int qnYear) {
this.qnYear = qnYear;
}
}
......@@ -1078,6 +1078,15 @@ public class QuestionnaireServiceImpl implements QuestionnaireService {
// 插入问题表的数据t_questions,添加成功进入选项表的入库操作
addQuestions(line);
int res = addGroup(calendar.get(Calendar.YEAR));
if (res == -1){
tblMap.put("code", 500);
tblMap.put("result", false);
tblMap.put("msg", "生成数据表失败!");
return tblMap;
}
// 获取到t_questions标的id,根据每个问题的选项进行入库操作
Integer qnYear = calendar.get(Calendar.YEAR);
addOptions(qnYear);
......@@ -1115,7 +1124,8 @@ public class QuestionnaireServiceImpl implements QuestionnaireService {
QuestionEnum.WEEK_ACTIVITIES.getQuestionCode(), QuestionEnum.LISTING_SITUATION.getQuestionCode(),
QuestionEnum.PROPERTY_RIGHTS.getQuestionCode(), QuestionEnum.AWARD_SITUATION.getQuestionCode(),
QuestionEnum.AWARDS_COMPETITION.getQuestionCode(), QuestionEnum.TOPSTATUS.getQuestionCode(),
QuestionEnum.NATIONAL_RECORD.getQuestionCode(), QuestionEnum.NATIONAL_ENTREPRENEURSHIP.getQuestionCode());
QuestionEnum.NATIONAL_RECORD.getQuestionCode(), QuestionEnum.NATIONAL_ENTREPRENEURSHIP.getQuestionCode(),
QuestionEnum.OPERATION_SITUATION.getQuestionCode(),QuestionEnum.DEBT_FINANCING.getQuestionCode());
for (String str : questionList) {
// 保存问题表
Questions question = new Questions();
......@@ -1129,6 +1139,52 @@ public class QuestionnaireServiceImpl implements QuestionnaireService {
return String.valueOf(rtn);
}
/**
* 组别表数据生成
* @param qnYear 年份
* @return 结果
*/
@Transactional
public int addGroup(Integer qnYear){
try{
// 根据问卷表的年份查询最新入库的数据id
int questionnaireId = questionnaireDao.queryQuestionsId(qnYear);
// 获取去年的分组数据
List<Group> groups = questionnaireDao.selectGroupByYear(qnYear - 1);
// 新数据
List<Group> newGroups = new ArrayList<>();
// 循环去年数据
for (Group group : groups) {
String[] split = group.getQuestionId().split(",");
StringBuilder ids = new StringBuilder();
Group newGroup = new Group();
for (String s : split) {
Questions question = questionnaireDao.queryQuestionsById(Integer.parseInt(s));
int id = questionnaireDao.queryQuestionsByTitle(question.getQuestion(),questionnaireId);
ids.append(id).append(",");
}
newGroup.setGroupTitle(group.getGroupTitle());
newGroup.setQnYear(qnYear);
newGroup.setGroupType(group.getGroupType());
newGroup.setQuestionId(ids.substring(0,ids.toString().length()-1));
newGroup.setQuestionnaireId(questionnaireId);
newGroup.setRelevance(group.getRelevance());
newGroups.add(newGroup);
}
return questionnaireDao.addQuestionsList(newGroups);
}catch (Exception e){
return -1;
}
}
/**
* 每年定时生成选项表数据
*
......@@ -1170,8 +1226,12 @@ public class QuestionnaireServiceImpl implements QuestionnaireService {
QuestionEnum.FULL_STATUS_DEPARTMENT.getQuestionCode(),
QuestionEnum.FULL_STATUS_POSITION.getQuestionCode(),
QuestionEnum.FULL_STATUS_PHONE.getQuestionCode(),
QuestionEnum.FULL_STATUS_JOB.getQuestionCode(),
QuestionEnum.FULL_STATUS_DESCRIPTION.getQuestionCode());
QuestionEnum.FULL_STATUS_JOB.getQuestionCode());
// 调取保存方法
insertOptions(questions.getId(), optionsList);
}else if (questions.getQuestion().equals(QuestionEnum.OPERATION_SITUATION.getQuestionCode())) {
// 关于众创空间运营情况的说明
List<String> optionsList = Arrays.asList(QuestionEnum.FULL_STATUS_DESCRIPTION.getQuestionCode());
// 调取保存方法
insertOptions(questions.getId(), optionsList);
} else if (questions.getQuestion().equals(QuestionEnum.INCUBATED_ENTERPRISES.getQuestionCode())) {
......@@ -1261,7 +1321,12 @@ public class QuestionnaireServiceImpl implements QuestionnaireService {
// 在孵企业销售收入或累计合同额情况
List<String> optionsList = Arrays.asList(QuestionEnum.INCUBATED_NAME.getQuestionCode(),
QuestionEnum.INCUBATED_AMOUNT.getQuestionCode(),
QuestionEnum.INCUBATED_MATERIAL.getQuestionCode(),
QuestionEnum.INCUBATED_MATERIAL.getQuestionCode());
// 调取保存方法
insertOptions(questions.getId(), optionsList);
} else if (questions.getQuestion().equals(QuestionEnum.DEBT_FINANCING.getQuestionCode())){
// 本评估周期实现股权或债权融资情况(含股东增资或股东借款)
List<String> optionsList = Arrays.asList(
QuestionEnum.INCUBATED_FINANCING_NAME.getQuestionCode(),
QuestionEnum.INCUBATED_FINANCING_AMOUNT.getQuestionCode(),
QuestionEnum.INCUBATED_FINANCING_MODE.getQuestionCode(),
......@@ -1342,14 +1407,22 @@ public class QuestionnaireServiceImpl implements QuestionnaireService {
* 保存选项表数据
*/
private int insertOptions(Long id, List<String> optionsList) {
Calendar calendar = Calendar.getInstance();
if (StringUtils.isEmpty(String.valueOf(id))) {
return 0;
}
int rtn = 0;
int qn_year = calendar.get(Calendar.YEAR);
Options options = new Options();
// 获取问题表主键
options.setQuestionId(id);
for (String str : optionsList) {
Options option = questionnaireDao.queryOptionByTitle(str,qn_year - 1).get(0);
options.setFormTag(option.getFormTag());
options.setFormOption(option.getFormOption());
options.setQnYear(qn_year);
options.setOptionValue(str);
options.setStatus(1);
rtn = questionnaireDao.insertOptions(options);
......
......@@ -99,15 +99,37 @@
WHERE record_id = #{recordId}
</select>
<select id="selectGroupByYear" resultType="com.tiptimes.model.Group">
select *
from t_group
where qn_year = #{qnYear}
</select>
<select id="queryQuestionsById" resultType="com.tiptimes.model.Questions">
select *
from t_questions
where id = #{parseInt}
</select>
<select id="queryQuestionsByTitle" resultType="integer">
select id
from t_questions
where question = #{question} AND questionnaire_uuid = #{uuid}
</select>
<insert id="addQuestionsList" parameterType="com.tiptimes.model.Group">
INSERT INTO t_group(group_title, qn_year, group_type, question_id, questionnaire_id,relevance)
VALUES
<foreach collection="newGroups" item="item" separator=",">
(#{item.groupTitle}, #{item.qnYear}, #{item.groupType}, #{item.questionId}, #{item.questionnaireId},#{item.relevance})
</foreach>
</insert>
<select id="queryOptionByTitle" resultType="com.tiptimes.model.Options">
select *
from t_options
where option_value = #{str} AND qn_year = #{qnYear}
</select>
<insert id="insertQuestionnaire" useGeneratedKeys="true" keyProperty="id">
INSERT INTO t_questionnaire(questionnaire_name, status, create_time, create_by, qn_year)
......@@ -134,8 +156,8 @@
</select>
<insert id="insertOptions" parameterType="com.tiptimes.model.Options">
INSERT INTO t_options(question_id, option_value, status)
VALUES (#{questionId}, #{optionValue}, #{status})
INSERT INTO t_options(question_id, option_value, status,form_tag, form_option,qn_year)
VALUES (#{questionId}, #{optionValue}, #{status},#{formTag},#{formOption},#{qnYear})
</insert>
<!--查询商报记录相关数据,用于生成每年的数据使用-->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment