ee292b1b21a84fa2ce35483189c04ed3da824b70.svn-base 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package cn.com.goldenwater.dcproj.controller.importex;
  2. import cn.com.goldenwater.core.web.BaseController;
  3. import cn.com.goldenwater.core.web.BaseResponse;
  4. import cn.com.goldenwater.dcproj.dao.BisInspRsvrProjectDao;
  5. import cn.com.goldenwater.dcproj.dao.BisInspSafeExtManageDao;
  6. import cn.com.goldenwater.dcproj.model.BisInspRsvrProject;
  7. import cn.com.goldenwater.dcproj.model.BisInspSafeExtManage;
  8. import cn.com.goldenwater.dcproj.param.BisInspRsvrProjectParam;
  9. import cn.com.goldenwater.dcproj.param.BisInspSafeExtManageParam;
  10. import cn.com.goldenwater.dcproj.service.BisInspRsvrRgstrService;
  11. import cn.com.goldenwater.id.util.UuidUtil;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.slf4j.Logger;
  16. import org.slf4j.LoggerFactory;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.data.redis.core.RedisTemplate;
  19. import org.springframework.transaction.annotation.Transactional;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.RequestMethod;
  22. import org.springframework.web.bind.annotation.RestController;
  23. import java.text.ParseException;
  24. import java.text.SimpleDateFormat;
  25. import java.util.Date;
  26. import java.util.HashMap;
  27. import java.util.List;
  28. import java.util.Map;
  29. @Api(value = "Data 水库工程实体数据同步", tags = "Data 水库工程实体数据同步")
  30. @RestController
  31. @RequestMapping("")
  32. public class InitDataController extends BaseController {
  33. private Logger logger = LoggerFactory.getLogger(getClass());
  34. @Autowired
  35. private BisInspSafeExtManageDao bisInspSafeExtManageDao;
  36. @Autowired
  37. private BisInspRsvrProjectDao bisInspRsvrProjectDao;
  38. @Autowired
  39. private BisInspRsvrRgstrService bisInspRsvrRgstrService;
  40. @Autowired
  41. private RedisTemplate redisTemplate;
  42. @ApiOperation("水库工程实体数据导入")
  43. @RequestMapping(value = "/initData", method = RequestMethod.GET)
  44. @Transactional
  45. public BaseResponse<Map<String, String>> pblmsList_v2() {
  46. redisTemplate.opsForValue().set("safeSyncTime", "");
  47. Map<String, String> params = new HashMap<>();
  48. logger.info("数据迁移,将安全运行中涉及到工程实体的数据迁移到工程实体");
  49. BisInspSafeExtManageParam safeExtManageParam = new BisInspSafeExtManageParam();
  50. //分页处理,防止数据量过大撑爆内存
  51. Integer total = bisInspSafeExtManageDao.selectNewCount();
  52. int pageNum = total % 500 == 0 ? total / 500 : (total / 500) + 1;
  53. String desc = "需要更新的数据条数-->" + total + "共分为" + pageNum + "次导入";
  54. StringBuffer buffer = new StringBuffer();
  55. for (int i = 0; i < pageNum; i++) {
  56. String updateTime = (String) redisTemplate.opsForValue().get("safeSyncTime");
  57. if (StringUtils.isNotBlank(updateTime)) {
  58. try {
  59. Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(updateTime);
  60. safeExtManageParam.setUpdateTime(date);
  61. } catch (ParseException e) {
  62. e.printStackTrace();
  63. }
  64. }
  65. safeExtManageParam.setPageNum(500);
  66. List<BisInspSafeExtManage> inspSafeExtManages = bisInspSafeExtManageDao.findRsvrProjectList(safeExtManageParam);
  67. logger.info("第" + (i + 1) + "需要迁移的数据条数——————>" + inspSafeExtManages.size());
  68. buffer.append("第" + (i + 1) + "需要迁移的数据条数——————>" + inspSafeExtManages.size());
  69. if (inspSafeExtManages != null && !inspSafeExtManages.isEmpty()) {
  70. BisInspSafeExtManage maxInspSafe = inspSafeExtManages.get(inspSafeExtManages.size() - 1);
  71. Date updateDate = maxInspSafe.getUpdateTime();
  72. updateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateDate);
  73. redisTemplate.opsForValue().set("safeSyncTime", updateTime);
  74. for (BisInspSafeExtManage safeExtManage : inspSafeExtManages) {
  75. BisInspRsvrProject rsvrProject = new BisInspRsvrProject();
  76. rsvrProject.setRgstrId(safeExtManage.getRgstrId());
  77. rsvrProject.setId(UuidUtil.uuid());
  78. rsvrProject.setUpdateTime(safeExtManage.getUpdateTime());
  79. rsvrProject.setCreateTime(safeExtManage.getCreateTime());
  80. rsvrProject.setDiskRunInfo(safeExtManage.getDikeHasLeak());
  81. rsvrProject.setFsltdzInfo(safeExtManage.getHavFlLowLimLev());
  82. rsvrProject.setHasExtDamSafeAppr(safeExtManage.getExtDamSafeAppr());
  83. rsvrProject.setHasSetMainFl(safeExtManage.getHasSetMainFl());
  84. rsvrProject.setHasSetPourFl(safeExtManage.getHasSetPourFl());
  85. rsvrProject.setIfReinForce(safeExtManage.getIfReinForce());
  86. rsvrProject.setIsMainFlNormal(safeExtManage.getIsMainFlNormal());
  87. rsvrProject.setStatus(safeExtManage.getStatus());
  88. rsvrProject.setReverOrgName(safeExtManage.getReverOrgName());
  89. rsvrProject.setReverOrg(safeExtManage.getReverOrg());
  90. rsvrProject.setReinForceRun(safeExtManage.getIfComplateAcc());
  91. rsvrProject.setWaterRunInfo(safeExtManage.getRetainRegular());
  92. rsvrProject.setNotReinForce(safeExtManage.getNoReinForceReson());
  93. rsvrProject.setRecPersId(safeExtManage.getRecPersId());
  94. rsvrProject.setPoorCountry(safeExtManage.getPoorCountry());
  95. rsvrProject.setPourFyIsNormal(safeExtManage.getPourFyIsNormal());
  96. rsvrProject.setRecPers2(safeExtManage.getRecPers2());
  97. rsvrProject.setRecPersId(safeExtManage.getRecPersId());
  98. rsvrProject.setExtDamSafeAppr(safeExtManage.getDamSafeApprNote());
  99. //已经存在则不操作
  100. //最后更改督查表状态
  101. BisInspRsvrProjectParam rsvrProjectParam = new BisInspRsvrProjectParam();
  102. rsvrProjectParam.setRgstrId(safeExtManage.getRgstrId());
  103. BisInspRsvrProject inspRsvrProject = bisInspRsvrProjectDao.getBy(rsvrProjectParam);
  104. if (inspRsvrProject == null) {
  105. bisInspRsvrProjectDao.insert(rsvrProject);
  106. bisInspRsvrRgstrService.updateRsvr(safeExtManage.getRgstrId(), safeExtManage.getStatus(), "project");
  107. } else {
  108. bisInspRsvrProjectDao.update(rsvrProject);
  109. }
  110. }
  111. }
  112. }
  113. params.put("size", desc);
  114. params.put("step", buffer.toString());
  115. return buildSuccessResponse(params);
  116. }
  117. }