Răsfoiți Sursa

月报、周报查询实现以及优化

Perperon 3 luni în urmă
părinte
comite
85e1ab00ee
21 a modificat fișierele cu 483 adăugiri și 22 ștergeri
  1. 79 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/RptContMapper.java
  2. 36 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubAerialImageMapper.java
  3. 3 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.java
  4. 2 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/ISubAerialImageService.java
  5. 3 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubRptContService.java
  6. 28 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubAerialImageServiceImpl.java
  7. 156 3
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubRptContServiceImpl.java
  8. 19 0
      projects-service/src/main/java/com/rtrh/projects/modules/system/mapper/SubDataLogMapper.java
  9. 35 0
      projects-service/src/main/java/com/rtrh/projects/modules/system/mapper/WeekAndMonrhFileMapper.java
  10. 28 0
      projects-service/src/main/java/com/rtrh/projects/modules/system/mapper/WeekAndMonrhFileMapper.xml
  11. 2 0
      projects-service/src/main/java/com/rtrh/projects/modules/system/service/SubDataLogService.java
  12. 2 0
      projects-service/src/main/java/com/rtrh/projects/modules/system/service/WeekAndMonthFileService.java
  13. 22 0
      projects-service/src/main/java/com/rtrh/projects/modules/system/service/impl/SubDataLogServiceImpl.java
  14. 25 0
      projects-service/src/main/java/com/rtrh/projects/modules/system/service/impl/WeekAndMonthFileImpl.java
  15. 8 0
      projects/src/main/java/com/rtrh/projects/web/controller/aerial/api/SubAerialImgApiController.java
  16. 18 2
      projects/src/main/java/com/rtrh/projects/web/controller/projects/api/ProWeekReportApiController.java
  17. 4 2
      projects/src/main/java/com/rtrh/projects/web/controller/projects/api/ProjMonthReportApiController.java
  18. 1 1
      projects/src/main/webapp/vmodules/problem/info/monthWarn.jsp
  19. 1 1
      projects/src/main/webapp/vmodules/problem/info/preWarn.jsp
  20. 6 7
      projects/src/main/webapp/vmodules/project/monthReport.jsp
  21. 5 6
      projects/src/main/webapp/vmodules/project/weekReport.jsp

+ 79 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/RptContMapper.java

@@ -0,0 +1,79 @@
+package com.rtrh.projects.modules.projects.mapper;
+
+import com.rtrh.core.repository.mybatis.MyBatisRepository;
+import com.rtrh.projects.modules.projects.po.RptCont;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+/**
+ * @author dupengcheng
+ * @date 2025/1/9
+ * @apiNote
+ */
+@MyBatisRepository
+public interface RptContMapper {
+
+    @Select("select " +
+            "id,\n" +
+            "kj_month as kjMonth,\n" +
+            "sub_id as subId,\n" +
+            "amt,\n" +
+            "content,\n" +
+            "create_user_id as createUserId,\n" +
+            "create_time as createTime,\n" +
+            "last_update_user_id as lastUpdateUserId,\n" +
+            "last_update_time as lastUpdateTime,\n" +
+            "logic_delete_flag as logicDeleteFlag,\n" +
+            "last_update_userId as lastUpdateUserId,\n" +
+            "year,\n" +
+            "week,\n" +
+            "begin_date as beginDate,\n" +
+            "end_date as endDate,\n" +
+            "sub_plan_id as subPlanId,\n" +
+            "num_bl as numBl,\n" +
+            "kind,\n" +
+            "reason,\n" +
+            "amt_last as amtLast,\n" +
+            "amt_rt as amtRt,\n" +
+            "tc_date as tcDate,\n" +
+            "rt_date as rtDate,\n" +
+            "is_rt as isRt from sub_rpt_cont where sub_id = #{subId} and year = #{year} and week = #{week} and kind = #{kind}")
+    RptCont getBySubIdAndMonth(@Param("subId") String subId,@Param("year") String year, @Param("week")  String week, @Param("kind") String kind);
+
+    @Insert("INSERT INTO sub_rpt_cont (id, kind, begin_date, end_date, content, reason, amt_last, amt_rt, year, week, num_bl, sub_id, sub_plan_id, amt, create_time, logic_delete_flag, create_user_id, kj_month) VALUES (#{r.id}, #{r.kind}, #{r.beginDate}, #{r.endDate}, #{r.content}, #{r.reason}, #{r.amtLast}, #{r.amtRt}, #{r.year}, #{r.week}, #{r.numBl}, #{r.subId}, #{r.subPlanId}, #{r.amt}, #{r.createTime}, #{r.logicDeleteFlag}, #{r.createUserId}, #{r.kjMonth})")
+    void save(@Param("r") RptCont rptCont);
+
+    @Update("UPDATE sub_rpt_cont SET reason = #{r.reason}, content = #{r.content}, amt_last = #{r.amtLast}, num_bl = #{r.numBl}, amt = #{r.amt}, sub_plan_id = #{r.subPlanId}, last_update_time = #{r.lastUpdateTime}, last_update_userId = #{lastUpdateUserId} WHERE id = #{r.id}")
+    void update(@Param("r") RptCont rptCont);
+
+    @Select("select " +
+            "id,\n" +
+            "kj_month as kjMonth,\n" +
+            "sub_id as subId,\n" +
+            "amt,\n" +
+            "content,\n" +
+            "create_user_id as createUserId,\n" +
+            "create_time as createTime,\n" +
+            "last_update_user_id as lastUpdateUserId,\n" +
+            "last_update_time as lastUpdateTime,\n" +
+            "logic_delete_flag as logicDeleteFlag,\n" +
+            "last_update_userId as lastUpdateUserId,\n" +
+            "year,\n" +
+            "week,\n" +
+            "begin_date as beginDate,\n" +
+            "end_date as endDate,\n" +
+            "sub_plan_id as subPlanId,\n" +
+            "num_bl as numBl,\n" +
+            "kind,\n" +
+            "reason,\n" +
+            "amt_last as amtLast,\n" +
+            "amt_rt as amtRt,\n" +
+            "tc_date as tcDate,\n" +
+            "rt_date as rtDate,\n" +
+            "is_rt as isRt from sub_rpt_cont where sub_id = #{subId} and year = #{year} and logic_delete_flag = '0' and kind = '1'")
+    List<RptCont> getContBySubId(@Param("subId") String subId, @Param("year") String year);
+}

+ 36 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubAerialImageMapper.java

@@ -0,0 +1,36 @@
+package com.rtrh.projects.modules.projects.mapper;
+
+import com.rtrh.core.repository.mybatis.MyBatisRepository;
+import com.rtrh.projects.modules.projects.po.SubAerialImage;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+/**
+ * @author dupengcheng
+ * @date 2025/1/9
+ * @apiNote
+ */
+@MyBatisRepository
+public interface SubAerialImageMapper {
+
+    @Select("select " +
+            "id,\n" +
+            "sub_id as subId,\n" +
+            "aerial_date as aerialDate,\n" +
+            "img_id as imgId,\n" +
+            "remark,\n" +
+            "create_time as createTime,\n" +
+            "create_user_id as createUserId,\n" +
+            "last_update_userId as lastUpdateUserId,\n" +
+            "last_update_time as lastUpdateTime,\n" +
+            "logic_delete_flag as logicDeleteFlag,\n" +
+            "type from sub_aerial_image where id = #{id}")
+    SubAerialImage findById(@Param("id") String id);
+
+    @Update("UPDATE sub_aerial_image SET sub_id = #{s.subId}, aerial_date = #{s.aerialDate}, img_id = #{s.imgId}, remark = #{s.remark}, create_time = #{s.createTime}, create_user_id = #{s.createUserId}, last_update_userId = #{s.lastUpdateUserId}, last_update_time = #{s.lastUpdateTime}, logic_delete_flag = #{s.logicDeleteFlag}, type = #{s.type} WHERE id = #{s.id}")
+    void  update(@Param("s") SubAerialImage image);
+    @Insert("INSERT INTO sub_aerial_image (id, sub_id, aerial_date, img_id, remark, create_time, create_user_id, last_update_userId, last_update_time, logic_delete_flag, type) VALUES (#{s.id}, #{s.subId}, #{s.aerialDate}, #{s.imgId}, #{s.remark}, #{s.createTime}, #{s.createUserId}, #{s.lastUpdateUserId}, #{s.lastUpdateTime}, #{s.logicDeleteFlag}, #{s.type})")
+    void  save(@Param("s") SubAerialImage image);
+}

+ 3 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.java

@@ -105,4 +105,7 @@ public interface SubInfoMapper {
 
     Map<String,Object> getSubInfoByFgwId(@Param("id") String id,@Param("queryYear") String queryYear);
 
+    @Update("update sub_info set amt_comp = #{sub.amtComp}, yb_content = #{sub.ybContent} where id = #{sub.id}")
+    void update(@Param("sub") SubInfo subInfo);
+
 }

+ 2 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/ISubAerialImageService.java

@@ -15,6 +15,8 @@ public interface ISubAerialImageService {
 
 	void save(SubAerialImgVO vo, LoginUserVO loginUserVO);
 
+	void saveFgw(SubAerialImgVO vo, LoginUserVO loginUserVO);
+
 
 	void save(List<SubAerialImgVO> list, LoginUserVO loginUserVO);
 

+ 3 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubRptContService.java

@@ -20,6 +20,9 @@ public interface SubRptContService {
 	List<Map<String,Object>> ListQueryWeekAndMonthAlarm(String loginName);
 
 	void saveReport(WeekContentVO vo, LoginUserVO loginUserVO, RptContKindEnum contKindEnum);
+
+	void saveFgwReport(WeekContentVO vo, LoginUserVO loginUserVO, RptContKindEnum contKindEnum);
+
 	void saveReportRtAmt(WeekContentVO vo, LoginUserVO loginUserVO, RptContKindEnum contKindEnum);
 
 	/**

+ 28 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubAerialImageServiceImpl.java

@@ -3,6 +3,8 @@ package com.rtrh.projects.modules.projects.service.impl;
 import java.util.Date;
 import java.util.List;
 
+import com.rtrh.projects.modules.projects.mapper.SubAerialImageMapper;
+import com.rtrh.projects.util.TargetDataSource;
 import org.hibernate.criterion.Criterion;
 import org.hibernate.criterion.DetachedCriteria;
 import org.hibernate.criterion.Order;
@@ -23,6 +25,8 @@ public class SubAerialImageServiceImpl implements ISubAerialImageService {
 
 	@Autowired
 	private SubAerialImageDao subAerialImageDao;
+	@Autowired
+	private SubAerialImageMapper subAerialImageMapper;
 
 	@Override
 	public List<SubAerialImage> listBySubId(String subId) {
@@ -79,6 +83,30 @@ public class SubAerialImageServiceImpl implements ISubAerialImageService {
 		subAerialImageDao.saveOrUpdate(image);
 	}
 
+	@Override
+	@TargetDataSource("secondary")
+	public void saveFgw(SubAerialImgVO vo, LoginUserVO loginUserVO) {
+		SubAerialImage image = new SubAerialImage();
+		if(StringUtil.isNotEmpty(vo.getId())) {
+			image = subAerialImageMapper.findById(vo.getId());
+			image.setAerialDate(vo.getAerialDate());
+			image.setImgId(vo.getImgId());
+			image.setRemark(vo.getRemark());
+			image.setLastUpdateTime(new Date());
+			image.setLastUpdateUserId(loginUserVO.getId());
+			subAerialImageMapper.update(image);
+		}else {
+			image.setId(Identities.uuid());
+			image.setAerialDate(vo.getAerialDate());
+			image.setImgId(vo.getImgId());
+			image.setRemark(vo.getRemark());
+			image.setSubId(vo.getSubId());
+			image.setCreateTime(new Date());
+			image.setCreateUserId(loginUserVO.getId());
+			subAerialImageMapper.save(image);
+		}
+	}
+
 	@Override
 	public void save(List<SubAerialImgVO> list, LoginUserVO loginUserVO) {
 

+ 156 - 3
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubRptContServiceImpl.java

@@ -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) {
 

+ 19 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/mapper/SubDataLogMapper.java

@@ -0,0 +1,19 @@
+package com.rtrh.projects.modules.system.mapper;
+
+import com.rtrh.core.repository.mybatis.MyBatisRepository;
+import com.rtrh.projects.modules.system.po.SubDataLog;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+/**
+ * @author dupengcheng
+ * @date 2025/1/9
+ * @apiNote
+ */
+@MyBatisRepository
+public interface SubDataLogMapper {
+
+    @Insert("INSERT INTO sub_data_log (id, kind, sub_id, field_mark, field_desc, field_supp, content_old, content, num, last_update_user_id, last_update_time, type) VALUES (#{s.id}, #{s.kind}, #{s.subId}, #{s.fieldMark}, #{s.fieldDesc}, #{s.fieldSupp}, #{s.contentOld}, #{s.content}, #{s.num}, #{s.lastUpdateUserId}, #{s.lastUpdateTime}, #{s.type})")
+    void save(@Param("s") SubDataLog subDataLog);
+}

+ 35 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/mapper/WeekAndMonrhFileMapper.java

@@ -0,0 +1,35 @@
+package com.rtrh.projects.modules.system.mapper;
+
+import com.rtrh.core.repository.mybatis.MyBatisRepository;
+import com.rtrh.projects.modules.system.po.WeekAndMonthFile;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ * @author dupengcheng
+ * @date 2025/1/9
+ * @apiNote
+ */
+@MyBatisRepository
+public interface WeekAndMonrhFileMapper {
+
+    @Select("select id,\n" +
+            "file_name as fileName,\n" +
+            "file_addre as fileAddre,\n" +
+            "file_type as fileType,\n" +
+            "main_id as mainId,\n" +
+            "create_time as createTime,\n" +
+            "create_user_id as createUserId,\n" +
+            "last_update_userId as lastUpdateUserId,\n" +
+            "last_update_time as lastUpdateTime,\n" +
+            "logic_delete_flag as logicDeleteFlag from week_and_month_file where main_id=#{mainId}")
+    List<WeekAndMonthFile> listByMainId(@Param("mainId") String mainId);
+
+    @Delete("delete from week_and_month_file where id = #{id}")
+    void delete(@Param("id") String id);
+
+    void saveOrUpdateAll(List<WeekAndMonthFile> list);
+}

+ 28 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/mapper/WeekAndMonrhFileMapper.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.rtrh.projects.modules.system.mapper.WeekAndMonrhFileMapper" >
+
+
+<insert id="saveOrUpdateAll" parameterType="java.util.List">
+    insert into kb_teach_together_group_member
+    (
+    id,
+    create_time,
+    create_user_id,
+    last_update_time,
+    last_update_userId,
+    main_id
+    )
+    values
+    <foreach collection="list" item="item" index= "index" separator =",">
+        (
+        #{item.id},
+        #{item.createTime},
+        #{item.createUserId},
+        #{item.lastUpdateTime},
+        #{item.lastUpdateUserId},
+        #{item.mainId}
+        )
+    </foreach>
+</insert>
+</mapper>

+ 2 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/service/SubDataLogService.java

@@ -37,6 +37,8 @@ public interface SubDataLogService {
      */
     void saveOrUpdate(String id, String subId, String kind, String fieldMark, String fieldDesc, String fieldSupp, String contentOld, String content, BigDecimal num, String lastUpdateUserId, Date lastUpdateTime,String type);
 
+    void saveOrUpdateFgw(String id, String subId, String kind, String fieldMark, String fieldDesc, String fieldSupp, String contentOld, String content, BigDecimal num, String lastUpdateUserId, Date lastUpdateTime,String type);
+
     /**
      * 获取日志信息
      *

+ 2 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/service/WeekAndMonthFileService.java

@@ -14,6 +14,8 @@ public interface WeekAndMonthFileService {
      */
     void saveOrUpdate(List<WeekAndMonthFile> list, String currUserName,String mainId);
 
+    void saveOrUpdateFgw(List<WeekAndMonthFile> list, String currUserName,String mainId);
+
     /**
      * 删除
      * @param id

+ 22 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/service/impl/SubDataLogServiceImpl.java

@@ -9,6 +9,7 @@ import java.util.Objects;
 
 import com.rtrh.common.util.Identities;
 import com.rtrh.common.util.UUIDUtil;
+import com.rtrh.projects.modules.system.mapper.SubDataLogMapper;
 import org.hibernate.id.UUIDGenerator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -26,6 +27,8 @@ public class SubDataLogServiceImpl implements SubDataLogService {
 
     @Autowired
     SubDataLogDao subDataLogDao;
+    @Autowired
+    SubDataLogMapper subDataLogMapper;
 
     @Override
     public List<SubDataLog> listBySubId(String subId) {
@@ -162,6 +165,25 @@ public class SubDataLogServiceImpl implements SubDataLogService {
         subDataLogDao.save(subDataLog);
     }
 
+    @Override
+    public void saveOrUpdateFgw(String id, String subId, String kind, String fieldMark, String fieldDesc, String fieldSupp, String contentOld, String content, BigDecimal num, String lastUpdateUserId, Date lastUpdateTime,String type) {
+        SubDataLog subDataLog=new SubDataLog();
+        subDataLog.setId(id);
+        subDataLog.setSubId(subId);
+        subDataLog.setKind(kind);
+        subDataLog.setFieldMark(fieldMark);
+        subDataLog.setFieldDesc(fieldDesc);
+        subDataLog.setFieldSupp(fieldSupp);
+        subDataLog.setContentOld(contentOld);
+        subDataLog.setContent(content);
+        subDataLog.setNum(num);
+        subDataLog.setLastUpdateUserId(lastUpdateUserId);
+        subDataLog.setLastUpdateTime(lastUpdateTime);
+        subDataLog.setType(type);
+
+        subDataLogMapper.save(subDataLog);
+    }
+
     @Override
     public SubDataLog getById(String id) {
         return subDataLogDao.findById(id);

+ 25 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/service/impl/WeekAndMonthFileImpl.java

@@ -3,6 +3,7 @@ package com.rtrh.projects.modules.system.service.impl;
 import java.util.Date;
 import java.util.List;
 
+import com.rtrh.projects.modules.system.mapper.WeekAndMonrhFileMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -19,6 +20,8 @@ public class WeekAndMonthFileImpl implements WeekAndMonthFileService {
     
 	@Autowired
     private WeekAndMonrhFileDao weekAndMonrhFileDao;
+    @Autowired
+    private WeekAndMonrhFileMapper weekAndMonrhFileMapper;
 
     @Override
     public List<WeekAndMonthFile> listByMainId(String mainId) {
@@ -48,6 +51,28 @@ public class WeekAndMonthFileImpl implements WeekAndMonthFileService {
         }
     }
 
+    @Override
+    public void saveOrUpdateFgw(List<WeekAndMonthFile> list, String currUserName, String mainId) {
+
+        List<WeekAndMonthFile> list1= weekAndMonrhFileMapper.listByMainId(mainId);
+        for (WeekAndMonthFile weekAndMonthFile:list1){
+            weekAndMonrhFileMapper.delete(weekAndMonthFile.getId());
+        }
+
+
+        if(CollectionUtil.isNotEmpty(list)) {
+            for (WeekAndMonthFile weekAndMonrhFile :list){
+                weekAndMonrhFile.setId(Identities.uuid());
+                weekAndMonrhFile.setCreateTime(new Date());
+                weekAndMonrhFile.setCreateUserId(currUserName);
+                weekAndMonrhFile.setLastUpdateTime(new Date());
+                weekAndMonrhFile.setLastUpdateUserId(currUserName);
+                weekAndMonrhFile.setMainId(mainId);
+            }
+            weekAndMonrhFileMapper.saveOrUpdateAll(list);
+        }
+    }
+
     @Override
     public void del(String id) {
        WeekAndMonthFile weekAndMonthFile= weekAndMonrhFileDao.findById(id);

+ 8 - 0
projects/src/main/java/com/rtrh/projects/web/controller/aerial/api/SubAerialImgApiController.java

@@ -41,6 +41,14 @@ public class SubAerialImgApiController extends BaseController {
 		return message;
 	}
 
+	@PostMapping("saveFgw")
+	@Log("航拍图片新增修改")
+	public Message saveFgw(@RequestBody SubAerialImgVO vo) {
+		Message message = new Message();
+		subAerialImageService.saveFgw(vo, getCurUser().getLoginUser());
+		return message;
+	}
+
 
 	@PostMapping("saveNk")
 	@Log("航拍图片保存鸟瞰")

+ 18 - 2
projects/src/main/java/com/rtrh/projects/web/controller/projects/api/ProWeekReportApiController.java

@@ -54,11 +54,13 @@ public class ProWeekReportApiController extends BaseController {
 	private WeekAndMonthFileService weekAndMonthFileService;
 
 	@PostMapping(value="/queryReport")
-	public ListMessage queryReport( @RequestBody RptContQueryVO queryVO) {
+	public ListMessage queryReport(@RequestBody Page page, @RequestBody RptContQueryVO queryVO) {
 		ListMessage message = new ListMessage();
+		queryVO.setVarlogin(getCurUser().getLoginName());
 		try {
 			List<Map<String, Object>> data = subRptContService.ListQuery(queryVO.getVarkind(),queryVO.getVarbegin(),queryVO.getVarend(),queryVO.getVardesc(),queryVO.getVarstatus(),queryVO.getVarjsdd(),queryVO.getVarlogin(),queryVO.getVarpage(),queryVO.getVarnum(),queryVO.getOuttotal());
-			message.setData(data);
+			List<Map<String, Object>> dataSize = subRptContService.ListQuery(queryVO.getVarkind(),queryVO.getVarbegin(),queryVO.getVarend(),queryVO.getVardesc(),queryVO.getVarstatus(),queryVO.getVarjsdd(),queryVO.getVarlogin(),1,10000000,queryVO.getOuttotal());
+			message.add(data,dataSize.size());
 		} catch (Exception e) {
 			logger.error("",e);
 			message.add(e.getMessage());
@@ -66,6 +68,20 @@ public class ProWeekReportApiController extends BaseController {
 		return message;
 	}
 
+	/*@PostMapping(value="/queryReport")
+	public ListMessage queryReport(@RequestBody Page page, @RequestBody RptContQueryVO queryVO) {
+		ListMessage message = new ListMessage();
+		try {
+			queryVO.setVarlogin(getCurUser().getLoginName());
+			Page pageData = subRptContService.listQuery(page, queryVO);
+			message.add(pageData.getList(), pageData.getTotalCount());
+		} catch (Exception e) {
+			logger.error("",e);
+			message.add(e.getMessage());
+		}
+		return message;
+	}*/
+
 	@PostMapping(value="/saveReport")
 	@Log("周报保存")
 	public Message saveReport(@RequestBody WeekContentVO vo) {

+ 4 - 2
projects/src/main/java/com/rtrh/projects/web/controller/projects/api/ProjMonthReportApiController.java

@@ -61,9 +61,11 @@ public class ProjMonthReportApiController extends BaseController {
 	@PostMapping(value="/queryReport")
 	public ListMessage queryReport(@RequestBody Page page, @RequestBody RptContQueryVO queryVO) {
 		ListMessage message = new ListMessage();
+		queryVO.setVarlogin(getCurUser().getLoginName());
 		try {
 			List<Map<String, Object>> data  = subRptContService.ListQuery(queryVO.getVarkind(),queryVO.getVarbegin(),queryVO.getVarend(),queryVO.getVardesc(),queryVO.getVarstatus(),queryVO.getVarjsdd(),queryVO.getVarlogin(),queryVO.getVarpage(),queryVO.getVarnum(),queryVO.getOuttotal());
-			message.setData(data);
+			List<Map<String, Object>> dataSize = subRptContService.ListQuery(queryVO.getVarkind(),queryVO.getVarbegin(),queryVO.getVarend(),queryVO.getVardesc(),queryVO.getVarstatus(),queryVO.getVarjsdd(),queryVO.getVarlogin(),1,10000000,queryVO.getOuttotal());
+			message.add(data,dataSize.size());
 		} catch (Exception e) {
 			logger.error("",e);
 			message.add(e.getMessage());
@@ -76,7 +78,7 @@ public class ProjMonthReportApiController extends BaseController {
 	public Message saveReport(@RequestBody WeekContentVO vo) {
 		Message res = new Message();
 		try {
-			subRptContService.saveReport(vo, getCurUser().getLoginUser(), RptContKindEnum.MONTH);
+			subRptContService.saveFgwReport(vo, getCurUser().getLoginUser(), RptContKindEnum.MONTH);
 		} catch (Exception e) {
 			logger.error("",e);
 			res.addError(e.getMessage());

+ 1 - 1
projects/src/main/webapp/vmodules/problem/info/monthWarn.jsp

@@ -302,7 +302,7 @@
 </script>
 <script type="text/html" id="toolBar">
   <div class="toolBar">
-    <span title="项目信息" lay-event="toDetail">项目信息</span>
+    <%--<span title="项目信息" lay-event="toDetail">项目信息</span>--%>
     <span title="短信" lay-event="toMsgLog">短信</span>
     <span title="短信发送" lay-event="sendMsg">短信发送</span>
     <span title="督办函" lay-event="toDbh">督办函</span>

+ 1 - 1
projects/src/main/webapp/vmodules/problem/info/preWarn.jsp

@@ -259,7 +259,7 @@
 </script>
 <script type="text/html" id="toolBar">
     <div class="toolBar">
-        <span title="项目信息" lay-event="toDetail">项目信息</span>
+        <%--<span title="项目信息" lay-event="toDetail">项目信息</span>--%>
         <span title="短信" lay-event="toMsgLog">短信</span>
         <span title="短信发送" lay-event="sendMsg">短信发送</span>
         <%--    <c:if test="${isHydw}">--%>

+ 6 - 7
projects/src/main/webapp/vmodules/project/monthReport.jsp

@@ -671,7 +671,7 @@
 
                     // console.log(self.editInfo);
                     // return;
-                    App.postJson("/api/aerial/save", self.editInfo, function (res) {
+                    App.postJson("/api/aerial/saveFgw", self.editInfo, function (res) {
                         if (res.success) {
                             self.editInfo = {};
                             layer.close(self.layerIndex);
@@ -1053,20 +1053,19 @@
                 var param = {
 
                     varkind:$("[name='projStatus']").val(),
-                    varbegin:"202410",
-                    varend:"202411",
+                    varbegin:self.startMonth.substr(0,4)+self.startMonth.substr(5,6),
+                    varend:self.endMonth.substr(0,4)+self.endMonth.substr(5,6),
                     vardesc:$("[name='proName']").val(),
                     varstatus:$("[name='isDo']").val(),
                     varjsdd: $("[name='jsdd']").val(),
-                    varlogin:"admin",
-                    pageNo: 1,
-                    pageSize: 10000,
+                    pageNo: self.pageNo,
+                    pageSize: self.pageSize,
                     outtotal: 1,
                 };
 
                 App.postJson("/api/monthReport/queryReport", param, function (res) {
                     if (res.success) {
-                        self.loadTable(res.data);
+                        self.loadTable(res.rows);
                         self.loadPage(res.total);
                     }
                 });

+ 5 - 6
projects/src/main/webapp/vmodules/project/weekReport.jsp

@@ -664,21 +664,20 @@
                 var param = {
 
                     varkind:$("[name='projStatus']").val(),
-                    varbegin:"2024-10-21",
-                    varend:"2024-10-21",
+                    varbegin:self.startMonth,
+                    varend:self.endMonth,
                     vardesc:$("[name='proName']").val(),
                     varstatus:$("[name='isDo']").val(),
                     varjsdd: $("[name='jsdd']").val(),
-                    varlogin:"admin",
-                    varpage: 1,
-                    varnum: 10000,
+                    varpage: self.pageNo,
+                    varnum: self.pageSize,
                     outtotal: 1,
 
                 };
                 App.postJson("/api/weekReport/queryReport", param, function (res) {
                     if (res.success) {
                         console.log(res.data);
-                        self.loadTable(res.data);
+                        self.loadTable(res.rows);
                         self.loadPage(res.total);
                     }
                 });