|  | @@ -13,8 +13,7 @@ import com.github.pagehelper.PageInfo;
 | 
	
		
			
				|  |  |  import com.google.common.base.CaseFormat;
 | 
	
		
			
				|  |  |  import com.rtrh.projects.modules.projects.enums.ProjectStatusEnum;
 | 
	
		
			
				|  |  |  import com.rtrh.projects.modules.projects.enums.SubIsHideStatusEnum;
 | 
	
		
			
				|  |  | -import com.rtrh.projects.modules.projects.mapper.StaticsMapper;
 | 
	
		
			
				|  |  | -import com.rtrh.projects.modules.projects.mapper.SubRptContMapper;
 | 
	
		
			
				|  |  | +import com.rtrh.projects.modules.projects.mapper.*;
 | 
	
		
			
				|  |  |  import com.rtrh.projects.modules.projects.vo.*;
 | 
	
		
			
				|  |  |  import com.rtrh.projects.modules.system.po.SecUser;
 | 
	
		
			
				|  |  |  import com.rtrh.projects.modules.system.service.SecUserService;
 | 
	
	
		
			
				|  | @@ -38,7 +37,6 @@ import com.rtrh.core.repository.Page.OrderType;
 | 
	
		
			
				|  |  |  import com.rtrh.projects.modules.projects.dao.RptContDao;
 | 
	
		
			
				|  |  |  import com.rtrh.projects.modules.projects.dao.SubInfoDao;
 | 
	
		
			
				|  |  |  import com.rtrh.projects.modules.projects.enums.RptContKindEnum;
 | 
	
		
			
				|  |  | -import com.rtrh.projects.modules.projects.mapper.WorkbenchMapper;
 | 
	
		
			
				|  |  |  import com.rtrh.projects.modules.projects.po.RptCont;
 | 
	
		
			
				|  |  |  import com.rtrh.projects.modules.projects.po.SubInfo;
 | 
	
		
			
				|  |  |  import com.rtrh.projects.modules.projects.service.SubRptContService;
 | 
	
	
		
			
				|  | @@ -56,12 +54,16 @@ public class SubRptContServiceImpl implements SubRptContService {
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private RptContDao rptContDao;
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  | +	private RptContMapper rptContMapper;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  |  	private SubRptContMapper subRptContMapper;
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private WorkbenchMapper workbenchMapper;
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private SubInfoDao subInfoDao;
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  | +	private SubInfoMapper subInfoMapper;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  |  	private WeekAndMonthFileService  weekAndMonthFileService;
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private SubDataLogService subDataLogService;
 | 
	
	
		
			
				|  | @@ -254,6 +256,157 @@ public class SubRptContServiceImpl implements SubRptContService {
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	@Transactional
 | 
	
		
			
				|  |  | +	@TargetDataSource("secondary")
 | 
	
		
			
				|  |  | +	public void saveFgwReport(WeekContentVO vo, LoginUserVO loginUserVO, RptContKindEnum contKindEnum) {
 | 
	
		
			
				|  |  | +		BigDecimal bl = new BigDecimal("0.00");
 | 
	
		
			
				|  |  | +		String week = "";
 | 
	
		
			
				|  |  | +		String moth = "";
 | 
	
		
			
				|  |  | +		String mainId = "";
 | 
	
		
			
				|  |  | +		if(RptContKindEnum.WEEK.equals(contKindEnum)) {
 | 
	
		
			
				|  |  | +			//周报
 | 
	
		
			
				|  |  | +			week = String.valueOf(DateUtil.weekOfYear(vo.getBeginDate()));
 | 
	
		
			
				|  |  | +			String endDateYear = String.valueOf(DateUtil.year(vo.getEndDate()));
 | 
	
		
			
				|  |  | +			if(Objects.equals(endDateYear, vo.getYear())) {
 | 
	
		
			
				|  |  | +				//如果结束的年份不等于当前年
 | 
	
		
			
				|  |  | +				vo.setYear(endDateYear);
 | 
	
		
			
				|  |  | +				week = String.valueOf(DateUtil.weekOfYear(vo.getEndDate()));
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyyMM");
 | 
	
		
			
				|  |  | +			moth= simpleDateFormat.format(vo.getBeginDate());
 | 
	
		
			
				|  |  | +			week = String.valueOf(DateUtil.month(vo.getBeginDate()) + 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			SubInfo subInfo = subInfoMapper.findByFgwId(vo.getSubId());
 | 
	
		
			
				|  |  | +			if (subInfo != null && vo.getContent() != null) {
 | 
	
		
			
				|  |  | +				subInfo.setYbContent(vo.getContent());
 | 
	
		
			
				|  |  | +				subInfoMapper.update(subInfo);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		RptCont old = rptContMapper.getBySubIdAndMonth(vo.getSubId(), vo.getYear(), week, contKindEnum.getCode());
 | 
	
		
			
				|  |  | +		if(vo.getNumBl() != null) {
 | 
	
		
			
				|  |  | +			bl = vo.getNumBl();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		if(old == null) {
 | 
	
		
			
				|  |  | +			RptCont cont = new RptCont();
 | 
	
		
			
				|  |  | +			cont.setId(Identities.uuid());
 | 
	
		
			
				|  |  | +			//开始时间  结束时间
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			//设置类型
 | 
	
		
			
				|  |  | +			cont.setKind(contKindEnum.getCode());
 | 
	
		
			
				|  |  | +			cont.setBeginDate(vo.getBeginDate());
 | 
	
		
			
				|  |  | +			cont.setEndDate(vo.getEndDate());
 | 
	
		
			
				|  |  | +			cont.setContent(vo.getContent());
 | 
	
		
			
				|  |  | +			cont.setReason(vo.getReason());
 | 
	
		
			
				|  |  | +			cont.setAmtLast(vo.getAmtLast());
 | 
	
		
			
				|  |  | +			cont.setAmtRt(vo.getAmtRt());
 | 
	
		
			
				|  |  | +			cont.setYear(vo.getYear());
 | 
	
		
			
				|  |  | +			cont.setWeek(week);
 | 
	
		
			
				|  |  | +			cont.setNumBl(bl);
 | 
	
		
			
				|  |  | +			cont.setSubId(vo.getSubId());
 | 
	
		
			
				|  |  | +			cont.setSubPlanId(vo.getSubPlanId());
 | 
	
		
			
				|  |  | +			cont.setAmt(vo.getAmt());
 | 
	
		
			
				|  |  | +			/*			cont.setAssignAmt(vo.getAssignAmt());*/
 | 
	
		
			
				|  |  | +			cont.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +			cont.setLogicDeleteFlag(0);
 | 
	
		
			
				|  |  | +			cont.setCreateUserId(loginUserVO.getId());
 | 
	
		
			
				|  |  | +			cont.setKjMonth(moth);
 | 
	
		
			
				|  |  | +			rptContMapper.save(cont);
 | 
	
		
			
				|  |  | +			mainId =cont.getId();
 | 
	
		
			
				|  |  | +			if (RptContKindEnum.MONTH.getCode().equals(contKindEnum.getCode())){
 | 
	
		
			
				|  |  | +				//添加 数据日志
 | 
	
		
			
				|  |  | +				//amt
 | 
	
		
			
				|  |  | +				if (vo.getAmt()!=null&&BigDecimal.ZERO.compareTo(vo.getAmt())!=0){
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(),cont.getSubId(), SubLogEnum.YB.getCode(), "amt","当月资金使用",moth,"",vo.getAmt()+"",vo.getAmt(),loginUserVO.getLoginName(),new Date(),"新增");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				//num_bl
 | 
	
		
			
				|  |  | +				if (vo.getNumBl()!=null&&BigDecimal.ZERO.compareTo(vo.getNumBl())!=0){
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(),cont.getSubId(), SubLogEnum.YB.getCode(), "num_bl","当月进度比例",moth,"",vo.getNumBl()+"",vo.getNumBl(),loginUserVO.getLoginName(),new Date(),"新增");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if (vo.getAmtLast()!=null&&BigDecimal.ZERO.compareTo(vo.getAmtLast())!=0){
 | 
	
		
			
				|  |  | +					//amt_last
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(),cont.getSubId(), SubLogEnum.YB.getCode(), "amt_last","下月资金预测",moth,"",vo.getAmtLast()+"",vo.getAmtLast(),loginUserVO.getLoginName(),new Date(),"新增");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if (vo.getAmtRt()!=null&&BigDecimal.ZERO.compareTo(vo.getAmtRt())!=0){
 | 
	
		
			
				|  |  | +					//amt_rt
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(),cont.getSubId(), SubLogEnum.YB.getCode(), "amt_rt","入统金额",moth,"",vo.getAmtRt()+"",vo.getAmtRt(),loginUserVO.getLoginName(),new Date(),"新增");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}else{
 | 
	
		
			
				|  |  | +				if (vo.getNumBl()!=null&&BigDecimal.ZERO.compareTo(vo.getNumBl())!=0){
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(),cont.getSubId(), SubLogEnum.ZB.getCode(), "num_bl","进度比例",moth,"",vo.getNumBl()+"",vo.getNumBl(),loginUserVO.getLoginName(),new Date(),"新增");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				if (StringUtil.isNotEmpty(vo.getContent())){
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(),cont.getSubId(), SubLogEnum.ZB.getCode(), "content","项目进展情况",moth,"",vo.getContent()+"",null,loginUserVO.getLoginName(),new Date(),"新增");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				if (StringUtil.isNotEmpty(vo.getReason())){
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(),cont.getSubId(), SubLogEnum.ZB.getCode(), "reason","项目延期原因",moth,"",vo.getReason()+"",null,loginUserVO.getLoginName(),new Date(),"新增");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		}else {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			if (RptContKindEnum.MONTH.getCode().equals(contKindEnum.getCode())) {
 | 
	
		
			
				|  |  | +				if ((bl == null ? BigDecimal.ZERO : bl).compareTo(old.getNumBl()==null?BigDecimal.ZERO:old.getNumBl()) != 0) {
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(), old.getSubId(), SubLogEnum.YB.getCode(), "num_bl", "当月进度比例", moth, old.getNumBl() + "", bl + "", bl.subtract(old.getNumBl() == null ? BigDecimal.ZERO : old.getNumBl()), loginUserVO.getLoginName(), new Date(),"修改");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if ((old.getAmt() == null ? BigDecimal.ZERO : old.getAmt()).compareTo(vo.getAmt()==null?BigDecimal.ZERO:vo.getAmt()) != 0) {
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(), old.getSubId(), SubLogEnum.YB.getCode(), "amt", "当月资金使用", moth, old.getAmt() + "", vo.getAmt()==null?"":vo.getAmt()+"",(vo.getAmt()==null?BigDecimal.ZERO:vo.getAmt()) .subtract(old.getAmt() == null ? BigDecimal.ZERO : old.getAmt()), loginUserVO.getLoginName(), new Date(),"修改");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if ((old.getAmtLast() == null ? BigDecimal.ZERO : old.getAmtLast()).compareTo(vo.getAmtLast()==null?BigDecimal.ZERO:vo.getAmtLast()) != 0) {
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(), old.getSubId(), SubLogEnum.YB.getCode(), "amt_last", "下月资金预测", moth, old.getAmtLast() + "", vo.getAmtLast()==null? "":vo.getAmtLast()+"", (vo.getAmtLast()==null?BigDecimal.ZERO:vo.getAmtLast()).subtract(old.getAmtLast() == null ? BigDecimal.ZERO : old.getAmtLast()), loginUserVO.getLoginName(), new Date(),"修改");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if ((old.getAmtRt() == null ? BigDecimal.ZERO : old.getAmtRt()).compareTo(vo.getAmtRt()==null?BigDecimal.ZERO:vo.getAmtRt()) != 0) {
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(), old.getSubId(), SubLogEnum.YB.getCode(), "amt_rt", "入统金额", moth, old.getAmtRt() + "", vo.getAmtRt()==null ? "":vo.getAmtRt()+"", (vo.getAmtRt() == null ? BigDecimal.ZERO : vo.getAmtRt()).subtract(old.getAmtRt() != null ? old.getAmtRt() : BigDecimal.ZERO), loginUserVO.getLoginName(), new Date(),"修改");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}else{
 | 
	
		
			
				|  |  | +				if ((bl == null ? BigDecimal.ZERO : bl).compareTo(old.getNumBl()==null?BigDecimal.ZERO:old.getNumBl()) != 0) {
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(), old.getSubId(), SubLogEnum.ZB.getCode(), "num_bl", "进度比例", moth, old.getNumBl() + "", bl + "", bl.subtract(old.getNumBl() == null ? BigDecimal.ZERO : old.getNumBl()), loginUserVO.getLoginName(), new Date(),"修改");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if ((old.getContent()==null?"":old.getContent()).equals(vo.getContent())){
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(),old.getSubId(), SubLogEnum.ZB.getCode(), "content","项目进展情况",moth,old.getContent()==null?"":old.getContent(),vo.getContent()==null?"":vo.getContent(),null,loginUserVO.getLoginName(),new Date(),"修改");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if ((old.getReason()==null?"":old.getReason()).equals(vo.getReason())) {
 | 
	
		
			
				|  |  | +					subDataLogService.saveOrUpdateFgw(Identities.uuid(), old.getSubId(), SubLogEnum.ZB.getCode(), "reason", "项目延期原因", moth, old.getReason() == null ? "" : old.getReason(), vo.getReason() == null ? "" : vo.getReason(), null, loginUserVO.getLoginName(), new Date(), "修改");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			old.setReason(vo.getReason());
 | 
	
		
			
				|  |  | +			old.setContent(vo.getContent());
 | 
	
		
			
				|  |  | +			old.setAmtLast(vo.getAmtLast());
 | 
	
		
			
				|  |  | +//			old.setAmtRt(vo.getAmtRt());
 | 
	
		
			
				|  |  | +			old.setNumBl(bl);
 | 
	
		
			
				|  |  | +			old.setAmt(vo.getAmt());
 | 
	
		
			
				|  |  | +			old.setSubPlanId(vo.getSubPlanId());
 | 
	
		
			
				|  |  | +			old.setLastUpdateTime(new Date());
 | 
	
		
			
				|  |  | +			old.setLastUpdateUserId(loginUserVO.getId());
 | 
	
		
			
				|  |  | +			old.setKjMonth(moth);
 | 
	
		
			
				|  |  | +			/*	old.setAssignAmt(vo.getAssignAmt());*/
 | 
	
		
			
				|  |  | +			rptContMapper.update(old);
 | 
	
		
			
				|  |  | +			mainId= old.getId();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		//更新项目信息中的实际投资金额
 | 
	
		
			
				|  |  | +		List<RptCont> list = rptContMapper.getContBySubId(vo.getSubId(), String.valueOf(LocalDate.now().getYear()));
 | 
	
		
			
				|  |  | +		if(CollectionUtil.isNotEmpty(list)) {
 | 
	
		
			
				|  |  | +			BigDecimal totalMoney = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +			for(RptCont cont : list) {
 | 
	
		
			
				|  |  | +				if(cont.getAmt() != null) {
 | 
	
		
			
				|  |  | +					totalMoney = totalMoney.add(cont.getAmt());
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			SubInfo info = subInfoMapper.findByFgwId(vo.getSubId());
 | 
	
		
			
				|  |  | +			info.setAmtComp(totalMoney);
 | 
	
		
			
				|  |  | +			subInfoMapper.update(info);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		//保存附件信息
 | 
	
		
			
				|  |  | +		if(CollectionUtil.isNotEmpty(vo.getListFile())) {
 | 
	
		
			
				|  |  | +			weekAndMonthFileService.saveOrUpdate(vo.getListFile(), loginUserVO.getLoginName(), mainId);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  |  	public void saveReportRtAmt(WeekContentVO vo, LoginUserVO loginUserVO, RptContKindEnum contKindEnum) {
 | 
	
		
			
				|  |  |  
 |