e4c70afff52a3056784b736ddaa3fab3792c2018.svn-base 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package cn.com.goldenwater.dcproj.service.impl;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.dao.AttProjectInsuranceRecordDao;
  4. import cn.com.goldenwater.dcproj.dao.BisInspAnzeRecordDao;
  5. import cn.com.goldenwater.dcproj.dao.BisInspAnzeRgstrDao;
  6. import cn.com.goldenwater.dcproj.model.AttProjectInsurance;
  7. import cn.com.goldenwater.dcproj.model.AttProjectInsuranceRecord;
  8. import cn.com.goldenwater.dcproj.model.BisInspAnzeRecord;
  9. import cn.com.goldenwater.dcproj.model.BisInspAnzeRgstr;
  10. import cn.com.goldenwater.dcproj.param.BisInspAnzeRecordParam;
  11. import cn.com.goldenwater.dcproj.service.BisInspAnzeRecordService;
  12. import cn.com.goldenwater.id.util.UuidUtil;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import org.springframework.transaction.annotation.Transactional;
  16. import java.util.Calendar;
  17. import java.util.Date;
  18. import java.util.List;
  19. /**
  20. * @author lql
  21. * @date 2026-4-21
  22. */
  23. @Service
  24. @Transactional
  25. public class BisInspAnzeRecordServiceImpl extends AbstractCrudService<BisInspAnzeRecord, BisInspAnzeRecordParam> implements BisInspAnzeRecordService {
  26. @Autowired
  27. private BisInspAnzeRgstrDao bisInspAnzeRgstrDao;
  28. @Autowired
  29. private BisInspAnzeRecordDao bisInspAnzeRecordDao;
  30. @Autowired
  31. private AttProjectInsuranceRecordDao attProjectInsuranceRecordDao;
  32. public BisInspAnzeRecordServiceImpl(BisInspAnzeRecordDao bisInspAnzeRecordDao) {
  33. super(bisInspAnzeRecordDao);
  34. this.bisInspAnzeRecordDao = bisInspAnzeRecordDao;
  35. }
  36. @Override
  37. public int insert(BisInspAnzeRecord bisInspAnzeRecord) {
  38. updateState(bisInspAnzeRecord);
  39. String uuid = UuidUtil.uuid();
  40. bisInspAnzeRecord.setId(uuid);
  41. bisInspAnzeRecord.setIntm(new Date());
  42. bisInspAnzeRecord.setUptm(new Date());
  43. bisInspAnzeRecord.setDataStat("0");
  44. int ret = this.bisInspAnzeRecordDao.insert(bisInspAnzeRecord);
  45. updateRgstrState(bisInspAnzeRecord);
  46. return ret;
  47. }
  48. @Override
  49. public int update(BisInspAnzeRecord bisInspAnzeRecord) {
  50. updateState(bisInspAnzeRecord);
  51. bisInspAnzeRecord.setUptm(new Date());
  52. int ret = this.bisInspAnzeRecordDao.update(bisInspAnzeRecord);
  53. updateRgstrState(bisInspAnzeRecord);
  54. return ret;
  55. }
  56. private void updateRgstrState(BisInspAnzeRecord bisInspAnzeRecord) {
  57. boolean flag = false;
  58. AttProjectInsurance base = bisInspAnzeRgstrDao.getBaseById(bisInspAnzeRecord.getRgstrId());
  59. AttProjectInsuranceRecord attProjectInsuranceRecord = attProjectInsuranceRecordDao.getByNew(base.getId());
  60. // 投保时间
  61. Date insuranceDate = attProjectInsuranceRecord.getInsuranceDate();
  62. // 第一次填报日期 + 3月
  63. Calendar calendar = Calendar.getInstance();
  64. calendar.setTime(attProjectInsuranceRecord.getInsuranceDate());
  65. calendar.add(Calendar.MONTH, 3);
  66. Date firstRecordTime = calendar.getTime();
  67. // 投保截止时间 + 1年
  68. Calendar calendar2 = Calendar.getInstance();
  69. calendar2.setTime(attProjectInsuranceRecord.getInsuranceDate());
  70. calendar2.add(Calendar.YEAR, 1);
  71. Date endTime = calendar2.getTime();
  72. BisInspAnzeRecordParam param = new BisInspAnzeRecordParam();
  73. param.setRgstrId(bisInspAnzeRecord.getRgstrId());
  74. param.setStartTime(insuranceDate);
  75. param.setEndTime(endTime);
  76. param.setState("1");
  77. List<BisInspAnzeRecord> list = bisInspAnzeRecordDao.findList(param);
  78. double investment = Double.parseDouble(base.getInvestment());
  79. // 判断当前时间是否在有效期内
  80. Date now = new Date();
  81. if (now.before(firstRecordTime)) {
  82. if (list.stream().count() >= 1) {
  83. flag = true;
  84. }
  85. } else {
  86. if (investment < 3000 && list.stream().count() >= 2) {
  87. flag = true;
  88. } else if (investment < 10000 && list.stream().count() >= 3) {
  89. flag = true;
  90. } else if (list.stream().count() >= 4) {
  91. flag = true;
  92. }
  93. }
  94. if (flag) {
  95. AttProjectInsuranceRecord attProjectInsuranceRecord2 = new AttProjectInsuranceRecord();
  96. attProjectInsuranceRecord2.setId(attProjectInsuranceRecord.getId());
  97. attProjectInsuranceRecord2.setState("1");
  98. attProjectInsuranceRecordDao.update(attProjectInsuranceRecord2);
  99. BisInspAnzeRgstr bisInspAnzeRgstr = new BisInspAnzeRgstr();
  100. bisInspAnzeRgstr.setId(bisInspAnzeRecord.getRgstrId());
  101. bisInspAnzeRgstr.setState("2");
  102. bisInspAnzeRgstrDao.update(bisInspAnzeRgstr);
  103. }
  104. }
  105. private void updateState(BisInspAnzeRecord bisInspAnzeRecord) {
  106. AttProjectInsurance base = bisInspAnzeRgstrDao.getBaseById(bisInspAnzeRecord.getRgstrId());
  107. double investment = Double.parseDouble(base.getInvestment());
  108. if (investment < 3000) {
  109. if ("1".equals(bisInspAnzeRecord.getSafetyEducation()) &&
  110. "1".equals(bisInspAnzeRecord.getHazardInvestigation())
  111. ) {
  112. bisInspAnzeRecord.setState("1");
  113. return;
  114. }
  115. } else if (investment < 10000) {
  116. if ("1".equals(bisInspAnzeRecord.getSafetyEducation()) &&
  117. "1".equals(bisInspAnzeRecord.getRiskAssessment()) &&
  118. "1".equals(bisInspAnzeRecord.getHazardInvestigation()) &&
  119. "1".equals(bisInspAnzeRecord.getStandardization()) &&
  120. "1".equals(bisInspAnzeRecord.getEmergencyPlan())
  121. ) {
  122. bisInspAnzeRecord.setState("1");
  123. return;
  124. }
  125. } else {
  126. if ("1".equals(bisInspAnzeRecord.getSafetyEducation()) &&
  127. "1".equals(bisInspAnzeRecord.getRiskAssessment()) &&
  128. "1".equals(bisInspAnzeRecord.getHazardInvestigation()) &&
  129. "1".equals(bisInspAnzeRecord.getStandardization()) &&
  130. "1".equals(bisInspAnzeRecord.getEmergencyPlan()) &&
  131. "1".equals(bisInspAnzeRecord.getTechPromotion())
  132. ) {
  133. bisInspAnzeRecord.setState("1");
  134. return;
  135. }
  136. }
  137. bisInspAnzeRecord.setState("0");
  138. }
  139. @Override
  140. public int delete(String id) {
  141. // 删除
  142. return this.bisInspAnzeRecordDao.delete(id);
  143. }
  144. }