From ac66c540ebaea973ca9bd05609f986fb7740ca13 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Sat, 7 Dec 2024 17:47:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=85=E5=A4=B4=E8=BF=9B=E5=BA=A6=E5=92=8Cbu?= =?UTF-8?q?g=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PlanChooseCategoryController.java | 25 ++-- .../PlanFeedbackApprovalController.java | 27 ++-- .../controller/PlanFeedbackController.java | 17 +-- .../controller/PlanMilestoneController.java | 51 +++---- .../plan/controller/PlanPbsController.java | 21 +-- .../plan/controller/PlanPeriodController.java | 18 +-- .../plan/controller/PlanRecordController.java | 26 ++-- .../PlanWorkCategoryController.java | 21 +-- .../PlanFeedbackApprovalWorkController.java | 0 .../PlanFeedbackPeriodController.java | 0 .../{ => bak}/PlanMilestoneValController.java | 0 .../plan/entity/PlanFeedbackPeriod.java | 12 +- .../baotou/plan/entity/PlanRecord.java | 2 +- .../service/IPlanFeedbackApprovalService.java | 28 +++- .../impl/PlanFeedbackApprovalServiceImpl.java | 133 ++++++++++-------- .../service/impl/PlanFeedbackServiceImpl.java | 112 ++++++++------- .../service/impl/PlanPeriodServiceImpl.java | 1 + .../service/impl/PlanRecordServiceImpl.java | 55 ++++++-- 18 files changed, 319 insertions(+), 230 deletions(-) rename src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/{ => bak}/PlanFeedbackApprovalWorkController.java (100%) rename src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/{ => bak}/PlanFeedbackPeriodController.java (100%) rename src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/{ => bak}/PlanMilestoneValController.java (100%) diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanChooseCategoryController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanChooseCategoryController.java index f2c0f79ee..0e2ee09c9 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanChooseCategoryController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanChooseCategoryController.java @@ -78,18 +78,6 @@ public class PlanChooseCategoryController { return Result.ok(); } - @OperLog(operModul = "进度选择分类码管理", operType = "添加", operDesc = "添加多个进度选择分类码信息") - @ApiOperation(value = "添加多个进度选择分类码信息", notes = "添加多个进度选择分类码信息", httpMethod = "POST") - @ApiImplicitParams({ - @ApiImplicitParam(name = "categoryIdList", value = "分类码id", paramType = "body", required = true, dataType = "String"), - @ApiImplicitParam(name = "recordId", value = "计划编制id", paramType = "body", required = true, dataType = "String"), - }) - @PostMapping(value = "/addMany") - public Result addMany(@RequestBody @Validate Map param) { - planChooseCategoryService.addMany(param); - return Result.ok(); - } - /** * 编辑 * @@ -132,4 +120,17 @@ public class PlanChooseCategoryController { return Result.success(planChooseCategoryService.queryById(id)); } + + @OperLog(operModul = "进度选择分类码管理", operType = "添加", operDesc = "添加多个进度选择分类码信息") + @ApiOperation(value = "添加多个进度选择分类码信息", notes = "添加多个进度选择分类码信息", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "categoryIdList", value = "分类码id", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "recordId", value = "计划编制id", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/addMany") + public Result addMany(@RequestBody @Validate Map param) { + planChooseCategoryService.addMany(param); + return Result.ok(); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanFeedbackApprovalController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanFeedbackApprovalController.java index f471cca96..721c996ea 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanFeedbackApprovalController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanFeedbackApprovalController.java @@ -85,21 +85,6 @@ public class PlanFeedbackApprovalController { return Result.ok(); } - @OperLog(operModul = "进度反馈审批管理", operType = "", operDesc = "保存进度反馈审批信息") - @ApiOperation(value = "保存进度反馈审批信息", notes = "保存进度反馈审批信息", httpMethod = "POST") - @ApiImplicitParams({ - @ApiImplicitParam(name = "recordIdList", value = "recordIdList", paramType = "body", required = true, dataType = "String"), - @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), - }) - @PostMapping(value = "/save") - public Result saveInfo(@RequestBody @Validate Map param) { - try { - planFeedbackApprovalService.saveInfo(param); - } catch (OpenAlertException e) { - return Result.success(e.getMessage()); - } - return Result.ok(); - } /** * 编辑 @@ -146,7 +131,6 @@ public class PlanFeedbackApprovalController { @OperLog(operModul = "进度反馈审批管理", operType = "", operDesc = "提交审批") @ApiOperation(value = "提交审批", notes = "提交审批", httpMethod = "POST") @ApiImplicitParams({ - @ApiImplicitParam(name = "recordIdList", value = "计划编制id的list", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "approval", value = "反馈审批对象", paramType = "body", required = true, dataType = "String"), }) @@ -171,7 +155,6 @@ public class PlanFeedbackApprovalController { @OperLog(operModul = "进度反馈审批管理", operType = "", operDesc = "查询责任人自己的进度反馈审批信息") @ApiOperation(value = "查询责任人自己的进度反馈审批信息", notes = "查询责任人自己的进度反馈审批信息", httpMethod = "GET") -// @ApiImplicitParam(name = "id", value = "进度反馈审批ID", paramType = "query", required = true, dataType = "Integer") @GetMapping(value = "/queryMyApproval") public Result queryMyApproval() { return Result.success(planFeedbackApprovalService.queryMyApproval()); @@ -209,4 +192,14 @@ public class PlanFeedbackApprovalController { return Result.success(p); } + @OperLog(operModul = "进度反馈审批管理", operType = "", operDesc = "保存勾选批量反馈的信息") + @ApiOperation(value = "保存勾选批量反馈的信息", notes = "保存勾选批量反馈的信息", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "recordIdList", value = "recordIdList", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/save") + public Result saveInfo(@RequestBody @Validate Map param) { + return planFeedbackApprovalService.saveInfo(param); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanFeedbackController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanFeedbackController.java index d2eca4a6f..01273bf6f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanFeedbackController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanFeedbackController.java @@ -96,14 +96,6 @@ public class PlanFeedbackController { return Result.ok(); } - @OperLog(operModul = "进度反馈记录管理", operType = "", operDesc = "保存进度反馈记录信息") - @ApiOperation(value = "保存进度反馈记录信息", notes = "保存进度反馈记录信息", httpMethod = "POST") - @PostMapping(value = "/save") - public Result saveInfo(@RequestBody PlanFeedback planFeedback) { - planFeedbackService.saveInfo(planFeedback); - return Result.ok(); - } - /** * 通过id删除 * @@ -180,4 +172,13 @@ public class PlanFeedbackController { return Result.success(planFeedbackService.getPeriodMilestones(param)); } + + @OperLog(operModul = "进度反馈记录管理", operType = "", operDesc = "保存进度反馈记录信息") + @ApiOperation(value = "保存进度反馈记录信息", notes = "保存进度反馈记录信息", httpMethod = "POST") + @PostMapping(value = "/save") + public Result saveInfo(@RequestBody PlanFeedback planFeedback) { + planFeedbackService.saveInfo(planFeedback); + return Result.ok(); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanMilestoneController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanMilestoneController.java index 7dfc39ac0..f5ebc7f92 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanMilestoneController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanMilestoneController.java @@ -65,31 +65,6 @@ public class PlanMilestoneController { return Result.success(planMilestoneService.queryList(param)); } - @OperLog(operModul = "进度里程碑管理", operType = "分页查询", operDesc = "分页列表查询最近上级的wps进度里程碑信息") - @ApiOperation(value = "分页列表查询最近上级的wps进度里程碑信息", notes = "分页列表查询最近上级的wps进度里程碑信息", httpMethod = "GET") - @ApiImplicitParams({ - @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), - @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), - }) - @GetMapping(value = "/getWpsMilestonePage") - public Result> getWpsMilestonePage(@ApiIgnore @RequestParam HashMap param) { - String recordId = MapUtils.getString(param, "recordId"); - List periodMilestones = planMilestoneService.getParentMilestones(recordId); - int pageNo = Integer.parseInt(param.getOrDefault("pageNo", 1).toString()); - int pageSize = Integer.parseInt(param.getOrDefault("pageSize", 10).toString()); - if (pageSize < 0) { - pageSize = Integer.MAX_VALUE; - } - int i = cn.hutool.core.util.PageUtil.getStart(pageNo - 1, pageSize); - List records = CollUtil.sub(periodMilestones, i, i + pageSize); - IPage p = new Page<>(); - p.setTotal(periodMilestones.size()); - p.setRecords(records); - p.setCurrent(pageNo); - p.setSize(pageSize); - return Result.success(p); - } - /** * 添加 * @@ -146,4 +121,30 @@ public class PlanMilestoneController { return Result.success(planMilestoneService.queryById(id)); } + + @OperLog(operModul = "进度里程碑管理", operType = "分页查询", operDesc = "分页列表查询最近上级的wps进度里程碑信息") + @ApiOperation(value = "分页列表查询最近上级的wps进度里程碑信息", notes = "分页列表查询最近上级的wps进度里程碑信息", httpMethod = "GET") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), + }) + @GetMapping(value = "/getWpsMilestonePage") + public Result> getWpsMilestonePage(@ApiIgnore @RequestParam HashMap param) { + String recordId = MapUtils.getString(param, "recordId"); + List periodMilestones = planMilestoneService.getParentMilestones(recordId); + int pageNo = Integer.parseInt(param.getOrDefault("pageNo", 1).toString()); + int pageSize = Integer.parseInt(param.getOrDefault("pageSize", 10).toString()); + if (pageSize < 0) { + pageSize = Integer.MAX_VALUE; + } + int i = cn.hutool.core.util.PageUtil.getStart(pageNo - 1, pageSize); + List records = CollUtil.sub(periodMilestones, i, i + pageSize); + IPage p = new Page<>(); + p.setTotal(periodMilestones.size()); + p.setRecords(records); + p.setCurrent(pageNo); + p.setSize(pageSize); + return Result.success(p); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanPbsController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanPbsController.java index e9a965024..b0778311e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanPbsController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanPbsController.java @@ -51,16 +51,6 @@ public class PlanPbsController { return Result.success(planPbsService.queryPageList(param)); } - @OperLog(operModul = "进度PBS管理", operType = "", operDesc = "树形分页列表查询进度PBS信息") - @ApiOperation(value = "树形分页列表查询进度PBS信息", notes = "树形分页列表查询进度PBS信息", httpMethod = "GET") - @ApiImplicitParams({ - @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), - @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), - }) - @GetMapping(value = "/tree/page") - public Result> queryTreePage(@ApiIgnore @RequestParam HashMap param) { - return Result.success(planPbsService.queryTreePage(param)); - } /** * 列表查询 @@ -130,4 +120,15 @@ public class PlanPbsController { return Result.success(planPbsService.queryById(id)); } + + @OperLog(operModul = "进度PBS管理", operType = "", operDesc = "树形分页列表查询进度PBS信息") + @ApiOperation(value = "树形分页列表查询进度PBS信息", notes = "树形分页列表查询进度PBS信息", httpMethod = "GET") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), + }) + @GetMapping(value = "/tree/page") + public Result> queryTreePage(@ApiIgnore @RequestParam HashMap param) { + return Result.success(planPbsService.queryTreePage(param)); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanPeriodController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanPeriodController.java index d23b25224..e4f2ca386 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanPeriodController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanPeriodController.java @@ -95,14 +95,6 @@ public class PlanPeriodController { return Result.ok(); } - @OperLog(operModul = "进度监测周期管理", operType = "保存", operDesc = "保存进度监测周期信息") - @ApiOperation(value = "保存进度监测周期信息", notes = "保存进度监测周期信息", httpMethod = "POST") - @PostMapping(value = "/save") - public Result saveInfo(@RequestBody PlanPeriod planPeriod) { - planPeriodService.saveInfo(planPeriod); - return Result.ok(); - } - /** * 通过id删除 * @@ -161,4 +153,14 @@ public class PlanPeriodController { } + @OperLog(operModul = "进度监测周期管理", operType = "保存", operDesc = "保存进度监测周期信息") + @ApiOperation(value = "保存进度监测周期信息", notes = "保存进度监测周期信息", httpMethod = "POST") + @PostMapping(value = "/save") + public Result saveInfo(@RequestBody PlanPeriod planPeriod) { + planPeriodService.saveInfo(planPeriod); + return Result.ok(); + } + + + } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanRecordController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanRecordController.java index 3725796b9..8402b3693 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanRecordController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanRecordController.java @@ -57,16 +57,6 @@ public class PlanRecordController { return Result.success(planRecordService.queryPageList(param)); } - @OperLog(operModul = "进度计划编制管理", operType = "", operDesc = "树形分页列表查询进度计划编制信息") - @ApiOperation(value = "树形分页列表查询进度计划编制信息", notes = "树形分页列表查询进度计划编制信息", httpMethod = "GET") - @ApiImplicitParams({ - @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), - @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), - }) - @GetMapping(value = "/tree/page") - public Result> queryTreePage(@ApiIgnore @RequestParam HashMap param) { - return Result.success(planRecordService.queryTreePage(param)); - } /** * 列表查询 @@ -137,8 +127,8 @@ public class PlanRecordController { @ApiOperation(value = "分页查询计划分摊列表", notes = "分页查询计划分摊列表", httpMethod = "GET") @ApiImplicitParams({ @ApiImplicitParam(name = "recordId", value = "计划编制id", paramType = "query", required = true, dataType = "String"), - @ApiImplicitParam(name = "beginDate", value = "开始日期", paramType = "query", required = false, dataType = "String"), - @ApiImplicitParam(name = "endDate", value = "结束日期", paramType = "query", required = false, dataType = "String") + @ApiImplicitParam(name = "periodStart", value = "开始日期", paramType = "query", required = false, dataType = "String"), + @ApiImplicitParam(name = "periodEnd", value = "结束日期", paramType = "query", required = false, dataType = "String") }) @GetMapping(value = "/getPlanSharePage") public Result> getPlanSharePage(@RequestParam Map param) { @@ -198,4 +188,16 @@ public class PlanRecordController { return Result.success(planRecordService.getProjectMilestone(param)); } + + @OperLog(operModul = "进度计划编制管理", operType = "", operDesc = "树形分页列表查询进度计划编制信息") + @ApiOperation(value = "树形分页列表查询进度计划编制信息", notes = "树形分页列表查询进度计划编制信息", httpMethod = "GET") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), + }) + @GetMapping(value = "/tree/page") + public Result> queryTreePage(@ApiIgnore @RequestParam HashMap param) { + return Result.success(planRecordService.queryTreePage(param)); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanWorkCategoryController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanWorkCategoryController.java index abed939b5..13f7fd57a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanWorkCategoryController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanWorkCategoryController.java @@ -74,16 +74,7 @@ public class PlanWorkCategoryController { public Result> queryPageList(@ApiIgnore @RequestParam HashMap param) { return Result.success(planWorkCategoryService.queryPageList(param)); } - @OperLog(operModul = "进度作业分类码管理", operType = "", operDesc = "树形分页列表查询进度作业分类码信息") - @ApiOperation(value = "树形分页列表查询进度作业分类码信息", notes = "树形分页列表查询进度作业分类码信息", httpMethod = "GET") - @ApiImplicitParams({ - @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), - @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), - }) - @GetMapping(value = "/tree/page") - public Result> queryTreePage(@ApiIgnore @RequestParam HashMap param) { - return Result.success(planWorkCategoryService.queryTreePage(param)); - } + /** * 列表查询 * @return @@ -147,4 +138,14 @@ public class PlanWorkCategoryController { return Result.success(planWorkCategoryService.queryById(id)); } + @OperLog(operModul = "进度作业分类码管理", operType = "", operDesc = "树形分页列表查询进度作业分类码信息") + @ApiOperation(value = "树形分页列表查询进度作业分类码信息", notes = "树形分页列表查询进度作业分类码信息", httpMethod = "GET") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), + }) + @GetMapping(value = "/tree/page") + public Result> queryTreePage(@ApiIgnore @RequestParam HashMap param) { + return Result.success(planWorkCategoryService.queryTreePage(param)); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanFeedbackApprovalWorkController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/bak/PlanFeedbackApprovalWorkController.java similarity index 100% rename from src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanFeedbackApprovalWorkController.java rename to src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/bak/PlanFeedbackApprovalWorkController.java diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanFeedbackPeriodController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/bak/PlanFeedbackPeriodController.java similarity index 100% rename from src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanFeedbackPeriodController.java rename to src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/bak/PlanFeedbackPeriodController.java diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanMilestoneValController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/bak/PlanMilestoneValController.java similarity index 100% rename from src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/PlanMilestoneValController.java rename to src/main/java/com/zhgd/xmgl/modules/baotou/plan/controller/bak/PlanMilestoneValController.java diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/entity/PlanFeedbackPeriod.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/entity/PlanFeedbackPeriod.java index 6bd7cc296..7b1fadb0a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/entity/PlanFeedbackPeriod.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/entity/PlanFeedbackPeriod.java @@ -54,12 +54,12 @@ public class PlanFeedbackPeriod implements Serializable { private java.util.Date updateTime ; @TableField(exist = false) private List milestoneVals; - @ApiModelProperty(value = "实际进度完成%(未算权重)") - @TableField(exist = false) - private BigDecimal actualOriginPer; - @ApiModelProperty(value = "计划进度完成%(未算权重)") - @TableField(exist = false) - private BigDecimal planOriginPer; +// @ApiModelProperty(value = "实际进度完成%(未算权重)") +// @TableField(exist = false) +// private BigDecimal actualOriginPer; +// @ApiModelProperty(value = "计划进度完成%(未算权重)") +// @TableField(exist = false) +// private BigDecimal planOriginPer; @ApiModelProperty(value = "实际进度完成%") @TableField(exist = false) private BigDecimal actualPer; diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/entity/PlanRecord.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/entity/PlanRecord.java index 4306f6da6..67eddca8b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/entity/PlanRecord.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/entity/PlanRecord.java @@ -162,7 +162,7 @@ public class PlanRecord implements Serializable { */ @ApiModelProperty(value = "后置作业") private java.lang.String postDecessorJob; - @ApiModelProperty(value = "最新的feedBackId") + @ApiModelProperty(value = "审批通过的最新的feedBackId") private Long newestFeedBackId; /** * 节点状态:1:关键控制点;2:重要事件的控制;3:作业项目的节点; diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/IPlanFeedbackApprovalService.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/IPlanFeedbackApprovalService.java index 534b4b091..8709ae340 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/IPlanFeedbackApprovalService.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/IPlanFeedbackApprovalService.java @@ -1,8 +1,10 @@ package com.zhgd.xmgl.modules.baotou.plan.service; -import com.zhgd.xmgl.modules.baotou.plan.entity.PlanFeedbackApproval; -import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.xmgl.modules.baotou.plan.entity.PlanFeedbackApproval; + import java.util.HashMap; import java.util.List; import java.util.Map; @@ -10,42 +12,53 @@ import java.util.Map; /** * @Description: 进度反馈审批 * @author: pds - * @date: 2024-12-04 + * @date: 2024-12-04 * @version: V1.0 */ public interface IPlanFeedbackApprovalService extends IService { /** * 分页列表查询进度反馈审批信息 + * * @param param 参数map * @return */ IPage queryPageList(HashMap param); + /** * 列表查询进度反馈审批信息 + * * @param param 参数map * @return */ List queryList(HashMap param); + /** * 添加进度反馈审批信息 + * * @param planFeedbackApproval 进度反馈审批 * @return */ void add(PlanFeedbackApproval planFeedbackApproval); + /** * 编辑进度反馈审批信息 + * * @param planFeedbackApproval 进度反馈审批 * @return */ void edit(PlanFeedbackApproval planFeedbackApproval); + /** * 根据id删除进度反馈审批信息 + * * @param id 进度反馈审批的id * @return */ void delete(String id); + /** * 根据id查询进度反馈审批信息 + * * @param id 进度反馈审批的id * @return */ @@ -55,7 +68,14 @@ public interface IPlanFeedbackApprovalService extends IService map); - void saveInfo(Map param); + Result saveInfo(Map param); PlanFeedbackApproval queryMyApproval(); + + /** + * 查询最新的一条审批 + * + * @return + */ + PlanFeedbackApproval queryNewestApproval(); } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanFeedbackApprovalServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanFeedbackApprovalServiceImpl.java index 91539ff96..427b7e3df 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanFeedbackApprovalServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanFeedbackApprovalServiceImpl.java @@ -10,9 +10,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gexin.fastjson.JSON; import com.gexin.fastjson.TypeReference; +import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.system.query.QueryGenerator; -import com.zhgd.xmgl.modules.baotou.plan.entity.*; +import com.zhgd.xmgl.modules.baotou.plan.entity.PlanFeedback; +import com.zhgd.xmgl.modules.baotou.plan.entity.PlanFeedbackApproval; +import com.zhgd.xmgl.modules.baotou.plan.entity.PlanFeedbackApprovalWork; +import com.zhgd.xmgl.modules.baotou.plan.entity.PlanRecord; import com.zhgd.xmgl.modules.baotou.plan.mapper.PlanFeedbackApprovalMapper; import com.zhgd.xmgl.modules.baotou.plan.service.IPlanFeedbackApprovalService; import com.zhgd.xmgl.modules.baotou.plan.service.IPlanFeedbackApprovalWorkService; @@ -22,7 +26,6 @@ import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl; import com.zhgd.xmgl.security.entity.UserInfo; import com.zhgd.xmgl.security.util.SecurityUtils; -import com.zhgd.xmgl.util.MapBuilder; import com.zhgd.xmgl.util.PageUtil; import com.zhgd.xmgl.util.RefUtil; import org.apache.commons.collections.MapUtils; @@ -79,7 +82,7 @@ public class PlanFeedbackApprovalServiceImpl extends ServiceImpl queryWrapper = QueryGenerator.initPageQueryWrapper(PlanFeedbackApproval.class, param, true); Integer isApproval = MapUtils.getInteger(param, "isApproval"); if (Objects.equals(isApproval, 1)) { - queryWrapper.ne(RefUtil.fieldNameUlc(PlanFeedbackApproval::getApprovalStatus), -1); + queryWrapper.ne(RefUtil.fieldNameUlc(PlanFeedbackApproval::getApprovalStatus), 1); } queryWrapper.orderByDesc(RefUtil.fieldNameUlc(PlanFeedbackApproval::getId)); return queryWrapper; @@ -126,6 +129,11 @@ public class PlanFeedbackApprovalServiceImpl extends ServiceImpl() + .eq(PlanFeedbackApprovalWork::getApprovalId, id)); + if (count > 0) { + throw new OpenAlertException("请先删除反馈记录"); + } baseMapper.deleteById(id); } @@ -156,38 +164,31 @@ public class PlanFeedbackApprovalServiceImpl extends ServiceImpl map) { - String projectSn = MapUtils.getString(map, "projectSn"); PlanFeedbackApproval approval = JSON.parseObject(JSON.toJSONString(map.get("approval")), new TypeReference() { }); + if (StrUtil.isBlank(approval.getApprovalIds())) { + throw new OpenAlertException("审批人为空"); + } approval.setApprovalStatus(2); this.edit(approval); - List recordIdList = JSON.parseObject(JSON.toJSONString(map.get("recordIdList")), new TypeReference>() { - }); - if (CollUtil.isNotEmpty(recordIdList)) { - Map fbidMap = planRecordService.list(new LambdaQueryWrapper() - .in(PlanRecord::getId, recordIdList)).stream().filter(o -> o.getNewestFeedBackId() != null).collect(Collectors.toMap(PlanRecord::getNewestFeedBackId, Function.identity(), (record, record2) -> record)); - if (CollUtil.isNotEmpty(fbidMap)) { - for (Map.Entry entry : fbidMap.entrySet()) { - PlanFeedbackApprovalWork fbaw = new PlanFeedbackApprovalWork(); - fbaw.setApprovalId(approval.getId()); - fbaw.setRecordId(entry.getValue().getId()); - fbaw.setFeedbackId(entry.getKey()); - planFeedbackApprovalWorkService.add(fbaw); - } - } - } } @Override public void approval(HashMap map) { String approvalId = MapUtils.getString(map, "approvalId"); Integer isPass = MapUtils.getInteger(map, "isPass"); - this.update(new LambdaUpdateWrapper() - .set(PlanFeedbackApproval::getApprovalStatus, 3) - .eq(PlanFeedbackApproval::getId, approvalId) - ); + if (isPass == 1) { + this.update(new LambdaUpdateWrapper() + .set(PlanFeedbackApproval::getApprovalStatus, 3) + .eq(PlanFeedbackApproval::getId, approvalId) + ); + } else { + this.update(new LambdaUpdateWrapper() + .set(PlanFeedbackApproval::getApprovalStatus, 4) + .eq(PlanFeedbackApproval::getId, approvalId) + ); + } List feedbackApprovalWorks = planFeedbackApprovalWorkService.list(new LambdaQueryWrapper() .eq(PlanFeedbackApprovalWork::getApprovalId, approvalId)); List fbids = feedbackApprovalWorks.stream().map(PlanFeedbackApprovalWork::getFeedbackId).collect(Collectors.toList()); @@ -200,13 +201,14 @@ public class PlanFeedbackApprovalServiceImpl extends ServiceImpl() .set(PlanRecord::getActualStart, feedback.getActualStart()) .set(PlanRecord::getActualFinish, feedback.getActualFinish()) .set(PlanRecord::getExpectedFinish, feedback.getExpectFinish()) + .set(PlanRecord::getNewestFeedBackId, feedback.getId()) .eq(PlanRecord::getId, feedback.getRecordId()) ); } @@ -216,42 +218,56 @@ public class PlanFeedbackApprovalServiceImpl extends ServiceImpl param) { + public Result saveInfo(Map param) { String projectSn = MapUtils.getString(param, "projectSn"); List recordIdList = JSON.parseObject(JSON.toJSONString(param.get("recordIdList")), new TypeReference>() { - }); + }).stream().filter(Objects::nonNull).collect(Collectors.toList()); UserInfo user = SecurityUtils.getUser(); Long userId = user.getUserId(); - PlanFeedbackApproval approval = planFeedbackApprovalMapper.selectOne(new LambdaQueryWrapper() - .eq(PlanFeedbackApproval::getInputWorkerId, userId) - .eq(PlanFeedbackApproval::getApprovalStatus, 1) - ); - Map ridFeedBackMap = planFeedbackService.getNewestOneByRecordIdList(recordIdList).stream().collect(Collectors.toMap(PlanFeedback::getRecordId, Function.identity(), (planFeedback, planFeedback2) -> planFeedback)); - if (approval == null) { + PlanFeedbackApproval approval = this.queryNewestApproval(); + Map ridFeedBackMap = new HashMap<>(); + if (CollUtil.isNotEmpty(recordIdList)) { + ridFeedBackMap = planFeedbackService.getNewestOneByRecordIdList(recordIdList).stream().collect(Collectors.toMap(PlanFeedback::getRecordId, Function.identity(), (planFeedback, planFeedback2) -> planFeedback)); + } + List failNames = new ArrayList<>(); + if (approval == null || approval.getApprovalStatus() != 1) { approval = new PlanFeedbackApproval(); - approval.setProjectSn(approval.getProjectSn()); + approval.setProjectSn(projectSn); approval.setInputWorkerId(userId); approval.setInputWorkerName(user.getRealName()); approval.setApprovalStatus(1); approval.setInputDate(new Date()); this.add(approval); - addFeedbackAndWork(recordIdList, approval, ridFeedBackMap); + if (CollUtil.isNotEmpty(recordIdList)) { + this.addFeedbackAndWork(recordIdList, approval, ridFeedBackMap); + } } else { this.updateById(approval); - List works = planFeedbackApprovalWorkService.list(new LambdaQueryWrapper() - .eq(PlanFeedbackApprovalWork::getApprovalId, approval.getId())); - if (CollUtil.isNotEmpty(works)) { - Map ridMap = planRecordService.list(new LambdaQueryWrapper() - .in(PlanRecord::getId, works.stream().map(PlanFeedbackApprovalWork::getRecordId).collect(Collectors.toList()))).stream().collect(Collectors.toMap(PlanRecord::getId, Function.identity())); - for (Long rid : recordIdList) { - PlanRecord record = ridMap.get(rid); - if (record != null) { - throw new OpenAlertException(record.getJobName() + "已经提交,请勿重复提交"); + if (CollUtil.isNotEmpty(recordIdList)) { + List works = planFeedbackApprovalWorkService.list(new LambdaQueryWrapper() + .eq(PlanFeedbackApprovalWork::getApprovalId, approval.getId())); + if (CollUtil.isNotEmpty(works)) { + Map ridMap = planRecordService.list(new LambdaQueryWrapper() + .in(PlanRecord::getId, works.stream().map(PlanFeedbackApprovalWork::getRecordId).collect(Collectors.toList()))).stream().collect(Collectors.toMap(PlanRecord::getId, Function.identity())); + Iterator iterator = recordIdList.iterator(); + while (iterator.hasNext()) { + Long rid = iterator.next(); + PlanRecord record = ridMap.get(rid); + if (record != null) { + failNames.add(record.getJobName()); + iterator.remove(); + } } } + if (CollUtil.isNotEmpty(recordIdList)) { + this.addFeedbackAndWork(recordIdList, approval, ridFeedBackMap); + } } - addFeedbackAndWork(recordIdList, approval, ridFeedBackMap); } + if (CollUtil.isNotEmpty(failNames)) { + return Result.ok(StrUtil.join(",", failNames) + "正在处理中,请勿重复提交"); + } + return Result.ok(); } @Override @@ -259,6 +275,7 @@ public class PlanFeedbackApprovalServiceImpl extends ServiceImpl() .eq(PlanFeedbackApproval::getInputWorkerId, SecurityUtils.getUser().getUserId()) .eq(PlanFeedbackApproval::getApprovalStatus, 1) + .last("limit 1") ); } @@ -268,19 +285,23 @@ public class PlanFeedbackApprovalServiceImpl extends ServiceImpl periodList = planFeedbackService.getPeriodMilestones(new MapBuilder().put("recordId", newest.getRecordId()).build()); -// newest.setPeriods(periodList); -// planFeedbackService.saveInfo(newest); - faw.setFeedbackId(newest.getId()); + if (feedback == null || feedback.getApprovalStatus() != 1) { + feedback = planFeedbackService.getNewest(String.valueOf(rid)); + feedback.setRecordId(rid); } + feedback.setProjectSn(approval.getProjectSn()); + planFeedbackService.saveInfo(feedback); + faw.setFeedbackId(feedback.getId()); planFeedbackApprovalWorkService.add(faw); } } + + @Override + public PlanFeedbackApproval queryNewestApproval() { + Long userId = SecurityUtils.getUser().getUserId(); + return planFeedbackApprovalMapper.selectOne(new LambdaQueryWrapper() + .eq(PlanFeedbackApproval::getInputWorkerId, userId) + .last("order by input_date desc limit 1") + ); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanFeedbackServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanFeedbackServiceImpl.java index fd54cb689..48a802199 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanFeedbackServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanFeedbackServiceImpl.java @@ -60,6 +60,8 @@ public class PlanFeedbackServiceImpl extends ServiceImpl queryPageList(HashMap param) { @@ -104,7 +106,7 @@ public class PlanFeedbackServiceImpl extends ServiceImpl fbpids = planFeedbackPeriodService.list(new LambdaQueryWrapper() @@ -132,6 +137,8 @@ public class PlanFeedbackServiceImpl extends ServiceImpl() .in(PlanMilestoneVal::getFeedbackPeriodId, fbpids)); } + planFeedbackApprovalWorkService.remove(new LambdaQueryWrapper() + .eq(PlanFeedbackApprovalWork::getFeedbackId, id)); } @@ -147,7 +154,7 @@ public class PlanFeedbackServiceImpl extends ServiceImpl fbPeriods = planFeedbackPeriodService.list(new LambdaQueryWrapper() - .eq(PlanFeedbackPeriod::getFeedbackId, record.getNewestFeedBackId())); + .eq(PlanFeedbackPeriod::getFeedbackId, newestFeedback.getId())); List fpIds = fbPeriods.stream().map(PlanFeedbackPeriod::getId).collect(Collectors.toList()); Map milestoneMap = planMilestoneService.getParentMilestones(recordId).stream().collect(Collectors.toMap(PlanMilestone::getId, Function.identity(), (planMilestone, planMilestone2) -> planMilestone)); if (CollUtil.isNotEmpty(fpIds)) { @@ -229,9 +237,10 @@ public class PlanFeedbackServiceImpl extends ServiceImpl Objects.equals(o.getFeedbackPeriodId(), feedbackPeriod.getId())).collect(Collectors.toList())); } } + feedbackPeriods = fbPeriods; } } else { - feedbackPeriods = this.getExistFeedbackPeriods(Long.valueOf(feedbackId),record); + feedbackPeriods = this.getExistFeedbackPeriods(Long.valueOf(feedbackId), record); } if (CollUtil.isNotEmpty(feedbackPeriods)) { if (StrUtil.isNotBlank(beginDate)) { @@ -290,29 +299,6 @@ public class PlanFeedbackServiceImpl extends ServiceImpl map) { -// String projectSn = MapUtils.getString(map, "projectSn"); -// List feedbackIdList = JSON.parseObject(JSON.toJSONString(map.get("feedbackIdList")), new TypeReference>() { -// }); -// if (CollUtil.isNotEmpty(feedbackIdList)) { -// for (Long id : feedbackIdList) { -// baseMapper.update(null, new LambdaUpdateWrapper().set(PlanFeedback::getApprovalStatus, 2).eq(PlanFeedback::getId, id)); -// } -// List feedbackList = planFeedbackMapper.selectList(new LambdaQueryWrapper() -// .in(PlanFeedback::getId, feedbackIdList)); -// PlanRecord record = planRecordService.getOne(new LambdaQueryWrapper() -// .eq(PlanRecord::getId, feedbackList.get(0).getRecordId())); -// SystemUser user = systemUserService.getOne(new LambdaQueryWrapper() -// .eq(SystemUser::getUserId, record.getChargerId())); -// PlanFeedbackApproval approval = new PlanFeedbackApproval(); -// approval.setProjectSn(projectSn); -// approval.setChargerName(user.getRealName()); -// approval.setApprovalStatus(2); -// planFeedbackApprovalService.save(approval); -// } -// } @Override public void approval(HashMap map) { @@ -347,11 +333,9 @@ public class PlanFeedbackServiceImpl extends ServiceImpl() - .eq(PlanFeedback::getRecordId, feedback.getRecordId()) - .last("order by input_date desc limit 1") - ); - PlanRecord record = planRecordService.getById(feedback.getRecordId()); + Long recordId = feedback.getRecordId(); + PlanFeedback feedback1 = queryNewestFeedback(recordId); + PlanRecord record = planRecordService.getById(recordId); if (record.getWorkType() != 1) { throw new OpenAlertException("只有作业可以新增反馈内容"); } @@ -360,23 +344,38 @@ public class PlanFeedbackServiceImpl extends ServiceImpl fbpids = planFeedbackPeriodService.list(new LambdaQueryWrapper() - .eq(PlanFeedbackPeriod::getFeedbackId, feedback1.getId())).stream().map(PlanFeedbackPeriod::getId).collect(Collectors.toList()); - planFeedbackPeriodService.remove(new LambdaQueryWrapper() - .eq(PlanFeedbackPeriod::getFeedbackId, feedback1.getId())); - if (CollUtil.isNotEmpty(fbpids)) { - planMilestoneValService.remove(new LambdaQueryWrapper() - .in(PlanMilestoneVal::getFeedbackPeriodId, fbpids)); - } - addFeedbackPeriodAndVal(feedback); + this.updateFeedbackPeriodAndVal(feedback); } else { feedback.setId(null); feedback.setApprovalStatus(1); + //由于分页,这里需要添加没有的传过来的 + List periods = feedback.getPeriods(); + if (CollUtil.isEmpty(periods)) { + periods = new ArrayList<>(); + feedback.setPeriods(periods); + } + HashMap param = new HashMap<>(); + param.put("recordId", recordId); + List alls = this.getPeriodMilestones(param); + for (PlanFeedbackPeriod all : alls) { + Optional op = periods.stream().filter(o -> Objects.equals(all.getPeriodStart(), o.getPeriodStart())).findAny(); + if (!op.isPresent()) { + periods.add(all); + } + } baseMapper.insert(feedback); - addFeedbackPeriodAndVal(feedback); + this.addFeedbackPeriodAndVal(feedback); } } + private PlanFeedback queryNewestFeedback(Long recordId) { + PlanFeedback feedback1 = planFeedbackMapper.selectOne(new LambdaQueryWrapper() + .eq(PlanFeedback::getRecordId, recordId) + .last("order by input_date desc limit 1") + ); + return feedback1; + } + @Override public List getNewestOneByRecordIdList(List recordIdList) { return baseMapper.getNewestOneByRecordIdList(recordIdList); @@ -389,10 +388,6 @@ public class PlanFeedbackServiceImpl extends ServiceImpl periods = feedback.getPeriods(); - addFeedbackPeriodAndVal(feedback, periods); - } - - private void addFeedbackPeriodAndVal(PlanFeedback feedback, List periods) { if (CollUtil.isNotEmpty(periods)) { for (PlanFeedbackPeriod period : periods) { period.setId(null); @@ -410,4 +405,25 @@ public class PlanFeedbackServiceImpl extends ServiceImpl periods = feedback.getPeriods(); + if (CollUtil.isNotEmpty(periods)) { + for (PlanFeedbackPeriod period : periods) { + period.setFeedbackId(feedback.getId()); + planFeedbackPeriodService.updateById(period); + List milestoneVals = period.getMilestoneVals(); + if (CollUtil.isNotEmpty(milestoneVals)) { + for (PlanMilestoneVal val : milestoneVals) { + val.setFeedbackPeriodId(period.getId()); + planMilestoneValService.updateById(val); + } + } + } + } + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanPeriodServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanPeriodServiceImpl.java index ed83f0885..393ab5ac5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanPeriodServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanPeriodServiceImpl.java @@ -53,6 +53,7 @@ public class PlanPeriodServiceImpl extends ServiceImpl dealList(List list) { + return list; } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanRecordServiceImpl.java index cab99be52..f31ecc10f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/plan/service/impl/PlanRecordServiceImpl.java @@ -27,7 +27,6 @@ import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.xhtmlrenderer.css.parser.property.PrimitivePropertyBuilders; import java.math.BigDecimal; import java.util.*; @@ -181,6 +180,11 @@ public class PlanRecordServiceImpl extends ServiceImpl() + .eq(PlanFeedback::getRecordId, id)); + if (count > 0) { + throw new OpenAlertException("请先删除反馈数据"); + } baseMapper.deleteById(id); } @@ -229,8 +233,8 @@ public class PlanRecordServiceImpl extends ServiceImpl getPlanShares(Map param) { String recordId = MapUtils.getString(param, "recordId"); - String beginDate = MapUtils.getString(param, "beginDate"); - String endDate = MapUtils.getString(param, "endDate"); + String beginDate = MapUtils.getString(param, "periodStart"); + String endDate = MapUtils.getString(param, "periodEnd"); List feedbackPeriods = new ArrayList<>(); PlanRecord record = this.getById(recordId); if (record == null) { @@ -366,10 +370,10 @@ public class PlanRecordServiceImpl extends ServiceImpl children = record.getChildren(); Map startMap = new HashMap<>(); for (PlanRecord child : children) { + Map startMap1; if (Objects.equals(child.getWorkType(), 1)) { - Map param = new HashMap<>(); PlanRecord planRecord = planRecords.stream().filter(o -> Objects.equals(o.getId(), child.getId())).findFirst().get(); List feedbackPeriods1 = this.getPeriodMilestonesForWork(planRecord, planPeriod, milestones); - startMap = feedbackPeriods1.stream().collect(Collectors.toMap(PlanFeedbackPeriod::getPeriodStart, Function.identity(), (planFeedbackPeriod, planFeedbackPeriod2) -> planFeedbackPeriod)); + startMap1 = feedbackPeriods1.stream().collect(Collectors.toMap(PlanFeedbackPeriod::getPeriodStart, Function.identity(), (planFeedbackPeriod, planFeedbackPeriod2) -> planFeedbackPeriod)); + if (CollUtil.isEmpty(startMap)) { + startMap = startMap1; + } else { + //按权重求和 + for (Map.Entry entry : startMap1.entrySet()) { + PlanFeedbackPeriod fp = entry.getValue(); + BigDecimal pydz = NumberUtil.mul(fp.getPlanYdz(), child.getWeight()); + BigDecimal aydz = NumberUtil.mul(fp.getActualYdz(), child.getWeight()); + PlanFeedbackPeriod p = startMap.get(fp.getPeriodStart()); + if (p == null) { + p = ObjectUtil.cloneByStream(fp); + startMap.put(fp.getPeriodStart(), p); + } + p.setPlanYdz(NumberUtil.add(p.getPlanYdz(), pydz)); + p.setActualYdz(NumberUtil.add(p.getActualYdz(), aydz)); + } + } } else { - startMap = this.getChildFeedbackPeriodMap(child, planRecords, milestones, planPeriod); - for (Map.Entry entry : startMap.entrySet()) { + startMap1 = this.getChildFeedbackPeriodMap(child, planRecords, milestones, planPeriod); + for (Map.Entry entry : startMap1.entrySet()) { PlanFeedbackPeriod fp = entry.getValue(); - BigDecimal pydz = NumberUtil.mul(fp.getPlanYdz(), child.getWeight(), 2); - BigDecimal aydz = NumberUtil.mul(fp.getActualYdz(), child.getWeight(), 2); + BigDecimal pydz = NumberUtil.mul(fp.getPlanYdz(), child.getWeight()); + BigDecimal aydz = NumberUtil.mul(fp.getActualYdz(), child.getWeight()); PlanFeedbackPeriod p = startMap.get(fp.getPeriodStart()); if (p == null) { p = ObjectUtil.cloneByStream(fp); @@ -416,6 +437,14 @@ public class PlanRecordServiceImpl extends ServiceImpl entry : startMap.entrySet()) { + PlanFeedbackPeriod period = entry.getValue(); + if (BigDecimal.ZERO.compareTo(child.getWeight()) != 0) { + period.setPlanPer(NumberUtil.mul(new BigDecimal("100"), NumberUtil.div(period.getPlanYdz(), child.getWeight(), 2))); + period.setActualPer(NumberUtil.mul(new BigDecimal("100"), NumberUtil.div(period.getActualYdz(), child.getWeight(), 2))); + } + } } return startMap; }