feat: 企标计划-列表

This commit is contained in:
2023-09-14 15:19:21 +08:00
parent 6c2a2637c8
commit 23c957c476
8 changed files with 424 additions and 8 deletions
@@ -0,0 +1,51 @@
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.EnterpriseStandardPlan;
import com.jero.modules.laws.enterprise.entity.dto.ESPlanQueryDTO;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardPlanVo;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
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/plan")
@Slf4j
public class EnterpriseStandardPlanController extends JeroController<EnterpriseStandardPlan, EnterpriseStandardPlanService> {
@Resource
private EnterpriseStandardPlanService esPlanService;
/**
* 分页列表查询
*
* @return
*/
@AutoLog(value = "企标计划-分页列表查询")
@ApiOperation(value="企标计划-分页列表查询", notes="企标计划-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(ESPlanQueryDTO esPlanQueryDTO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
IPage<EnterpriseStandardPlanVo> pageList= esPlanService.queryPageList(esPlanQueryDTO, pageNo, pageSize);
return Result.OK(pageList);
}
}
@@ -100,6 +100,9 @@ public class EnterpriseStandardPlan implements Serializable {
@ApiModelProperty(value = "年代号")
private String decadeCode;
@ApiModelProperty(value = "标准类型")
private String standardType;
@ApiModelProperty(value = "企标等级分类")
private String enStandardClassification;
@@ -124,9 +127,6 @@ public class EnterpriseStandardPlan implements Serializable {
@ApiModelProperty(value = "适用专业")
private String applicableProfession;
@ApiModelProperty(value = "配合单位")
private String cooperatingUnits;
@ApiModelProperty(value = "主起草人")
private String mainDraftingUser;
@@ -182,9 +182,8 @@ public class EnterpriseStandardPlan implements Serializable {
private String remarks;
@ApiModelProperty(value = "附件")
private String attachement;
private String attachment;
/**是否为优质标准*/
@ApiModelProperty(value = "是否为优质标准")
private String qualityFlag;
}
@@ -0,0 +1,70 @@
package com.jero.modules.laws.enterprise.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* @author: Mzaxd
* @Date: 2023/9/13 16:55
*/
@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class ESPlanQueryDTO {
@ApiModelProperty(value = "原企标编号")
private String originEnStandardNo;
@ApiModelProperty(value = "新企标编号")
private String newEnStandardNo;
@ApiModelProperty(value = "原企标名称")
private String originEnStandardName;
@ApiModelProperty(value = "新企标名称")
private String newEnStandardName;
@ApiModelProperty(value = "主起草人")
private String mainDraftingUser;
@ApiModelProperty(value = "主起草单位")
private String mainDraftingUnit;
@ApiModelProperty(value = "主起草单位责任人")
private String mainDraftingUnitResponsiblePerson;
@ApiModelProperty(value = "项目状态")
private String projectStatus;
@ApiModelProperty(value = "变更状态")
private String changeStatus;
@ApiModelProperty(value = "推进人工号")
private String standardPromoterWorkNo;
@ApiModelProperty(value = "标准类型")
private String standardType;
@ApiModelProperty(value = "制修订类型")
private String applicationCategory;
@ApiModelProperty(value = "计划报批日期")
private Date planApprovalStartDate;
@ApiModelProperty(value = "计划报批日期")
private Date planApprovalEndDate;
@ApiModelProperty(value = "创建日期")
private Date createStartDate;
@ApiModelProperty(value = "创建日期")
private Date createEndDate;
}
@@ -0,0 +1,117 @@
package com.jero.modules.laws.enterprise.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author: Mzaxd
* @Date: 2023/9/10 18:53
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class EnterpriseStandardPlanVo {
@ApiModelProperty(value = "主键ID")
private String id;
@ApiModelProperty(value = "申请类别(制订/修订,立项/变更)")
private String applicationCategory;
@ApiModelProperty(value = "原企标编号")
private String originEnStandardNo;
@ApiModelProperty(value = "新企标编号")
private String newEnStandardNo;
@ApiModelProperty(value = "原企标名称")
private String originEnStandardName;
@ApiModelProperty(value = "新企标名称")
private String newEnStandardName;
@ApiModelProperty(value = "授权部门")
private String authDeparts;
@ApiModelProperty(value = "企业标准代号")
private String enStandardCode;
@ApiModelProperty(value = "配合单位")
private String cooperateDeparts;
@ApiModelProperty(value = "主起草人")
private String mainDraftingUser;
@ApiModelProperty(value = "主起草单位")
private String mainDraftingUnit;
@ApiModelProperty(value = "主起草单位责任人")
private String mainDraftingUnitResponsiblePerson;
@ApiModelProperty(value = "标准推进人")
private String standardPromoter;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "草稿计划完成日期")
private Date draftPlannedCompleteDate;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "征求意见稿计划完成日期")
private Date solicitationDraftPlanCompleteDate;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "计划报批日期")
private Date planApprovalDate;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "草稿完成日期")
private Date draftCompletionDate;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "提交草稿日期")
private Date draftSubmissionDate;
@ApiModelProperty(value = "是否征求意见")
private String solicitationOpinionEnabled;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "征求意见稿完成日期")
private Date solicitationDraftCompletionDate;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "评审日期")
private Date reviewDate;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "报批日期")
private Date approvalDate;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "发布日期")
private Date releaseDate;
@ApiModelProperty(value = "项目状态")
private String projectStatus;
@ApiModelProperty(value = "变更状态")
private String changeStatus;
@ApiModelProperty(value = "是否可以删除")
private boolean allowDel;
}
@@ -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.EnterpriseStandardPlan;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.laws.enterprise.entity.dto.ESPlanQueryDTO;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardPlanVo;
import org.apache.ibatis.annotations.Param;
/**
* @author ThinkBook
@@ -11,6 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface EnterpriseStandardPlanMapper extends BaseMapper<EnterpriseStandardPlan> {
IPage<EnterpriseStandardPlanVo> page(IPage<EnterpriseStandardPlanVo> page, @Param("param") ESPlanQueryDTO esPlanQueryDTO);
}
@@ -27,6 +27,7 @@
<result property="enNameCode" column="en_name_code" jdbcType="VARCHAR"/>
<result property="standardCategoryCode" column="standard_category_code" jdbcType="VARCHAR"/>
<result property="decadeCode" column="decade_code" jdbcType="VARCHAR"/>
<result property="standardType" column="standard_type" jdbcType="VARCHAR"/>
<result property="enStandardClassification" column="en_standard_classification" jdbcType="VARCHAR"/>
<result property="draftPlannedCompleteDate" column="draft_planned_complete_date" jdbcType="TIMESTAMP"/>
<result property="solicitationDraftPlanCompleteDate" column="solicitation_draft_plan_complete_date" jdbcType="TIMESTAMP"/>
@@ -35,7 +36,6 @@
<result property="compilationDescription" column="compilation_description" jdbcType="VARCHAR"/>
<result property="componentName" column="component_name" jdbcType="VARCHAR"/>
<result property="applicableProfession" column="applicable_profession" jdbcType="VARCHAR"/>
<result property="cooperatingUnits" column="cooperating_units" jdbcType="VARCHAR"/>
<result property="mainDraftingUser" column="main_drafting_user" jdbcType="VARCHAR"/>
<result property="mainDraftingUnit" column="main_drafting_unit" jdbcType="VARCHAR"/>
<result property="mainDraftingUnitResponsiblePerson" column="main_drafting_unit_responsible_person" jdbcType="VARCHAR"/>
@@ -54,7 +54,7 @@
<result property="standardLeadingNecessity" column="standard_leading_necessity" jdbcType="VARCHAR"/>
<result property="projectExpectedEffects" column="project_expected_effects" jdbcType="VARCHAR"/>
<result property="remarks" column="remarks" jdbcType="VARCHAR"/>
<result property="attachement" column="attachement" jdbcType="VARCHAR"/>
<result property="attachment" column="attachment" jdbcType="VARCHAR"/>
<result property="qualityFlag" column="quality_flag" jdbcType="VARCHAR"/>
</resultMap>
@@ -75,6 +75,112 @@
review_date,approval_date,release_date,
change_status,project_background,similar_na_standards_analysis,
similar_en_standards_analysis,standard_leading_necessity,project_expected_effects,
remarks,attachement,qualityFlag
remarks,attachment,qualityFlag
</sql>
<select id="page" resultType="com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardPlanVo">
SELECT
p.id,
p.application_category,
origin_en_standard_no,
origin_en_standard_name,
new_en_standard_no,
new_en_standard_name,
ad.authDeparts,
en_standard_code,
cu.cooperateDeparts,
u1.name_work_no AS mainDraftingUser,
d.depart_name AS mainDraftingUnit,
u2.name_work_no AS mainDraftingUnitResponsiblePerson,
u3.name_work_no AS standardPromoter,
draft_planned_complete_date,
solicitation_draft_plan_complete_date,
plan_approval_date,
draft_completion_date,
draft_submission_date,
solicitation_opinion_enabled,
solicitation_draft_completion_date,
review_date,
approval_date,
release_date,
project_status,
change_status
FROM
`laws_enterprise_standard_plan` AS p
LEFT JOIN sys_user AS u1 ON u1.id = p.main_drafting_user
LEFT JOIN sys_user AS u2 ON u2.id = p.main_drafting_unit_responsible_person
LEFT JOIN sys_user AS u3 ON u3.id = p.standard_promoter
LEFT JOIN sys_depart AS d ON d.id = p.main_drafting_unit
LEFT JOIN
(SELECT
ad.plan_id as id,
GROUP_CONCAT((d.depart_name) SEPARATOR '') AS authDeparts
FROM
laws_enterprise_standard_plan_auth_dept AS ad
LEFT JOIN sys_depart AS d ON d.id = ad.dept_id) AS ad ON ad.id = p.id
LEFT JOIN
(SELECT
cu.plan_id as id,
GROUP_CONCAT((d.depart_name) SEPARATOR '') AS cooperateDeparts
FROM
laws_enterprise_standard_plan_cooperate_unit AS cu
LEFT JOIN sys_depart AS d ON d.id = cu.dept_id) AS cu ON cu.id = p.id
WHERE 1 = 1
<!--原企标编号判断-->
<if test="param.originEnStandardNo != null and param.originEnStandardNo != ''">
AND p.origin_en_standard_no LIKE CONCAT('%',#{param.originEnStandardNo},'%')
</if>
<!--新企标编号判断-->
<if test="param.newEnStandardNo != null and param.newEnStandardNo != ''">
AND p.new_en_standard_no LIKE CONCAT('%',#{param.newEnStandardNo},'%')
</if>
<!--原企标名称-->
<if test="param.originEnStandardName != null and param.originEnStandardName != ''">
AND p.origin_en_standard_name LIKE CONCAT('%',#{param.originEnStandardName},'%')
</if>
<!--新企标名称-->
<if test="param.newEnStandardName != null and param.newEnStandardName != ''">
AND p.new_en_standard_name LIKE CONCAT('%',#{param.newEnStandardName},'%')
</if>
<!--主起草人-->
<if test="param.mainDraftingUser != null and param.mainDraftingUser != ''">
AND u1.username LIKE CONCAT('%',#{param.mainDraftingUser},'%')
</if>
<!--主起草单位-->
<if test="param.mainDraftingUnit != null and param.mainDraftingUnit != ''">
AND d.depart_name LIKE CONCAT('%',#{param.mainDraftingUnit},'%')
</if>
<!--主起草单位负责人-->
<if test="param.mainDraftingUnitResponsiblePerson != null and param.mainDraftingUnitResponsiblePerson != null">
AND u2.username LIKE CONCAT('%',#{param.mainDraftingUnitResponsiblePerson},'%')
</if>
<!--项目状态-->
<if test="param.projectStatus != null and param.projectStatus != null">
AND p.project_status = #{param.projectStatus}
</if>
<!--变更状态-->
<if test="param.changeStatus != null and param.changeStatus != null">
AND p.change_status = #{param.changeStatus}
</if>
<!--推进人工号-->
<if test="param.standardPromoterWorkNo != null and param.standardPromoterWorkNo != null">
AND u3.work_no LIKE CONCAT('%',#{param.standardPromoterWorkNo},'%')
</if>
<!--标准类型-->
<if test="param.standardType != null and param.standardType != null">
AND p.standard_type = #{param.standardType}
</if>
<!--制修订类型-->
<if test="param.applicationCategory != null and param.applicationCategory != null">
AND p.application_category = #{param.applicationCategory}
</if>
<!--计划报批日期-->
<if test="param.planApprovalStartDate != null and param.planApprovalEndDate != null">
AND p.plan_approval_date BETWEEN #{param.planApprovalStartDate} AND #{param.planApprovalEndDate}
</if>
<!--创建日期-->
<if test="param.createStartDate != null and param.createEndDate != null">
AND p.create_time BETWEEN #{param.createStartDate} AND #{param.createEndDate}
</if>
</select>
</mapper>
@@ -1,5 +1,8 @@
package com.jero.modules.laws.enterprise.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.laws.enterprise.entity.dto.ESPlanQueryDTO;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardPlanVo;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -10,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface EnterpriseStandardPlanService extends IService<EnterpriseStandardPlan> {
IPage<EnterpriseStandardPlanVo> queryPageList(ESPlanQueryDTO esPlan, Integer pageNo, Integer pageSize);
}
@@ -1,6 +1,12 @@
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.dto.ESPlanQueryDTO;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardPlanVo;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
@@ -9,6 +15,10 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author ThinkBook
* @description 针对表【laws_enterprise_standard_plan】的数据库操作Service实现
@@ -20,6 +30,60 @@ import org.springframework.transaction.annotation.Transactional;
public class EnterpriseStandardPlanServiceImpl extends ServiceImpl<EnterpriseStandardPlanMapper, EnterpriseStandardPlan>
implements EnterpriseStandardPlanService{
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource
private EnterpriseStandardPlanMapper esPlanMapper;
@Override
public IPage<EnterpriseStandardPlanVo> queryPageList(ESPlanQueryDTO esPlanQueryDTO, Integer pageNo, Integer pageSize) {
IPage<EnterpriseStandardPlanVo> page = new Page<>(pageNo, pageSize);
esPlanMapper.page(page, esPlanQueryDTO);
this.transESPlanVo(page.getRecords());
// TODO 判断其能否删除 主起草人在待办中未进行操作,该计划允许删除(目前都设为允许删除)
page.getRecords().forEach(p -> p.setAllowDel(true));
return page;
}
// 转换列表中的状态值为中文
private void transESPlanVo(List<EnterpriseStandardPlanVo> list) {
if (list.isEmpty()) {
return;
}
// 转换申请类别
List<DictModel> acDictModelList = sysBaseAPI.getDictItems("esp_application_category");
list.forEach(e -> {
List<DictModel> collect = acDictModelList.stream().filter(e1 -> e1.getValue().equals(e.getApplicationCategory())).collect(Collectors.toList());
if (!collect.isEmpty()) {
e.setApplicationCategory(collect.get(0).getText());
}
});
// 转换项目状态
List<DictModel> psDictModelList = sysBaseAPI.getDictItems("esp_project_status");
list.forEach(e -> {
List<DictModel> collect = psDictModelList.stream().filter(e1 -> e1.getValue().equals(e.getProjectStatus())).collect(Collectors.toList());
if (!collect.isEmpty()) {
e.setProjectStatus(collect.get(0).getText());
}
});
// 转换变更类型
List<DictModel> csDictModelList = sysBaseAPI.getDictItems("esp_change_status");
list.forEach(e -> {
List<DictModel> collect = csDictModelList.stream().filter(e1 -> e1.getValue().equals(e.getChangeStatus())).collect(Collectors.toList());
if (!collect.isEmpty()) {
e.setChangeStatus(collect.get(0).getText());
}
});
// 转换是否征求意见
List<DictModel> ynDictModelList = sysBaseAPI.getDictItems("yn");
list.forEach(e -> {
List<DictModel> collect = ynDictModelList.stream().filter(e1 -> e1.getValue().equals(e.getSolicitationOpinionEnabled())).collect(Collectors.toList());
if (!collect.isEmpty()) {
e.setSolicitationOpinionEnabled(collect.get(0).getText());
}
});
}
}