guoshilong
2024-03-15 cc8bf2663afaf34aef48d7bda688d95c92d83ae9
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResGeneralInvestigationServiceImpl.java
@@ -5,13 +5,18 @@
import cn.gistack.sm.sjztmd.mapper.TbResGeneralInvestigationMapper;
import cn.gistack.sm.sjztmd.service.ITbResGeneralInvestigationService;
import cn.gistack.sm.sjztmd.service.ITbResGeneralInvestigationStateService;
import cn.gistack.sm.sjztmd.vo.TbResGeneralInvestigationParam;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
 * @PROJECT_NAME: skjcmanager
@@ -34,7 +39,7 @@
      QueryWrapper queryWrapper = new QueryWrapper();
      queryWrapper.eq("\"res_guid\"",entity.getResGuid());
      queryWrapper.eq("\"tb_year\"",entity.getTbYear());
      queryWrapper.eq("\"tb_quarter\"",entity.getTbQuarter());
//      queryWrapper.eq("\"tb_quarter\"",entity.getTbQuarter());
      TbResGeneralInvestigationState state = tbResGeneralInvestigationStateService.getOne(queryWrapper);
      if (null == state) {
         state = new TbResGeneralInvestigationState();
@@ -59,4 +64,60 @@
      entity.setTbStateId(state.getGuid());
      return R.status(this.saveOrUpdate(entity));
   }
   @Override
   @Transactional(rollbackFor = Exception.class)
   public R saveOrUpdateByBatch(TbResGeneralInvestigationParam tbResGeneralInvestigationParam) {
      List<TbResGeneralInvestigation> list = tbResGeneralInvestigationParam.getList();
      TbResGeneralInvestigation entity = list.get(0);
      //查询该水库本年度是否有填报状态记录
      QueryWrapper queryWrapper = new QueryWrapper();
      queryWrapper.eq("\"res_guid\"",entity.getResGuid());
      queryWrapper.eq("\"tb_year\"",entity.getTbYear());
      TbResGeneralInvestigationState state = tbResGeneralInvestigationStateService.getOne(queryWrapper);
      if (null == state) {
         //无填报状态记录则新建
         state = new TbResGeneralInvestigationState();
         state.setResGuid(entity.getResGuid());
         state.setTbQuarter(entity.getTbQuarter());
         state.setTbYear(entity.getTbYear());
         state.setCreateTime(entity.getCreateTime());
         state.setCreateUser(entity.getCreateUser());
      } else {
         //查看填报状态,只有0填报中才可以一直填报
         if (state.getCheckState() == 1 || state.getCheckState() == 2) {
            return R.fail(entity.getResName() + "本年度已经普查完成,不能在提交了。");
         }
      }
      state.setCheckState(tbResGeneralInvestigationParam.getCheckState());
      tbResGeneralInvestigationStateService.saveOrUpdate(state);
      //先把数据移除
      QueryWrapper delete = new QueryWrapper();
      delete.eq("\"tb_state_id\"",state.getGuid());
      boolean remove = remove(delete);
      if (remove){
         for (int i = 0; i < list.size(); i++) {
            TbResGeneralInvestigation tbResGeneralInvestigation = list.get(i);
            //id清空方便批量新增
            tbResGeneralInvestigation.setGuid("");
            if (tbResGeneralInvestigation.getCreateTime() == null){
               tbResGeneralInvestigation.setCreateTime(DateUtil.now());
            }
            if (tbResGeneralInvestigation.getCreateUser() == null){
               tbResGeneralInvestigation.setCreateUser(AuthUtil.getUserId().toString());
            }
            //设置状态表id
            tbResGeneralInvestigation.setTbStateId(state.getGuid());
         }
         return R.status(saveOrUpdateBatch(list));
      }
      return R.fail("操作失败");
   }
}