From 30bc81b77398332dc879fd89cdc946c7236c2dba Mon Sep 17 00:00:00 2001 From: YY <1272464982@qq.com> Date: Wed, 18 Jun 2025 13:08:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=84=E4=BB=B7=E6=8E=A5=E5=8F=A3=20?= =?UTF-8?q?=E9=98=B6=E6=AE=B5=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BizSupplierManageApplication.java | 2 + .../base/constant/EvaluateTaskConstant.java | 12 ++ .../base/constant/SupplierUserConstant.java | 11 ++ .../CoscoEvaluateTaskController.java | 2 + .../CoscoEvaluateTaskSupplierController.java | 10 ++ ...scoEvaluateTaskSupplierUserController.java | 20 ++- .../controller/ScheduledTasksController.java | 21 +++ .../dao/CoscoEvaluateScoringMapper.java | 13 ++ .../dao/CoscoEvaluateTaskMapper.java | 8 ++ .../dao/CoscoEvaluateTaskSupplierMapper.java | 14 ++ .../CoscoEvaluateTaskSupplierUserMapper.java | 6 + .../dao/mapper/CoscoEvaluateScoringMapper.xml | 13 ++ .../dao/mapper/CoscoEvaluateTaskMapper.xml | 40 ++++-- .../CoscoEvaluateTaskSupplierMapper.xml | 39 +++++- .../CoscoEvaluateTaskSupplierUserMapper.xml | 5 + .../entity/CoscoEvaluateTaskSupplier.java | 7 +- .../service/ICoscoEvaluateTaskService.java | 1 + .../ICoscoEvaluateTaskSupplierService.java | 2 + ...ICoscoEvaluateTaskSupplierUserService.java | 4 + .../service/ScheduledTasksService.java | 6 + .../impl/CoscoEvaluateTaskServiceImpl.java | 23 +++- .../CoscoEvaluateTaskSupplierServiceImpl.java | 7 + ...coEvaluateTaskSupplierUserServiceImpl.java | 30 ++++- .../impl/ScheduledTasksServiceImpl.java | 126 ++++++++++++++++++ .../supplier/coscoEvaluate/vo/AddScoreVo.java | 20 +++ .../vo/CalculateAndObtainScoresVo.java | 29 ++++ .../supplier/coscoEvaluate/vo/ScoreVo.java | 22 +++ .../coscoEvaluate/vo/SupplierDimensionVo.java | 9 ++ .../dao/mapper/CoscoSupplierBaseMapper.xml | 4 +- 29 files changed, 477 insertions(+), 29 deletions(-) create mode 100644 src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/constant/EvaluateTaskConstant.java create mode 100644 src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/constant/SupplierUserConstant.java create mode 100644 src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/ScheduledTasksController.java create mode 100644 src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ScheduledTasksService.java create mode 100644 src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/ScheduledTasksServiceImpl.java create mode 100644 src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/AddScoreVo.java create mode 100644 src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/CalculateAndObtainScoresVo.java create mode 100644 src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/ScoreVo.java diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/BizSupplierManageApplication.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/BizSupplierManageApplication.java index 32e024c..10ece7e 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/BizSupplierManageApplication.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/BizSupplierManageApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; +import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, @@ -15,6 +16,7 @@ import org.springframework.context.annotation.ComponentScan; @EnableFeignClients @ComponentScan("com.chinaunicom.mall.ebtp.common.*,com.chinaunicom.zyhy.ebtp.*") @MapperScan({"com.chinaunicom.zyhy.ebtp.supplier.**.dao"}) +@EnableScheduling public class BizSupplierManageApplication { public static void main(String[] args) { diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/constant/EvaluateTaskConstant.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/constant/EvaluateTaskConstant.java new file mode 100644 index 0000000..777ff88 --- /dev/null +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/constant/EvaluateTaskConstant.java @@ -0,0 +1,12 @@ +package com.chinaunicom.zyhy.ebtp.supplier.base.constant; + +public interface EvaluateTaskConstant { + /** + * 评价结束状态 + */ + public static final String EVALUATE_TASK_STATUS_END="2"; + /** + * 开启权重 + */ + public static final Long EVALUATE_TASK_WEIGHT_STATUS_YD = 1L; +} diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/constant/SupplierUserConstant.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/constant/SupplierUserConstant.java new file mode 100644 index 0000000..46f03ca --- /dev/null +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/constant/SupplierUserConstant.java @@ -0,0 +1,11 @@ +package com.chinaunicom.zyhy.ebtp.supplier.base.constant; + +import lombok.Data; + + +public interface SupplierUserConstant { + /** + * 打分状态 已打分 + */ + public static final Long SCORE_STATUS_YD=1L; +} diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/CoscoEvaluateTaskController.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/CoscoEvaluateTaskController.java index 10440f8..8e834c8 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/CoscoEvaluateTaskController.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/CoscoEvaluateTaskController.java @@ -91,4 +91,6 @@ public class CoscoEvaluateTaskController extends BaseController { return BaseResponse.success(coscoEvaluateTaskService.addTask(addCoscoEvaluateTaskVo)); } + + } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/CoscoEvaluateTaskSupplierController.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/CoscoEvaluateTaskSupplierController.java index 936c203..bf085be 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/CoscoEvaluateTaskSupplierController.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/CoscoEvaluateTaskSupplierController.java @@ -7,6 +7,7 @@ import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.CoscoEvaluateTask import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.service.ICoscoEvaluateTaskSupplierService; import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.CoscoEvaluateTaskListVo; import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.SupplierDimensionVo; +import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -25,6 +26,15 @@ public class CoscoEvaluateTaskSupplierController extends BaseController { private ICoscoEvaluateTaskSupplierService coscoEvaluateTaskSupplierService; + /** + * 根据任务id查询供应商评价列表 + */ + @PostMapping("/getPage") + public BaseResponse> getPage(@ApiParam(value = "对象数据", required = true) + @RequestBody CoscoEvaluateTaskSupplier taskListVo) { + return BaseResponse.success(coscoEvaluateTaskSupplierService.getPage(taskListVo)); + } + /** * 获取【供应商评价_评价任务关联供应商表】详细信息 diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/CoscoEvaluateTaskSupplierUserController.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/CoscoEvaluateTaskSupplierUserController.java index a4a8ac4..e817e2c 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/CoscoEvaluateTaskSupplierUserController.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/CoscoEvaluateTaskSupplierUserController.java @@ -2,8 +2,10 @@ package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.controller; import com.chinaunicom.mall.ebtp.common.base.controller.BaseController; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.zyhy.ebtp.supplier.base.constant.SupplierUserConstant; import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.CoscoEvaluateTaskSupplierUser; import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.service.ICoscoEvaluateTaskSupplierUserService; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.AddScoreVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -63,6 +65,22 @@ public class CoscoEvaluateTaskSupplierUserController extends BaseController { return BaseResponse.success(coscoEvaluateTaskSupplierUserService.getIndicator(id)); } - + /** + * 获取打分结果 + */ + @PostMapping("/getScore") + public BaseResponse getScore(@RequestBody AddScoreVo vo) { + //判断人员是否已经打分 + CoscoEvaluateTaskSupplierUser coscoEvaluateTaskSupplierUser = coscoEvaluateTaskSupplierUserService.selectCoscoEvaluateTaskSupplierUserById(vo.getId()); + if(coscoEvaluateTaskSupplierUser.getReviewStatus().equals(SupplierUserConstant.SCORE_STATUS_YD)){ + return BaseResponse.fail("当前人员已经打分,无法修改"); + } + if(vo.getScoreVoList()==null||vo.getScoreVoList().size()==0){ + return BaseResponse.fail("打分项信息为空"); + } + //打分项信息 + coscoEvaluateTaskSupplierUserService.getScore(vo); + return BaseResponse.success(); + } } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/ScheduledTasksController.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/ScheduledTasksController.java new file mode 100644 index 0000000..188316b --- /dev/null +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/controller/ScheduledTasksController.java @@ -0,0 +1,21 @@ +package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.controller; + +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.service.ScheduledTasksService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/coscoEvaluate/scheduledTasks") +public class ScheduledTasksController { + + @Autowired + private ScheduledTasksService scheduledTasksService; + + @RequestMapping() + public void checkTask() { + scheduledTasksService.closeTask(); + } + + +} diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateScoringMapper.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateScoringMapper.java index c937048..7e18809 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateScoringMapper.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateScoringMapper.java @@ -1,7 +1,9 @@ package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.dao; import java.util.List; + import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.CoscoEvaluateScoring; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.CalculateAndObtainScoresVo; import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.TaskSubIndicatorVo; /** @@ -29,6 +31,7 @@ public interface CoscoEvaluateScoringMapper { /** * 批量添加 + * * @param list */ void batchCoscoEvaluateScoring(List list); @@ -67,8 +70,18 @@ public interface CoscoEvaluateScoringMapper { /** * 列表id获取 + * * @param id * @return */ List selectTaskSubIndicatorVo(String id); + + /** + * 获取计算分数 + * + * @param id + * @return + */ + List selectCalculateAndObtainScores(String id); + } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateTaskMapper.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateTaskMapper.java index fa96553..395a19d 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateTaskMapper.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateTaskMapper.java @@ -66,4 +66,12 @@ public interface CoscoEvaluateTaskMapper { IPage selectMyPage(IPage p, @Param("vo") CoscoEvaluateTaskListVo vo); IPage selectTaskPage(IPage p,@Param("vo") TaskPageVo vo); + + void updateNOTask(); + + /** + * 查询需要关闭的评价主表信息 + * @return + */ + List selectCloseTask(); } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateTaskSupplierMapper.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateTaskSupplierMapper.java index e93f5e3..2ec5fde 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateTaskSupplierMapper.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateTaskSupplierMapper.java @@ -75,4 +75,18 @@ public interface CoscoEvaluateTaskSupplierMapper { * @return */ IPage selectSupplierDimensionPage(IPage p,@Param("vo") SupplierDimensionVo vo); + + /** + * 评价结果供应商评价列表查询 + * @param p + * @param vo + * @return + */ + IPage getPage(IPage p,@Param("vo") CoscoEvaluateTaskSupplier vo); + + /** + * 根据taskId删除 + * @param id + */ + void deleteByTaskId(String id); } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateTaskSupplierUserMapper.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateTaskSupplierUserMapper.java index ddff03c..1d28ac1 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateTaskSupplierUserMapper.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/CoscoEvaluateTaskSupplierUserMapper.java @@ -68,4 +68,10 @@ public interface CoscoEvaluateTaskSupplierUserMapper { * @return */ List selectUserNdTypeList(String id); + + /** + * 根据任务id删除信息 + * @param id + */ + void deleteByTaskId(String id); } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateScoringMapper.xml b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateScoringMapper.xml index 4416070..118e651 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateScoringMapper.xml +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateScoringMapper.xml @@ -170,4 +170,17 @@ where ces.evaluate_task_supplier_user_id = #{id} and ces.del_flag = 'normal' + + + diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateTaskMapper.xml b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateTaskMapper.xml index 3e2458a..10776ef 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateTaskMapper.xml +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateTaskMapper.xml @@ -50,6 +50,12 @@ from cosco_evaluate_task + + + update cosco_evaluate_task + set status='1' + where status = '0' + and start_time <= now() + + + select cet.id, - cet.evaluate_theme as evaluateTheme, - '单位' as tenantName, - cet.start_time as startTime, - cet.end_time as endTime, - cet.status, - case - when cet.status = 0 then '待评价' - when cet.status = 1 then '评价中' - when cet.status = 2 then '已结束' end as statusName + cet.evaluate_theme as evaluateTheme, + '单位' as tenantName, + cet.start_time as startTime, + cet.end_time as endTime, + cet.status, + case + when cet.status = 0 then '待评价' + when cet.status = 1 then '评价中' + when cet.status = 2 then '已结束' end as statusName from cosco_evaluate_task cet @@ -289,4 +303,6 @@ + + diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateTaskSupplierMapper.xml b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateTaskSupplierMapper.xml index 585a542..6b5f138 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateTaskSupplierMapper.xml +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateTaskSupplierMapper.xml @@ -34,6 +34,31 @@ from cosco_evaluate_task_supplier + + + + + update cosco_evaluate_task_supplier_user set del_flag = 'deleted' where evaluate_task_id = #{taskId} + diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateTaskSupplierUserMapper.xml b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateTaskSupplierUserMapper.xml index 7f403cd..b15cfb9 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateTaskSupplierUserMapper.xml +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/dao/mapper/CoscoEvaluateTaskSupplierUserMapper.xml @@ -185,4 +185,9 @@ and cetsu.del_flag = 'normal' group by cetsu.user_id, ces.indicator_nd_id, cetsu.type + + update cosco_evaluate_task_supplier_user + set del_flag = 'deleted' + where evaluate_task_id = #{taskId} + diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/entity/CoscoEvaluateTaskSupplier.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/entity/CoscoEvaluateTaskSupplier.java index dc6a02e..4c58375 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/entity/CoscoEvaluateTaskSupplier.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/entity/CoscoEvaluateTaskSupplier.java @@ -4,9 +4,11 @@ import java.math.BigDecimal; import java.util.Date; import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity; +import com.chinaunicom.mall.ebtp.common.base.entity.BasePageRequest; import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -42,7 +44,7 @@ public class CoscoEvaluateTaskSupplier extends BaseEntity { /** * 年审最终结果(评价等级A、B、C) */ - private Long reviewResult; + private String reviewResult; /** * 删除标识(normal.正常、deleted.已删除) @@ -52,5 +54,6 @@ public class CoscoEvaluateTaskSupplier extends BaseEntity { private Date createTime; private Date updateTime; - + @ApiModelProperty(value = "分页对象信息") + private BasePageRequest basePageRequest; } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ICoscoEvaluateTaskService.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ICoscoEvaluateTaskService.java index ad0219d..4ca4e7f 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ICoscoEvaluateTaskService.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ICoscoEvaluateTaskService.java @@ -85,4 +85,5 @@ public interface ICoscoEvaluateTaskService { * @return */ IPage getTaskPage(TaskPageVo taskListVo); + } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ICoscoEvaluateTaskSupplierService.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ICoscoEvaluateTaskSupplierService.java index 959da77..b119522 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ICoscoEvaluateTaskSupplierService.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ICoscoEvaluateTaskSupplierService.java @@ -67,4 +67,6 @@ public interface ICoscoEvaluateTaskSupplierService { * @return */ IPage getSupplierDimension(SupplierDimensionVo vo); + + IPage getPage(CoscoEvaluateTaskSupplier taskListVo); } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ICoscoEvaluateTaskSupplierUserService.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ICoscoEvaluateTaskSupplierUserService.java index 723c500..b995c79 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ICoscoEvaluateTaskSupplierUserService.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ICoscoEvaluateTaskSupplierUserService.java @@ -2,6 +2,8 @@ package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.service; import java.util.List; import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.CoscoEvaluateTaskSupplierUser; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.AddScoreVo; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.ScoreVo; import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.TaskIndicatorBaseVo; import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.TaskIndicatorVo; @@ -61,4 +63,6 @@ public interface ICoscoEvaluateTaskSupplierUserService { public int deleteCoscoEvaluateTaskSupplierUserById(String id); TaskIndicatorBaseVo getIndicator(String id); + + void getScore(AddScoreVo vo); } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ScheduledTasksService.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ScheduledTasksService.java new file mode 100644 index 0000000..4bf7016 --- /dev/null +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/ScheduledTasksService.java @@ -0,0 +1,6 @@ +package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.service; + +public interface ScheduledTasksService { + + void closeTask(); +} diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/CoscoEvaluateTaskServiceImpl.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/CoscoEvaluateTaskServiceImpl.java index a506f69..45327e9 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/CoscoEvaluateTaskServiceImpl.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/CoscoEvaluateTaskServiceImpl.java @@ -202,12 +202,14 @@ public class CoscoEvaluateTaskServiceImpl implements ICoscoEvaluateTaskService { public int addTask(AddCoscoEvaluateTaskVo addCoscoEvaluateTaskVo) { try { //添加主表信息 - addCoscoEvaluateTaskVo.setCreateTime(new Date()); - addCoscoEvaluateTaskVo.setUpdateTime(new Date()); - addCoscoEvaluateTaskVo.setId(PropertyUtils.getSnowflakeId()); - addCoscoEvaluateTaskVo.setCreateBy("admin"); - addCoscoEvaluateTaskVo.setUpdateBy("admin"); + if(addCoscoEvaluateTaskVo.getId()==null){ + addCoscoEvaluateTaskVo(addCoscoEvaluateTaskVo); + }else{ + updateCoscoEvaluateTask(addCoscoEvaluateTaskVo); + coscoEvaluateTaskSupplierMapper.deleteByTaskId(addCoscoEvaluateTaskVo.getId()); + coscoEvaluateTaskSupplierUserMapper.deleteByTaskId(addCoscoEvaluateTaskVo.getId()); + } //供应商信息添加 List supplierIds1 = addCoscoEvaluateTaskVo.getSupplierIds(); Map> supplierUserIds = new HashMap<>(); @@ -280,7 +282,7 @@ public class CoscoEvaluateTaskServiceImpl implements ICoscoEvaluateTaskService { }); }); }); - coscoEvaluateTaskMapper.insertCoscoEvaluateTask(addCoscoEvaluateTaskVo); + coscoEvaluateTaskSupplierMapper.batchCoscoEvaluateTaskSupplier(list); coscoEvaluateScoringMapper.batchCoscoEvaluateScoring(coscoEvaluateScorings); coscoEvaluateTaskSupplierUserMapper.batchCoscoEvaluateTaskSupplierUser(coscoEvaluateTaskSupplierUsers); @@ -292,6 +294,15 @@ public class CoscoEvaluateTaskServiceImpl implements ICoscoEvaluateTaskService { return 1; } + private void addCoscoEvaluateTaskVo(AddCoscoEvaluateTaskVo addCoscoEvaluateTaskVo) { + addCoscoEvaluateTaskVo.setCreateTime(new Date()); + addCoscoEvaluateTaskVo.setUpdateTime(new Date()); + addCoscoEvaluateTaskVo.setId(PropertyUtils.getSnowflakeId()); + addCoscoEvaluateTaskVo.setCreateBy("admin"); + addCoscoEvaluateTaskVo.setUpdateBy("admin"); + coscoEvaluateTaskMapper.insertCoscoEvaluateTask(addCoscoEvaluateTaskVo); + } + public void adduserMap(Map> userMap, AdduserIndicatorVo vo, List coscoEvaluateTemplateIndicatorNds) { Map map = new HashMap<>(); diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/CoscoEvaluateTaskSupplierServiceImpl.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/CoscoEvaluateTaskSupplierServiceImpl.java index 3b5ed12..5c0aedd 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/CoscoEvaluateTaskSupplierServiceImpl.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/CoscoEvaluateTaskSupplierServiceImpl.java @@ -103,4 +103,11 @@ public class CoscoEvaluateTaskSupplierServiceImpl implements ICoscoEvaluateTaskS vo.getBasePageRequest().getPageSize()); return coscoEvaluateTaskSupplierMapper.selectSupplierDimensionPage(p, vo); } + + @Override + public IPage getPage(CoscoEvaluateTaskSupplier taskListVo) { + IPage p = new Page<>(taskListVo.getBasePageRequest().getPageNo(), + taskListVo.getBasePageRequest().getPageSize()); + return coscoEvaluateTaskSupplierMapper.getPage(p, taskListVo); + } } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/CoscoEvaluateTaskSupplierUserServiceImpl.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/CoscoEvaluateTaskSupplierUserServiceImpl.java index 9117ad7..6b80d59 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/CoscoEvaluateTaskSupplierUserServiceImpl.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/CoscoEvaluateTaskSupplierUserServiceImpl.java @@ -1,17 +1,18 @@ package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.service.impl; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; +import com.chinaunicom.zyhy.ebtp.supplier.base.constant.SupplierUserConstant; import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.dao.*; import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.*; -import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.TaskIndicatorBaseVo; -import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.TaskIndicatorVo; -import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.TaskSubIndicatorVo; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.*; import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.dao.mapper.CoscoSupplierBaseMapper; import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.vo.BaseCategoryNameVo; +import org.checkerframework.checker.units.qual.C; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.service.ICoscoEvaluateTaskSupplierUserService; @@ -134,4 +135,27 @@ public class CoscoEvaluateTaskSupplierUserServiceImpl implements ICoscoEvaluateT taskIndicatorBaseVo.setTaskIndicatorVo(taskIndicatorVo); return taskIndicatorBaseVo; } + + @Override + public void getScore(AddScoreVo vo) { + int i =0; + List scoreVoList = vo.getScoreVoList(); + for (ScoreVo voVo : scoreVoList){ + if(voVo.getScore()!=null && !voVo.getScore().equals("")){ + CoscoEvaluateScoring scoring=new CoscoEvaluateScoring(); + scoring.setId(voVo.getId()); + scoring.setScore(new BigDecimal(voVo.getScore())); + scoring.setRemark(voVo.getRemark()); + coscoEvaluateScoringMapper.updateCoscoEvaluateScoring(scoring); + i++; + } + } + if(i>0){ + CoscoEvaluateTaskSupplierUser user=new CoscoEvaluateTaskSupplierUser(); + user.setId(vo.getId()); + user.setReviewStatus(SupplierUserConstant.SCORE_STATUS_YD); + user.setReviewTime(new Date()); + coscoEvaluateTaskSupplierUserMapper.updateCoscoEvaluateTaskSupplierUser(user); + } + } } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/ScheduledTasksServiceImpl.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/ScheduledTasksServiceImpl.java new file mode 100644 index 0000000..5aadbae --- /dev/null +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/service/impl/ScheduledTasksServiceImpl.java @@ -0,0 +1,126 @@ +package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.service.impl; + +import com.chinaunicom.zyhy.ebtp.supplier.base.constant.EvaluateTaskConstant; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.dao.CoscoEvaluateLevelMapper; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.dao.CoscoEvaluateScoringMapper; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.dao.CoscoEvaluateTaskMapper; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.dao.CoscoEvaluateTaskSupplierMapper; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.CoscoEvaluateLevel; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.CoscoEvaluateTask; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.CoscoEvaluateTaskSupplier; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.service.ScheduledTasksService; +import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.CalculateAndObtainScoresVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class ScheduledTasksServiceImpl implements ScheduledTasksService { + + @Autowired + private CoscoEvaluateTaskMapper coscoEvaluateTaskMapper; + @Autowired + private CoscoEvaluateTaskSupplierMapper coscoEvaluateTaskSupplierMapper; + @Autowired + private CoscoEvaluateScoringMapper coscoEvaluateScoringMapper; + @Autowired + private CoscoEvaluateLevelMapper coscoEvaluateLevelMapper; + + /** + * 定时任务查看待开启的任务。如果时间小于当前时间那么开启任务 + */ + @Scheduled(cron = "0 0 1 * * ?") + public void checkTask() { + //查询小于当前时间 未开启任务 + coscoEvaluateTaskMapper.updateNOTask(); + } + + /** + * 定时任务查看待关闭的任务。如果任务结束时间小于当前时间那么关闭任务 + */ + @Scheduled(cron = "0 0 2 * * ?") + @Override + public void closeTask() { + //查询小于当前时间 未关闭任务 + //获取当前时间指标信息 + List coscoEvaluateTasks = coscoEvaluateTaskMapper.selectCloseTask(); + List coscoEvaluateLevels = coscoEvaluateLevelMapper.selectCoscoEvaluateLevelList(new CoscoEvaluateLevel()); + for (CoscoEvaluateTask coscoEvaluateTask : coscoEvaluateTasks) { + //查询当前任务的添加的供应商 + CoscoEvaluateTaskSupplier suppliers = new CoscoEvaluateTaskSupplier(); + suppliers.setEvaluateTaskId(coscoEvaluateTask.getId()); + List coscoEvaluateTaskSuppliers = coscoEvaluateTaskSupplierMapper.selectCoscoEvaluateTaskSupplierList(suppliers); + //查询当前任务的人员信息及人员评价情况 + List calculateAndObtainScoresVos = coscoEvaluateScoringMapper.selectCalculateAndObtainScores(coscoEvaluateTask.getId()); + coscoEvaluateTaskSuppliers.forEach(coscoEvaluateTaskSupplier -> { + //计算总分数 + int totalScore = getCalculateScore(coscoEvaluateTask, calculateAndObtainScoresVos, coscoEvaluateTaskSupplier); + coscoEvaluateTaskSupplier.setReviewScore(BigDecimal.valueOf(totalScore)); + //根据总分数获取供应商评价结果 + coscoEvaluateTaskSupplier.setReviewResult(getReviewResult(totalScore, coscoEvaluateLevels)); + coscoEvaluateTaskSupplierMapper.updateCoscoEvaluateTaskSupplier(coscoEvaluateTaskSupplier); + }); + coscoEvaluateTask.setStatus(EvaluateTaskConstant.EVALUATE_TASK_STATUS_END); + coscoEvaluateTaskMapper.updateCoscoEvaluateTask(coscoEvaluateTask); + } + } + + private String getReviewResult(int totalScore, List coscoEvaluateLevels) { + return coscoEvaluateLevels.stream() + .filter(coscoEvaluateLevel -> totalScore >= coscoEvaluateLevel.getBeginValue() && totalScore <= coscoEvaluateLevel.getEndValue()) + .map(CoscoEvaluateLevel::getId) + .findFirst() + .orElse(null); + } + + private static int getCalculateScore(CoscoEvaluateTask coscoEvaluateTask, List calculateAndObtainScoresVos, CoscoEvaluateTaskSupplier coscoEvaluateTaskSupplier) { + //查询当前供应商的评价分数 + List suppliList = calculateAndObtainScoresVos.stream().filter(vo -> vo.getSupplierId().equals(coscoEvaluateTaskSupplier.getSupplierId())).collect(Collectors.toList()); + //根据指标id进行分组 + Map> groupedByIndicator = suppliList.stream() + .collect(Collectors.groupingBy(CalculateAndObtainScoresVo::getIndicatorNdId)); + //开始计算评价结果 + //根据评价结果获取评价总分数 + int totalScore = 0; + for (String id : groupedByIndicator.keySet()) { + List indicatorList = groupedByIndicator.get(id); + if (coscoEvaluateTask.getWeightStatus().equals(EvaluateTaskConstant.EVALUATE_TASK_WEIGHT_STATUS_YD)) { + //获取权重部门打分项信息 + List weightDeptList = indicatorList.stream() + .filter(vo -> vo.getDeptId().equals(coscoEvaluateTask.getWeightDept())) + .collect(Collectors.toList()); + //获取非权重部门打分项信息 + List noWeightDeptList = indicatorList.stream().filter(vo -> !vo.getDeptId().equals(coscoEvaluateTask.getWeightDept())).collect(Collectors.toList()); + int weightScore = 0; + int noWeightScore = 0; + BigDecimal weightValue = coscoEvaluateTask.getWeightValue(); + //权重部门计算分数 + if (weightDeptList.size() > 0) { + weightScore = weightDeptList.stream() + .mapToInt(CalculateAndObtainScoresVo::getScore) + .sum(); + weightScore = (weightScore / weightDeptList.size()) * weightValue.intValue() / 100; + } + //非权重计算分数 + if (noWeightDeptList.size() > 0) { + noWeightScore = noWeightDeptList.stream() + .mapToInt(CalculateAndObtainScoresVo::getScore) + .sum(); + noWeightScore = (noWeightScore / noWeightDeptList.size()) * (100 - weightValue.intValue()) / 100; + } + totalScore += weightScore + noWeightScore; + } else { + int sScore = indicatorList.stream() + .mapToInt(CalculateAndObtainScoresVo::getScore) + .sum(); + totalScore += sScore / indicatorList.size(); + } + } + return totalScore; + } +} diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/AddScoreVo.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/AddScoreVo.java new file mode 100644 index 0000000..86fff91 --- /dev/null +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/AddScoreVo.java @@ -0,0 +1,20 @@ +package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class AddScoreVo { + /** + * 打分主键 + */ + private String id; + + /** + * 打分项 + */ + List scoreVoList; + + +} diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/CalculateAndObtainScoresVo.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/CalculateAndObtainScoresVo.java new file mode 100644 index 0000000..ac8c3bb --- /dev/null +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/CalculateAndObtainScoresVo.java @@ -0,0 +1,29 @@ +package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo; + +import lombok.Data; + +@Data +public class CalculateAndObtainScoresVo { + /** + * 用户id + */ + private String userId; + /** + * 指标id + */ + private String indicatorNdId; + /** + * 分数 + */ + private Integer score; + /** + * 用户部门id + */ + private String deptId; + /** + * 供应商id + */ + private String supplierId; + + +} diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/ScoreVo.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/ScoreVo.java new file mode 100644 index 0000000..7e4a398 --- /dev/null +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/ScoreVo.java @@ -0,0 +1,22 @@ +package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo; + +import lombok.Data; + +@Data +public class ScoreVo { + /** + * 打分项id + */ + private String id; + /** + * 打分 + */ + private String score; + /** + * 备注 + */ + private String remark; + + + +} diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/SupplierDimensionVo.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/SupplierDimensionVo.java index e676afc..5ebb0e4 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/SupplierDimensionVo.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscoEvaluate/vo/SupplierDimensionVo.java @@ -56,6 +56,15 @@ public class SupplierDimensionVo { */ private String taskId; + /** + * 供应商id + */ + private String supplierId; + /** + * 分数 + */ + private String suscore; + @ApiModelProperty(value = "分页对象信息") private BasePageRequest basePageRequest; } diff --git a/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoSupplierBaseMapper.xml b/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoSupplierBaseMapper.xml index 23e02a1..0cea698 100644 --- a/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoSupplierBaseMapper.xml +++ b/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoSupplierBaseMapper.xml @@ -517,8 +517,8 @@ resultType="com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.vo.BaseCategoryNameVo"> select csb.id,csb.name,GROUP_CONCAT(DISTINCT cc.category_name SEPARATOR ', ') AS categoryName from cosco_supplier_base csb - join cosco_access_supplier_category casc on csb.id=casc.supplier_id and casc.del_flag='normal' - join cosco_category cc on cc.id= casc.category_id + left join cosco_access_supplier_category casc on csb.id=casc.supplier_id and casc.del_flag='normal' + left join cosco_category cc on cc.id= casc.category_id where csb.id=#{id} group by csb.id