feat(征求意见): 基础功能

This commit is contained in:
yjz
2023-12-04 11:29:53 +08:00
parent c604880a74
commit 9d9159ad09
9 changed files with 296 additions and 16 deletions
@@ -0,0 +1,64 @@
package com.jero.modules.laws.consultation.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.aspect.annotation.Translation;
import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationList;
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation;
import com.jero.modules.laws.consultation.service.IConsultationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @ClassName: ConsultationController
* @Description:
* @Author: yjz
* @Date: 2023-12-04 09:31
* @Version: 1.0
**/
@Api(tags="征求意见")
@RestController
@RequestMapping("/laws/consultation")
@Slf4j
public class ConsultationController {
private final IConsultationService consultationService;
public ConsultationController(IConsultationService consultationService) {
this.consultationService = consultationService;
}
/**
* 征求意见-分页查询
* @return
*/
@AutoLog(value = "征求意见-分页查询")
@ApiOperation(value="征求意见-分页查询", notes="征求意见-分页查询")
@GetMapping(value = "/queryByPage")
@Translation
public Result<IPage<ProcessFbStandardConsultation>> queryByPage(ProcessFbStandardConsultation processFbStandardConsultation,
@ApiParam("当前页") @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@ApiParam("每页条数") @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
return Result.OK(consultationService.queryByPage(processFbStandardConsultation, pageNo, pageSize));
}
/**
* 征求意见-详情
* @return
*/
@AutoLog(value = "征求意见-详情")
@ApiOperation(value="征求意见-详情", notes="征求意见-详情")
@GetMapping(value = "/queryDetailByBusinessId")
@Translation
public Result<List<ProcessFbConsultationList>> queryDetailByBusinessId(String businessId) {
return Result.OK(consultationService.queryDetailByBusinessId(businessId));
}
}
@@ -0,0 +1,39 @@
package com.jero.modules.laws.consultation.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* @ClassName: consultation
* @Description:
* @Author: yjz
* @Date: 2023-12-04 09:33
* @Version: 1.0
**/
@Data
public class Consultation {
/**id*/
@Excel(name = "id", width = 15)
@ApiModelProperty(value = "id")
private java.lang.String id;
/**标准编号*/
@Excel(name = "标准编号", width = 15)
@ApiModelProperty(value = "标准编号")
private java.lang.String standardNumber;
/**征求意见周期*/
@Excel(name = "征求意见周期", width = 15)
@ApiModelProperty(value = "征求意见周期")
private java.lang.String consultationPeriod;
/**征求意见开始日期*/
@Excel(name = "征求意见开始日期", width = 15)
@ApiModelProperty(value = "征求意见开始日期")
private java.lang.String consultationBeginDate;
/**征求意见结束日期*/
@Excel(name = "征求意见结束日期", width = 15)
@ApiModelProperty(value = "征求意见结束日期")
private java.lang.String consultationEndDate;
}
@@ -0,0 +1,11 @@
package com.jero.modules.laws.consultation.mapper;
/**
* @InterfaceName: ConsultationMapper
* @Description:
* @Author: yjz
* @Date: 2023-12-04 09:34
* @Version: 1.0
**/
public interface ConsultationMapper {
}
@@ -0,0 +1,5 @@
<?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.laws.consultation.mapper.ConsultationMapper">
</mapper>
@@ -0,0 +1,32 @@
package com.jero.modules.laws.consultation.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationList;
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation;
import java.util.List;
/**
* @InterfaceName: consultationService
* @Description:
* @Author: yjz
* @Date: 2023-12-04 09:33
* @Version: 1.0
**/
public interface IConsultationService {
/**
* 征求意见-分页查询
* @param processFbStandardConsultation
* @param pageNo
* @param pageSize
* @return
*/
IPage<ProcessFbStandardConsultation> queryByPage(ProcessFbStandardConsultation processFbStandardConsultation, Integer pageNo, Integer pageSize);
/**
* 征求意见-详情
* @param businessId
* @return
*/
List<ProcessFbConsultationList> queryDetailByBusinessId(String businessId);
}
@@ -0,0 +1,94 @@
package com.jero.modules.laws.consultation.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationList;
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation;
import com.jero.modules.activiti.process.fb.service.IProcessFbConsultationListService;
import com.jero.modules.activiti.process.fb.service.IProcessFbStandardConsultationService;
import com.jero.modules.laws.consultation.service.IConsultationService;
import com.jero.modules.laws.standard.entity.LawsDomesticStandard;
import com.jero.modules.laws.standard.service.ILawsDomesticStandardService;
import com.jero.modules.system.entity.SysDepart;
import com.jero.modules.system.service.ISysDepartService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @ClassName: ConsultationServiceImpl
* @Description:
* @Author: yjz
* @Date: 2023-12-04 09:33
* @Version: 1.0
**/
@Service
@Transactional(rollbackFor = JeroBootException.class)
public class ConsultationServiceImpl implements IConsultationService {
private final IProcessFbStandardConsultationService processFbStandardConsultationService;
private final IProcessFbConsultationListService processFbConsultationListService;
private final ILawsDomesticStandardService lawsDomesticStandardService;
private final ISysDepartService sysDepartService;
public ConsultationServiceImpl(IProcessFbStandardConsultationService processFbStandardConsultationService,
IProcessFbConsultationListService processFbConsultationListService,
ILawsDomesticStandardService lawsDomesticStandardService,
ISysDepartService sysDepartService) {
this.processFbStandardConsultationService = processFbStandardConsultationService;
this.processFbConsultationListService = processFbConsultationListService;
this.lawsDomesticStandardService = lawsDomesticStandardService;
this.sysDepartService = sysDepartService;
}
@Override
public IPage<ProcessFbStandardConsultation> queryByPage(ProcessFbStandardConsultation processFbStandardConsultation, Integer pageNo, Integer pageSize) {
LambdaQueryWrapper<ProcessFbStandardConsultation> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.isNotNull(ProcessFbStandardConsultation::getConsultationEndDate);
if (StringUtils.isNotBlank(processFbStandardConsultation.getConsultationPeriod())){
String[] date = processFbStandardConsultation.getConsultationPeriod().split(",");
queryWrapper.and(qw -> qw.between(ProcessFbStandardConsultation::getConsultationBeginDate, date[0], date[1])
.or().between(ProcessFbStandardConsultation::getConsultationEndDate, date[0], date[1]));
}
if (StringUtils.isNotBlank(processFbStandardConsultation.getStandardNameNumber())){
queryWrapper.and(qw -> qw.like(ProcessFbStandardConsultation::getStandardNumber, processFbStandardConsultation.getStandardNameNumber())
.or().like(ProcessFbStandardConsultation::getStandardName, processFbStandardConsultation.getStandardNameNumber()));
}
IPage<ProcessFbStandardConsultation> page = processFbStandardConsultationService.page(new Page<>(pageNo, pageSize), queryWrapper);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
for (ProcessFbStandardConsultation StandardConsultation : page.getRecords()) {
LawsDomesticStandard lawsDomesticStandard = lawsDomesticStandardService.getOne(new LambdaQueryWrapper<LawsDomesticStandard>()
.eq(LawsDomesticStandard::getStandardNumber, StandardConsultation.getStandardNumber()), false);
String standardName = StandardConsultation.getStandardName();
if (!Objects.isNull(lawsDomesticStandard) && StringUtils.isNotBlank(lawsDomesticStandard.getStandardName())){
standardName = lawsDomesticStandard.getStandardName();
}
StandardConsultation.setStandardNameNumber(StandardConsultation.getStandardNumber() + " " + standardName);
StandardConsultation.setConsultationPeriod(
dateFormat.format(StandardConsultation.getConsultationBeginDate()) + " ~ " +
dateFormat.format(StandardConsultation.getConsultationEndDate()));
}
return page;
}
@Override
public List<ProcessFbConsultationList> queryDetailByBusinessId(String businessId) {
List<ProcessFbConsultationList> list = processFbConsultationListService.list(
new LambdaQueryWrapper<ProcessFbConsultationList>()
.eq(ProcessFbConsultationList::getBusinessId, businessId));
// 提出部门
for (ProcessFbConsultationList consultationList : list) {
List<SysDepart> sysDeparts = sysDepartService.queryUserDeparts(consultationList.getDesignEngineerId());
if (!sysDeparts.isEmpty()){
consultationList.setDepart(sysDeparts.stream().map(SysDepart::getDepartName).collect(Collectors.joining(",")));
}
}
return list;
}
}