d4c4d236a4ba2850c52b3da7bbc8c78e35448278.svn-base 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. package cn.com.goldenwater.dcproj.service.impl.tac;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.dao.*;
  4. import cn.com.goldenwater.dcproj.model.*;
  5. import cn.com.goldenwater.dcproj.param.*;
  6. import cn.com.goldenwater.dcproj.service.*;
  7. import cn.com.goldenwater.dcproj.utils.BeanUtil;
  8. import cn.com.goldenwater.id.util.UuidUtil;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import java.util.Date;
  15. import java.util.List;
  16. /**
  17. * @author lune
  18. * @date 2020-5-28
  19. */
  20. @Service
  21. @Transactional
  22. public class DataMigrationServiceImpl extends AbstractCrudService<TacProvincePblmInfo, TacProvincePblmInfoParam> implements DataMigrationService {
  23. private Logger logger = LoggerFactory.getLogger(getClass());
  24. @Autowired
  25. private TacProvincePblmInfoDao tacProvincePblmInfoDao;
  26. @Autowired
  27. private TacPblmInfoDao tacPblmInfoDao;
  28. @Autowired
  29. private GwComFileDao gwComFileDao;
  30. @Autowired
  31. private OlBisInspOrgDao olBisInspOrgDao;
  32. @Autowired
  33. private TacProvincePlanTaskDao tacProvincePlanTaskDao;
  34. @Autowired
  35. private TacPawpRgstrDao tacPawpRgstrDao;
  36. @Autowired
  37. private TacPblmSubjectDao tacPblmSubjectDao;
  38. @Autowired
  39. private GwComFileService gwComFileService;
  40. @Autowired
  41. private TacObjSubjectService objSubjectService;
  42. @Autowired
  43. private TacPblmInfoService tacPblmInfoService;
  44. @Autowired
  45. private DataMigrationDao dataMigrationDao;
  46. @Autowired
  47. private TacProvincePlanProcessDao tacProvincePlanProcessDao;
  48. public DataMigrationServiceImpl(TacProvincePblmInfoDao tacProvincePblmInfoDao) {
  49. super(tacProvincePblmInfoDao);
  50. this.tacProvincePblmInfoDao = tacProvincePblmInfoDao;
  51. }
  52. @Override
  53. public boolean newplan1() {
  54. try{
  55. // 1、查询浙江省现有工程信息;
  56. List<TacPawpRgstr> pawpRgstr = dataMigrationDao.findPawpRgstr();
  57. // 2、获取新阶段的第一阶段;
  58. // 提交后问题录入初始阶段,初始为开始状态
  59. TacProvincePlanProcessParam tacProvincePlanProcessParam = new TacProvincePlanProcessParam();
  60. tacProvincePlanProcessParam.setOrgId("036");
  61. tacProvincePlanProcessParam.setPrvId("0");//上一步id为0表示当前为起始位置
  62. TacProvincePlanProcess tacProvincePlanProcess = tacProvincePlanProcessDao.getBy(tacProvincePlanProcessParam);
  63. // 机构定制阶段流程
  64. if (tacProvincePlanProcess == null) {
  65. logger.info("无新阶段");
  66. return false;
  67. }
  68. // 3、循环工程信息,
  69. for (TacPawpRgstr tacPawpRgstr : pawpRgstr) {
  70. //提交下一段阶段记录入库
  71. OlBisInspOrg olBisInspOrg = olBisInspOrgDao.get(tacProvincePlanProcess.getOrgId());
  72. String taskId = getProcessTaskId(tacPawpRgstr.getId(), tacPawpRgstr.getPersId(), olBisInspOrg.getOrgNm(), tacProvincePlanProcess, "1");
  73. // 查询旧阶段最后阶段的工程问题以及资源;
  74. List<GwComFile> comFileList = null;
  75. TacProvincePblmInfo tacProvincePblmInfo = null;
  76. TacPblmInfoParam tacPblmInfoParam = new TacPblmInfoParam();
  77. tacPblmInfoParam.setRgstrId(tacPawpRgstr.getId() + "_5");
  78. tacPblmInfoParam.setProvince("330000000000");
  79. List<TacPblmInfo> TacPblmInfoList = tacPblmInfoDao.findList(tacPblmInfoParam);
  80. //相关专业是第一次提交时返回稽察对象的新增的提交记录id
  81. // 5,根据问题数据以及问题佐证材料以及阶段id入库新阶段问题表数据;
  82. for (TacPblmInfo pblmInfo : TacPblmInfoList) {
  83. tacProvincePblmInfo = new TacProvincePblmInfo();
  84. BeanUtil.copyObject1(pblmInfo, tacProvincePblmInfo);
  85. tacProvincePblmInfo.setRgstrId(tacPawpRgstr.getId());//稽察工程登记表
  86. tacProvincePblmInfo.setTaskId(taskId);//问题所属阶段id
  87. String uuid = UuidUtil.uuid();
  88. tacProvincePblmInfo.setStepId(tacProvincePlanProcess.getNowId());//问题所属阶段为提交当前阶段
  89. tacProvincePblmInfo.setId(uuid);
  90. tacProvincePblmInfo.setUptm(new Date());
  91. tacProvincePblmInfo.setIntm(new Date());
  92. tacProvincePblmInfo.setState("0");//新增对应阶段问题状态为0
  93. tacProvincePblmInfo.setOldPblmId(pblmInfo.getId());//保存原问题id
  94. tacProvincePblmInfoDao.insert(tacProvincePblmInfo);
  95. //问题第一次提交时,稽察阶段问题对应多个单位主体性质入库
  96. //复制稽察问题相关责任主体列表
  97. TacPblmSubjectParam subjectParam = new TacPblmSubjectParam();
  98. subjectParam.setPblmId(pblmInfo.getId());
  99. List<TacPblmSubject> subjectList = tacPblmSubjectDao.findList(subjectParam);
  100. tacPblmInfoService.addPblmSubject(pblmInfo.getSubjectNames(), pblmInfo.getSubjectIds(), subjectList, tacProvincePblmInfo.getId());
  101. // tacPblmInfoService.addPblmSubject(pblmInfo.getSubjectNames(),pblmInfo.getSubjectIds(),pblmInfo.getPblmSubjectList(), tacProvincePblmInfo.getId());
  102. //至下一阶段的新增问题资源重新保存
  103. comFileList = gwComFileDao.findFileByBiz(pblmInfo.getId());
  104. if (comFileList != null && !comFileList.isEmpty()) {
  105. for (GwComFile gwComFile : comFileList) {
  106. gwComFile.setId(UuidUtil.uuid());
  107. gwComFile.setBizId(uuid);
  108. gwComFileDao.insert(gwComFile);
  109. }
  110. }
  111. comFileList = null;
  112. }
  113. TacPawpRgstr tacPawpRgstrnew=new TacPawpRgstr();
  114. tacPawpRgstrnew.setTaskId(taskId);//更新当前稽察对象当前阶段
  115. tacPawpRgstrnew.setId(tacPawpRgstr.getId());
  116. tacPawpRgstrDao.update(tacPawpRgstrnew);
  117. }
  118. return true;
  119. }catch (Exception e){
  120. e.printStackTrace();
  121. return false;
  122. }
  123. }
  124. @Override
  125. public boolean planProcess2(String nextId) {
  126. // 1、查询浙江省现有工程信息;
  127. List<TacPawpRgstr> pawpRgstr = dataMigrationDao.findPawpRgstr();
  128. // 2、获取新阶段的第一阶段;
  129. // 提交后问题录入新阶段
  130. TacProvincePlanProcessParam tacProvincePlanProcessParam = new TacProvincePlanProcessParam();
  131. tacProvincePlanProcessParam.setOrgId("036");
  132. tacProvincePlanProcessParam.setNowId(nextId);//上一步id为0表示当前为起始位置,下一步id为1时表示为开始位置
  133. TacProvincePlanProcess tacProvincePlanProcess = tacProvincePlanProcessDao.getBy(tacProvincePlanProcessParam);
  134. // 机构定制阶段流程
  135. if (tacProvincePlanProcess == null) {
  136. logger.info("无此阶段");
  137. return false;
  138. }
  139. // 3、循环工程信息,
  140. for (TacPawpRgstr tacPawpRgstr : pawpRgstr) {
  141. //查询下一阶段记录是否存在,若不存在则新增阶段记录,存在则不能重复提交到下一阶段
  142. TacProvincePlanTaskParam provincePlanTaskParam = new TacProvincePlanTaskParam();
  143. provincePlanTaskParam.setNowId(nextId);
  144. provincePlanTaskParam.setRgstrId(tacPawpRgstr.getId());
  145. provincePlanTaskParam.setOrgId("036");
  146. TacProvincePlanTask tacProvincePlanTask = tacProvincePlanTaskDao.getBy(provincePlanTaskParam);
  147. if (tacProvincePlanTask != null) {
  148. logger.info("当前阶段问题已经提交,请不要重复提交!!");
  149. return false;
  150. }
  151. //根据稽察对象的当前阶段记录,查询阶段记录表中该阶段记录。
  152. tacProvincePlanTask = tacProvincePlanTaskDao.get(tacPawpRgstr.getTaskId());
  153. if(!tacProvincePlanProcess.getPrvId().equals(tacProvincePlanTask.getNowId())){
  154. logger.info("当前阶段问题已经提交,请不要重复提交!!");
  155. return false;
  156. }
  157. OlBisInspOrg olBisInspOrg = olBisInspOrgDao.get(tacProvincePlanProcess.getOrgId());
  158. String taskId = getProcessTaskId(tacPawpRgstr.getId(), tacPawpRgstr.getPersId(), olBisInspOrg.getOrgNm(), tacProvincePlanProcess, "1");
  159. // 查询旧阶段最后阶段的工程问题以及资源;
  160. List<GwComFile> comFileList = null;
  161. TacProvincePblmInfo tacProvincePblmInfo = null;
  162. //查询当前阶段问题清单
  163. TacProvincePblmInfoParam tacPblmInfoParam = new TacProvincePblmInfoParam();
  164. tacPblmInfoParam.setRgstrId(tacPawpRgstr.getId());
  165. tacPblmInfoParam.setTaskId(tacPawpRgstr.getTaskId());//稽察对象对应的阶段记录taskId
  166. tacPblmInfoParam.setProvince(tacProvincePlanProcess.getAdCode());
  167. List<TacProvincePblmInfo> tacPblmInfoList = tacProvincePblmInfoDao.findList(tacPblmInfoParam);
  168. //相关专业是第一次提交时返回稽察对象的新增的提交记录id
  169. //5,根据问题数据以及问题佐证材料以及阶段id入库新阶段问题表数据;
  170. for (TacProvincePblmInfo pblmInfo : tacPblmInfoList) {
  171. //新增当前阶段记录下问题清单至提交的下一段阶段
  172. comFileList=gwComFileDao.findFileByBiz(pblmInfo.getId());
  173. //问题修改意见资源
  174. String uuid=UuidUtil.uuid();
  175. pblmInfo.setTaskId(taskId);
  176. pblmInfo.setIntm(new Date());
  177. pblmInfo.setStepId(tacProvincePlanProcess.getNowId());//记录问题对应提交的下一阶段id
  178. pblmInfo.setOldPblmId(pblmInfo.getId());//保存上一阶段的问题id
  179. pblmInfo.setUptm(new Date());
  180. pblmInfo.setId(uuid);
  181. pblmInfo.setState("0");//提交的阶段问题状态为0
  182. tacProvincePblmInfoDao.insert(pblmInfo);
  183. //阶段问题提交到下一个阶段时,稽察阶段问题对应多个单位主体性质入库
  184. //复制稽察问题相关责任主体列表
  185. TacPblmSubjectParam subjectParam = new TacPblmSubjectParam();
  186. subjectParam.setPblmId(pblmInfo.getId());
  187. List<TacPblmSubject> subjectList = tacPblmSubjectDao.findList(subjectParam);
  188. tacPblmInfoService.addPblmSubject(pblmInfo.getSubjectNames(),pblmInfo.getSubjectIds(),subjectList,pblmInfo.getId());
  189. // tacPblmInfoService.addPblmSubject(pblmInfo.getSubjectNames(),pblmInfo.getSubjectIds(),pblmInfo.getPblmSubjectList(),pblmInfo.getId());
  190. if(comFileList!=null &&!comFileList.isEmpty()){
  191. for(GwComFile gwComFile:comFileList){
  192. gwComFile.setId(UuidUtil.uuid());
  193. gwComFile.setBizId(pblmInfo.getId());
  194. gwComFileDao.insert(gwComFile);
  195. }
  196. }
  197. //问题修改理由取证资源传至下一阶段
  198. comFileList=null;
  199. }
  200. TacPawpRgstr tacPawpRgstrnew=new TacPawpRgstr();
  201. tacPawpRgstrnew.setTaskId(taskId);//更新当前稽察对象当前阶段
  202. tacPawpRgstrnew.setId(tacPawpRgstr.getId());
  203. tacPawpRgstrDao.update(tacPawpRgstrnew);
  204. }
  205. return true;
  206. }
  207. private String getProcessTaskId(String rgstrId, String persId, String orgName, TacProvincePlanProcess tacProvincePlanProcess, String state) {
  208. // 添加提交记录,记住提交记录的流程为哪个阶段
  209. TacProvincePlanTask tacProvincePlanTask = new TacProvincePlanTask();
  210. tacProvincePlanTask.setRgstrId(rgstrId);
  211. String taskId = UuidUtil.uuid();
  212. tacProvincePlanTask.setId(taskId);
  213. tacProvincePlanTask.setIntm(new Date());
  214. tacProvincePlanTask.setState(state);//问题第一次提交审核,根据专业提交问题至初始阶段,状态为1,驳回为0,提交为1
  215. tacProvincePlanTask.setPersId(persId);
  216. tacProvincePlanTask.setRgstrId(rgstrId);
  217. tacProvincePlanTask.setNowStep(tacProvincePlanProcess.getNowStep());
  218. tacProvincePlanTask.setNowId(tacProvincePlanProcess.getNowId());
  219. tacProvincePlanTask.setOrgId(tacProvincePlanProcess.getOrgId());
  220. tacProvincePlanTask.setOrgName(orgName);
  221. tacProvincePlanTask.setDataStat("1");//数据状态为1
  222. tacProvincePlanTaskDao.insert(tacProvincePlanTask);
  223. return taskId;
  224. }
  225. }