评价接口 阶段完成
This commit is contained in:
@ -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) {
|
||||
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -91,4 +91,6 @@ public class CoscoEvaluateTaskController extends BaseController {
|
||||
return BaseResponse.success(coscoEvaluateTaskService.addTask(addCoscoEvaluateTaskVo));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -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<IPage<CoscoEvaluateTaskSupplier>> getPage(@ApiParam(value = "对象数据", required = true)
|
||||
@RequestBody CoscoEvaluateTaskSupplier taskListVo) {
|
||||
return BaseResponse.success(coscoEvaluateTaskSupplierService.getPage(taskListVo));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取【供应商评价_评价任务关联供应商表】详细信息
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -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<CoscoEvaluateScoring> list);
|
||||
@ -67,8 +70,18 @@ public interface CoscoEvaluateScoringMapper {
|
||||
|
||||
/**
|
||||
* 列表id获取
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
List<TaskSubIndicatorVo> selectTaskSubIndicatorVo(String id);
|
||||
|
||||
/**
|
||||
* 获取计算分数
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
List<CalculateAndObtainScoresVo> selectCalculateAndObtainScores(String id);
|
||||
|
||||
}
|
||||
|
@ -66,4 +66,12 @@ public interface CoscoEvaluateTaskMapper {
|
||||
IPage<CoscoEvaluateTaskListVo> selectMyPage(IPage<CoscoEvaluateTaskListVo> p, @Param("vo") CoscoEvaluateTaskListVo vo);
|
||||
|
||||
IPage<TaskPageVo> selectTaskPage(IPage<CoscoEvaluateTaskListVo> p,@Param("vo") TaskPageVo vo);
|
||||
|
||||
void updateNOTask();
|
||||
|
||||
/**
|
||||
* 查询需要关闭的评价主表信息
|
||||
* @return
|
||||
*/
|
||||
List<CoscoEvaluateTask> selectCloseTask();
|
||||
}
|
||||
|
@ -75,4 +75,18 @@ public interface CoscoEvaluateTaskSupplierMapper {
|
||||
* @return
|
||||
*/
|
||||
IPage<SupplierDimensionVo> selectSupplierDimensionPage(IPage<SupplierDimensionVo> p,@Param("vo") SupplierDimensionVo vo);
|
||||
|
||||
/**
|
||||
* 评价结果供应商评价列表查询
|
||||
* @param p
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
IPage<CoscoEvaluateTaskSupplier> getPage(IPage<SupplierDimensionVo> p,@Param("vo") CoscoEvaluateTaskSupplier vo);
|
||||
|
||||
/**
|
||||
* 根据taskId删除
|
||||
* @param id
|
||||
*/
|
||||
void deleteByTaskId(String id);
|
||||
}
|
||||
|
@ -68,4 +68,10 @@ public interface CoscoEvaluateTaskSupplierUserMapper {
|
||||
* @return
|
||||
*/
|
||||
List<UserNdTypeVo> selectUserNdTypeList(String id);
|
||||
|
||||
/**
|
||||
* 根据任务id删除信息
|
||||
* @param id
|
||||
*/
|
||||
void deleteByTaskId(String id);
|
||||
}
|
||||
|
@ -170,4 +170,17 @@
|
||||
where ces.evaluate_task_supplier_user_id = #{id}
|
||||
and ces.del_flag = 'normal'
|
||||
</select>
|
||||
|
||||
<select id="selectCalculateAndObtainScores" parameterType="string"
|
||||
resultType="com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.CalculateAndObtainScoresVo">
|
||||
select cetsu.user_id, ces.score, ces.indicator_nd_id, '1' as dept_id, cets.supplier_id
|
||||
from cosco_evaluate_scoring ces
|
||||
join cosco_evaluate_task_supplier_user cetsu
|
||||
on cetsu.id = ces.evaluate_task_supplier_user_id and cetsu.del_flag = 'normal'
|
||||
join cosco_evaluate_task_supplier cets
|
||||
on cets.evaluate_task_id = cetsu.evaluate_task_id and cets.supplier_id = cetsu.supplier_id
|
||||
where ces.score is not null
|
||||
and cetsu.evaluate_task_id = #{taskId}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
@ -50,6 +50,12 @@
|
||||
from cosco_evaluate_task
|
||||
</sql>
|
||||
|
||||
<select id="selectCloseTask" resultMap="CoscoEvaluateTaskResult">
|
||||
<include refid="selectCoscoEvaluateTaskVo"/>
|
||||
where status = '1'
|
||||
and end_time <= now()
|
||||
</select>
|
||||
|
||||
<select id="selectCoscoEvaluateTaskList"
|
||||
parameterType="com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.CoscoEvaluateTask"
|
||||
resultMap="CoscoEvaluateTaskResult">
|
||||
@ -237,13 +243,21 @@
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<select id="updateNOTask" resultMap="CoscoEvaluateTaskResult">
|
||||
update cosco_evaluate_task
|
||||
set status='1'
|
||||
where status = '0'
|
||||
and start_time <= now()
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectTaskPage" parameterType="map"
|
||||
resultType="com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.CoscoEvaluateTaskListVo">
|
||||
select cet.id,
|
||||
cet.evaluate_theme as evaluateTheme,
|
||||
'单位' as tenantName,
|
||||
cet.start_time as startTime,
|
||||
cet.end_time as endTime,
|
||||
'单位' as tenantName,
|
||||
cet.start_time as startTime,
|
||||
cet.end_time as endTime,
|
||||
cet.status,
|
||||
case
|
||||
when cet.status = 0 then '待评价'
|
||||
@ -268,15 +282,15 @@
|
||||
<select id="selectMyPage" parameterType="map"
|
||||
resultType="com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.CoscoEvaluateTaskListVo">
|
||||
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
|
||||
<where>
|
||||
@ -289,4 +303,6 @@
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
@ -34,6 +34,31 @@
|
||||
from cosco_evaluate_task_supplier
|
||||
</sql>
|
||||
|
||||
|
||||
<select id="getPage"
|
||||
parameterType="map"
|
||||
resultMap="CoscoEvaluateTaskSupplierResult">
|
||||
<include refid="selectCoscoEvaluateTaskSupplierVo"/>
|
||||
<where>
|
||||
and del_flag = 'normal'
|
||||
<if test="vo.evaluateTaskId != null and vo.evaluateTaskId != ''">
|
||||
and evaluate_task_id = #{vo.evaluateTaskId}
|
||||
</if>
|
||||
<if test="vo.supplierId != null and vo.supplierId != ''">
|
||||
and supplier_id = #{vo.supplierId}
|
||||
</if>
|
||||
<if test="vo.reviewScore != null ">
|
||||
and review_score = #{vo.reviewScore}
|
||||
</if>
|
||||
<if test="vo.reviewResult != null ">
|
||||
and review_result = #{vo.reviewResult}
|
||||
</if>
|
||||
<if test="vo.lastUpdateTime != null ">
|
||||
and last_update_time = #{vo.lastUpdateTime}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectCoscoEvaluateTaskSupplierList"
|
||||
parameterType="com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.CoscoEvaluateTaskSupplier"
|
||||
resultMap="CoscoEvaluateTaskSupplierResult">
|
||||
@ -171,20 +196,28 @@
|
||||
when cet.status =1 then '进行中'
|
||||
when cet.status =2 then '已结束' end as statusName,
|
||||
case when cetsu.review_status =0 then '未提交'
|
||||
when cetsu.review_status=1 then '已提交' end as reviewStatusName
|
||||
when cetsu.review_status=1 then '已提交' end as reviewStatusName,
|
||||
(select sum(score)
|
||||
from cosco_evaluate_scoring where del_flag='normal'
|
||||
and evaluate_task_supplier_user_id=cetsu.id)
|
||||
as suscore
|
||||
|
||||
FROM
|
||||
cosco_evaluate_task_supplier_user cetsu
|
||||
LEFT JOIN cosco_evaluate_task cet ON cetsu.evaluate_task_id = cet.id
|
||||
LEFT JOIN cosco_evaluate_task_supplier cets ON cets.evaluate_task_id = cet.id and cetsu.supplier_id=
|
||||
cets.supplier_id
|
||||
LEFT JOIN cosco_supplier_base csb ON cets.supplier_id = csb.id
|
||||
cets.supplier_id and cets.del_flag='normal'
|
||||
LEFT JOIN cosco_supplier_base csb ON cets.supplier_id = csb.id and csb.del_flag='normal'
|
||||
<where>
|
||||
and cetsu.del_flag = 'normal'
|
||||
<if test="vo.userId != null and vo.userId != ''">and cetsu.user_id= #{vo.userId}</if>
|
||||
<if test="vo.taskId!=null and vo.taskId!=null">and cet.id= #{vo.taskId}</if>
|
||||
<if test="vo.supplierId!=null and vo.supplierId!=null">and cets.supplier_id= #{vo.supplierId}</if>
|
||||
</where>
|
||||
|
||||
</select>
|
||||
|
||||
<update id="deleteByTaskId" parameterType="string">
|
||||
update cosco_evaluate_task_supplier_user set del_flag = 'deleted' where evaluate_task_id = #{taskId}
|
||||
</update>
|
||||
</mapper>
|
||||
|
@ -185,4 +185,9 @@
|
||||
and cetsu.del_flag = 'normal'
|
||||
group by cetsu.user_id, ces.indicator_nd_id, cetsu.type
|
||||
</select>
|
||||
<update id="deleteByTaskId">
|
||||
update cosco_evaluate_task_supplier_user
|
||||
set del_flag = 'deleted'
|
||||
where evaluate_task_id = #{taskId}
|
||||
</update>
|
||||
</mapper>
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -85,4 +85,5 @@ public interface ICoscoEvaluateTaskService {
|
||||
* @return
|
||||
*/
|
||||
IPage<TaskPageVo> getTaskPage(TaskPageVo taskListVo);
|
||||
|
||||
}
|
||||
|
@ -67,4 +67,6 @@ public interface ICoscoEvaluateTaskSupplierService {
|
||||
* @return
|
||||
*/
|
||||
IPage<SupplierDimensionVo> getSupplierDimension(SupplierDimensionVo vo);
|
||||
|
||||
IPage<CoscoEvaluateTaskSupplier> getPage(CoscoEvaluateTaskSupplier taskListVo);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -0,0 +1,6 @@
|
||||
package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.service;
|
||||
|
||||
public interface ScheduledTasksService {
|
||||
|
||||
void closeTask();
|
||||
}
|
@ -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<TaskSupplierVo> supplierIds1 = addCoscoEvaluateTaskVo.getSupplierIds();
|
||||
Map<String, List<String>> 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<String, List<String>> userMap, AdduserIndicatorVo vo, List<CoscoEvaluateTemplateIndicatorNd> coscoEvaluateTemplateIndicatorNds) {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
|
@ -103,4 +103,11 @@ public class CoscoEvaluateTaskSupplierServiceImpl implements ICoscoEvaluateTaskS
|
||||
vo.getBasePageRequest().getPageSize());
|
||||
return coscoEvaluateTaskSupplierMapper.selectSupplierDimensionPage(p, vo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<CoscoEvaluateTaskSupplier> getPage(CoscoEvaluateTaskSupplier taskListVo) {
|
||||
IPage<SupplierDimensionVo> p = new Page<>(taskListVo.getBasePageRequest().getPageNo(),
|
||||
taskListVo.getBasePageRequest().getPageSize());
|
||||
return coscoEvaluateTaskSupplierMapper.getPage(p, taskListVo);
|
||||
}
|
||||
}
|
||||
|
@ -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<ScoreVo> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<CoscoEvaluateTask> coscoEvaluateTasks = coscoEvaluateTaskMapper.selectCloseTask();
|
||||
List<CoscoEvaluateLevel> coscoEvaluateLevels = coscoEvaluateLevelMapper.selectCoscoEvaluateLevelList(new CoscoEvaluateLevel());
|
||||
for (CoscoEvaluateTask coscoEvaluateTask : coscoEvaluateTasks) {
|
||||
//查询当前任务的添加的供应商
|
||||
CoscoEvaluateTaskSupplier suppliers = new CoscoEvaluateTaskSupplier();
|
||||
suppliers.setEvaluateTaskId(coscoEvaluateTask.getId());
|
||||
List<CoscoEvaluateTaskSupplier> coscoEvaluateTaskSuppliers = coscoEvaluateTaskSupplierMapper.selectCoscoEvaluateTaskSupplierList(suppliers);
|
||||
//查询当前任务的人员信息及人员评价情况
|
||||
List<CalculateAndObtainScoresVo> 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<CoscoEvaluateLevel> 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<CalculateAndObtainScoresVo> calculateAndObtainScoresVos, CoscoEvaluateTaskSupplier coscoEvaluateTaskSupplier) {
|
||||
//查询当前供应商的评价分数
|
||||
List<CalculateAndObtainScoresVo> suppliList = calculateAndObtainScoresVos.stream().filter(vo -> vo.getSupplierId().equals(coscoEvaluateTaskSupplier.getSupplierId())).collect(Collectors.toList());
|
||||
//根据指标id进行分组
|
||||
Map<String, List<CalculateAndObtainScoresVo>> groupedByIndicator = suppliList.stream()
|
||||
.collect(Collectors.groupingBy(CalculateAndObtainScoresVo::getIndicatorNdId));
|
||||
//开始计算评价结果
|
||||
//根据评价结果获取评价总分数
|
||||
int totalScore = 0;
|
||||
for (String id : groupedByIndicator.keySet()) {
|
||||
List<CalculateAndObtainScoresVo> indicatorList = groupedByIndicator.get(id);
|
||||
if (coscoEvaluateTask.getWeightStatus().equals(EvaluateTaskConstant.EVALUATE_TASK_WEIGHT_STATUS_YD)) {
|
||||
//获取权重部门打分项信息
|
||||
List<CalculateAndObtainScoresVo> weightDeptList = indicatorList.stream()
|
||||
.filter(vo -> vo.getDeptId().equals(coscoEvaluateTask.getWeightDept()))
|
||||
.collect(Collectors.toList());
|
||||
//获取非权重部门打分项信息
|
||||
List<CalculateAndObtainScoresVo> 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;
|
||||
}
|
||||
}
|
@ -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<ScoreVo> scoreVoList;
|
||||
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
|
||||
|
||||
}
|
@ -56,6 +56,15 @@ public class SupplierDimensionVo {
|
||||
*/
|
||||
private String taskId;
|
||||
|
||||
/**
|
||||
* 供应商id
|
||||
*/
|
||||
private String supplierId;
|
||||
/**
|
||||
* 分数
|
||||
*/
|
||||
private String suscore;
|
||||
|
||||
@ApiModelProperty(value = "分页对象信息")
|
||||
private BasePageRequest basePageRequest;
|
||||
}
|
||||
|
@ -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
|
||||
</select>
|
||||
|
Reference in New Issue
Block a user