| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- package cn.com.goldenwater.dcproj.service.impl;
- import cn.com.goldenwater.core.service.AbstractCrudService;
- import cn.com.goldenwater.dcproj.dao.AttProjectInsuranceRecordDao;
- import cn.com.goldenwater.dcproj.dao.BisInspAnzeRecordDao;
- import cn.com.goldenwater.dcproj.dao.BisInspAnzeRgstrDao;
- import cn.com.goldenwater.dcproj.model.AttProjectInsurance;
- import cn.com.goldenwater.dcproj.model.AttProjectInsuranceRecord;
- import cn.com.goldenwater.dcproj.model.BisInspAnzeRecord;
- import cn.com.goldenwater.dcproj.model.BisInspAnzeRgstr;
- import cn.com.goldenwater.dcproj.param.BisInspAnzeRecordParam;
- import cn.com.goldenwater.dcproj.service.BisInspAnzeRecordService;
- import cn.com.goldenwater.id.util.UuidUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.List;
- /**
- * @author lql
- * @date 2026-4-21
- */
- @Service
- @Transactional
- public class BisInspAnzeRecordServiceImpl extends AbstractCrudService<BisInspAnzeRecord, BisInspAnzeRecordParam> implements BisInspAnzeRecordService {
- @Autowired
- private BisInspAnzeRgstrDao bisInspAnzeRgstrDao;
- @Autowired
- private BisInspAnzeRecordDao bisInspAnzeRecordDao;
- @Autowired
- private AttProjectInsuranceRecordDao attProjectInsuranceRecordDao;
- public BisInspAnzeRecordServiceImpl(BisInspAnzeRecordDao bisInspAnzeRecordDao) {
- super(bisInspAnzeRecordDao);
- this.bisInspAnzeRecordDao = bisInspAnzeRecordDao;
- }
- @Override
- public int insert(BisInspAnzeRecord bisInspAnzeRecord) {
- updateState(bisInspAnzeRecord);
- String uuid = UuidUtil.uuid();
- bisInspAnzeRecord.setId(uuid);
- bisInspAnzeRecord.setIntm(new Date());
- bisInspAnzeRecord.setUptm(new Date());
- bisInspAnzeRecord.setDataStat("0");
- int ret = this.bisInspAnzeRecordDao.insert(bisInspAnzeRecord);
- updateRgstrState(bisInspAnzeRecord);
- return ret;
- }
- @Override
- public int update(BisInspAnzeRecord bisInspAnzeRecord) {
- updateState(bisInspAnzeRecord);
- bisInspAnzeRecord.setUptm(new Date());
- int ret = this.bisInspAnzeRecordDao.update(bisInspAnzeRecord);
- updateRgstrState(bisInspAnzeRecord);
- return ret;
- }
- private void updateRgstrState(BisInspAnzeRecord bisInspAnzeRecord) {
- boolean flag = false;
- AttProjectInsurance base = bisInspAnzeRgstrDao.getBaseById(bisInspAnzeRecord.getRgstrId());
- AttProjectInsuranceRecord attProjectInsuranceRecord = attProjectInsuranceRecordDao.getByNew(base.getId());
- // 投保时间
- Date insuranceDate = attProjectInsuranceRecord.getInsuranceDate();
- // 第一次填报日期 + 3月
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(attProjectInsuranceRecord.getInsuranceDate());
- calendar.add(Calendar.MONTH, 3);
- Date firstRecordTime = calendar.getTime();
- // 投保截止时间 + 1年
- Calendar calendar2 = Calendar.getInstance();
- calendar2.setTime(attProjectInsuranceRecord.getInsuranceDate());
- calendar2.add(Calendar.YEAR, 1);
- Date endTime = calendar2.getTime();
- BisInspAnzeRecordParam param = new BisInspAnzeRecordParam();
- param.setRgstrId(bisInspAnzeRecord.getRgstrId());
- param.setStartTime(insuranceDate);
- param.setEndTime(endTime);
- param.setState("1");
- List<BisInspAnzeRecord> list = bisInspAnzeRecordDao.findList(param);
- double investment = Double.parseDouble(base.getInvestment());
- // 判断当前时间是否在有效期内
- Date now = new Date();
- if (now.before(firstRecordTime)) {
- if (list.stream().count() >= 1) {
- flag = true;
- }
- } else {
- if (investment < 3000 && list.stream().count() >= 2) {
- flag = true;
- } else if (investment < 10000 && list.stream().count() >= 3) {
- flag = true;
- } else if (list.stream().count() >= 4) {
- flag = true;
- }
- }
- if (flag) {
- AttProjectInsuranceRecord attProjectInsuranceRecord2 = new AttProjectInsuranceRecord();
- attProjectInsuranceRecord2.setId(attProjectInsuranceRecord.getId());
- attProjectInsuranceRecord2.setState("1");
- attProjectInsuranceRecordDao.update(attProjectInsuranceRecord2);
- BisInspAnzeRgstr bisInspAnzeRgstr = new BisInspAnzeRgstr();
- bisInspAnzeRgstr.setId(bisInspAnzeRecord.getRgstrId());
- bisInspAnzeRgstr.setState("2");
- bisInspAnzeRgstrDao.update(bisInspAnzeRgstr);
- }
- }
- private void updateState(BisInspAnzeRecord bisInspAnzeRecord) {
- AttProjectInsurance base = bisInspAnzeRgstrDao.getBaseById(bisInspAnzeRecord.getRgstrId());
- double investment = Double.parseDouble(base.getInvestment());
- if (investment < 3000) {
- if ("1".equals(bisInspAnzeRecord.getSafetyEducation()) &&
- "1".equals(bisInspAnzeRecord.getHazardInvestigation())
- ) {
- bisInspAnzeRecord.setState("1");
- return;
- }
- } else if (investment < 10000) {
- if ("1".equals(bisInspAnzeRecord.getSafetyEducation()) &&
- "1".equals(bisInspAnzeRecord.getRiskAssessment()) &&
- "1".equals(bisInspAnzeRecord.getHazardInvestigation()) &&
- "1".equals(bisInspAnzeRecord.getStandardization()) &&
- "1".equals(bisInspAnzeRecord.getEmergencyPlan())
- ) {
- bisInspAnzeRecord.setState("1");
- return;
- }
- } else {
- if ("1".equals(bisInspAnzeRecord.getSafetyEducation()) &&
- "1".equals(bisInspAnzeRecord.getRiskAssessment()) &&
- "1".equals(bisInspAnzeRecord.getHazardInvestigation()) &&
- "1".equals(bisInspAnzeRecord.getStandardization()) &&
- "1".equals(bisInspAnzeRecord.getEmergencyPlan()) &&
- "1".equals(bisInspAnzeRecord.getTechPromotion())
- ) {
- bisInspAnzeRecord.setState("1");
- return;
- }
- }
- bisInspAnzeRecord.setState("0");
- }
- @Override
- public int delete(String id) {
- // 删除
- return this.bisInspAnzeRecordDao.delete(id);
- }
- }
|