Merge remote-tracking branch 'origin/master'

This commit is contained in:
yjz
2024-07-30 09:56:33 +08:00
43 changed files with 32 additions and 3759 deletions
@@ -40,8 +40,8 @@ public class FeiShuDockingController {
* @return
*/
@PostMapping("/createApprovalDefinition")
public String createApprovalDefinition() {
return feiShuDockingService.createApprovalDefinition();
public String createApprovalDefinition(String approvalCode, String approvalName) {
return feiShuDockingService.createApprovalDefinition(approvalCode, approvalName);
}
/**
@@ -18,7 +18,7 @@ public interface IFeiShuDockingService {
* 创建三方审批的定义
* @return
*/
String createApprovalDefinition();
String createApprovalDefinition(String approvalCode, String approvalName);
/**
* 查看指定三方审批定义
@@ -9,6 +9,7 @@ import com.jero.common.api.vo.Result;
import com.jero.common.constant.CommonConstant;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.util.JwtUtil;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.SysDictItemCore;
import com.jero.common.util.RedisUtil;
import com.jero.common.util.oConvertUtils;
@@ -77,8 +78,6 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
private String appSecret;
@Value("${feishu.managersIds}")
private String managersIds;
@Value("${feishu.approvalName}")
private String approvalName;
private static final String USER_INFO = "userInfo";
@@ -100,13 +99,13 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
}
@Override
public String createApprovalDefinition() {
public String createApprovalDefinition(String approvalCode, String approvalName) {
String url = env.getProperty("feishu.create_approval_definition");
assert url != null;
// 获取token
String accessToken = getAccessToken();
// 构建对象
ApprovalsDefinitionVo approvalsDefinitionVo = buildDefinitionVo();
ApprovalsDefinitionVo approvalsDefinitionVo = buildDefinitionVo(approvalCode, approvalName);
// 设置请求头
HttpHeaders headers = createHeaders(accessToken);
// 构建包含查询参数的 URL
@@ -129,12 +128,12 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
}
// 构建创建审批定义的入参对象
public ApprovalsDefinitionVo buildDefinitionVo() {
public ApprovalsDefinitionVo buildDefinitionVo(String approvalCode, String approvalName) {
ApprovalsDefinitionVo approvalsDefinitionVo = new ApprovalsDefinitionVo();
// 构建审批定义vo
approvalsDefinitionVo.setApproval_name("@i18n@1");
approvalsDefinitionVo.setApproval_code("permission_test3");
approvalsDefinitionVo.setGroup_code("work_group");
approvalsDefinitionVo.setApproval_code(approvalCode);
approvalsDefinitionVo.setGroup_code(approvalCode);
approvalsDefinitionVo.setGroup_name("@i18n@2");
// 构建三方审批相关对象.
DefinitionExternal definitionExternal = new DefinitionExternal();
@@ -265,7 +264,9 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
String promoterUserId = instanceDto.getPromoterUserId();
if (StringUtils.isNoneBlank(promoterUserId)) {
SysUser promoterUser = sysUserService.getById(promoterUserId);
promoterUserId = promoterUser.getFeishuId();
if (!Objects.isNull(promoterUser) && StringUtils.isNotBlank(promoterUser.getFeishuId())) {
promoterUserId = promoterUser.getFeishuId();
}
}
// 审核人的id(可能为多个),查出对应的飞书id
String reviewedIds = instanceDto.getReviewedIds();
@@ -337,7 +338,13 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
promoterMobileLink = url.replace("{REDIRECT_URI}", promoterMobileLink);
}
// 审批定义的code
String approvalDefinition = createApprovalDefinition();
Integer processType = instanceDto.getProcessType();
// 拿到这个流程的名称
List<DictModel> prcTypeList = sysDictService.getDictItems("prc_type");
// 将列表转换为Map
Map<String, String> prcTypeMap = prcTypeList.stream().collect(Collectors.toMap(DictModel::getValue, DictModel::getText));
String processName = prcTypeMap.get(String.valueOf(processType));
String approvalDefinition = createApprovalDefinition("process_" + processType, processName);
// 发起人相关的信息
ApprovalsInstanceVo approvalsInstanceVo = new ApprovalsInstanceVo();
approvalsInstanceVo.setApproval_code(approvalDefinition);
@@ -193,4 +193,9 @@ public class ProcessAll {
@ApiModelProperty(value = "父任务id")
@TableField(exist = false)
private String parentTaskId;
/**是否是会签节点*/
@ApiModelProperty(value = "是否是会签节点")
@TableField(exist = false)
private String countersignFlag;
}
@@ -46,9 +46,11 @@
pa.prc_status,
pa.end_time,
pa.over_time,
pa.project_id
pa.project_id,
pn.countersign_flag
from process_approval_record par
left join process_all pa on pa.process_instance_id = par.process_instance_id
left join process_node pn on pn.xml_node_id = par.node_id
${ew.customSqlSegment}
<include refid="order1"/>
</select>
@@ -8,8 +8,7 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.assessmentLibrary.entity.LawsEvaluationNotMetLibrary;
import com.jero.modules.assessmentLibrary.service.ILawsEvaluationNotMetLibraryService;
import com.jero.modules.projectLibrary.common.AssessCommon;
import com.jero.modules.system.vo.IdsMapBody;
import com.jero.modules.assessmentLibrary.entity.AssessCommon;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -17,7 +16,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@@ -1,4 +1,4 @@
package com.jero.modules.projectLibrary.common;
package com.jero.modules.assessmentLibrary.entity;
/**
* @author liJiaRao
@@ -15,7 +15,7 @@ import com.jero.modules.assessmentLibrary.mapper.LawsEvaluationNotMetLibraryMapp
import com.jero.modules.assessmentLibrary.service.ILawsConformityAssessmentLibraryService;
import com.jero.modules.assessmentLibrary.service.ILawsEvaluationNotMetLibraryService;
import com.jero.modules.laws.utils.ExcelExportUtilPro;
import com.jero.modules.projectLibrary.common.AssessCommon;
import com.jero.modules.assessmentLibrary.entity.AssessCommon;
import com.jero.modules.sys.utils.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -76,8 +76,8 @@ public class LawsEvaluationNotMetLibraryServiceImpl extends ServiceImpl<LawsEval
}
if (calService.noAdminAuth()) {
String userId = UserUtils.getUserId();
queryWrapper.like("nm.all_approval_user", userId).or()
.like("nm.assessor", userId);
queryWrapper.like("nm.all_approval_user", userId);
queryWrapper.like("nm.assessor", userId);
}
queryWrapper.orderByDesc("nm.create_time");
Page<LawsEvaluationNotMetLibrary> page = new Page<>(pageNo, pageSize);
@@ -1,181 +0,0 @@
package com.jero.modules.projectLibrary.controller;
import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.CommonConstant;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.api.vo.ResultCommon;
import com.jero.modules.projectLibrary.common.AssessCommon;
import com.jero.modules.projectLibrary.entity.LawsAssess;
import com.jero.modules.projectLibrary.service.ILawsAssessService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.projectLibrary.vo.LawsAssessAddVo;
import com.jero.modules.system.vo.IdMapBody;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
/**
* @Description: 车型项目库-法规清单
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
@Api(tags="车型项目库-法规清单")
@RestController
@RequestMapping("/projectLibrary/lawsAssess")
@Slf4j
public class LawsAssessController extends JeroController<LawsAssess, ILawsAssessService> {
@Autowired
private ILawsAssessService lawsAssessService;
/**
* 分页列表查询
*/
@RequiresPermissions("vehicleItemLibrary:detail:search")
@AutoLog(value = "车型项目库-法规清单-分页列表查询")
@ApiOperation(value="车型项目库-法规清单-分页列表查询", notes="车型项目库-法规清单-分页列表查询")
@GetMapping(value = "/page")
public Result<IPage<LawsAssess>> queryPageList(LawsAssess lawsAssess,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
String projectId = lawsAssess.getProjectId();
if (StringUtils.isBlank(projectId)){
throw new JeroBootException(ResultCommon.PARAMETER_NOT_RECOGNIZED);
}
lawsAssess.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
IPage<LawsAssess> pageList = lawsAssessService.queryPage(lawsAssess, pageNo, pageSize, req);
lawsAssessService.assignment(pageList.getRecords());
return Result.OK(pageList);
}
/**
* 调取
*/
@RequiresPermissions("vehicleItemLibrary:detail:transfer")
@AutoLog(value = "车型项目库-法规清单-调取")
@ApiOperation(value="车型项目库-法规清单-调取", notes="车型项目库-法规清单-调取")
@PostMapping(value = "/retrieval")
public Result<T> retrieval(@Validated @RequestBody LawsAssessAddVo lawsAssessAddVo) {
lawsAssessService.retrieval(lawsAssessAddVo);
return Result.OK("操作成功!");
}
/**
* 复制
*/
@RequiresPermissions("vehicleItemLibrary:detail:copy")
@AutoLog(value = "车型项目库-法规清单-复制")
@ApiOperation(value="车型项目库-法规清单-复制", notes="车型项目库-法规清单-复制")
@PostMapping(value = "/copy")
public Result<T> copy(@Validated @RequestBody LawsAssessAddVo lawsAssessAddVo) {
String projectId = lawsAssessAddVo.getProjectId();
String copyProjectId = lawsAssessAddVo.getCopyProjectId();
if (StringUtils.isBlank(copyProjectId)){
throw new JeroBootException(ResultCommon.PLEASE_SELECT_DATA);
}
Date now = new Date();
List<LawsAssess> lawsAssesses = new ArrayList<>();
List<LawsAssess> allByProjectIdNotDeleted = lawsAssessService.getAllByProjectIdNotDeleted(projectId);
List<LawsAssess> allByProjectIdDeleted = lawsAssessService.getAllByProjectIdDeleted(projectId);
List<String> allByProjectIdNotDeletedIdList = allByProjectIdNotDeleted.stream().map(LawsAssess::getStandardId).distinct().collect(Collectors.toList());
List<String> allByProjectIdDeletedIdList = allByProjectIdDeleted.stream().map(LawsAssess::getStandardId).distinct().collect(Collectors.toList());
//获取要拷贝项目的未删除标准
List<LawsAssess> copyAssessArrayList = lawsAssessService.getAllByProjectIdNotDeleted(copyProjectId);
for (LawsAssess lawsAssess : copyAssessArrayList) {
String standardId = lawsAssess.getStandardId();
if (allByProjectIdNotDeletedIdList.contains(standardId)){
//如果已存在跳过新增
continue;
}
if (allByProjectIdDeletedIdList.contains(standardId)){
//如果已删除则恢复未删除状态
LawsAssess assess = lawsAssessService.getById(standardId);
assess.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
lawsAssessService.updateById(assess);
continue;
}
LawsAssess assess = new LawsAssess();
assess.setSource(lawsAssess.getSource());
assess.setProjectId(projectId);
assess.setStandardId(standardId);
assess.setStandardNumber(lawsAssess.getStandardNumber());
assess.setStandardName(lawsAssess.getStandardName());
assess.setProcessStatus(AssessCommon.NOT_EVALUATED);
lawsAssess.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
lawsAssesses.add(assess);
allByProjectIdNotDeletedIdList.add(standardId);
}
lawsAssessService.saveBatch(lawsAssesses);
return Result.OK("操作成功!");
}
/**
* 通过id删除
* 同步删除未符合项、专项项目库;
*/
@RequiresPermissions("vehicleItemLibrary:detail:delete")
@AutoLog(value = "车型项目库-法规清单-通过id删除")
@ApiOperation(value="车型项目库-法规清单-通过id删除", notes="车型项目库-法规清单-通过id删除")
@PostMapping(value = "/delete")
public Result<T> delete(@RequestBody IdMapBody map) {
String id = map.getId();
if(StringUtils.isEmpty(id)){
throw new JeroBootException(ResultCommon.PLEASE_SELECT_DATA);
}
lawsAssessService.deleteById(id);
return Result.OK(ResultCommon.OK);
}
/**
* 导出excel
*/
@RequiresPermissions("vehicleItemLibrary:detail:export")
@AutoLog(value = "车型项目库-法规清单-导出excel")
@ApiOperation(value="车型项目库-法规清单-导出excel", notes="车型项目库-法规清单-导出excel")
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, LawsAssess lawsAssess, HttpServletResponse response) {
//获取数据
lawsAssess.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
QueryWrapper<LawsAssess> queryWrapper = QueryGenerator.initQueryWrapper(lawsAssess, request.getParameterMap());
List<LawsAssess> dos = lawsAssessService.list(queryWrapper);
if (dos.isEmpty()) {
throw new JeroBootException(ResultCommon.PLEASE_SELECT_DATA);
}
List<LawsAssess> exportList;
String selections = request.getParameter("selections");
if (StringUtils.isNotBlank(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
exportList = dos.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
}else {
exportList = dos;
}
lawsAssessService.assignment(exportList);
String title = "法规清单";
return super.exportListXls(exportList, LawsAssess.class, title);
}
}
@@ -1,70 +0,0 @@
package com.jero.modules.projectLibrary.controller;
import javax.servlet.http.HttpServletRequest;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.projectLibrary.entity.LawsAssessResults;
import com.jero.modules.projectLibrary.service.ILawsAssessResultsService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.projectLibrary.vo.MetNotMetVO;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
/**
* @Description: 标准评估结果
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
@Api(tags="标准评估结果")
@RestController
@RequestMapping("/projectLibrary/lawsAssessResults")
@Slf4j
public class LawsAssessResultsController extends JeroController<LawsAssessResults, ILawsAssessResultsService> {
@Autowired
private ILawsAssessResultsService lawsAssessResultsService;
/**
* 分页列表查询
*/
@RequiresPermissions("vehicleItemLibrary:detail:evaluationResultHistory")
@AutoLog(value = "项目库详情页-评估结果历史-分页列表查询")
@ApiOperation(value="项目库详情页-评估结果历史-分页列表查询", notes="项目库详情页-评估结果历史-分页列表查询")
@GetMapping(value = "/page")
public Result<IPage<LawsAssessResults>> queryPageList(LawsAssessResults lawsAssessResults,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
String assessId = lawsAssessResults.getAssessId();
if (StringUtils.isBlank(assessId)){
throw new JeroBootException("标准评估ID不能为空");
}
IPage<LawsAssessResults> pageList = lawsAssessResultsService.queryPage(lawsAssessResults, pageNo, pageSize, req);
return Result.OK(pageList);
}
/**
* 通过id查询
*/
@AutoLog(value = "项目库详情页-评估结果历史-通过id查询-符合/不符合项")
@ApiOperation(value="项目库详情页-评估结果历史-通过id查询-符合/不符合项", notes="项目库详情页-评估结果历史-通过id查询-符合/不符合项")
@GetMapping(value = "/getMetNotMetVOById")
public Result<MetNotMetVO> getMetNotMetVOById(@RequestParam(name="id",required=true) String id) {
MetNotMetVO metNotMetVO = lawsAssessResultsService.getMetNotMetVOById(id);
return Result.OK(metNotMetVO);
}
}
@@ -1,213 +0,0 @@
package com.jero.modules.projectLibrary.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.aspect.annotation.DictPoint;
import com.jero.common.constant.CommonConstant;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.projectLibrary.entity.LawsAssess;
import com.jero.modules.projectLibrary.entity.LawsAssessResults;
import com.jero.modules.projectLibrary.entity.LawsProjectLibrary;
import com.jero.modules.projectLibrary.service.ILawsAssessResultsService;
import com.jero.modules.projectLibrary.service.ILawsAssessService;
import com.jero.modules.projectLibrary.service.ILawsProjectLibraryService;
import com.jero.modules.projectLibrary.vo.RiskOverviewVo;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.vo.IdMapBody;
import com.jero.modules.system.vo.IdsMapBody;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description: 项目库
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
@Api(tags = "项目库")
@RestController
@RequestMapping("/projectLibrary/lawsProjectLibrary")
@Slf4j
public class LawsProjectLibraryController extends JeroController<LawsProjectLibrary, ILawsProjectLibraryService> {
@Autowired
private ILawsProjectLibraryService lawsProjectLibraryService;
@Autowired
private ISysUserService sysUserService;
@Autowired
private ISysDictService sysDictService;
@Autowired
private ILawsAssessService lawsAssessService;
@Autowired
private ILawsAssessResultsService lawsAssessResultsService;
/**
* 分页列表查询
*/
@RequiresPermissions("vehicleItemLibrary:search")
@AutoLog(value = "项目库-分页列表查询")
@ApiOperation(value = "项目库-分页列表查询", notes = "项目库-分页列表查询")
@GetMapping(value = "/page")
public Result<IPage<LawsProjectLibrary>> queryPageList(LawsProjectLibrary lawsProjectLibrary,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
IPage<LawsProjectLibrary> pageList = lawsProjectLibraryService.queryPage(lawsProjectLibrary, pageNo, pageSize, req);
return Result.OK(pageList);
}
@DictPoint
@AutoLog(value = "项目库-列表查询")
@ApiOperation(value = "项目库-列表查询", notes = "项目库-列表查询")
@GetMapping(value = "/queryList")
public Result<List<LawsProjectLibrary>> queryList(LawsProjectLibrary lawsProjectLibrary, HttpServletRequest req) {
List<LawsProjectLibrary> queryList = lawsProjectLibraryService.queryList(lawsProjectLibrary, req);
return Result.OK(queryList);
}
/**
* 添加
*/
@RequiresPermissions("vehicleItemLibrary:add")
@AutoLog(value = "项目库-添加")
@ApiOperation(value = "项目库-添加", notes = "项目库-添加")
@PostMapping(value = "/add")
public Result<T> add(@Validated @RequestBody LawsProjectLibrary lawsProjectLibrary) {
lawsProjectLibrary.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
lawsProjectLibraryService.add(lawsProjectLibrary);
return Result.OK(ResultCommon.OK);
}
/**
* 编辑
*/
@RequiresPermissions("vehicleItemLibrary:edit")
@AutoLog(value = "项目库-编辑")
@ApiOperation(value = "项目库-编辑", notes = "项目库-编辑")
@PostMapping(value = "/edit")
public Result<T> edit(@RequestBody LawsProjectLibrary lawsProjectLibrary) {
lawsProjectLibraryService.editById(lawsProjectLibrary);
return Result.OK(ResultCommon.OK);
}
/**
* 通过id删除
*/
@RequiresPermissions("vehicleItemLibrary:delete")
@AutoLog(value = "项目库-通过id删除")
@ApiOperation(value = "项目库-通过id删除", notes = "项目库-通过id删除")
@PostMapping(value = "/delete")
public Result<T> delete(@RequestBody IdMapBody map) {
String id = map.getId();
if (StringUtils.isEmpty(id)) {
throw new JeroBootException(ResultCommon.PLEASE_SELECT_DATA);
}
lawsProjectLibraryService.deleteById(id);
return Result.OK(ResultCommon.OK);
}
/**
* 批量删除
*/
@RequiresPermissions("vehicleItemLibrary:batchDel")
@AutoLog(value = "项目库-批量删除")
@ApiOperation(value = "项目库-批量删除", notes = "项目库-批量删除")
@PostMapping(value = "/deleteBatch")
public Result<T> deleteBatch(@RequestBody IdsMapBody map) {
String ids = map.getIds();
if (StringUtils.isEmpty(ids)) {
throw new JeroBootException(ResultCommon.PLEASE_SELECT_DATA);
}
this.lawsProjectLibraryService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK(ResultCommon.SUCCESSFULLY_DELETED_IN_BULK);
}
/**
* 通过id查询
*/
@DictPoint
@RequiresPermissions("vehicleItemLibrary:detail")
@AutoLog(value = "项目库-通过id查询")
@ApiOperation(value = "项目库-通过id查询", notes = "项目库-通过id查询")
@GetMapping(value = "/queryById")
public Result<LawsProjectLibrary> queryById(@RequestParam(name = "id", required = true) String id) {
LawsProjectLibrary lawsProjectLibrary = lawsProjectLibraryService.queryById(id);
if (lawsProjectLibrary == null) {
throw new JeroBootException(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
return Result.OK(lawsProjectLibrary);
}
/**
* 项目风险性总览
*/
@AutoLog(value = "项目库详情-项目风险性总览")
@ApiOperation(value = "项目库详情-项目风险性总览", notes = "项目库详情-项目风险性总览")
@GetMapping(value = "/riskOverview")
public Result<RiskOverviewVo> riskOverview(@RequestParam(name = "id", required = true) String id) {
LawsProjectLibrary lawsProjectLibrary = lawsProjectLibraryService.queryById(id);
if (lawsProjectLibrary == null) {
throw new JeroBootException(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
LambdaQueryWrapper<LawsAssess> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(LawsAssess::getProjectId, id);
wrapper.eq(LawsAssess::getDelFlag, YesOrNoEnum.NO.getValue());
List<LawsAssess> assessList = lawsAssessService.list(wrapper);
List<String> standardIdList = assessList.stream().map(LawsAssess::getStandardId).collect(Collectors.toList());
if (standardIdList.isEmpty()) {
return Result.OK(new RiskOverviewVo(0, 0, 0, 0));
}
LambdaQueryWrapper<LawsAssessResults> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(LawsAssessResults::getProjectId, id);
queryWrapper.in(LawsAssessResults::getStandardId, standardIdList);
List<LawsAssessResults> assessResults = lawsAssessResultsService.list(queryWrapper);
int a = Math.toIntExact(assessResults.stream().filter(LawsAssessResults -> "1".equals(LawsAssessResults.getAssessResults())).count());
int b = Math.toIntExact(assessResults.stream().filter(LawsAssessResults -> "2".equals(LawsAssessResults.getAssessResults())).count());
int c = Math.toIntExact(assessResults.stream().filter(LawsAssessResults -> "3".equals(LawsAssessResults.getAssessResults())).count());
int d = Math.toIntExact(assessResults.stream().filter(LawsAssessResults -> "4".equals(LawsAssessResults.getAssessResults())).count());
return Result.OK(new RiskOverviewVo(a, b, c, d));
}
/**
* 导出excel
*/
@RequiresPermissions("vehicleItemLibrary:export")
@AutoLog(value = "项目库-导出excel")
@ApiOperation(value = "项目库-导出excel", notes = "项目库-导出excel")
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, LawsProjectLibrary lawsProjectLibrary, HttpServletResponse response) {
return super.exportXls(request,lawsProjectLibrary,LawsProjectLibrary.class,"车型项目表");
}
@AutoLog(value = "车型项目库-PMS格式导入")
@ApiOperation(value="车型项目库-PMS格式导入", notes="车型项目库-PMS格式导入")
@PostMapping("/importPMSExcel")
public void importPMSExcel(@RequestParam("file") @ApiParam("文件") MultipartFile file,
HttpServletResponse response) throws IOException {
lawsProjectLibraryService.importPMSExcel(file, response);
}
}
@@ -1,177 +0,0 @@
package com.jero.modules.projectLibrary.controller;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.FileUtils;
import com.jero.common.util.oConvertUtils;
import com.jero.modules.projectLibrary.entity.LawsProjectLibrary;
import com.jero.modules.projectLibrary.entity.LawsSpecialProjectLibrary;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.projectLibrary.service.ILawsSpecialProjectLibraryService;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
/**
* @Description: 专项项目库
* @Author: jero-boot
* @Date: 2023-09-22
* @Version: V1.0
*/
@Api(tags="专项项目库")
@RestController
@RequestMapping("/projectLibrary/lawsSpecialProjectLibrary")
@Slf4j
public class LawsSpecialProjectLibraryController extends JeroController<LawsSpecialProjectLibrary, ILawsSpecialProjectLibraryService> {
@Autowired
private ILawsSpecialProjectLibraryService lawsSpecialProjectLibraryService;
/**
* 分页列表查询
*
* @param lawsSpecialProjectLibrary
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@RequiresPermissions("specialProjectLibrary:search")
@AutoLog(value = "专项项目库-分页列表查询")
@ApiOperation(value="专项项目库-分页列表查询", notes="专项项目库-分页列表查询")
@GetMapping(value = "/page")
public Result<IPage<LawsSpecialProjectLibrary>> queryPageList(LawsSpecialProjectLibrary lawsSpecialProjectLibrary,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
IPage<LawsSpecialProjectLibrary> pageList = lawsSpecialProjectLibraryService.queryPage(lawsSpecialProjectLibrary, pageNo, pageSize, req);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @param lawsSpecialProjectLibrary
* @param req
* @return
*/
@RequiresPermissions("specialProjectLibrary:search")
@AutoLog(value = "专项项目库-列表查询")
@ApiOperation(value="专项项目库-列表查询", notes="专项项目库-列表查询")
@GetMapping(value = "/list")
public Result<List<LawsSpecialProjectLibrary>> queryList(LawsSpecialProjectLibrary lawsSpecialProjectLibrary, HttpServletRequest req) {
List<LawsSpecialProjectLibrary> list = lawsSpecialProjectLibraryService.queryList(lawsSpecialProjectLibrary, req);
return Result.OK(list);
}
/**
* 编辑
*
* @param lawsSpecialProjectLibrary
* @return
*/
@RequiresPermissions("specialProjectLibrary:edit")
@AutoLog(value = "专项项目库-编辑")
@ApiOperation(value="专项项目库-编辑", notes="专项项目库-编辑")
@PostMapping(value = "/edit")
public Result<T> edit(@Validated @RequestBody LawsSpecialProjectLibrary lawsSpecialProjectLibrary) {
lawsSpecialProjectLibraryService.editById(lawsSpecialProjectLibrary);
return Result.OK(ResultCommon.EDIT_OK);
}
/**
* 通过id删除
*
* @param map
* @return
*/
//@AutoLog(value = "专项项目库-通过id删除")
//@ApiOperation(value="专项项目库-通过id删除", notes="专项项目库-通过id删除")
//@PostMapping(value = "/delete")
//public Result<T> delete(@RequestBody Map<String, String> map) {
// if(!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))){
// return Result.error("请选择数据!");
// }
// lawsSpecialProjectLibraryService.deleteById(map.get("id"));
// return Result.OK("删除成功!");
//}
/**
* 批量删除
*
* @param map
* @return
*/
@RequiresPermissions("specialProjectLibrary:batchDel")
@AutoLog(value = "专项项目库-批量删除")
@ApiOperation(value="专项项目库-批量删除", notes="专项项目库-批量删除")
@PostMapping(value = "/deleteBatch")
public Result<T> deleteBatch(@RequestBody Map<String, String> map) {
if(!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))){
return Result.error(ResultCommon.PLEASE_SELECT_DATA);
}
this.lawsSpecialProjectLibraryService.deleteByIds(Arrays.asList(map.get("ids").split(",")));
return Result.OK(ResultCommon.SUCCESSFULLY_DELETED_IN_BULK);
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "专项项目库-通过id查询")
//@ApiOperation(value="专项项目库-通过id查询", notes="专项项目库-通过id查询")
//@GetMapping(value = "/queryById")
//public Result<LawsSpecialProjectLibrary> queryById(@RequestParam(name="id",required=true) String id) {
// LawsSpecialProjectLibrary lawsSpecialProjectLibrary = lawsSpecialProjectLibraryService.queryById(id);
// if(lawsSpecialProjectLibrary==null) {
// return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
// }
// return Result.OK(lawsSpecialProjectLibrary);
//}
/**
* 导出excel
*
* @param request
* @param lawsSpecialProjectLibrary
*/
@RequiresPermissions("specialProjectLibrary:export")
@AutoLog(value = "专项项目库-导出")
@ApiOperation(value="专项项目库-导出")
@RequestMapping(value = "/exportXls")
public void exportXls(HttpServletRequest request, HttpServletResponse response, LawsSpecialProjectLibrary lawsSpecialProjectLibrary) {
lawsSpecialProjectLibraryService.exportXls(request,response,lawsSpecialProjectLibrary);
}
}
@@ -1,178 +0,0 @@
package com.jero.modules.projectLibrary.entity;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.aspect.annotation.Dict;
import com.jero.modules.projectLibrary.vo.DecompositionOrderSourceVO;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.StringUtils;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
/**
* @Description: 项目-标准评估
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
@Data
@TableName("laws_assess")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="laws_assess对象", description="项目-标准评估")
public class LawsAssess implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**项目ID*/
@NotBlank(message = "projectId not null")
@ApiModelProperty(value = "项目ID")
private String projectId;
/**标准ID*/
@NotBlank(message = "standardId not null")
@ApiModelProperty(value = "标准ID")
private String standardId;
/**标准来源*/
@ApiModelProperty(value = "标准来源(1国内、2海外、3企标)")
private String source;
/**标准编号*/
@Excel(name = "标准编号", width = 15)
@ApiModelProperty(value = "标准编号")
private String standardNumber;
/**标准名称*/
@Excel(name = "标准名称", width = 15)
@ApiModelProperty(value = "标准名称")
private String standardName;
@TableField(exist = false)
@Excel(name = "英文名称", width = 15, exportConvert = true)
@ApiModelProperty(value = "英文名称")
private String standardEnglishName;
/**发布日期*/
@TableField(exist = false)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "发布日期")
private java.util.Date releaseDate;
@TableField(exist = false)
@Excel(name = "标准状态", width = 15, dicCode = "standard_state")
@ApiModelProperty(value = "标准状态")
@Dict(dicCode = "standard_state")
private String standardState;
@TableField(exist = false)
@Excel(name = "适用车型", width = 15, exportConvert = true)
@ApiModelProperty(value = "适用车型")
private String applicableVehicle;
@TableField(exist = false)
@Excel(name = "在产车实施日期", width = 15, exportConvert = true)
@ApiModelProperty(value = "在产车实施日期")
private String onTheProductionDate;
@TableField(exist = false)
@Excel(name = "新车型实施日期", width = 15, exportConvert = true)
@ApiModelProperty(value = "新车型实施日期")
private String newModelImplementationDate;
/**流程状态(1-未评估、2-评估中、3-已评估)*/
@Dict(dicCode = "process_status")
@Excel(name = "流程状态", width = 15, dicCode = "process_status")
@ApiModelProperty(value = "流程状态(1-未评估、2-评估中、3-已评估)")
private String processStatus;
/**评估结果(1-符合、2-不符合、3-待验证、4-不涉及)*/
@Excel(name = "评估结果", width = 15)
@Dict(dicCode = "assess_results")
@ApiModelProperty(value = "评估结果(1-符合、2-不符合、3-待验证、4-不涉及)")
private String assessResults;
@TableField(exist = false)
@ApiModelProperty(value = "分解单来源列表")
private List<DecompositionOrderSourceVO> decompositionOrderSourceVOList;
@TableField(exist = false)
@ApiModelProperty(value = "分解单id")
private String sarFileSplitInfoId;
@TableField(exist = false)
@ApiModelProperty(value = "责任部门")
@Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
private String responsibleDepartment;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String orgCode;
/**删除状态(0-正常,1-删除)*/
@ApiModelProperty(value = "删除状态(0-正常,1-删除)")
private String delFlag;
@TableField(exist = false)
@ApiModelProperty(value = "标准编号或名称")
private String standardNumberOrName;
public String convertgetStandardEnglishName(){
return StringUtils.isNotBlank(this.standardEnglishName) ? this.standardEnglishName : "-";
}
public String convertgetApplicableVehicle(){
return StringUtils.isNotBlank(this.applicableVehicle) ? this.applicableVehicle : "-";
}
public String convertgetOnTheProductionDate(){
return StringUtils.isNotBlank(this.onTheProductionDate) ? this.onTheProductionDate : "-";
}
public String convertgetNewModelImplementationDate(){
return StringUtils.isNotBlank(this.newModelImplementationDate) ? this.newModelImplementationDate : "-";
}
public String convertgetResponsibleDepartment(){
return StringUtils.isNotBlank(this.responsibleDepartment) ? this.responsibleDepartment : "-";
}
public String convertgetAssessResults(){
return StringUtils.isNotBlank(this.assessResults) ? this.assessResults : "-";
}
}
@@ -1,204 +0,0 @@
package com.jero.modules.projectLibrary.entity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.aspect.annotation.Dict;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
/**
* @Description: 标准评估结果
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
@Data
@TableName("laws_assess_results")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="laws_assess_results对象", description="标准评估结果")
public class LawsAssessResults implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**项目ID*/
@NotBlank(message = "projectId not null")
@ApiModelProperty(value = "项目ID")
private String projectId;
/**标准评估ID*/
@ApiModelProperty(value = "标准评估ID")
private String assessId;
/**流程状态(1-未评估、2-评估中、3-已评估)*/
@ApiModelProperty(value = "流程状态(1-未评估、2-评估中、3-已评估)")
@Dict(dicCode = "process_status")
private String processStatus;
/**评估人ID*/
@ApiModelProperty(value = "评估人ID")
private String assessorId;
/**评估人名字*/
@ApiModelProperty(value = "评估人名字")
private String assessorName;
/**责任部门ID*/
@ApiModelProperty(value = "责任部门ID")
private String departmentId;
/**评估日期*/
@ApiModelProperty(value = "评估日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date assessTime;
/**评估结果(1-符合、2-不符合、3-待验证、4-不涉及)*/
@Dict(dicCode = "assess_results")
@ApiModelProperty(value = "评估结果(1-符合、2-不符合、3-待验证、4-不涉及)")
private String assessResults;
/**条款ID*/
@ApiModelProperty(value = "条款ID")
private String termId;
/**标准ID*/
@ApiModelProperty(value = "标准ID")
private String standardId;
/**标准号*/
@ApiModelProperty(value = "标准号")
private String standardNumber;
/**标准名称*/
@ApiModelProperty(value = "标准名称")
private String standardName;
/**条款号*/
@ApiModelProperty(value = "条款号")
private String termNumber;
/**条款名称*/
@ApiModelProperty(value = "条款名称")
private String termName;
/**项目编号*/
@ApiModelProperty(value = "项目编号")
private String projectNo;
/**
* 依据描述
*/
@ApiModelProperty(value = "依据描述")
private String description;
/**
* 佐证材料
*/
@ApiModelProperty(value = "佐证材料")
private String fileId;
/**不符合项*/
@ApiModelProperty(value = "不符合项")
private String nonConformance;
/**应对措施*/
@ApiModelProperty(value = "应对措施")
private String countermeasures;
/**风险点*/
@ApiModelProperty(value = "风险点")
private String riskPoints;
/**验证方案*/
@ApiModelProperty(value = "验证方案")
private String validateSolution;
/**预计整改完成日期*/
@ApiModelProperty(value = "预计整改完成日期")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date expectedTime;
/**不涉及理由*/
@ApiModelProperty(value = "不涉及理由")
private String reason;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String orgCode;
/**标准来源*/
@TableField(exist = false)
@ApiModelProperty(value = "标准来源(1国内、2海外、3企标)")
private String source;
@TableField(exist = false)
@Excel(name = "英文名称", width = 15, exportConvert = true)
@ApiModelProperty(value = "英文名称")
private String standardEnglishName;
/**发布日期*/
@TableField(exist = false)
@Excel(name = "发布日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "发布日期")
private java.util.Date releaseDate;
@TableField(exist = false)
@Excel(name = "标准状态", width = 15, dicCode = "standard_state")
@ApiModelProperty(value = "标准状态")
@Dict(dicCode = "standard_state")
private String standardState;
/**
* 流程定义id
*/
@ApiModelProperty(value="流程定义id")
private String processDefinitionId;
/**
* 流程实例id
*/
@ApiModelProperty(value="流程实例id")
private String processInstanceId;
}
@@ -1,169 +0,0 @@
package com.jero.modules.projectLibrary.entity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 评估未符合项条款
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
@Data
@TableName("laws_evaluation_not_met")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="laws_evaluation_not_met对象", description="评估未符合项条款")
public class LawsEvaluationNotMet implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**项目ID*/
@Excel(name = "工作令编号", width = 15, dictTable = "laws_project_library", dicText = "work_number", dicCode = "id")
@Dict(dictTable = "laws_project_library", dicText = "work_number", dicCode = "id")
@ApiModelProperty(value = "项目ID")
private String projectId;
/**工作令编号*/
@TableField(exist = false)
@ApiModelProperty(value = "工作令编号")
private String workNumber;
/**项目名称*/
@Excel(name = "项目名称", width = 15)
@ApiModelProperty(value = "项目名称")
private String projectName;
@ApiModelProperty(value = "标准id")
private String standardId;
@ApiModelProperty(value = "来源(1国标、2外标、3企标)")
private String source;
/**标准编号*/
@Excel(name = "标准编号", width = 15)
@ApiModelProperty(value = "标准编号")
private String standardNumber;
/**标准名称*/
@Excel(name = "标准名称", width = 15)
@ApiModelProperty(value = "标准名称")
private String standardName;
/**条款号*/
@Excel(name = "条款号", width = 15)
@ApiModelProperty(value = "条款号")
private String termNum;
/**条款名称*/
@Excel(name = "条款名称", width = 15)
@ApiModelProperty(value = "条款名称")
private String termName;
/**评估结果(1-符合、2-不符合、3-待验证、4-不涉及)*/
@Dict(dicCode = "assess_results")
@ApiModelProperty(value = "评估结果(1-符合、2-不符合、3-待验证、4-不涉及)")
private String assessResults;
/**设计工程师ID*/
@Excel(name = "设计工程师", width = 15, dictTable = "sys_user",dicText = "CONCAT(realname, '(', username, ')')",dicCode = "id")
@Dict(dictTable = "sys_user",dicText = "realname",dicCode = "id")
@ApiModelProperty(value = "设计工程师ID")
private String engineerId;
@TableField(exist = false)
@ApiModelProperty(value = "设计工程师")
private String engineerName;
/**预计整改完成日期*/
@Excel(name = "预计整改完成日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预计整改完成日期")
private Date expectedTime;
/**实际整改完成日期*/
@Excel(name = "实际整改完成日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "实际整改完成日期")
private Date realityTime;
/**整改状态(1-待整改、2-整改中、3-审批中、4-已完成)*/
@Dict(dicCode = "assess_rectification")
@Excel(name = "整改状态", width = 15, dicCode = "assess_rectification")
@ApiModelProperty(value = "整改状态(1-待整改、2-整改中、3-审批中、4-已完成、5-已关闭)")
private String state;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String orgCode;
/**所属流程*/
@ApiModelProperty(value = "所属流程")
private String prcNum;
/**流程实例id*/
@ApiModelProperty(value = "流程实例id")
private String processInstanceId;
/**
* 依据描述
*/
@ApiModelProperty(value = "依据描述")
private String description;
/**
* 佐证材料
*/
@ApiModelProperty(value = "佐证材料")
private String fileId;
/**预计整改完成日期范围*/
@TableField(exist = false)
@ApiModelProperty(value = "预计整改完成日期范围")
private String expectedTimeRange;
@TableLogic
private Integer delFlag;
@TableField(exist = false)
@ApiModelProperty(value = "标准编号或名称")
private String standardNumberOrName;
}
@@ -1,106 +0,0 @@
package com.jero.modules.projectLibrary.entity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.*;
import com.jero.common.aspect.annotation.Dict;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
/**
* @Description: 项目库
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
@Data
@TableName("laws_project_library")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="laws_project_library对象", description="项目库")
public class LawsProjectLibrary implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**项目来源(1-本地新增、2-PMS)*/
@Dict(dicCode = "project_source")
@Excel(name = "项目来源", width = 15, dicCode = "project_source")
@ApiModelProperty(value = "项目来源(1-本地新增、2-PMS)")
private String projectSource;
/**项目名称*/
@NotBlank(message = "projectName not null")
@Excel(name = "项目名称", width = 15)
@ApiModelProperty(value = "项目名称")
private String projectName;
/**项目负责人*/
@ApiModelProperty(value = "项目负责人")
@Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
@Excel(name = "项目负责人", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id")
private String projectLeader;
/**工作令编号*/
@ApiModelProperty(value = "工作令编号")
@Excel(name = "工作令编号", width = 15)
private String workNumber;
/**项目健康度(1-预警、2-风险、3-正常)*/
@Dict(dicCode = "project_health")
@Excel(name = "项目健康度", width = 15, dicCode = "project_health")
@ApiModelProperty(value = "项目健康度(1-预警、2-风险、3-正常)")
private String projectHealth;
/**项目级别*/
@Dict(dicCode = "project_level")
@Excel(name = "项目级别", width = 15, dicCode = "project_level")
@ApiModelProperty(value = "项目级别")
private String projectLevel;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String orgCode;
/**删除状态(0-正常,1-删除)*/
@TableLogic
@ApiModelProperty(value = "删除状态(0-正常,1-删除)")
private String delFlag;
@TableField(exist = false)
@ApiModelProperty(value = "姓名+工号")
private String nameWorkNo;
}
@@ -1,42 +0,0 @@
package com.jero.modules.projectLibrary.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* @author: xzk
* @Date: 2024年4月2日 09:39:56
*/
@Data
public class LawsProjectLibraryPMS {
@Excel(name = "项目名称", width = 15, orderNum = "0")
private String projectName;
@Excel(name = "工作令编号", width = 15, orderNum = "1")
private String workNumber;
@Excel(name = "项目负责人", width = 15, orderNum = "2")
private String projectLeaderNo;
@Excel(name = "项目级别", width = 15, orderNum = "3")
private String projectLevel;
@Excel(name = "错误信息", width = 35, orderNum = "4")
@TableField(exist = false)
private String errorInfo;
/**
* 判断是否是空行
*
* @return 如果所有字段都为null或空字符串,返回true,否则返回false
*/
public boolean isEmptyRow() {
return projectName == null
&& workNumber == null
&& projectLeaderNo == null
&& projectLevel == null;
}
}
@@ -1,148 +0,0 @@
package com.jero.modules.projectLibrary.entity;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.aspect.annotation.Dict;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 专项项目库
* @Author: jero-boot
* @Date: 2023-09-22
* @Version: V1.0
*/
@Data
@TableName("laws_special_project_library")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="laws_special_project_library对象", description="专项项目库")
public class LawsSpecialProjectLibrary implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String orgCode;
/**来源(1-国内、2-海外)*/
@Excel(name = "来源", width = 15, dicCode = "standard_source")
@Dict(dicCode = "standard_source")
@ApiModelProperty(value = "来源(1-国内、2-海外)")
private String source;
/**标准编号*/
@Excel(name = "标准编号", width = 15)
@ApiModelProperty(value = "标准编号")
private String standardNumber;
/**标准名称*/
@Excel(name = "标准名称", width = 15)
@ApiModelProperty(value = "标准名称")
private String standardName;
/**标准ID*/
@ApiModelProperty(value = "标准ID")
private String standardId;
/**条款号*/
@Excel(name = "条款号", width = 15)
@ApiModelProperty(value = "条款号")
private String termNumber;
/**条款名称*/
@Excel(name = "条款名称", width = 15)
@ApiModelProperty(value = "条款名称")
private String termName;
/**标准类型(1-国内、2-海外、3-企标)*/
@ApiModelProperty(value = "标准类型(1-国内、2-海外、3-企标)")
private String standardType;
/**标准状态*/
@Excel(name = "标准状态", width = 15, dicCode = "standard_state")
@ApiModelProperty(value = "标准状态")
@Dict(dicCode = "standard_state")
private String standardState;
/**车型系列*/
@Excel(name = "车型系列", width = 15, dicCode = "model_series")
@Dict(dicCode = "model_series")
@ApiModelProperty(value = "车型系列")
private String modelSeries;
/**合规评估结果*/
@Dict(dicCode = "assess_results")
@Excel(name = "合规评估结果", width = 15, dicCode = "assess_results")
@ApiModelProperty(value = "合规评估结果")
private String result;
/**问题描述*/
@ApiModelProperty(value = "依据描述")
private String description;
/**佐证材料*/
@ApiModelProperty(value = "佐证材料")
private String material;
/**评估日期*/
@Excel(name = "评估日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "评估日期")
private Date valuationTime;
/**是否立项*/
@Dict(dicCode = "yn")
@Excel(name = "是否立项", width = 15, dicCode = "yn")
@ApiModelProperty(value = "是否立项")
private String projectApproval;
/**工作令编号*/
@Excel(name = "工作令编号", width = 15)
@ApiModelProperty(value = "工作令编号")
private String workNumber;
/**项目名称*/
@Excel(name = "项目名称", width = 15)
@ApiModelProperty(value = "项目名称")
private String projectName;
/**
* 流程实例id
*/
@ApiModelProperty(value="流程实例id")
private String processInstanceId;
/**流程编号*/
@Excel(name = "流程编号", width = 15)
@ApiModelProperty(value = "流程编号")
private String processNum;
/**流程关联条款id*/
@ApiModelProperty(value = "流程关联条款id")
private String processTermId;
/**排序字段*/
@TableField(exist = false)
@ApiModelProperty(value = "排序字段")
private String column;
/**排序方式*/
@TableField(exist = false)
@ApiModelProperty(value = "排序方式")
private String order;
}
@@ -1,68 +0,0 @@
package com.jero.modules.projectLibrary.job;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.modules.projectLibrary.common.AssessCommon;
import com.jero.modules.projectLibrary.entity.LawsEvaluationNotMet;
import com.jero.modules.projectLibrary.service.ILawsEvaluationNotMetService;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
* 未符合项更新整改状态
* @author liJiaRao
* @date 2023-12-25 17:34
*/
@Slf4j
public class UpdateStatusJob implements Job {
@Resource
ILawsEvaluationNotMetService lawsEvaluationNotMetService;
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
DateTime date = DateUtil.parseDateTime(DateUtil.formatDateTime(new Date()));
date = date
.setField(DateField.HOUR_OF_DAY,0)
.setField(DateField.MINUTE,0)
.setField(DateField.SECOND,0);
//预计整改完成日期前一天
DateTime theDayBefore = DateUtil.offsetDay(date, 1);
LambdaQueryWrapper<LawsEvaluationNotMet> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(LawsEvaluationNotMet::getExpectedTime,theDayBefore);
wrapper.eq(LawsEvaluationNotMet::getState, AssessCommon.TO_BE_RECTIFIED);
List<LawsEvaluationNotMet> list = lawsEvaluationNotMetService.list(wrapper);
for (LawsEvaluationNotMet lawsEvaluationNotMet : list) {
LambdaUpdateWrapper<LawsEvaluationNotMet> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(LawsEvaluationNotMet::getState, AssessCommon.WARNING);
updateWrapper.eq(LawsEvaluationNotMet::getId,lawsEvaluationNotMet.getId());
lawsEvaluationNotMetService.update(updateWrapper);
}
//预计整改完成日期后一天
DateTime theDayAfter = DateUtil.offsetDay(date, -1);
LambdaQueryWrapper<LawsEvaluationNotMet> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.le(LawsEvaluationNotMet::getExpectedTime,theDayAfter);
wrapper1.and(a -> {
a.eq(LawsEvaluationNotMet::getState, AssessCommon.TO_BE_RECTIFIED)
.or()
.eq(LawsEvaluationNotMet::getState, AssessCommon.WARNING);
});
List<LawsEvaluationNotMet> list1 = lawsEvaluationNotMetService.list(wrapper1);
for (LawsEvaluationNotMet lawsEvaluationNotMet : list1) {
LambdaUpdateWrapper<LawsEvaluationNotMet> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(LawsEvaluationNotMet::getState, AssessCommon.OVERDUE);
updateWrapper.eq(LawsEvaluationNotMet::getId,lawsEvaluationNotMet.getId());
lawsEvaluationNotMetService.update(updateWrapper);
}
}
}
@@ -1,20 +0,0 @@
package com.jero.modules.projectLibrary.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.projectLibrary.entity.LawsAssess;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 项目-标准评估
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
public interface LawsAssessMapper extends BaseMapper<LawsAssess> {
Integer changeDelFlag(@Param("projectId") String projectId, @Param("standardId") String standardId);
List<LawsAssess> getAllByProjectIdDeleted(@Param("projectId") String projectId);
}
@@ -1,18 +0,0 @@
package com.jero.modules.projectLibrary.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.projectLibrary.entity.LawsAssessResults;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 标准评估结果
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
public interface LawsAssessResultsMapper extends BaseMapper<LawsAssessResults> {
List<LawsAssessResults> selectListByProjectIdAndStandardId(@Param("projectId") String projectId, @Param("standardId") String standardId);
}
@@ -1,20 +0,0 @@
package com.jero.modules.projectLibrary.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.projectLibrary.entity.LawsEvaluationNotMet;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 评估未符合项条款
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
public interface LawsEvaluationNotMetMapper extends BaseMapper<LawsEvaluationNotMet> {
IPage<LawsEvaluationNotMet> pageList(Page<LawsEvaluationNotMet> page, @Param(Constants.WRAPPER) QueryWrapper<LawsEvaluationNotMet> queryWrapper, @Param("notMet") LawsEvaluationNotMet lawsEvaluationNotMet);
}
@@ -1,17 +0,0 @@
package com.jero.modules.projectLibrary.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.projectLibrary.entity.LawsProjectLibrary;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 项目库
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
public interface LawsProjectLibraryMapper extends BaseMapper<LawsProjectLibrary> {
}
@@ -1,18 +0,0 @@
package com.jero.modules.projectLibrary.mapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.projectLibrary.entity.LawsSpecialProjectLibrary;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 专项项目库
* @Author: jero-boot
* @Date: 2023-09-22
* @Version: V1.0
*/
public interface LawsSpecialProjectLibraryMapper extends BaseMapper<LawsSpecialProjectLibrary> {
Page<LawsSpecialProjectLibrary> pageList(Page<LawsSpecialProjectLibrary> page,@Param("obj") LawsSpecialProjectLibrary lawsSpecialProjectLibrary);
}
@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.projectLibrary.mapper.LawsAssessMapper">
<resultMap id="LawsAssessResultMap" type="com.jero.modules.projectLibrary.entity.LawsAssess">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="org_code" property="orgCode" />
<result column="standard_id" property="standardId" />
<result column="standard_num" property="standardNum" />
<result column="project_id" property="projectId" />
<result column="project_name" property="projectName" />
<result column="term_id" property="termId" />
<result column="term_num" property="termNum" />
<result column="term_name" property="termName" />
<result column="department_id" property="departmentId" />
<result column="engineer_id" property="engineerId" />
<result column="engineer_name" property="engineerName" />
<result column="expected_time" property="expectedTime" />
<result column="reality_time" property="realityTime" />
<result column="state" property="state" />
</resultMap>
<select id="getAllByProjectIdDeleted" resultMap="LawsAssessResultMap">
select * from laws_assess la
<where>
la.del_flag = 1
and la.project_id = #{projectId}
</where>
</select>
<update id="changeDelFlag">
update laws_assess la
set la.del_flag = 0
where project_id = #{projectId}
and standard_id = #{standardId}
</update>
</mapper>
@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.projectLibrary.mapper.LawsAssessResultsMapper">
<select id="selectListByProjectIdAndStandardId"
resultType="com.jero.modules.projectLibrary.entity.LawsAssessResults">
select * from laws_assess_results
<where>
project_id = #{projectId}
and standard_id = #{standardId}
</where>
group by term_number,assessor_id
</select>
</mapper>
@@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.projectLibrary.mapper.LawsEvaluationNotMetMapper">
<resultMap id="LawsEvaluationNotMetResultMap" type="com.jero.modules.projectLibrary.entity.LawsEvaluationNotMet">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="org_code" property="orgCode" />
<result column="standard_id" property="standardId" />
<result column="standard_num" property="standardNum" />
<result column="project_id" property="projectId" />
<result column="project_name" property="projectName" />
<result column="term_id" property="termId" />
<result column="term_num" property="termNum" />
<result column="term_name" property="termName" />
<result column="engineer_id" property="engineerId" />
<result column="engineer_name" property="engineerName" />
<result column="expected_time" property="expectedTime" />
<result column="reality_time" property="realityTime" />
<result column="state" property="state" />
<result column="assess_results" property="assessResults"/>
<result column="del_flag" property="delFlag"/>
<result column="description" property="description"/>
<result column="file_id" property="fileId"/>
<result column="prc_num" property="prcNum"/>
<result column="source" property="source"/>
<result column="standard_name" property="standardName"/>
<result column="standard_number" property="standardNumber"/>
</resultMap>
<select id="pageList" resultMap="LawsEvaluationNotMetResultMap">
select nm.* from laws_evaluation_not_met_library nm
${ew.customSqlSegment}
</select>
</mapper>
@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.projectLibrary.mapper.LawsProjectLibraryMapper">
<resultMap id="LawsProjectLibraryResultMap" type="com.jero.modules.projectLibrary.entity.LawsProjectLibrary">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="org_code" property="orgCode" />
<result column="project_source" property="projectSource" />
<result column="project_name" property="projectName" />
<result column="work_number" property="workNumber" />
<result column="project_leader" property="projectLeader" />
<result column="project_health" property="projectHealth" />
<result column="del_flag" property="delFlag" />
</resultMap>
</mapper>
@@ -1,111 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.projectLibrary.mapper.LawsSpecialProjectLibraryMapper">
<resultMap id="LawsSpecialProjectLibraryResultMap" type="com.jero.modules.projectLibrary.entity.LawsSpecialProjectLibrary">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="org_code" property="orgCode" />
<result column="source" property="source" />
<result column="standard_number" property="standardNumber" />
<result column="standard_name" property="standardName" />
<result column="standard_id" property="standardId" />
<result column="term_number" property="termNumber" />
<result column="term_name" property="termName" />
<result column="standard_type" property="standardType" />
<result column="standard_state" property="standardState" />
<result column="vehicle_model" property="vehicleModel" />
<result column="result" property="result" />
<result column="description" property="description" />
<result column="material" property="material" />
<result column="valuation_time" property="valuationTime" />
<result column="project_approval" property="projectApproval" />
<result column="work_number" property="workNumber" />
<result column="project_name" property="projectName" />
<result column="process_num" property="processNum" />
<result column="model_series" property="modelSeries"/>
<result column="process_term_id" property="processTermId"/>
<result column="process_instance_id" property="processInstanceId"/>
</resultMap>
<select id="pageList" resultMap="LawsSpecialProjectLibraryResultMap">
select lspl.id,
lspl.create_by,
lspl.create_time,
lspl.update_by,
lspl.update_time,
lspl.org_code,
lspl.`source`,
lspl.standard_number,
lspl.standard_name,
lspl.standard_id,
lspl.term_number,
lspl.term_name,
lspl.standard_type,
case
when lspl.`source` = 1
then lds.standard_state
when lspl.`source` = 2
then los.standard_state
end as standard_state,
lspl.model_series,
lspl.`result`,
lspl.description,
lspl.material,
lspl.valuation_time,
lspl.project_approval,
lspl.work_number,
lspl.project_name,
lspl.process_instance_id,
lspl.process_num,
lspl.process_term_id
from laws_special_project_library lspl
left join laws_domestic_standard lds on lspl.standard_id = lds.id
left join laws_overseas_standard los on lspl.standard_id = los.id
<where>
<if test="obj.source != null">
lspl.`source` = #{obj.source}
</if>
<if test="obj.projectName != null">
and lspl.project_name like concat('%', #{obj.projectName}, '%')
</if>
<if test="obj.modelSeries != null and obj.modelSeries != ''">
and lspl.model_series REGEXP (#{obj.modelSeries})
</if>
<if test="obj.standardState != null">
and (
lds.standard_state = #{obj.standardState}
or
los.standard_state = #{obj.standardState}
)
</if>
<if test="obj.result != null">
and lspl.`result` = #{obj.result}
</if>
<if test="obj.projectApproval != null">
and lspl.project_approval = #{obj.projectApproval}
</if>
<if test="obj.standardId != null">
and lspl.standard_id = #{obj.standardId}
</if>
</where>
order by
<choose>
<when test="obj.column != null and obj.column == 'standardNumber'">
lspl.standard_number<!--@sql ,-->
</when>
<when test="obj.column != null and obj.column == 'valuationTime'">
lspl.valuation_time<!--@sql ,-->
</when>
<otherwise>
lspl.create_time
</otherwise>
</choose>
<if test="obj.order != null and obj.order == 'desc'">
desc
</if>
</select>
</mapper>
@@ -1,79 +0,0 @@
package com.jero.modules.projectLibrary.service;
import com.jero.modules.projectLibrary.entity.LawsAssessResults;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.projectLibrary.vo.MetNotMetVO;
import java.util.List;
/**
* @Description: 标准评估结果
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
public interface ILawsAssessResultsService extends IService<LawsAssessResults> {
/**
* 分页查询
*
* @param lawsAssessResults
* @param pageNo
* @param pageSize
* @param req
* @return
*/
IPage<LawsAssessResults> queryPage(LawsAssessResults lawsAssessResults, Integer pageNo, Integer pageSize, HttpServletRequest req);
/**
* 列表查询
*
* @param lawsAssessResults
* @param req
* @return
*/
List<LawsAssessResults> queryList(LawsAssessResults lawsAssessResults, HttpServletRequest req);
/**
* 保存
*
* @param lawsAssessResults
* @return
*/
void add(LawsAssessResults lawsAssessResults);
/**
* 更新
*
* @param lawsAssessResults
* @return
*/
void editById(LawsAssessResults lawsAssessResults);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
MetNotMetVO getMetNotMetVOById(String id);
}
@@ -1,84 +0,0 @@
package com.jero.modules.projectLibrary.service;
import com.jero.modules.projectLibrary.entity.LawsAssess;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.projectLibrary.vo.LawsAssessAddVo;
import java.util.List;
/**
* @Description: 项目-标准评估
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
public interface ILawsAssessService extends IService<LawsAssess> {
/**
* 分页查询
*
* @param lawsAssess
* @param pageNo
* @param pageSize
* @param req
* @return
*/
IPage<LawsAssess> queryPage(LawsAssess lawsAssess, Integer pageNo, Integer pageSize, HttpServletRequest req);
/**
* 列表查询
*
* @param lawsAssess
* @param req
* @return
*/
List<LawsAssess> queryList(LawsAssess lawsAssess, HttpServletRequest req);
/**
* 保存
*
* @param lawsAssess
* @return
*/
void add(LawsAssess lawsAssess);
/**
* 更新
*
* @param lawsAssess
* @return
*/
void editById(LawsAssess lawsAssess);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 通过id查询
*
* @param id
* @return
*/
LawsAssess queryById(String id);
/**
* 查询该项目下所有未删除的标准
*/
List<LawsAssess> getAllByProjectIdNotDeleted(String projectId);
/**
* 查询该项目下所有删除的标准
*/
List<LawsAssess> getAllByProjectIdDeleted(String projectId);
void assignment(List<LawsAssess> records);
void retrieval(LawsAssessAddVo lawsAssessAddVo);
}
@@ -1,80 +0,0 @@
package com.jero.modules.projectLibrary.service;
import com.jero.modules.projectLibrary.entity.LawsEvaluationNotMet;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
* @Description: 评估未符合项条款
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
public interface ILawsEvaluationNotMetService extends IService<LawsEvaluationNotMet> {
/**
* 分页查询
*
* @param lawsEvaluationNotMet
* @param pageNo
* @param pageSize
* @param req
* @return
*/
IPage<LawsEvaluationNotMet> queryPage(LawsEvaluationNotMet lawsEvaluationNotMet, Integer pageNo, Integer pageSize, HttpServletRequest req);
/**
* 列表查询
*
* @param lawsEvaluationNotMet
* @param req
* @return
*/
List<LawsEvaluationNotMet> queryList(LawsEvaluationNotMet lawsEvaluationNotMet, HttpServletRequest req);
/**
* 保存
*
* @param lawsEvaluationNotMet
* @return
*/
void add(LawsEvaluationNotMet lawsEvaluationNotMet);
/**
* 更新
*
* @param lawsEvaluationNotMet
* @return
*/
void editById(LawsEvaluationNotMet lawsEvaluationNotMet);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
LawsEvaluationNotMet queryById(String id);
void batchClose(List<String> ids);
IPage<LawsEvaluationNotMet> pageForProcess(LawsEvaluationNotMet lawsEvaluationNotMet, Integer pageNo, Integer pageSize, HttpServletRequest req);
}
@@ -1,61 +0,0 @@
package com.jero.modules.projectLibrary.service;
import com.jero.modules.projectLibrary.entity.LawsProjectLibrary;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
/**
* @Description: 项目库
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
public interface ILawsProjectLibraryService extends IService<LawsProjectLibrary> {
/**
* 分页查询
*/
IPage<LawsProjectLibrary> queryPage(LawsProjectLibrary lawsProjectLibrary, Integer pageNo, Integer pageSize, HttpServletRequest req);
List<LawsProjectLibrary> queryList(LawsProjectLibrary lawsProjectLibrary, HttpServletRequest req);
/**
* 保存
*/
void add(LawsProjectLibrary lawsProjectLibrary);
/**
* 更新
*/
void editById(LawsProjectLibrary lawsProjectLibrary);
void checkPermission(LawsProjectLibrary projectLibrary);
/**
* 通过id删除
*/
void deleteById(String id);
/**
* 批量删除
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*/
LawsProjectLibrary queryById(String id);
/**
* 导入
*/
void importPMSExcel(MultipartFile file, HttpServletResponse response) throws IOException;
}
@@ -1,80 +0,0 @@
package com.jero.modules.projectLibrary.service;
import com.jero.modules.projectLibrary.entity.LawsSpecialProjectLibrary;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
* @Description: 专项项目库
* @Author: jero-boot
* @Date: 2023-09-22
* @Version: V1.0
*/
public interface ILawsSpecialProjectLibraryService extends IService<LawsSpecialProjectLibrary> {
/**
* 分页查询
*
* @param lawsSpecialProjectLibrary
* @param pageNo
* @param pageSize
* @param req
* @return
*/
IPage<LawsSpecialProjectLibrary> queryPage(LawsSpecialProjectLibrary lawsSpecialProjectLibrary, Integer pageNo, Integer pageSize, HttpServletRequest req);
/**
* 列表查询
*
* @param lawsSpecialProjectLibrary
* @param req
* @return
*/
List<LawsSpecialProjectLibrary> queryList(LawsSpecialProjectLibrary lawsSpecialProjectLibrary, HttpServletRequest req);
/**
* 保存
*
* @param lawsSpecialProjectLibrary
* @return
*/
void add(LawsSpecialProjectLibrary lawsSpecialProjectLibrary);
/**
* 更新
*
* @param lawsSpecialProjectLibrary
* @return
*/
void editById(LawsSpecialProjectLibrary lawsSpecialProjectLibrary);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
LawsSpecialProjectLibrary queryById(String id);
void exportXls(HttpServletRequest request, HttpServletResponse response, LawsSpecialProjectLibrary lawsSpecialProjectLibrary);
}
@@ -1,217 +0,0 @@
package com.jero.modules.projectLibrary.service.impl;
import cn.hutool.core.collection.CollStreamUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.constant.CommonConstant;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.laws.standard.entity.LawsDomesticStandard;
import com.jero.modules.laws.standard.service.ILawsDomesticStandardService;
import com.jero.modules.projectLibrary.common.AssessCommon;
import com.jero.modules.projectLibrary.entity.LawsAssess;
import com.jero.modules.projectLibrary.entity.LawsAssessResults;
import com.jero.modules.projectLibrary.mapper.LawsAssessResultsMapper;
import com.jero.modules.projectLibrary.service.ILawsAssessResultsService;
import com.jero.modules.projectLibrary.service.ILawsAssessService;
import com.jero.modules.projectLibrary.vo.MetNotMetVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jero.common.exception.JeroBootException;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import java.util.Map;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.query.QueryGenerator;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
/**
* @Description: 标准评估结果
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
@Service
@Transactional(rollbackFor = JeroBootException.class)
public class LawsAssessResultsServiceImpl extends ServiceImpl<LawsAssessResultsMapper, LawsAssessResults> implements ILawsAssessResultsService {
@Autowired
private ILawsAssessService lawsAssessService;
@Autowired
private ILawsDomesticStandardService lawsDomesticStandardService; //国内标准
@Resource
private ISysBaseAPI sysBaseAPI;
/**
* 分页查询
*
* @param lawsAssessResults
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@Override
public IPage<LawsAssessResults> queryPage(LawsAssessResults lawsAssessResults, Integer pageNo, Integer pageSize,
HttpServletRequest req) {
String assessId = lawsAssessResults.getAssessId();
LawsAssess lawsAssess = lawsAssessService.queryById(assessId);
if(lawsAssess==null) {
throw new JeroBootException(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
String projectId = lawsAssess.getProjectId();
String standardId = lawsAssess.getStandardId();
String source = lawsAssess.getSource();
String standardNumber = null;
String standardName = null;
String standardEnglishName = null;
String standardState = null;
List<DictModel> dictModels = sysBaseAPI.queryDictItemsByCode("standard_state");
Map<String, String> standardStateMap = CollStreamUtil.toMap(dictModels, DictModel::getValue, DictModel::getText);
if (CommonConstant.STANDARD_SOURCE_1.equals(source)){
//查询国内标准数据,赋值给collection
LawsDomesticStandard standard = lawsDomesticStandardService.queryById(standardId);
if (standard != null){
standardNumber = standard.getStandardNumber();
standardName = standard.getStandardName();
standardEnglishName = standard.getStandardEnglishName();
standardState = standardStateMap.get(standard.getStandardState());
}
}
Map<String, String[]> parameterMap = req.getParameterMap();
parameterMap.remove("assessId");
lawsAssessResults.setAssessId(null);
QueryWrapper<LawsAssessResults> queryWrapper = QueryGenerator.initQueryWrapper(lawsAssessResults, parameterMap);
queryWrapper.lambda()
.eq(LawsAssessResults::getProjectId,projectId)
.eq(LawsAssessResults::getStandardId,standardId);
Page<LawsAssessResults> page = new Page<>(pageNo, pageSize);
Page<LawsAssessResults> pageList = page(page, queryWrapper);
for (LawsAssessResults assessResults : pageList.getRecords()) {
assessResults.setStandardName(standardName);
assessResults.setStandardNumber(standardNumber);
assessResults.setStandardEnglishName(standardEnglishName);
assessResults.setStandardState(standardState);
assessResults.setSource(source);
}
return pageList;
}
/**
* 列表查询
*
* @param lawsAssessResults
* @param req
* @return
*/
@Override
public List<LawsAssessResults> queryList(LawsAssessResults lawsAssessResults, HttpServletRequest req) {
return list(QueryGenerator.initQueryWrapper(lawsAssessResults, req.getParameterMap()));
}
/**
* 保存
*
* @param lawsAssessResults
* @return
*/
@Override
public void add(LawsAssessResults lawsAssessResults) {
Date now = new Date();
lawsAssessResults.setCreateTime(now);
lawsAssessResults.setUpdateTime(now);
save(lawsAssessResults);
}
/**
* 更新
*
* @param lawsAssessResults
* @return
*/
@Override
public void editById(LawsAssessResults lawsAssessResults) {
Date now = new Date();
lawsAssessResults.setUpdateTime(now);
saveOrUpdate(lawsAssessResults);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public MetNotMetVO getMetNotMetVOById(String id) {
LawsAssessResults assessResults = getById(id);
if (assessResults == null){
LawsAssess assess = lawsAssessService.getById(id);
LambdaQueryWrapper<LawsAssessResults> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(LawsAssessResults::getProjectId,assess.getProjectId())
.eq(LawsAssessResults::getStandardId,assess.getStandardId());
wrapper.orderByDesc(LawsAssessResults::getCreateTime);
wrapper.last("limit 1");
assessResults = this.getOne(wrapper);
LambdaQueryWrapper<LawsAssessResults> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper
.eq(LawsAssessResults::getProjectId,assessResults.getProjectId())
.eq(LawsAssessResults::getStandardId,assessResults.getStandardId())
.eq(LawsAssessResults::getProcessInstanceId,assessResults.getProcessInstanceId());
List<LawsAssessResults> assessResultsList = this.list(queryWrapper);
Map<String, List<LawsAssessResults>> stringListMap = CollStreamUtil.groupByKey(assessResultsList, LawsAssessResults::getAssessResults);
MetNotMetVO metNotMetVO = new MetNotMetVO();
metNotMetVO.setAccordWithList(stringListMap.get(AssessCommon.ACCORD_WITH));
metNotMetVO.setNotCompliantList(stringListMap.get(AssessCommon.NOT_COMPLIANT));
metNotMetVO.setToBeVerifiedList(stringListMap.get(AssessCommon.TO_BE_VERIFIED));
metNotMetVO.setNotInvolvedList(stringListMap.get(AssessCommon.NOT_INVOLVED));
return metNotMetVO;
}else {
List<LawsAssessResults> assessResultsList = new ArrayList<>();
assessResultsList.add(assessResults);
Map<String, List<LawsAssessResults>> stringListMap = CollStreamUtil.groupByKey(assessResultsList, LawsAssessResults::getAssessResults);
MetNotMetVO metNotMetVO = new MetNotMetVO();
metNotMetVO.setAccordWithList(stringListMap.get(AssessCommon.ACCORD_WITH));
metNotMetVO.setNotCompliantList(stringListMap.get(AssessCommon.NOT_COMPLIANT));
metNotMetVO.setToBeVerifiedList(stringListMap.get(AssessCommon.TO_BE_VERIFIED));
metNotMetVO.setNotInvolvedList(stringListMap.get(AssessCommon.NOT_INVOLVED));
return metNotMetVO;
}
}
}
@@ -1,287 +0,0 @@
package com.jero.modules.projectLibrary.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.constant.CommonConstant;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.laws.standard.entity.LawsDomesticStandard;
import com.jero.modules.laws.standard.service.ILawsDomesticStandardService;
import com.jero.modules.projectLibrary.common.AssessCommon;
import com.jero.modules.projectLibrary.entity.LawsAssess;
import com.jero.modules.projectLibrary.entity.LawsEvaluationNotMet;
import com.jero.modules.projectLibrary.entity.LawsProjectLibrary;
import com.jero.modules.projectLibrary.mapper.LawsAssessMapper;
import com.jero.modules.projectLibrary.service.ILawsAssessResultsService;
import com.jero.modules.projectLibrary.service.ILawsAssessService;
import com.jero.modules.projectLibrary.service.ILawsEvaluationNotMetService;
import com.jero.modules.projectLibrary.service.ILawsProjectLibraryService;
import com.jero.modules.projectLibrary.vo.DecompositionOrderSourceVO;
import com.jero.modules.projectLibrary.vo.LawsAssessAddVo;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.service.ISarFileSplitInfoService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jero.common.exception.JeroBootException;
import java.util.*;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.query.QueryGenerator;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
/**
* @Description: 项目-标准评估
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
@Service
@Transactional(rollbackFor = JeroBootException.class)
public class LawsAssessServiceImpl extends ServiceImpl<LawsAssessMapper, LawsAssess> implements ILawsAssessService {
@Resource
private ISarFileSplitInfoService sarFileSplitInfoService;
//国内标准
@Autowired
private ILawsDomesticStandardService lawsDomesticStandardService;
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource
private LawsAssessMapper lawsAssessMapper;
@Resource
private ILawsAssessResultsService lawsAssessResultsService;
@Resource
private ILawsEvaluationNotMetService notMetService;
@Resource
private ILawsProjectLibraryService lawsProjectLibraryService;
/**
* 分页查询
*
* @param lawsAssess
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@Override
public IPage<LawsAssess> queryPage(LawsAssess lawsAssess, Integer pageNo, Integer pageSize,
HttpServletRequest req) {
QueryWrapper<LawsAssess> queryWrapper = QueryGenerator.initQueryWrapper(lawsAssess, req.getParameterMap());
String standardNumberOrName = lawsAssess.getStandardNumberOrName();
if (StringUtils.isNotBlank(standardNumberOrName)){
queryWrapper.lambda().and(i->{
i.like(LawsAssess::getStandardName,standardNumberOrName)
.or()
.like(LawsAssess::getStandardNumber,standardNumberOrName);
});
}
Page<LawsAssess> page = new Page<>(pageNo, pageSize);
return page(page, queryWrapper);
}
/**
* 列表查询
*
* @param lawsAssess
* @param req
* @return
*/
@Override
public List<LawsAssess> queryList(LawsAssess lawsAssess, HttpServletRequest req) {
return list(QueryGenerator.initQueryWrapper(lawsAssess, req.getParameterMap()));
}
/**
* 保存
*
* @param lawsAssess
* @return
*/
@Override
public void add(LawsAssess lawsAssess) {
Date now = new Date();
lawsAssess.setCreateTime(now);
lawsAssess.setUpdateTime(now);
save(lawsAssess);
}
/**
* 更新
*
* @param lawsAssess
* @return
*/
@Override
public void editById(LawsAssess lawsAssess) {
Date now = new Date();
lawsAssess.setUpdateTime(now);
saveOrUpdate(lawsAssess);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
LawsAssess lawsAssess = getById(id);
String projectId = lawsAssess.getProjectId();
//校验权限
LawsProjectLibrary projectLibrary = lawsProjectLibraryService.getById(projectId);
lawsProjectLibraryService.checkPermission(projectLibrary);
String processStatus = lawsAssess.getProcessStatus();
if (AssessCommon.UNDER_EVALUATION.equals(processStatus)){
throw new JeroBootException(ResultCommon.ERROR);
}
//未符合项中有整改中、审批中的数据时,不允许删除
LambdaQueryWrapper<LawsEvaluationNotMet> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(LawsEvaluationNotMet::getProjectId, projectId);
queryWrapper.in(LawsEvaluationNotMet::getStandardId, lawsAssess.getStandardId());
List<LawsEvaluationNotMet> notMetList = notMetService.list(queryWrapper);
for (LawsEvaluationNotMet notMet : notMetList) {
String state = notMet.getState();
if (AssessCommon.RECTIFICATION.equals(state)||
AssessCommon.UNDER_APPROVAL.equals(state)){
throw new JeroBootException(ResultCommon.ASSESS_DELETE_ERROR);
}
}
lawsAssess.setDelFlag(CommonConstant.DEL_FLAG_1.toString());
updateById(lawsAssess);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public LawsAssess queryById(String id) {
return getById(id);
}
@Override
public List<LawsAssess> getAllByProjectIdNotDeleted(String projectId) {
if (StringUtils.isBlank(projectId)){
return new ArrayList<>();
}
List<String> projectIdList = Arrays.asList(projectId.split(","));
LambdaQueryWrapper<LawsAssess> wrapper = new LambdaQueryWrapper<>();
wrapper.in(LawsAssess::getProjectId, projectIdList);
wrapper.eq(LawsAssess::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
return list(wrapper);
}
@Override
public List<LawsAssess> getAllByProjectIdDeleted(String projectId) {
if (StringUtils.isBlank(projectId)){
return new ArrayList<>();
}
return lawsAssessMapper.getAllByProjectIdDeleted(projectId);
}
@Override
public void assignment(List<LawsAssess> records) {
for (LawsAssess assess : records) {
String standardId = assess.getStandardId();
String source = assess.getSource();
if (CommonConstant.STANDARD_SOURCE_1.equals(source)){
//查询国内标准数据,赋值给collection
LawsDomesticStandard standard = lawsDomesticStandardService.queryById(standardId);
if (standard != null){
assess.setStandardEnglishName(standard.getStandardEnglishName());
assess.setStandardState(standard.getStandardState());
assess.setApplicableVehicle(standard.getApplicableVehicle());
// TODO
// assess.setOnTheProductionDate(standard.getOnTheProductionDate());
// assess.setNewModelImplementationDate(standard.getNewModelImplementationDate());
// assess.setReleaseDate(standard.getReleaseDate());
// assess.setResponsibleDepartment(standard.getResponsibleDepartment());
}
}
// 查询标准拆分表
LambdaQueryWrapper<SarFileSplitInfoEO> queryWrapper = new LambdaQueryWrapper<>();
// 标准id
queryWrapper.eq(SarFileSplitInfoEO::getStandardId, standardId);
// 拆分表发布标识
queryWrapper.isNotNull(SarFileSplitInfoEO::getPublishBeforeId);
// 文件字段标识
queryWrapper.isNotNull(SarFileSplitInfoEO::getFileType);
List<SarFileSplitInfoEO> sarFileSplitInfoEOList = sarFileSplitInfoService.list(queryWrapper);
Map<String, String> flagMap = new HashMap<>();
List<DictModel> dictModels = sysBaseAPI.queryDictItemsByCode("decomposition_order_source");
List<DecompositionOrderSourceVO>mapList = new ArrayList<>();
sarFileSplitInfoEOList.forEach(e -> flagMap.put(e.getFileType(), e.getId()));
for (DictModel dictModel : dictModels) {
String text = dictModel.getText();
String value = dictModel.getValue();
DecompositionOrderSourceVO decompositionOrderSourceVO = new DecompositionOrderSourceVO();
decompositionOrderSourceVO.setText(text);
decompositionOrderSourceVO.setValue(value);
decompositionOrderSourceVO.setSarFileSplitInfoId(flagMap.get(value));
mapList.add(decompositionOrderSourceVO);
}
assess.setDecompositionOrderSourceVOList(mapList);
}
}
@Override
public void retrieval(LawsAssessAddVo lawsAssessAddVo) {
String projectId = lawsAssessAddVo.getProjectId();
String standardNumbers = lawsAssessAddVo.getStandardNumber();
if (StringUtils.isBlank(standardNumbers)){
throw new JeroBootException(ResultCommon.PLEASE_SELECT_DATA);
}
//查询当前项目已绑定的标准,为了不造成重复绑定
//查询该项目下所有未删除的标准
List<LawsAssess> allByProjectIdNotDeleted = this.getAllByProjectIdNotDeleted(projectId);
List<String> allByProjectIdNotDeletedIdList = allByProjectIdNotDeleted.stream().map(LawsAssess::getStandardId).distinct().collect(Collectors.toList());
//查询该项目下所有删除的标准
List<LawsAssess> allByProjectIdDeleted = this.getAllByProjectIdDeleted(projectId);
List<String> allByProjectIdDeletedIdList = allByProjectIdDeleted.stream().map(LawsAssess::getStandardId).distinct().collect(Collectors.toList());
List<LawsAssess> lawsAssesses = new ArrayList<>();
for (String standardNumber : standardNumbers.split(",")) {
LawsDomesticStandard lawsDomesticStandard = lawsDomesticStandardService.queryByStandardNumber(standardNumber);
if (lawsDomesticStandard != null){
String standardId = lawsDomesticStandard.getId();
if (allByProjectIdNotDeletedIdList.contains(standardId)){
//如果已存在跳过新增
continue;
}
if (allByProjectIdDeletedIdList.contains(standardId)){
//如果已删除则恢复未删除状态
lawsAssessMapper.changeDelFlag(projectId,standardId);
continue;
}
LawsAssess lawsAssess = new LawsAssess();
lawsAssess.setSource(CommonConstant.STANDARD_SOURCE_1);
lawsAssess.setProjectId(projectId);
lawsAssess.setStandardId(standardId);
LawsDomesticStandard standard = lawsDomesticStandardService.queryById(standardId);
lawsAssess.setStandardNumber(standard.getStandardNumber());
lawsAssess.setStandardName(standard.getStandardName());
lawsAssess.setProcessStatus(AssessCommon.NOT_EVALUATED);
lawsAssess.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
lawsAssesses.add(lawsAssess);
continue;
}
}
this.saveBatch(lawsAssesses);
}
}
@@ -1,239 +0,0 @@
package com.jero.modules.projectLibrary.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.constant.CommonConstant;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import com.jero.modules.laws.standard.entity.LawsDomesticStandard;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsDomesticStandardService;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.projectLibrary.common.AssessCommon;
import com.jero.modules.projectLibrary.entity.LawsEvaluationNotMet;
import com.jero.modules.projectLibrary.mapper.LawsEvaluationNotMetMapper;
import com.jero.modules.projectLibrary.service.ILawsEvaluationNotMetService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jero.common.exception.JeroBootException;
import java.util.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.query.QueryGenerator;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
/**
* @Description: 评估未符合项条款
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
@Service
@Transactional(rollbackFor = JeroBootException.class)
public class LawsEvaluationNotMetServiceImpl extends ServiceImpl<LawsEvaluationNotMetMapper, LawsEvaluationNotMet> implements ILawsEvaluationNotMetService {
//国内标准
@Resource
private ILawsDomesticStandardService lawsDomesticStandardService;
//企业标准
@Resource
private ILawsEnterpriseStandardService lawsEnterpriseStandardService;
@Resource
private LawsEvaluationNotMetMapper notMetMapper;
/**
* 分页查询
*
* @param lawsEvaluationNotMet
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@Override
public IPage<LawsEvaluationNotMet> queryPage(LawsEvaluationNotMet lawsEvaluationNotMet, Integer pageNo, Integer pageSize,
HttpServletRequest req) {
QueryWrapper<LawsEvaluationNotMet> queryWrapper = QueryGenerator.initQueryWrapper(lawsEvaluationNotMet, req.getParameterMap());
// String engineerName = lawsEvaluationNotMet.getEngineerName();
// if (StringUtils.isNotBlank(engineerName)){
// queryWrapper.like("su.realname",engineerName);
// }
// String workNumber = lawsEvaluationNotMet.getWorkNumber();
// if (StringUtils.isNotBlank(workNumber)){
// queryWrapper.like("lpl.work_number",workNumber);
// }
Page<LawsEvaluationNotMet> page = new Page<>(pageNo, pageSize);
return notMetMapper.pageList(page,queryWrapper,lawsEvaluationNotMet);
}
@Override
public IPage<LawsEvaluationNotMet> pageForProcess(LawsEvaluationNotMet lawsEvaluationNotMet, Integer pageNo, Integer pageSize, HttpServletRequest req) {
Map<String, String[]> parameterMap = req.getParameterMap();
parameterMap.remove("standardNumber");
parameterMap.remove("standardName");
QueryWrapper<LawsEvaluationNotMet> queryWrapper = QueryGenerator.initQueryWrapper(lawsEvaluationNotMet, parameterMap);
String standardNumberOrName = lawsEvaluationNotMet.getStandardNumberOrName();
if (StringUtils.isNotBlank(standardNumberOrName)){
queryWrapper.lambda().and(
a-> a.like(LawsEvaluationNotMet::getStandardNumber,standardNumberOrName)
.or()
.like(LawsEvaluationNotMet::getStandardName,standardNumberOrName)
);
}
//待整改,超期,警示的数据可以选择
queryWrapper.lambda().in(LawsEvaluationNotMet::getState, Arrays.asList(AssessCommon.TO_BE_RECTIFIED, AssessCommon.WARNING, AssessCommon.OVERDUE));
Page<LawsEvaluationNotMet> page = new Page<>(pageNo, pageSize);
return page(page, queryWrapper);
}
/**
* 列表查询
*
* @param lawsEvaluationNotMet
* @param req
* @return
*/
@Override
public List<LawsEvaluationNotMet> queryList(LawsEvaluationNotMet lawsEvaluationNotMet, HttpServletRequest req) {
return list(QueryGenerator.initQueryWrapper(lawsEvaluationNotMet, req.getParameterMap()));
}
/**
* 保存
*
* @param lawsEvaluationNotMet
* @return
*/
@Override
public void add(LawsEvaluationNotMet lawsEvaluationNotMet) {
//保存标准id和来源到未符合项
setStandardIdAndSource(lawsEvaluationNotMet);
save(lawsEvaluationNotMet);
}
/**
* 保存标准id和来源到未符合项
* @param lawsEvaluationNotMet
*/
private void setStandardIdAndSource(LawsEvaluationNotMet lawsEvaluationNotMet) {
String standardNumber = lawsEvaluationNotMet.getStandardNumber();
String standardId = null;
String source = null;
LawsDomesticStandard lawsDomesticStandard = lawsDomesticStandardService.queryByStandardNumber(standardNumber);
if (lawsDomesticStandard != null){
standardId = lawsDomesticStandard.getId();
source = CommonConstant.STANDARD_SOURCE_1;
}
if (standardId == null){
LawsEnterpriseStandard lawsEnterpriseStandard = lawsEnterpriseStandardService.queryByStandardNumber(standardNumber);
if (lawsEnterpriseStandard != null) {
standardId = lawsEnterpriseStandard.getId();
source = CommonConstant.STANDARD_SOURCE_3;
}
}
lawsEvaluationNotMet.setStandardId(standardId);
lawsEvaluationNotMet.setSource(source);
//如果待整改判断预警和超期
String state = lawsEvaluationNotMet.getState();
if (AssessCommon.TO_BE_RECTIFIED.equals(state)
||AssessCommon.OVERDUE.equals(state)
||AssessCommon.WARNING.equals(state)){
Date expectedTime = lawsEvaluationNotMet.getExpectedTime();
DateTime date = DateUtil.date();
DateTime theDayBefore = DateUtil.offsetDay(date, 1);
DateTime theDayAfter = DateUtil.offsetDay(date, -1);
if (expectedTime.compareTo(theDayAfter) < 0){
lawsEvaluationNotMet.setState(AssessCommon.OVERDUE);
}else if (expectedTime.compareTo(theDayBefore) < 0){
lawsEvaluationNotMet.setState(AssessCommon.WARNING);
}else if (expectedTime.compareTo(theDayBefore) >= 0){
lawsEvaluationNotMet.setState(AssessCommon.TO_BE_RECTIFIED);
}
}
}
/**
* 更新
*
* @param lawsEvaluationNotMet
* @return
*/
@Override
public void editById(LawsEvaluationNotMet lawsEvaluationNotMet) {
String id = lawsEvaluationNotMet.getId();
checkPermission(id);
//保存标准id和来源到未符合项
setStandardIdAndSource(lawsEvaluationNotMet);
saveOrUpdate(lawsEvaluationNotMet);
}
private void checkPermission(String id) {
LawsEvaluationNotMet notMet = this.getById(id);
LoginUser loginUser = CurrentUserUtil.getLoginUser();
String roleIds = loginUser.getRoleIds();
String userId = loginUser.getId();
//管理员和设计工程师可以操作未符合项
if (!loginUser.getIsAdmin() && !userId.equals(notMet.getEngineerId())){
throw new JeroBootException(ResultCommon.NO_PERMISSIONS_PLEASE_SELECT);
}
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
checkPermission(id);
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
for (String id : ids) {
checkPermission(id);
}
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public LawsEvaluationNotMet queryById(String id) {
return getById(id);
}
@Override
public void batchClose(List<String> ids) {
if (ids == null || ids.isEmpty()){
return;
}
LambdaUpdateWrapper<LawsEvaluationNotMet> wrapper = new LambdaUpdateWrapper<>();
wrapper.set(LawsEvaluationNotMet::getState, AssessCommon.CLOSED);
wrapper.in(LawsEvaluationNotMet::getId, ids);
update(wrapper);
}
}
@@ -1,352 +0,0 @@
package com.jero.modules.projectLibrary.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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.api.vo.ResultCommon;
import com.jero.common.constant.CommonConstant;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.MessageUtils;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import com.jero.modules.projectLibrary.common.AssessCommon;
import com.jero.modules.projectLibrary.entity.LawsAssess;
import com.jero.modules.projectLibrary.entity.LawsEvaluationNotMet;
import com.jero.modules.projectLibrary.entity.LawsProjectLibrary;
import com.jero.modules.projectLibrary.entity.LawsProjectLibraryPMS;
import com.jero.modules.projectLibrary.mapper.LawsProjectLibraryMapper;
import com.jero.modules.projectLibrary.service.ILawsAssessService;
import com.jero.modules.projectLibrary.service.ILawsEvaluationNotMetService;
import com.jero.modules.projectLibrary.service.ILawsProjectLibraryService;
import com.jero.modules.sys.utils.UserUtils;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import lombok.Cleanup;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* @Description: 项目库
* @Author: jero-boot
* @Date: 2023-09-11
* @Version: V1.0
*/
@Slf4j
@Service
@Transactional(rollbackFor = JeroBootException.class)
public class LawsProjectLibraryServiceImpl extends ServiceImpl<LawsProjectLibraryMapper, LawsProjectLibrary> implements ILawsProjectLibraryService {
@Resource
private ISysUserService sysUserService;
@Resource
private ILawsAssessService lawsAssessService;
@Resource
private ILawsEvaluationNotMetService notMetService;
@Resource
private ISysUserService sysUserRoleService;
@Value("#{'${adminRoleCode}'.split(',')}")
private List<String> adminRoleCodeList;
/**
* 分页查询
*/
@Override
public IPage<LawsProjectLibrary> queryPage(LawsProjectLibrary lawsProjectLibrary, Integer pageNo, Integer pageSize,
HttpServletRequest req) {
// 获取当前用户
String userId = UserUtils.getUserId();
SysUser currentUser = sysUserService.getById(userId);
String username = currentUser.getUsername();
// 获取当前用户的角色roleCode
List<String> roleList = sysUserRoleService.getRole(username);
//根据角色判断是否有权限全查看
boolean isAdmin = false;
if (roleList != null && roleList.stream().anyMatch(adminRoleCodeList::contains)) {
isAdmin = true;
}
// 如果没有全查看的权限,那就只能查看自己的
if (!isAdmin) {
lawsProjectLibrary.setProjectLeader(userId);
}
QueryWrapper<LawsProjectLibrary> queryWrapper = QueryGenerator.initQueryWrapper(lawsProjectLibrary, req.getParameterMap());
Page<LawsProjectLibrary> page = new Page<>(pageNo, pageSize);
Page<LawsProjectLibrary> libraryPage = page(page, queryWrapper);
return libraryPage;
}
@Override
public List<LawsProjectLibrary> queryList(LawsProjectLibrary lawsProjectLibrary, HttpServletRequest req) {
QueryWrapper<LawsProjectLibrary> queryWrapper = QueryGenerator.initQueryWrapper(lawsProjectLibrary, req.getParameterMap());
List<LawsProjectLibrary> list = list(queryWrapper);
return list;
}
public LawsProjectLibrary queryByWorkNumber(String WorkNumber) {
LawsProjectLibrary lawsProjectLibrary = new LawsProjectLibrary();
lawsProjectLibrary.setWorkNumber(WorkNumber);
QueryWrapper<LawsProjectLibrary> queryWrapper = new QueryWrapper<>(lawsProjectLibrary);
List<LawsProjectLibrary> list = list(queryWrapper);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
public List<LawsProjectLibrary> getList(LawsProjectLibrary lawsProjectLibrary) {
QueryWrapper<LawsProjectLibrary> queryWrapper = new QueryWrapper<>(lawsProjectLibrary);
return list(queryWrapper);
}
public LawsProjectLibrary queryByNameAndNumber(String name, String number) {
LawsProjectLibrary lawsProjectLibrary = new LawsProjectLibrary();
lawsProjectLibrary.setProjectName(name);
lawsProjectLibrary.setWorkNumber(number);
List<LawsProjectLibrary> list = getList(lawsProjectLibrary);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* 保存
*/
@Override
public void add(LawsProjectLibrary lawsProjectLibrary) {
save(lawsProjectLibrary);
}
/**
* 更新
*/
@Override
public void editById(LawsProjectLibrary lawsProjectLibrary) {
LawsProjectLibrary projectLibrary = getById(lawsProjectLibrary.getId());
checkPermission(projectLibrary);
LambdaUpdateWrapper<LawsProjectLibrary> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(LawsProjectLibrary::getId, lawsProjectLibrary.getId());
updateWrapper.set(LawsProjectLibrary::getProjectName, lawsProjectLibrary.getProjectName());
updateWrapper.set(LawsProjectLibrary::getWorkNumber, lawsProjectLibrary.getWorkNumber());
updateWrapper.set(LawsProjectLibrary::getProjectLeader, lawsProjectLibrary.getProjectLeader());
updateWrapper.set(LawsProjectLibrary::getProjectHealth, lawsProjectLibrary.getProjectHealth());
updateWrapper.set(LawsProjectLibrary::getProjectLevel, lawsProjectLibrary.getProjectLevel());
this.update(updateWrapper);
}
/**
* 校验权限
*
* @param projectLibrary
*/
@Override
public void checkPermission(LawsProjectLibrary projectLibrary) {
LoginUser loginUser = CurrentUserUtil.getLoginUser();
if (!loginUser.getIsAdmin() && !Objects.equals(loginUser.getUsername(), projectLibrary.getCreateBy())) {
throw new JeroBootException(ResultCommon.NO_PERMISSIONS_PLEASE_SELECT);
}
}
/**
* 通过id删除
*/
@Override
public void deleteById(String id) {
LawsProjectLibrary projectLibrary = getById(id);
checkPermission(projectLibrary);
List<LawsAssess> allByProjectIdNotDeleted = lawsAssessService.getAllByProjectIdNotDeleted(id);
for (LawsAssess lawsAssess : allByProjectIdNotDeleted) {
String processStatus = lawsAssess.getProcessStatus();
if (AssessCommon.UNDER_EVALUATION.equals(processStatus)) {
throw new JeroBootException(ResultCommon.ASSESS_DELETE_ERROR2);
}
//未符合项中有整改中、审批中的数据时,不允许删除
LambdaQueryWrapper<LawsEvaluationNotMet> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(LawsEvaluationNotMet::getProjectId, lawsAssess.getProjectId());
queryWrapper.in(LawsEvaluationNotMet::getStandardId, lawsAssess.getStandardId());
List<LawsEvaluationNotMet> notMetList = notMetService.list(queryWrapper);
for (LawsEvaluationNotMet notMet : notMetList) {
String state = notMet.getState();
if (AssessCommon.RECTIFICATION.equals(state) ||
AssessCommon.UNDER_APPROVAL.equals(state)) {
throw new JeroBootException(ResultCommon.ASSESS_DELETE_ERROR);
}
}
}
removeById(id);
}
/**
* 批量删除
*/
@Override
public void deleteByIds(List<String> ids) {
LambdaUpdateWrapper<LawsProjectLibrary> wrapper = new LambdaUpdateWrapper<>();
wrapper.in(LawsProjectLibrary::getId, ids);
List<LawsProjectLibrary> projectLibraryList = this.list(wrapper);
for (LawsProjectLibrary projectLibrary : projectLibraryList) {
checkPermission(projectLibrary);
String id = projectLibrary.getId();
List<LawsAssess> allByProjectIdNotDeleted = lawsAssessService.getAllByProjectIdNotDeleted(id);
for (LawsAssess lawsAssess : allByProjectIdNotDeleted) {
String processStatus = lawsAssess.getProcessStatus();
if (AssessCommon.UNDER_EVALUATION.equals(processStatus)) {
throw new JeroBootException(ResultCommon.ASSESS_DELETE_ERROR2);
}
//未符合项中有整改中、审批中的数据时,不允许删除
LambdaQueryWrapper<LawsEvaluationNotMet> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(LawsEvaluationNotMet::getProjectId, lawsAssess.getProjectId());
queryWrapper.in(LawsEvaluationNotMet::getStandardId, lawsAssess.getStandardId());
List<LawsEvaluationNotMet> notMetList = notMetService.list(queryWrapper);
for (LawsEvaluationNotMet notMet : notMetList) {
String state = notMet.getState();
if (AssessCommon.RECTIFICATION.equals(state) ||
AssessCommon.UNDER_APPROVAL.equals(state)) {
throw new JeroBootException(ResultCommon.ASSESS_DELETE_ERROR);
}
}
}
}
wrapper.set(LawsProjectLibrary::getDelFlag, CommonConstant.DEL_FLAG_1.toString());
update(wrapper);
}
/**
* 通过id查询
*/
@Override
public LawsProjectLibrary queryById(String id) {
LawsProjectLibrary library = getById(id);
String projectLeader = library.getProjectLeader();
if (StringUtils.isNotBlank(projectLeader)) {
SysUser user = sysUserService.getById(projectLeader);
library.setNameWorkNo(user.calcNameWorkNo());
}
return library;
}
public <T> void exportWithExcel(HttpServletResponse response, List<T> dtoList, String fileName) {
try {
// 设置导出参数
ExportParams exportParams = new ExportParams(null, fileName); // 可以为标题添加更多的配置
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, dtoList.get(0).getClass(), dtoList);
// 设置响应头和内容类型
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
// 写出到响应流
workbook.write(response.getOutputStream());
workbook.close();
} catch (Exception e) {
log.error("导出excel异常", e);
throw new JeroBootException(MessageUtils.getMessage(ResultCommon.EXPORT_ERROR), e);
}
}
@Override
public void importPMSExcel(MultipartFile file, HttpServletResponse response) throws IOException {
log.info("开始转换并导入PMS车型项目库文件");
List<LawsProjectLibraryPMS> errImportList = new ArrayList<>();
// 获取当前时间戳(毫秒)
long startTime = System.currentTimeMillis();
@Cleanup
InputStream inputStream = file.getInputStream();
ImportParams params = new ImportParams();
params.setTitleRows(0);
params.setNeedSave(true);
List<LawsProjectLibraryPMS> pmsList = new ArrayList<>();
try {
pmsList = ExcelImportUtil.importExcel(inputStream, LawsProjectLibraryPMS.class, params);
} catch (Exception e) {
log.error("导入失败: " + e.getMessage());
}
// 区分数据
log.info("获取数据成功,总数据条数:{}", pmsList.size());
// 获取当前时间戳(毫秒)
long endTime = System.currentTimeMillis();
// 计算执行时间(毫秒)
long executionTime = endTime - startTime;
log.info("数据转换执行时间:" + executionTime + " 毫秒");
for (LawsProjectLibraryPMS pms : pmsList) {
// 判断空数据
if (StringUtils.isBlank(pms.getProjectName()) && StringUtils.isBlank(pms.getWorkNumber())) {
continue;
}
String errInfo = "";
LawsProjectLibrary lpl = new LawsProjectLibrary();
//负责人工号-》id
SysUser user = sysUserService.getUserByName(pms.getProjectLeaderNo());
String projectLeader = "-";
if (ObjectUtils.isNotEmpty(user)) {
projectLeader = user.getId();
} else {
errInfo += "找不到该用户,将该项置空后导入";
}
//项目级别-》后两位
String projectLevel = null;
if (StringUtils.isNotEmpty(pms.getProjectLevel()) && StringUtils.isNotBlank(pms.getProjectLevel())) {
String str = pms.getProjectLevel();
projectLevel = str.substring(Math.max(str.length() - 2, 0));
}
// 赋值
lpl.setProjectSource("2");
lpl.setDelFlag("0");
lpl.setProjectName(pms.getProjectName());
lpl.setWorkNumber(pms.getWorkNumber());
lpl.setProjectLeader(projectLeader);
lpl.setProjectLevel(projectLevel);
//重复的覆盖旧数据 判重标准改为 名称+工作令
LawsProjectLibrary queryItem = queryByNameAndNumber(lpl.getProjectName(), lpl.getWorkNumber());
if (ObjectUtils.isNotEmpty(queryItem)) {
errInfo += " 名称+工作令编号的组合已存在,覆盖旧数据";
lpl.setId(queryItem.getId());
this.updateById(lpl);
} else {
// 全新的就保存
errInfo += " 新数据,保存";
this.add(lpl);
}
pms.setErrorInfo(errInfo);
log.info(pms.toString());
errImportList.add(pms);
}
if (!errImportList.isEmpty()) {
log.info("导入数据条数:{}", errImportList.size());
this.exportWithExcel(response, errImportList, "LawsProjectLibraryPMS-ImportErrorData.xls");
}
log.info("PMS车型项目库导入结束");
}
}
@@ -1,274 +0,0 @@
package com.jero.modules.projectLibrary.service.impl;
import cn.hutool.core.util.RandomUtil;
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.api.vo.ResultCommon;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.FileUtils;
import com.jero.common.util.ZipUtil;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardDeclareService;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.projectLibrary.entity.LawsSpecialProjectLibrary;
import com.jero.modules.projectLibrary.mapper.LawsSpecialProjectLibraryMapper;
import com.jero.modules.projectLibrary.service.ILawsSpecialProjectLibraryService;
import com.jero.modules.system.util.SysWaterMarkUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.util.Strings;
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description: 专项项目库
* @Author: jero-boot
* @Date: 2023-09-22
* @Version: V1.0
*/
@Slf4j
@Service
@Transactional(rollbackFor = JeroBootException.class)
public class LawsSpecialProjectLibraryServiceImpl extends ServiceImpl<LawsSpecialProjectLibraryMapper, LawsSpecialProjectLibrary> implements ILawsSpecialProjectLibraryService {
@Resource
private LawsSpecialProjectLibraryMapper specialProjectLibraryMapper;
@Resource
private EnterpriseStandardDeclareService enterpriseStandardDeclareService;
@Resource
private IOSSFileService ossFileService;
@Resource
private SysWaterMarkUtil sysWaterMarkUtil;
@Value("${jero.path.exportExcelTempPath}")
private String exportExcelTempPath;
private static final String EXPORT_EXCEL_TEMP = "exportExcelTemp";
/**
* 分页查询
*
* @param lawsSpecialProjectLibrary
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@Override
public IPage<LawsSpecialProjectLibrary> queryPage(LawsSpecialProjectLibrary lawsSpecialProjectLibrary, Integer pageNo, Integer pageSize,
HttpServletRequest req) {
String modelSeries = lawsSpecialProjectLibrary.getModelSeries();
if (StringUtils.isNotBlank(modelSeries)){
lawsSpecialProjectLibrary.setModelSeries(Strings.join(Arrays.asList(modelSeries.split(",")),'|'));
}
Page<LawsSpecialProjectLibrary> page = new Page<>(pageNo, pageSize);
Page<LawsSpecialProjectLibrary> pageList = specialProjectLibraryMapper.pageList(page, lawsSpecialProjectLibrary);
return pageList;
}
/**
* 列表查询
*
* @param lawsSpecialProjectLibrary
* @param req
* @return
*/
@Override
public List<LawsSpecialProjectLibrary> queryList(LawsSpecialProjectLibrary lawsSpecialProjectLibrary, HttpServletRequest req) {
return list(QueryGenerator.initQueryWrapper(lawsSpecialProjectLibrary, req.getParameterMap()));
}
/**
* 保存
*
* @param lawsSpecialProjectLibrary
* @return
*/
@Override
public void add(LawsSpecialProjectLibrary lawsSpecialProjectLibrary) {
Date now = new Date();
lawsSpecialProjectLibrary.setCreateTime(now);
lawsSpecialProjectLibrary.setUpdateTime(now);
save(lawsSpecialProjectLibrary);
}
/**
* 更新
*
* @param lawsSpecialProjectLibrary
* @return
*/
@Override
public void editById(LawsSpecialProjectLibrary lawsSpecialProjectLibrary) {
Date now = new Date();
lawsSpecialProjectLibrary.setUpdateTime(now);
saveOrUpdate(lawsSpecialProjectLibrary);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
LoginUser loginUser = CurrentUserUtil.getLoginUser();
List<LawsSpecialProjectLibrary> projectLibraryList = this.listByIds(ids);
for (LawsSpecialProjectLibrary projectLibrary : projectLibraryList) {
String createBy = projectLibrary.getCreateBy();
//管理员和创建人可以删除
if (!loginUser.getIsAdmin() && !loginUser.getUsername().equals(createBy)){
throw new JeroBootException(ResultCommon.NO_PERMISSIONS_PLEASE_SELECT);
}
}
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public LawsSpecialProjectLibrary queryById(String id) {
return getById(id);
}
@Override
public void exportXls(HttpServletRequest request, HttpServletResponse response, LawsSpecialProjectLibrary lawsSpecialProjectLibrary) {
IPage<LawsSpecialProjectLibrary> pageList = this.queryPage(lawsSpecialProjectLibrary, -1, -1, request);
List<LawsSpecialProjectLibrary> records = pageList.getRecords();
List<LawsSpecialProjectLibrary> exportList;
String selections = request.getParameter("selections");
if (StringUtils.isNotBlank(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
exportList = records.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
}else {
exportList = records;
}
String fileName = "专项项目库";
String termUserFileName = "依据描述";
String url = exportExcelTempPath.replace(EXPORT_EXCEL_TEMP, fileName + "_" + RandomUtil.randomString(12));
File file = new File(url);
if (!file.exists()){
boolean mkdirs = file.mkdirs();
log.info("创建临时目录:{}", mkdirs);
}
try (FileOutputStream fos = new FileOutputStream(url + File.separator + fileName + ".xls")){
// 生成excel
ExportParams exportParams = new ExportParams();
exportParams.setType(ExcelType.HSSF);
for (LawsSpecialProjectLibrary projectLibrary : exportList) {
String standardNumber = projectLibrary.getStandardNumber();
String termNumber = projectLibrary.getTermNumber();
String processTermId = projectLibrary.getProcessTermId();
//判断是否有描述依据
// ProcessProjectStandardTermUser termUser = new ProcessProjectStandardTermUser();
// termUser.setTermId(processTermId);
// IPage<ProcessProjectStandardTermUser> termUserPage = processProjectStandardService.getTermUserList(termUser, -1, -1);
// List<ProcessProjectStandardTermUser> termUserList = termUserPage.getRecords();
// //导出描述依据和佐证材料
// if (!termUserList.isEmpty()) {
// //标准编号+条款号的文件夹
// String termUserUrl = url + File.separator + standardNumber.replaceAll("[/\\\\:*?|\"<>]", "") + File.separator + (StringUtils.isBlank(termNumber)?"":termNumber) ;
// File termUserFile = new File(termUserUrl);
// if (!termUserFile.exists()){
// boolean mkdirs = termUserFile.mkdirs();
// log.info("创建临时子目录:{}", mkdirs);
// }else {
// int i = 1;
// while (true){
// String newFileUrl = (termUserUrl.endsWith(File.separator) ? termUserUrl.substring(0, termUserUrl.length() - 1) : termUserUrl) + " (" + i + ")";
// termUserFile = new File(newFileUrl);
// if (!termUserFile.exists()){
// boolean mkdirs = termUserFile.mkdirs();
// log.info("创建临时子目录:{}", mkdirs);
// break;
// }
// i++;
// }
// }
// //佐证材料
// for (ProcessProjectStandardTermUser standardTermUser : termUserList) {
// String fileId = standardTermUser.getFileId();
// if (StringUtils.isNotBlank(fileId)){
// List<String> fileIdList = Arrays.asList(fileId.split(","));
// List<OSSFile> ossFileList = ossFileService.listByIds(fileIdList);
// if (!ossFileList.isEmpty()){
// // 赋值
// List<DeclareFileList> declareFileLists = BeanCopyUtils.copyBeanList(ossFileList, DeclareFileList.class);
// standardTermUser.setDeclareFileList(declareFileLists);
// // 写出文件
// for (OSSFile ossFile : ossFileList) {
// InputStream inputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), ossFile.getUrl());
// // pdf加水印
// if (StringUtils.endsWithIgnoreCase(ossFile.getFileName(), ".pdf")){
// inputStream = sysWaterMarkUtil.addWatermarkToPdf(inputStream);
// }
// // 导出文件
// String filePath = termUserFile + File.separator + ossFile.getFileName();
// enterpriseStandardDeclareService.writeToLocal(filePath, inputStream);
// }
// }
// }
// }
// //描述依据
// try (FileOutputStream fos1 = new FileOutputStream(termUserFile + File.separator + termUserFileName + ".xls")){
// // 生成excel
// Workbook workbook1 = ExcelExportUtil.exportExcel(exportParams, ProcessProjectStandardTermUser.class, termUserList);
// // 导出excel
// workbook1.write(fos1);
// }catch (Exception e){
// log.error(e.getMessage());
// throw new JeroBootException("excel导出失败!");
// }
//
// }
}
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, LawsSpecialProjectLibrary.class, exportList);
// 导出excel
workbook.write(fos);
// 生成并导出zip
ZipUtil.toZip(url, response.getOutputStream(), response, true);
}catch (Exception e){
log.error(e.getMessage());
throw new JeroBootException("excel导出失败!");
}finally {
// 删除文件
if (new File(url).exists()) {
FileUtils.deleteFolders(url);
}
}
}
}
@@ -1,19 +0,0 @@
package com.jero.modules.projectLibrary.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 分解单来源
* @author liJiaRao
* @date 2023-12-13 11:03
*/
@Data
public class DecompositionOrderSourceVO {
@ApiModelProperty(value = "名称")
private String text;
@ApiModelProperty(value = "字典值")
private String value;
@ApiModelProperty(value = "拆分单id")
private String sarFileSplitInfoId;
}
@@ -1,33 +0,0 @@
package com.jero.modules.projectLibrary.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
/**
* 项目-标准评估 调取、复制接口当作入参对象使用
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="lawsAssessAddVo对象", description="项目-标准评估-调取、复制")
public class LawsAssessAddVo {
/**项目ID*/
@NotBlank(message = "projectId not null")
@ApiModelProperty(value = "所在项目ID")
private String projectId;
/**项目ID*/
@ApiModelProperty(value = "所选复制项目ID")
private String copyProjectId;
/**标准编号*/
@ApiModelProperty(value = "标准编号")
private String standardNumber;
}
@@ -1,27 +0,0 @@
package com.jero.modules.projectLibrary.vo;
import com.jero.modules.projectLibrary.entity.LawsAssessResults;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 符合、不符合页
* @author liJiaRao
* @date 2023-12-22 18:29
*/
@Data
public class MetNotMetVO {
/**
* 符合
*/
@ApiModelProperty(value = "主键")
private List<LawsAssessResults> accordWithList;
@ApiModelProperty(value = "不符合")
private List<LawsAssessResults> notCompliantList;
@ApiModelProperty(value = "待验证")
private List<LawsAssessResults> toBeVerifiedList;
@ApiModelProperty(value = "不涉及")
private List<LawsAssessResults> notInvolvedList;
}
@@ -1,38 +0,0 @@
package com.jero.modules.projectLibrary.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* 项目库详情-项目风险性总览
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="项目库详情-项目风险性总览", description="项目库详情-项目风险性总览")
@AllArgsConstructor
@NoArgsConstructor
public class RiskOverviewVo {
/**符合*/
@ApiModelProperty(value = "符合")
private int conform;
/**不符合*/
@ApiModelProperty(value = "不符合")
private int nonConformance;
/**待验证*/
@ApiModelProperty(value = "待验证")
private int toBeVerified;
/**不涉及*/
@ApiModelProperty(value = "不涉及")
private int notInvolved;
}