feat: 评审会列表接口
This commit is contained in:
+54
@@ -0,0 +1,54 @@
|
||||
package com.jero.modules.laws.enterprise.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardDeclare;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardReviewMeetingRecord;
|
||||
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
|
||||
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardDeclareVo;
|
||||
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardReviewMeetingVo;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardDeclareService;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardReviewMeetingRecordService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 企标宣贯
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-02-12
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Api(tags="企标评审会")
|
||||
@RestController
|
||||
@RequestMapping("/enterprise/reviewMeeting")
|
||||
@Slf4j
|
||||
public class EnterpriseStandardReviewMeetingController extends JeroController<EnterpriseStandardReviewMeetingRecord, EnterpriseStandardReviewMeetingRecordService> {
|
||||
|
||||
@Resource
|
||||
private EnterpriseStandardReviewMeetingRecordService esReviewMeetingService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "企标评审会-分页列表查询")
|
||||
@ApiOperation(value="企标评审会-分页列表查询", notes="企标评审会-分页列表查询")
|
||||
@GetMapping(value = "/page")
|
||||
public Result<?> queryPageList(ESQueryCommonDTO esReviewMeeting,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
|
||||
IPage<EnterpriseStandardReviewMeetingVo> pageList= esReviewMeetingService.queryPageList(esReviewMeeting, pageNo, pageSize);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
}
|
||||
+4
-4
@@ -58,6 +58,10 @@ public class EnterpriseStandardReviewMeetingRecord implements Serializable {
|
||||
@ApiModelProperty(value = "所属部门")
|
||||
private String orgCode;
|
||||
|
||||
/**企标Id*/
|
||||
@ApiModelProperty(value = "企标Id")
|
||||
private String standardId;
|
||||
|
||||
/**企标编号*/
|
||||
@ApiModelProperty(value = "企标编号")
|
||||
private String standardNo;
|
||||
@@ -68,10 +72,6 @@ public class EnterpriseStandardReviewMeetingRecord implements Serializable {
|
||||
@ApiModelProperty(value = "评审日期")
|
||||
private Date reviewDate;
|
||||
|
||||
/**平均总分*/
|
||||
@ApiModelProperty(value = "平均总分")
|
||||
private String avgScore;
|
||||
|
||||
/**是否为优质标准*/
|
||||
@ApiModelProperty(value = "是否为优质标准")
|
||||
private String qualityFlag;
|
||||
|
||||
+5
-1
@@ -60,7 +60,7 @@ public class EnterpriseStandardRmrEvaluateDetail implements Serializable {
|
||||
|
||||
/**企标编号*/
|
||||
@ApiModelProperty(value = "企标编号")
|
||||
private String standardNo;
|
||||
private String reviewMeetingId;
|
||||
|
||||
/**评分项目*/
|
||||
@ApiModelProperty(value = "评分项目")
|
||||
@@ -70,6 +70,10 @@ public class EnterpriseStandardRmrEvaluateDetail implements Serializable {
|
||||
@ApiModelProperty(value = "评分分值")
|
||||
private String evaluateScore;
|
||||
|
||||
/**评分人id*/
|
||||
@ApiModelProperty(value = "评分人id")
|
||||
private String adjudicatorId;
|
||||
|
||||
/**扣分理由*/
|
||||
@ApiModelProperty(value = "扣分理由")
|
||||
private String deductionScoreReason;
|
||||
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package com.jero.modules.laws.enterprise.entity.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
* @Date: 2023/9/7 16:38
|
||||
*/
|
||||
@Data
|
||||
public class EnterpriseStandardReviewMeetingVo {
|
||||
|
||||
/**主键ID*/
|
||||
@ApiModelProperty(value = "主键ID")
|
||||
private String id;
|
||||
|
||||
/**企标编号*/
|
||||
@ApiModelProperty(value = "企标编号-对应计划的新企标编号")
|
||||
private String standardNo;
|
||||
|
||||
/**企标编号*/
|
||||
@ApiModelProperty(value = "企标编号")
|
||||
private String standardName;
|
||||
|
||||
@ApiModelProperty(value = "主起草人")
|
||||
private String mainDraftingUser;
|
||||
|
||||
@ApiModelProperty(value = "主起草单位")
|
||||
private String mainDraftingUnit;
|
||||
|
||||
/**评审日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "评审日期")
|
||||
private Date reviewDate;
|
||||
|
||||
@ApiModelProperty(value = "评审人")
|
||||
private String reviewUsers;
|
||||
|
||||
@ApiModelProperty(value = "评审人")
|
||||
private String avgScore;
|
||||
|
||||
/**是否为优质标准*/
|
||||
@ApiModelProperty(value = "是否为优质标准")
|
||||
private String qualityFlag;
|
||||
|
||||
}
|
||||
+5
@@ -1,7 +1,11 @@
|
||||
package com.jero.modules.laws.enterprise.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardReviewMeetingRecord;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
|
||||
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardReviewMeetingVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
@@ -11,6 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
*/
|
||||
public interface EnterpriseStandardReviewMeetingRecordMapper extends BaseMapper<EnterpriseStandardReviewMeetingRecord> {
|
||||
|
||||
IPage<EnterpriseStandardReviewMeetingVo> page(IPage<EnterpriseStandardReviewMeetingVo> page, @Param("param") ESQueryCommonDTO esReviewMeeting);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+66
-7
@@ -13,14 +13,73 @@
|
||||
<result property="orgCode" column="org_code" jdbcType="VARCHAR"/>
|
||||
<result property="standardNo" column="standard_no" jdbcType="VARCHAR"/>
|
||||
<result property="reviewDate" column="review_date" jdbcType="TIMESTAMP"/>
|
||||
<result property="avgScore" column="avg_score" jdbcType="VARCHAR"/>
|
||||
<result property="qualityFlag" column="quality_flag" jdbcType="VARCHAR"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id,create_by,create_time,
|
||||
update_by,update_time,org_code,
|
||||
standard_no,review_date,avg_score,
|
||||
quality_flag
|
||||
</sql>
|
||||
<select id="page" resultType="com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardReviewMeetingVo">
|
||||
SELECT
|
||||
rmr.id,
|
||||
esp.standardNo,
|
||||
esp.standardName,
|
||||
esp.mainDraftingUser,
|
||||
esp.mainDraftingUnit,
|
||||
rmr.review_date AS reviewDate,
|
||||
rmr.quality_flag AS qualityFlag,
|
||||
(score.avg_score_item1 + score.avg_score_item2 + score.avg_score_item3 +
|
||||
score.avg_score_item4 + score.avg_score_item5 + score.avg_score_item6) / 6.0 AS avgScore,
|
||||
GROUP_CONCAT(DISTINCT CONCAT(u.username, '(', u.work_no, ')') ORDER BY u.username ASC SEPARATOR ',') AS reviewUsers
|
||||
FROM
|
||||
`laws_enterprise_standard_review_meeting_record` AS rmr
|
||||
LEFT JOIN
|
||||
(
|
||||
SELECT
|
||||
esp.id,
|
||||
esp.new_en_standard_no AS standardNo,
|
||||
esp.new_en_standard_name AS standardName,
|
||||
u.username AS mainDraftingUser,
|
||||
d.depart_name AS mainDraftingUnit
|
||||
FROM
|
||||
laws_enterprise_standard_plan AS esp
|
||||
LEFT JOIN sys_user AS u ON u.id = esp.main_drafting_user
|
||||
LEFT JOIN sys_user_depart AS ud ON ud.user_id = u.id
|
||||
LEFT JOIN sys_depart AS d ON d.id = ud.dep_id
|
||||
) AS esp ON esp.id = rmr.standard_id
|
||||
LEFT JOIN
|
||||
(
|
||||
SELECT
|
||||
d.review_meeting_id,
|
||||
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '1' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item1,
|
||||
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '2' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item2,
|
||||
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '3' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item3,
|
||||
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '4' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item4,
|
||||
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '5' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item5,
|
||||
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '6' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item6
|
||||
FROM
|
||||
laws_enterprise_standard_review_meeting_record r
|
||||
LEFT JOIN
|
||||
laws_enterprise_standard_rmr_evaluate_detail d ON r.id = d.review_meeting_id
|
||||
GROUP BY
|
||||
r.id
|
||||
) AS score ON score.review_meeting_id = rmr.id
|
||||
LEFT JOIN laws_enterprise_standard_rmr_evaluate_detail detail ON detail.review_meeting_id = rmr.id
|
||||
LEFT JOIN sys_user u ON u.id = detail.adjudicator_id
|
||||
Where 1 = 1
|
||||
<!--企标编号判断-->
|
||||
<if test="param.standardNo != null and param.standardNo != ''">
|
||||
AND esp.standardNo LIKE CONCAT('%',#{param.standardNo},'%')
|
||||
</if>
|
||||
<!--企标名称判断-->
|
||||
<if test="param.standardName != null and param.standardName != ''">
|
||||
AND esp.standardName LIKE CONCAT('%',#{param.standardName},'%')
|
||||
</if>
|
||||
<!--评审日期判断-->
|
||||
<if test="param.reviewStartDate != null and param.reviewEndDate != null">
|
||||
AND rmr.review_date BETWEEN #{param.declareStartDate} AND #{param.declareEndDate}
|
||||
</if>
|
||||
GROUP BY rmr.id, esp.standardNo, esp.standardName, esp.mainDraftingUser, esp.mainDraftingUnit, rmr.review_date, rmr.quality_flag, score.avg_score_item1, score.avg_score_item2, score.avg_score_item3, score.avg_score_item4, score.avg_score_item5, score.avg_score_item6
|
||||
ORDER BY
|
||||
avgScore DESC,
|
||||
score.avg_score_item2 DESC,
|
||||
score.avg_score_item4 DESC;
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
+11
@@ -1,7 +1,10 @@
|
||||
package com.jero.modules.laws.enterprise.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardReviewMeetingRecord;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
|
||||
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardReviewMeetingVo;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
@@ -10,4 +13,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
*/
|
||||
public interface EnterpriseStandardReviewMeetingRecordService extends IService<EnterpriseStandardReviewMeetingRecord> {
|
||||
|
||||
/**
|
||||
* 列表接口
|
||||
* @param esReviewMeeting
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
IPage<EnterpriseStandardReviewMeetingVo> queryPageList(ESQueryCommonDTO esReviewMeeting, Integer pageNo, Integer pageSize);
|
||||
}
|
||||
|
||||
+38
@@ -1,11 +1,22 @@
|
||||
package com.jero.modules.laws.enterprise.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.DictModel;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardReviewMeetingRecord;
|
||||
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
|
||||
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardReviewMeetingVo;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardReviewMeetingRecordService;
|
||||
import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardReviewMeetingRecordMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【laws_enterprise_standard_review_meeting_record】的数据库操作Service实现
|
||||
@@ -15,6 +26,33 @@ import org.springframework.stereotype.Service;
|
||||
public class EnterpriseStandardReviewMeetingRecordServiceImpl extends ServiceImpl<EnterpriseStandardReviewMeetingRecordMapper, EnterpriseStandardReviewMeetingRecord>
|
||||
implements EnterpriseStandardReviewMeetingRecordService {
|
||||
|
||||
@Resource
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
|
||||
@Resource
|
||||
private EnterpriseStandardReviewMeetingRecordMapper esReviewMeetingMapper;
|
||||
|
||||
@Override
|
||||
public IPage<EnterpriseStandardReviewMeetingVo> queryPageList(ESQueryCommonDTO esReviewMeeting, Integer pageNo, Integer pageSize) {
|
||||
IPage<EnterpriseStandardReviewMeetingVo> page = new Page<>(pageNo, pageSize);
|
||||
esReviewMeetingMapper.page(page, esReviewMeeting);
|
||||
this.transReviewMeetingVo(page.getRecords());
|
||||
return page;
|
||||
}
|
||||
|
||||
// 转换列表中的状态值为中文
|
||||
private void transReviewMeetingVo(List<EnterpriseStandardReviewMeetingVo> list) {
|
||||
if (list.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
List<DictModel> ynDictModelList = sysBaseAPI.getDictItems("yn");
|
||||
list.forEach(e -> {
|
||||
List<DictModel> collect = ynDictModelList.stream().filter(e1 -> e1.getValue().equals(e.getQualityFlag())).collect(Collectors.toList());
|
||||
if (!collect.isEmpty()) {
|
||||
e.setQualityFlag(collect.get(0).getText());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+45
-1
@@ -3,6 +3,10 @@ package com.jero.modules.standard.enterprise;
|
||||
import com.github.javafaker.Faker;
|
||||
import com.jero.JeroSystemSingleApplication;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandard;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRmrEvaluateDetail;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardRmrEvaluateDetailService;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardService;
|
||||
import jdk.nashorn.internal.ir.annotations.Reference;
|
||||
import org.junit.Test;
|
||||
@@ -27,6 +31,12 @@ public class EnterpriseStandardTest {
|
||||
@Resource
|
||||
private EnterpriseStandardService enterpriseStandardService;
|
||||
|
||||
@Resource
|
||||
private EnterpriseStandardRmrEvaluateDetailService enterpriseStandardRmrEvaluateDetailService;
|
||||
|
||||
@Resource
|
||||
private EnterpriseStandardPlanService enterpriseStandardPlanService;
|
||||
|
||||
private static final Faker faker = new Faker();
|
||||
private static final Random random = new Random();
|
||||
|
||||
@@ -61,11 +71,45 @@ public class EnterpriseStandardTest {
|
||||
|
||||
return enterpriseStandard;
|
||||
}
|
||||
|
||||
public static EnterpriseStandardPlan generateRandomEnterpriseStandardPlan() {
|
||||
EnterpriseStandardPlan enterpriseStandardPlan = new EnterpriseStandardPlan();
|
||||
|
||||
enterpriseStandardPlan.setDelFlag(faker.bool().bool() ? 1 : 0);
|
||||
enterpriseStandardPlan.setMainDraftingUser(faker.name().fullName());
|
||||
enterpriseStandardPlan.setMainDraftingUnit(faker.company().name());
|
||||
enterpriseStandardPlan.setMainDraftingUnitResponsiblePerson(faker.name().fullName());
|
||||
|
||||
|
||||
// ... continue with more fields as needed
|
||||
|
||||
enterpriseStandardPlan.setReleaseDate(faker.date().past(1, TimeUnit.SECONDS));
|
||||
|
||||
return enterpriseStandardPlan;
|
||||
}
|
||||
@Test
|
||||
public void insertRandomES() {
|
||||
EnterpriseStandard randomData = generateRandomEnterpriseStandard();
|
||||
enterpriseStandardService.save(randomData);
|
||||
System.out.println(randomData);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void insertRandomESRmrDetail() {
|
||||
for (int i = 0; i < 6; i++) {
|
||||
EnterpriseStandardRmrEvaluateDetail random = new EnterpriseStandardRmrEvaluateDetail();
|
||||
random.setEvaluateItem(String.valueOf(i + 1));
|
||||
random.setDeductionScoreReason("无");
|
||||
enterpriseStandardRmrEvaluateDetailService.save(random);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void insertRandomESP() {
|
||||
for (int i = 0; i < 1; i++) {
|
||||
EnterpriseStandardPlan random = generateRandomEnterpriseStandardPlan();
|
||||
enterpriseStandardPlanService.save(random);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user