|
@@ -13,8 +13,7 @@ import com.github.pagehelper.PageInfo;
|
|
import com.google.common.base.CaseFormat;
|
|
import com.google.common.base.CaseFormat;
|
|
import com.rtrh.projects.modules.projects.enums.ProjectStatusEnum;
|
|
import com.rtrh.projects.modules.projects.enums.ProjectStatusEnum;
|
|
import com.rtrh.projects.modules.projects.enums.SubIsHideStatusEnum;
|
|
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.projects.vo.*;
|
|
import com.rtrh.projects.modules.system.po.SecUser;
|
|
import com.rtrh.projects.modules.system.po.SecUser;
|
|
import com.rtrh.projects.modules.system.service.SecUserService;
|
|
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.RptContDao;
|
|
import com.rtrh.projects.modules.projects.dao.SubInfoDao;
|
|
import com.rtrh.projects.modules.projects.dao.SubInfoDao;
|
|
import com.rtrh.projects.modules.projects.enums.RptContKindEnum;
|
|
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.RptCont;
|
|
import com.rtrh.projects.modules.projects.po.SubInfo;
|
|
import com.rtrh.projects.modules.projects.po.SubInfo;
|
|
import com.rtrh.projects.modules.projects.service.SubRptContService;
|
|
import com.rtrh.projects.modules.projects.service.SubRptContService;
|
|
@@ -56,12 +54,16 @@ public class SubRptContServiceImpl implements SubRptContService {
|
|
@Autowired
|
|
@Autowired
|
|
private RptContDao rptContDao;
|
|
private RptContDao rptContDao;
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private RptContMapper rptContMapper;
|
|
|
|
+ @Autowired
|
|
private SubRptContMapper subRptContMapper;
|
|
private SubRptContMapper subRptContMapper;
|
|
@Autowired
|
|
@Autowired
|
|
private WorkbenchMapper workbenchMapper;
|
|
private WorkbenchMapper workbenchMapper;
|
|
@Autowired
|
|
@Autowired
|
|
private SubInfoDao subInfoDao;
|
|
private SubInfoDao subInfoDao;
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private SubInfoMapper subInfoMapper;
|
|
|
|
+ @Autowired
|
|
private WeekAndMonthFileService weekAndMonthFileService;
|
|
private WeekAndMonthFileService weekAndMonthFileService;
|
|
@Autowired
|
|
@Autowired
|
|
private SubDataLogService subDataLogService;
|
|
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
|
|
@Override
|
|
public void saveReportRtAmt(WeekContentVO vo, LoginUserVO loginUserVO, RptContKindEnum contKindEnum) {
|
|
public void saveReportRtAmt(WeekContentVO vo, LoginUserVO loginUserVO, RptContKindEnum contKindEnum) {
|
|
|
|
|