Browse Source

fit: 新增doc在线预览

fit: 新增流程-单位会签
main
wxc 1 year ago
parent
commit
de36c37f50
  1. 1
      libs/words/installMavenJar.bat
  2. BIN
      libs/words/words-15.8.0.jar
  3. 6
      pom.xml
  4. 34
      sql/1126.sql
  5. 11
      src/main/java/com/biutag/supervision/constants/enums/CountersignState.java
  6. 1
      src/main/java/com/biutag/supervision/constants/enums/DepartLevelEnum.java
  7. 1
      src/main/java/com/biutag/supervision/constants/enums/FlowNodeEnum.java
  8. 2
      src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java
  9. 8
      src/main/java/com/biutag/supervision/controller/FileController.java
  10. 2
      src/main/java/com/biutag/supervision/flow/FlowService.java
  11. 2
      src/main/java/com/biutag/supervision/flow/action/ApplyCompletionAction.java
  12. 107
      src/main/java/com/biutag/supervision/flow/action/ApplyCountersignAction.java
  13. 61
      src/main/java/com/biutag/supervision/flow/action/CountersignAction.java
  14. 2
      src/main/java/com/biutag/supervision/flow/action/FirstExtensionReturnAction.java
  15. 4
      src/main/java/com/biutag/supervision/flow/action/SaveAction.java
  16. 2
      src/main/java/com/biutag/supervision/flow/action/SecondExtensionReturnAction.java
  17. 8
      src/main/java/com/biutag/supervision/mapper/NegativeCountersignApplyMapper.java
  18. 8
      src/main/java/com/biutag/supervision/mapper/NegativeCountersignMapper.java
  19. 35
      src/main/java/com/biutag/supervision/pojo/domain/CountersignApply.java
  20. 19
      src/main/java/com/biutag/supervision/pojo/domain/ExtensionApply.java
  21. 2
      src/main/java/com/biutag/supervision/pojo/domain/NegativeDetail.java
  22. 3
      src/main/java/com/biutag/supervision/pojo/domain/NegativeVo.java
  23. 30
      src/main/java/com/biutag/supervision/pojo/dto/flow/ApplyCountersignData.java
  24. 23
      src/main/java/com/biutag/supervision/pojo/dto/flow/CountersignData.java
  25. 6
      src/main/java/com/biutag/supervision/pojo/entity/Negative.java
  26. 61
      src/main/java/com/biutag/supervision/pojo/entity/NegativeCountersign.java
  27. 45
      src/main/java/com/biutag/supervision/pojo/entity/NegativeCountersignApply.java
  28. 28
      src/main/java/com/biutag/supervision/pojo/model/ExtensionApproveStepModel.java
  29. 4
      src/main/java/com/biutag/supervision/pojo/model/NegativeWorkModel.java
  30. 4
      src/main/java/com/biutag/supervision/pojo/param/NegativeQueryParam.java
  31. 2
      src/main/java/com/biutag/supervision/pojo/param/WorkParam.java
  32. 30
      src/main/java/com/biutag/supervision/service/NegativeCountersignApplyService.java
  33. 19
      src/main/java/com/biutag/supervision/service/NegativeCountersignService.java
  34. 36
      src/main/java/com/biutag/supervision/service/NegativeExtensionApplyService.java
  35. 4
      src/main/java/com/biutag/supervision/service/NegativeQueryService.java
  36. 15
      src/main/java/com/biutag/supervision/service/NegativeService.java
  37. 8
      src/main/java/com/biutag/supervision/service/NegativeWorkService.java
  38. 36
      src/main/java/com/biutag/supervision/util/WordUtil.java
  39. 12
      src/main/resources/application-local.yml
  40. 13
      src/main/resources/license/words.license.xml
  41. 4
      src/main/resources/mapper/NegativeWorkMapper.xml
  42. 4
      src/test/java/com/biutag/supervision/StrUtil.java
  43. 2
      src/test/java/com/biutag/supervision/tools/GenCodeTests.java

1
libs/words/installMavenJar.bat

@ -0,0 +1 @@
mvn install:install-file -DgroupId=com.aspose -DartifactId=aspose-words -Dversion=15.8.0 -Dfile="words-15.8.0.jar" -Dpackaging=jar

BIN
libs/words/words-15.8.0.jar

Binary file not shown.

6
pom.xml

@ -181,6 +181,12 @@
<version>4.9</version> <version>4.9</version>
</dependency> </dependency>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>15.8.0</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

34
sql/1126.sql

@ -0,0 +1,34 @@
ALTER TABLE `negative`.`negative`
ADD COLUMN `countersign_apply_id` int;
INSERT INTO `negative`.`flow_action`(`id`, `action_key`, `flow_key`, `next_flow_key`, `button_label`, `button_type`, `plain`, `sort`, `action_name`, `validate_form`, `do_close`, `open_dialog`) VALUES (21, 'apply_countersign', 'second_approve', NULL, '单位会签', 'primary', 1, 1, '发起会签', 0, NULL, 1);
INSERT INTO `negative`.`flow_action`(`id`, `action_key`, `flow_key`, `next_flow_key`, `button_label`, `button_type`, `plain`, `sort`, `action_name`, `validate_form`, `do_close`, `open_dialog`) VALUES (22, 'countersign', 'countersign', NULL, '提交会签', 'primary', 0, 1, '提交会签', 1, 1, 0);
INSERT INTO `negative`.`flow_action`(`id`, `action_key`, `flow_key`, `next_flow_key`, `button_label`, `button_type`, `plain`, `sort`, `action_name`, `validate_form`, `do_close`, `open_dialog`) VALUES (23, 'apply_countersign', 'first_approve', '', '单位会签', 'primary', 1, 1, '发起会签', 0, NULL, 1);
CREATE TABLE `negative_countersign` (
`id` int NOT NULL AUTO_INCREMENT,
`countersign_apply_id` int NOT NULL,
`negative_id` varchar(40) NOT NULL,
`comments` text ,
`files` text ,
`depart_id` varchar(40) DEFAULT NULL,
`depart_name` varchar(255) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`creator` varchar(255) DEFAULT NULL,
`creator_name` varchar(255) DEFAULT NULL,
`state` varchar(255) DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 COMMENT='单位会签表';
CREATE TABLE `negative_countersign_apply` (
`id` int NOT NULL AUTO_INCREMENT,
`negative_id` varchar(40) NOT NULL,
`requirement` text NOT NULL,
`create_time` datetime NOT NULL,
`creator` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,
`creator_name` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,
`create_depart_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 COMMENT='单位会签申请表';

11
src/main/java/com/biutag/supervision/constants/enums/CountersignState.java

@ -0,0 +1,11 @@
package com.biutag.supervision.constants.enums;
/**
* @author wxc
* @date 2024/11/26
*/
public enum CountersignState {
uncompleted,
completed;
}

1
src/main/java/com/biutag/supervision/constants/enums/DepartLevelEnum.java

@ -7,6 +7,7 @@ import lombok.Getter;
@Getter @Getter
public enum DepartLevelEnum { public enum DepartLevelEnum {
FIRST(0),
SECOND_CATEGORY(1), SECOND_CATEGORY(1),
SECOND(2), SECOND(2),
THREE(3); THREE(3);

1
src/main/java/com/biutag/supervision/constants/enums/FlowNodeEnum.java

@ -18,6 +18,7 @@ public enum FlowNodeEnum {
FIRST_APPROVE("first_approve"), FIRST_APPROVE("first_approve"),
SECOND_EXTENSION_APPROVE("second_extension_approve"), SECOND_EXTENSION_APPROVE("second_extension_approve"),
FIRST_EXTENSION_APPROVE("first_extension_approve"), FIRST_EXTENSION_APPROVE("first_extension_approve"),
COUNTERSIGN("countersign"),
COMPLETED("completed"); COMPLETED("completed");
private String key; private String key;

2
src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java

@ -28,7 +28,7 @@ public enum ProblemSourcesEnum {
JJZRSJ("经济责任审计", "29"), JJZRSJ("经济责任审计", "29"),
ZXSJ("专项审计", "30"), ZXSJ("专项审计", "30"),
JWDC("警务评议", "2"), JWDC("民意感知", "2"),
JYDC("警意调查", "3"), JYDC("警意调查", "3"),
CFJD("持法监督", "4"), CFJD("持法监督", "4"),
JCKH("检查考核", "8"), JCKH("检查考核", "8"),

8
src/main/java/com/biutag/supervision/controller/FileController.java

@ -4,6 +4,7 @@ import cn.hutool.core.io.IoUtil;
import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.Result;
import com.biutag.supervision.pojo.vo.FileVo; import com.biutag.supervision.pojo.vo.FileVo;
import com.biutag.supervision.service.FileService; import com.biutag.supervision.service.FileService;
import com.biutag.supervision.util.WordUtil;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
@Slf4j @Slf4j
@RequiredArgsConstructor @RequiredArgsConstructor
@ -40,7 +42,11 @@ public class FileController {
} else { } else {
response.setContentType("application/octet-stream"); response.setContentType("application/octet-stream");
} }
IoUtil.copy(fileService.download(filePath), response.getOutputStream()); InputStream is = fileService.download(filePath);
if (filePath.toLowerCase().endsWith(".doc")) {
is = WordUtil.convertDocx(is);
}
IoUtil.copy(is, response.getOutputStream());
} }
} }

2
src/main/java/com/biutag/supervision/flow/FlowService.java

@ -32,7 +32,7 @@ public class FlowService {
public Boolean execute(ActionDto actionDto) { public Boolean execute(ActionDto actionDto) {
Action action = actions Action action = actions
.stream() .stream()
.filter(item -> item.getClass().getName().contains(StrUtil.upperFirst(StrUtil.toCamelCase(actionDto.getActionKey())))) .filter(item -> item.getClass().getSimpleName().startsWith(StrUtil.upperFirst(StrUtil.toCamelCase(actionDto.getActionKey()))))
.findFirst() .findFirst()
.orElseThrow(() -> new RuntimeException("配置异常,请联系系统管理员")); .orElseThrow(() -> new RuntimeException("配置异常,请联系系统管理员"));
action.next(actionDto); action.next(actionDto);

2
src/main/java/com/biutag/supervision/flow/action/ApplyCompletionAction.java

@ -95,7 +95,7 @@ public class ApplyCompletionAction implements Action {
} }
negativeBlame negativeBlame
.setBlameId(IdUtil.fastSimpleUUID()) .setBlameId(IdUtil.getSnowflakeNextIdStr())
.setNegativeId(negativeId) .setNegativeId(negativeId)
.setCrtTime(now) .setCrtTime(now)
.setUpdTime(now); .setUpdTime(now);

107
src/main/java/com/biutag/supervision/flow/action/ApplyCountersignAction.java

@ -0,0 +1,107 @@
package com.biutag.supervision.flow.action;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.biutag.supervision.common.UserContextHolder;
import com.biutag.supervision.constants.enums.*;
import com.biutag.supervision.pojo.dto.ActionDto;
import com.biutag.supervision.pojo.dto.flow.ApplyCountersignData;
import com.biutag.supervision.pojo.entity.*;
import com.biutag.supervision.pojo.model.UserAuth;
import com.biutag.supervision.service.*;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author wxc
* @date 2024/11/26
*/
@RequiredArgsConstructor
@Component
public class ApplyCountersignAction implements Action {
private final NegativeCountersignApplyService countersignApplyService;
private final NegativeCountersignService countersignService;
private final NegativeService negativeService;
private final NegativeWorkService workService;
private final SupDepartService departService;
@Override
public void next(ActionDto actionDto) {
ApplyCountersignData applyCountersignData = BeanUtil.toBean(actionDto.getData(), ApplyCountersignData.class);
addWork(actionDto, applyCountersignData);
addCountersign(actionDto.getNegativeId(), applyCountersignData);
}
private void addCountersign(String negativeId, ApplyCountersignData applyCountersignData) {
UserAuth user = UserContextHolder.getCurrentUser();
NegativeCountersignApply countersignApply = new NegativeCountersignApply();
countersignApply.setNegativeId(negativeId)
.setRequirement(applyCountersignData.getRequirement())
.setCreateTime(LocalDateTime.now())
.setCreator(user.getUserName())
.setCreatorName(user.getNickName());
countersignApplyService.save(countersignApply);
Set<String> departIds = applyCountersignData.getCountersignDeparts().stream().map(ApplyCountersignData.CountersignDepart::getId).collect(Collectors.toSet());
List<NegativeCountersign> countersigns = departIds.stream().map(departId -> {
NegativeCountersign countersign = new NegativeCountersign();
countersign.setCountersignApplyId(countersignApply.getId())
.setNegativeId(negativeId)
.setDepartId(departId)
.setDepartName(departService.getById(departId).getShortName())
.setState(CountersignState.uncompleted.name())
.setCreateTime(LocalDateTime.now());
return countersign;
}).toList();
countersignService.saveBatch(countersigns);
// 更新
negativeService.update(new LambdaUpdateWrapper<Negative>().eq(Negative::getId, negativeId)
.set(Negative::getCountersignApplyId, countersignApply.getId())
.set(Negative::getUpdTime, LocalDateTime.now()));
}
private void addWork(ActionDto actionDto, ApplyCountersignData applyCountersignData) {
List<NegativeWork> works = workService.list(actionDto.getNegativeId());
Set<String> departIds = applyCountersignData.getCountersignDeparts().stream()
.map(ApplyCountersignData.CountersignDepart::getId)
.collect(Collectors.toSet());
List<NegativeWork> filterWorks = works.stream().filter(item -> !FlowNodeEnum.COUNTERSIGN.getKey().equals(item.getFlowKey()) && departIds.contains(item.getDepartId())).toList();
if (!filterWorks.isEmpty()) {
throw new RuntimeException(String.format("办理单位【%s】不能参与会签", filterWorks.stream().map(NegativeWork::getDepartName).collect(Collectors.joining("、"))));
}
List<String> workDepartIds = works.stream().filter(item -> FlowNodeEnum.COUNTERSIGN.getKey().equals(item.getFlowKey()) && departIds.contains(item.getDepartId())).map(NegativeWork::getDepartId).toList();
if (!workDepartIds.isEmpty()) {
// 删除 之前work记录,避免重复
workService.remove(new LambdaQueryWrapper<NegativeWork>().eq(NegativeWork::getNegativeId, actionDto.getNegativeId()).in(NegativeWork::getDepartId, workDepartIds));
}
Integer workId = actionDto.getWorkId();
NegativeWork work = workService.getById(workId);
List<NegativeWork> negativeWorks = departIds.stream().map(departId -> {
NegativeWork w = new NegativeWork();
SupDepart depart = departService.getById(departId);
w.setRoleCode(depart.getLevel().equals(DepartLevelEnum.SECOND.getValue()) ? RoleCodeEnum.SECOND_ADMIN.getCode() : RoleCodeEnum.THREE_ADMIN.getCode())
.setStatus(WorkStatusEnum.todo.name())
.setDepartId(departId)
.setNegativeId(actionDto.getNegativeId())
.setDepartName(depart.getShortName())
.setProblemSourcesCode(work.getProblemSourcesCode())
.setCreateTime(LocalDateTime.now())
.setUpdateTime(LocalDateTime.now())
.setFlowKey("countersign");
return w;
}).toList();
workService.saveBatch(negativeWorks);
}
}

61
src/main/java/com/biutag/supervision/flow/action/CountersignAction.java

@ -0,0 +1,61 @@
package com.biutag.supervision.flow.action;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.biutag.supervision.constants.enums.CountersignState;
import com.biutag.supervision.constants.enums.WorkStatusEnum;
import com.biutag.supervision.pojo.dto.ActionDto;
import com.biutag.supervision.pojo.dto.flow.CountersignData;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.NegativeCountersign;
import com.biutag.supervision.pojo.entity.NegativeWork;
import com.biutag.supervision.service.NegativeCountersignService;
import com.biutag.supervision.service.NegativeService;
import com.biutag.supervision.service.NegativeWorkService;
import com.biutag.supervision.util.JSON;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.Objects;
/**
* @author wxc
* @date 2024/11/26
*/
@RequiredArgsConstructor
@Component
public class CountersignAction implements Action {
private final NegativeCountersignService countersignService;
private final NegativeService negativeService;
private final NegativeWorkService workService;
@Override
public void next(ActionDto actionDto) {
CountersignData countersignData = BeanUtil.toBean(actionDto.getData(), CountersignData.class);
addWork(actionDto.getWorkId());
updateCountersign(actionDto.getNegativeId(), actionDto.getWorkId(), countersignData);
}
public void updateCountersign(String negativeId, Integer workId, CountersignData countersignData) {
Negative negative = negativeService.getById(negativeId);
NegativeWork work = workService.getById(workId);
countersignService.update(new LambdaUpdateWrapper<NegativeCountersign>()
.eq(NegativeCountersign::getNegativeId, negativeId)
.eq(NegativeCountersign::getCountersignApplyId, negative.getCountersignApplyId())
.eq(NegativeCountersign::getDepartId, work.getDepartId())
.set(NegativeCountersign::getComments, countersignData.getComments())
.set(NegativeCountersign::getFiles, Objects.isNull(countersignData.getFiles()) || countersignData.getFiles().isEmpty() ? null :
JSON.toJSONString(countersignData.getFiles()))
.set(NegativeCountersign::getState, CountersignState.completed.name())
.set(NegativeCountersign::getUpdateTime, LocalDateTime.now()));
}
public void addWork(Integer workId) {
workService.update(new LambdaUpdateWrapper<NegativeWork>().eq(NegativeWork::getId, workId).set(NegativeWork::getStatus, WorkStatusEnum.done.name()).set(NegativeWork::getUpdateTime, LocalDateTime.now()));
}
}

2
src/main/java/com/biutag/supervision/flow/action/FirstExtensionReturnAction.java

@ -47,10 +47,12 @@ public class FirstExtensionReturnAction implements Action {
} }
public void addExtensionApprove(ActionDto actionDto, String comments) { public void addExtensionApprove(ActionDto actionDto, String comments) {
Negative negative = negativeService.getById(actionDto.getNegativeId());
UserAuth user = UserContextHolder.getCurrentUser(); UserAuth user = UserContextHolder.getCurrentUser();
NegativeWork work = workService.getById(actionDto.getWorkId()); NegativeWork work = workService.getById(actionDto.getWorkId());
NegativeExtensionApprove extensionApprove = new NegativeExtensionApprove() NegativeExtensionApprove extensionApprove = new NegativeExtensionApprove()
.setNegativeId(actionDto.getNegativeId()) .setNegativeId(actionDto.getNegativeId())
.setNegativeExtensionApplyId(negative.getNegativeExtensionApplyId())
.setComments(comments) .setComments(comments)
.setHandlerDepartId(work.getDepartId()) .setHandlerDepartId(work.getDepartId())
.setHandlerDepartName(work.getDepartName()) .setHandlerDepartName(work.getDepartName())

4
src/main/java/com/biutag/supervision/flow/action/SaveAction.java

@ -72,8 +72,8 @@ public class SaveAction implements Action {
/** /**
* 如果涉及不为空则先删除原有数据再新增 * 如果涉及不为空则先删除原有数据再新增
*/ */
if (!verifyData.getBlames().isEmpty()) {
negativeBlameService.remove(negativeId); negativeBlameService.remove(negativeId);
if (!verifyData.getBlames().isEmpty()) {
List<NegativeProblemRelation> problemRelations = new ArrayList<>(); List<NegativeProblemRelation> problemRelations = new ArrayList<>();
List<NegativeBlame> negativeBlames = verifyData.getBlames().stream().map(item -> { List<NegativeBlame> negativeBlames = verifyData.getBlames().stream().map(item -> {
NegativeBlame negativeBlame = new NegativeBlame(); NegativeBlame negativeBlame = new NegativeBlame();
@ -84,7 +84,7 @@ public class SaveAction implements Action {
BeanUtil.copyProperties(blameLeader, negativeBlame); BeanUtil.copyProperties(blameLeader, negativeBlame);
} }
negativeBlame.setNegativeId(negativeId) negativeBlame.setNegativeId(negativeId)
.setBlameId(IdUtil.fastSimpleUUID()) .setBlameId(IdUtil.getSnowflakeNextIdStr())
.setCrtTime(LocalDateTime.now()) .setCrtTime(LocalDateTime.now())
.setUpdTime(LocalDateTime.now()); .setUpdTime(LocalDateTime.now());
problemRelations.addAll(item.getProblems().stream().map(problem -> { problemRelations.addAll(item.getProblems().stream().map(problem -> {

2
src/main/java/com/biutag/supervision/flow/action/SecondExtensionReturnAction.java

@ -47,10 +47,12 @@ public class SecondExtensionReturnAction implements Action {
} }
public void addExtensionApprove(ActionDto actionDto, String comments) { public void addExtensionApprove(ActionDto actionDto, String comments) {
Negative negative = negativeService.getById(actionDto.getNegativeId());
UserAuth user = UserContextHolder.getCurrentUser(); UserAuth user = UserContextHolder.getCurrentUser();
NegativeWork work = workService.getById(actionDto.getWorkId()); NegativeWork work = workService.getById(actionDto.getWorkId());
NegativeExtensionApprove extensionApprove = new NegativeExtensionApprove() NegativeExtensionApprove extensionApprove = new NegativeExtensionApprove()
.setNegativeId(actionDto.getNegativeId()) .setNegativeId(actionDto.getNegativeId())
.setNegativeExtensionApplyId(negative.getNegativeExtensionApplyId())
.setComments(comments) .setComments(comments)
.setHandlerDepartId(work.getDepartId()) .setHandlerDepartId(work.getDepartId())
.setHandlerDepartName(work.getDepartName()) .setHandlerDepartName(work.getDepartName())

8
src/main/java/com/biutag/supervision/mapper/NegativeCountersignApplyMapper.java

@ -0,0 +1,8 @@
package com.biutag.supervision.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervision.pojo.entity.NegativeCountersignApply;
public interface NegativeCountersignApplyMapper extends BaseMapper<NegativeCountersignApply> {
}

8
src/main/java/com/biutag/supervision/mapper/NegativeCountersignMapper.java

@ -0,0 +1,8 @@
package com.biutag.supervision.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervision.pojo.entity.NegativeCountersign;
public interface NegativeCountersignMapper extends BaseMapper<NegativeCountersign> {
}

35
src/main/java/com/biutag/supervision/pojo/domain/CountersignApply.java

@ -0,0 +1,35 @@
package com.biutag.supervision.pojo.domain;
import com.biutag.supervision.pojo.entity.NegativeCountersign;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* @author wxc
* @date 2024/11/26
*/
@Accessors(chain = true)
@Setter
@Getter
public class CountersignApply {
private Integer id;
private String requirement;
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
private LocalDateTime createTime;
private String creatorName;
private String createDepartName;
private List<NegativeCountersign> countersigns = new ArrayList<>();
}

19
src/main/java/com/biutag/supervision/pojo/domain/ExtensionApply.java

@ -1,6 +1,7 @@
package com.biutag.supervision.pojo.domain; package com.biutag.supervision.pojo.domain;
import com.biutag.supervision.pojo.entity.NegativeExtensionApprove; import com.biutag.supervision.pojo.model.ExtensionApproveStepModel;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@ -14,25 +15,13 @@ import java.util.List;
@Getter @Getter
public class ExtensionApply { public class ExtensionApply {
private Integer id;
private String negativeId;
private String handlerDepartId;
private String handlerDepartName;
private String handlerUserName;
private String handlerName;
private String comments; private String comments;
private Integer extensionDays; private Integer extensionDays;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime createTime; private LocalDateTime createTime;
private List<NegativeExtensionApprove> approves = new ArrayList<>(); private List<ExtensionApproveStepModel> approveSteps = new ArrayList<>();
} }

2
src/main/java/com/biutag/supervision/pojo/domain/NegativeDetail.java

@ -32,6 +32,8 @@ public class NegativeDetail {
// 延期申请 // 延期申请
private ExtensionApply extensionApply; private ExtensionApply extensionApply;
private List<CountersignApply> countersignApplys = new ArrayList<>();
// 是否收藏 // 是否收藏
private Boolean isFav; private Boolean isFav;

3
src/main/java/com/biutag/supervision/pojo/domain/NegativeVo.java

@ -186,6 +186,9 @@ public class NegativeVo {
// 佐证材料情况 // 佐证材料情况
private String verifyFileSituation; private String verifyFileSituation;
// 单位会签ID
private Integer countersignApplyId;
// 涉及人员 // 涉及人员
private List<Blame> blames = new ArrayList<>(); private List<Blame> blames = new ArrayList<>();

30
src/main/java/com/biutag/supervision/pojo/dto/flow/ApplyCountersignData.java

@ -0,0 +1,30 @@
package com.biutag.supervision.pojo.dto.flow;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import java.util.List;
/**
* @author wxc
* @date 2024/11/26
*/
@Setter
@Getter
public class ApplyCountersignData {
@NotBlank(message = "会签具体要求不能为空")
private String requirement;
@Size(min = 1, message = "参与会签单位不能少于1个")
private List<CountersignDepart> countersignDeparts = new ArrayList<>();
@Setter
@Getter
public class CountersignDepart {
private String id;
}
}

23
src/main/java/com/biutag/supervision/pojo/dto/flow/CountersignData.java

@ -0,0 +1,23 @@
package com.biutag.supervision.pojo.dto.flow;
import com.biutag.supervision.pojo.vo.FileVo;
import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @author wxc
* @date 2024/11/26
*/
@Setter
@Getter
public class CountersignData {
@NotBlank(message = "会签具体要求不能为空")
private String comments;
private List<FileVo> files;
}

6
src/main/java/com/biutag/supervision/pojo/entity/Negative.java

@ -267,4 +267,10 @@ public class Negative {
// 佐证材料情况 // 佐证材料情况
private String verifyFileSituation; private String verifyFileSituation;
// 单位会签ID
private Integer countersignApplyId;
// 下发的单位层级
private Integer crtDepartLevel;
} }

61
src/main/java/com/biutag/supervision/pojo/entity/NegativeCountersign.java

@ -0,0 +1,61 @@
package com.biutag.supervision.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Accessors(chain = true)
@Setter
@Getter
public class NegativeCountersign {
//
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
//
@TableField("countersign_apply_id")
private Integer countersignApplyId;
//
@TableField("negative_id")
private String negativeId;
//
@TableField("comments")
private String comments;
//
@TableField("files")
private String files;
//
@TableField("depart_id")
private String departId;
//
@TableField("depart_name")
private String departName;
//
@TableField("create_time")
private LocalDateTime createTime;
private LocalDateTime updateTime;
//
@TableField("creator")
private String creator;
//
@TableField("creator_name")
private String creatorName;
private String state;
}

45
src/main/java/com/biutag/supervision/pojo/entity/NegativeCountersignApply.java

@ -0,0 +1,45 @@
package com.biutag.supervision.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Accessors(chain = true)
@Setter
@Getter
public class NegativeCountersignApply {
//
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
//
@TableField("negative_id")
private String negativeId;
//
@TableField("requirement")
private String requirement;
//
@TableField("create_time")
private LocalDateTime createTime;
//
@TableField("creator")
private String creator;
//
@TableField("creator_name")
private String creatorName;
//
@TableField("create_depart_name")
private String createDepartName;
}

28
src/main/java/com/biutag/supervision/pojo/model/ExtensionApproveStepModel.java

@ -0,0 +1,28 @@
package com.biutag.supervision.pojo.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* @author wxc
* @date 2024/11/25
*/
@AllArgsConstructor
@Setter
@Getter
public class ExtensionApproveStepModel {
private String title;
private String comments;
private String state;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime createTime;
}

4
src/main/java/com/biutag/supervision/pojo/model/NegativeWorkModel.java

@ -10,7 +10,9 @@ import java.time.LocalDateTime;
@Getter @Getter
public class NegativeWorkModel { public class NegativeWorkModel {
private Integer id; private Integer workId;
private String workFlowKey;
private String negativeId; private String negativeId;

4
src/main/java/com/biutag/supervision/pojo/param/NegativeQueryParam.java

@ -60,4 +60,8 @@ public class NegativeQueryParam extends BasePage {
private String order; private String order;
private String orderProp; private String orderProp;
private String specialSupervision;
private String reportNumber;
} }

2
src/main/java/com/biutag/supervision/pojo/param/WorkParam.java

@ -21,4 +21,6 @@ public class WorkParam extends BasePage {
private String involveDepartId; private String involveDepartId;
private String handleThreeDepartId; private String handleThreeDepartId;
private String processingStatus; private String processingStatus;
private String checkStatus;
private List<String> handleResultCode = new ArrayList<>();
} }

30
src/main/java/com/biutag/supervision/service/NegativeCountersignApplyService.java

@ -0,0 +1,30 @@
package com.biutag.supervision.service;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervision.pojo.domain.CountersignApply;
import com.biutag.supervision.pojo.entity.NegativeCountersignApply;
import com.biutag.supervision.mapper.NegativeCountersignApplyMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
@RequiredArgsConstructor
@Service
public class NegativeCountersignApplyService extends ServiceImpl<NegativeCountersignApplyMapper, NegativeCountersignApply> {
private final NegativeCountersignService countersignService;
public List<CountersignApply> list(String negativeId) {
List<NegativeCountersignApply> list = list(new LambdaQueryWrapper<NegativeCountersignApply>().eq(NegativeCountersignApply::getNegativeId, negativeId));
return list.stream().map(apply -> {
CountersignApply countersignApply = new CountersignApply();
BeanUtil.copyProperties(apply, countersignApply);
countersignApply.setCountersigns(countersignService.list(apply.getId()));
return countersignApply;
}).toList();
}
}

19
src/main/java/com/biutag/supervision/service/NegativeCountersignService.java

@ -0,0 +1,19 @@
package com.biutag.supervision.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervision.pojo.entity.NegativeCountersign;
import com.biutag.supervision.mapper.NegativeCountersignMapper;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class NegativeCountersignService extends ServiceImpl<NegativeCountersignMapper, NegativeCountersign> {
public List<NegativeCountersign> list(Integer countersignApplyId) {
return list(new LambdaQueryWrapper<NegativeCountersign>().eq(NegativeCountersign::getCountersignApplyId, countersignApplyId)
.orderByAsc(NegativeCountersign::getState));
}
}

36
src/main/java/com/biutag/supervision/service/NegativeExtensionApplyService.java

@ -2,24 +2,52 @@ package com.biutag.supervision.service;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervision.constants.enums.ApproveStateEnum;
import com.biutag.supervision.mapper.NegativeExtensionApplyMapper;
import com.biutag.supervision.pojo.domain.ExtensionApply; import com.biutag.supervision.pojo.domain.ExtensionApply;
import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.NegativeExtensionApply; import com.biutag.supervision.pojo.entity.NegativeExtensionApply;
import com.biutag.supervision.mapper.NegativeExtensionApplyMapper; import com.biutag.supervision.pojo.entity.NegativeExtensionApprove;
import com.biutag.supervision.pojo.model.ExtensionApproveStepModel;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Comparator;
import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
@Service @Service
public class NegativeExtensionApplyService extends ServiceImpl<NegativeExtensionApplyMapper, NegativeExtensionApply> { public class NegativeExtensionApplyService extends ServiceImpl<NegativeExtensionApplyMapper, NegativeExtensionApply> {
private final NegativeExtensionApproveService extensionApproveService; private final NegativeExtensionApproveService extensionApproveService;
public ExtensionApply get(int id) { public ExtensionApply get(Negative negative) {
NegativeExtensionApply extensionApply = getById(id); NegativeExtensionApply extensionApply = getById(negative.getNegativeExtensionApplyId());
ExtensionApply apply = new ExtensionApply(); ExtensionApply apply = new ExtensionApply();
BeanUtil.copyProperties(extensionApply, apply); BeanUtil.copyProperties(extensionApply, apply);
apply.setApproves(extensionApproveService.list(id)); List<NegativeExtensionApprove> approves = extensionApproveService.list(negative.getNegativeExtensionApplyId());
List<NegativeExtensionApprove> list = approves.stream().map(NegativeExtensionApprove::getHandlerDepartId).distinct().map(departId -> {
return approves.stream().sorted(Comparator.comparing(NegativeExtensionApprove::getCreateTime).reversed())
.filter(item -> departId.equals(item.getHandlerDepartId()))
.findFirst().get();
}).toList();
ExtensionApproveStepModel step1 = new ExtensionApproveStepModel("延期申请", "", ApproveStateEnum.approved.name(), null);
ExtensionApproveStepModel step2 = new ExtensionApproveStepModel(negative.getHandleSecondDepartName() + "专班审批", "", null, null);
ExtensionApproveStepModel step3 = new ExtensionApproveStepModel("市局专班审批", "", null, null);
apply.setApproveSteps(List.of(step1, step2, step3));
if (!list.isEmpty()) {
step2.setComments(list.get(0).getComments());
step2.setState(list.get(0).getState());
step2.setCreateTime(list.get(0).getCreateTime());
}
if (list.size() > 1) {
step3.setComments(list.get(1).getComments());
step3.setState(list.get(1).getState());
step3.setCreateTime(list.get(1).getCreateTime());
}
return apply; return apply;
} }
} }

4
src/main/java/com/biutag/supervision/service/NegativeQueryService.java

@ -55,7 +55,9 @@ public class NegativeQueryService {
.eq(StrUtil.isNotBlank(param.getBusinessTypeCode()), Negative::getBusinessTypeCode, param.getBusinessTypeCode()) .eq(StrUtil.isNotBlank(param.getBusinessTypeCode()), Negative::getBusinessTypeCode, param.getBusinessTypeCode())
.eq(StrUtil.isNotBlank(param.getCheckStatus()), Negative::getCheckStatus, param.getCheckStatus()) .eq(StrUtil.isNotBlank(param.getCheckStatus()), Negative::getCheckStatus, param.getCheckStatus())
.in(!param.getCheckStatusList().isEmpty(), Negative::getCheckStatus, param.getCheckStatusList()) .in(!param.getCheckStatusList().isEmpty(), Negative::getCheckStatus, param.getCheckStatusList())
.eq(StrUtil.isNotBlank(param.getIsRectifyCode()), Negative::getIsRectifyCode, param.getIsRectifyCode()); .eq(StrUtil.isNotBlank(param.getIsRectifyCode()), Negative::getIsRectifyCode, param.getIsRectifyCode())
.eq(StrUtil.isNotBlank(param.getSpecialSupervision()), Negative::getSpecialSupervision, param.getSpecialSupervision())
.like(StrUtil.isNotBlank(param.getReportNumber()), Negative::getReportNumber, param.getReportNumber());
if (param.getHappenTime().size() == 2) { if (param.getHappenTime().size() == 2) {
queryWrapper.between(Negative::getHappenTime, param.getHappenTime().get(0), param.getHappenTime().get(1)); queryWrapper.between(Negative::getHappenTime, param.getHappenTime().get(0), param.getHappenTime().get(1));
} }

15
src/main/java/com/biutag/supervision/service/NegativeService.java

@ -10,6 +10,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervision.common.UserContextHolder;
import com.biutag.supervision.constants.AppConstants; import com.biutag.supervision.constants.AppConstants;
import com.biutag.supervision.constants.enums.*; import com.biutag.supervision.constants.enums.*;
import com.biutag.supervision.flow.FlowService; import com.biutag.supervision.flow.FlowService;
@ -23,6 +24,7 @@ import com.biutag.supervision.pojo.dto.flow.FirstDistributeData;
import com.biutag.supervision.pojo.dto.flow.VerifyData; import com.biutag.supervision.pojo.dto.flow.VerifyData;
import com.biutag.supervision.pojo.dto.jwdc.NegativeApiDto; import com.biutag.supervision.pojo.dto.jwdc.NegativeApiDto;
import com.biutag.supervision.pojo.entity.*; import com.biutag.supervision.pojo.entity.*;
import com.biutag.supervision.pojo.model.UserAuth;
import com.biutag.supervision.util.JSON; import com.biutag.supervision.util.JSON;
import com.biutag.supervision.util.SpringUtil; import com.biutag.supervision.util.SpringUtil;
import com.biutag.supervision.util.TimeUtil; import com.biutag.supervision.util.TimeUtil;
@ -31,6 +33,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.management.relation.Role;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
@ -69,9 +72,10 @@ public class NegativeService extends ServiceImpl<NegativeMapper, Negative> {
private final NegativeScorePoliceService negativeScorePoliceService; private final NegativeScorePoliceService negativeScorePoliceService;
private final NegativeCountersignApplyService countersignApplyService;
public NegativeDetail get(String id, Integer workId) { public NegativeDetail get(String id, Integer workId) {
Negative negative = getById(id); Negative negative = getById(id);
List<NegativeHistory> flows = negativeHistoryService.listByNegativeId(id); List<NegativeHistory> flows = negativeHistoryService.listByNegativeId(id);
AtomicReference<String> flowKey = new AtomicReference<>(negative.getFlowKey()); AtomicReference<String> flowKey = new AtomicReference<>(negative.getFlowKey());
List<NegativeFile> files = fileService.list(id); List<NegativeFile> files = fileService.list(id);
@ -121,8 +125,8 @@ public class NegativeService extends ServiceImpl<NegativeMapper, Negative> {
detail.setSignReturns(signReturnService.list(id)); detail.setSignReturns(signReturnService.list(id));
} }
// 是否延期申请 // 是否延期申请
if (Objects.nonNull(negative.getNegativeExtensionApplyId()) && !negative.getExtensionApplyFlag()) { if (Objects.nonNull(negative.getNegativeExtensionApplyId()) && FlowNodeEnum.VERIFY.getKey().equals(negative.getFlowKey())) {
detail.setExtensionApply(extensionApplyService.get(negative.getNegativeExtensionApplyId())); detail.setExtensionApply(extensionApplyService.get(negative));
} }
// 办理剩余时长 // 办理剩余时长
if (StrUtil.isNotBlank(negative.getFlowKey())) { if (StrUtil.isNotBlank(negative.getFlowKey())) {
@ -153,6 +157,8 @@ public class NegativeService extends ServiceImpl<NegativeMapper, Negative> {
List<NegativeScorePolice> scorePolices = negativeScorePoliceService.list(id); List<NegativeScorePolice> scorePolices = negativeScorePoliceService.list(id);
vo.setScorePolices(scorePolices); vo.setScorePolices(scorePolices);
} }
// 单位会签
detail.setCountersignApplys(countersignApplyService.list(id));
return detail; return detail;
} }
@ -169,9 +175,11 @@ public class NegativeService extends ServiceImpl<NegativeMapper, Negative> {
negative.setOriginId(originId); // 如果是空就生成随机的线索源 negative.setOriginId(originId); // 如果是空就生成随机的线索源
} }
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
UserAuth user = UserContextHolder.getCurrentUser();
negative.setId(IdUtil.getSnowflakeNextIdStr()) // negative唯一标识 雪花 negative.setId(IdUtil.getSnowflakeNextIdStr()) // negative唯一标识 雪花
.setProcessingStatus(ProcessingStatusEnum.signing.name()) .setProcessingStatus(ProcessingStatusEnum.signing.name())
.setFlowKey(FlowNodeEnum.FIRST_DISTRIBUTE.getKey()) // 市局下发 .setFlowKey(FlowNodeEnum.FIRST_DISTRIBUTE.getKey()) // 市局下发
.setCrtDepartLevel(user.getRoleCodes().contains(RoleCodeEnum.SECOND_ADMIN.getCode()) ? DepartLevelEnum.SECOND.getValue() : DepartLevelEnum.FIRST.getValue())
.setCrtTime(now) .setCrtTime(now)
.setUpdTime(now); .setUpdTime(now);
if (Objects.nonNull(negativeDto.getInvolveProblem())) { if (Objects.nonNull(negativeDto.getInvolveProblem())) {
@ -201,7 +209,6 @@ public class NegativeService extends ServiceImpl<NegativeMapper, Negative> {
.setCreateTime(now); .setCreateTime(now);
workService.save(work); // 添加一条 negative_work 数据 工作状态 workService.save(work); // 添加一条 negative_work 数据 工作状态
FirstDistributeData firstDistributeData = new FirstDistributeData(); FirstDistributeData firstDistributeData = new FirstDistributeData();
BeanUtil.copyProperties(negativeDto, firstDistributeData); BeanUtil.copyProperties(negativeDto, firstDistributeData);
ActionDto actionDto = new ActionDto() ActionDto actionDto = new ActionDto()

8
src/main/java/com/biutag/supervision/service/NegativeWorkService.java

@ -1,6 +1,7 @@
package com.biutag.supervision.service; package com.biutag.supervision.service;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -14,6 +15,8 @@ import com.biutag.supervision.util.TimeUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@Service @Service
public class NegativeWorkService extends ServiceImpl<NegativeWorkMapper, NegativeWork> { public class NegativeWorkService extends ServiceImpl<NegativeWorkMapper, NegativeWork> {
@ -35,6 +38,8 @@ public class NegativeWorkService extends ServiceImpl<NegativeWorkMapper, Negativ
.eq(StrUtil.isNotBlank(workParam.getInvolveDepartId()), "n.involveDepartId", workParam.getInvolveDepartId()) .eq(StrUtil.isNotBlank(workParam.getInvolveDepartId()), "n.involveDepartId", workParam.getInvolveDepartId())
.eq(StrUtil.isNotBlank(workParam.getHandleThreeDepartId()), "n.handle_three_depart_id", workParam.getHandleThreeDepartId()) .eq(StrUtil.isNotBlank(workParam.getHandleThreeDepartId()), "n.handle_three_depart_id", workParam.getHandleThreeDepartId())
.eq(StrUtil.isNotBlank(workParam.getProcessingStatus()), "n.processing_status", workParam.getProcessingStatus()) .eq(StrUtil.isNotBlank(workParam.getProcessingStatus()), "n.processing_status", workParam.getProcessingStatus())
.eq(StrUtil.isNotBlank(workParam.getCheckStatus()), "n.checkStatus", workParam.getCheckStatus())
.in(Objects.nonNull(workParam.getHandleResultCode()) && !workParam.getHandleResultCode().isEmpty(), "nb.handleResultCode", workParam.getHandleResultCode())
.orderByDesc("w.create_time"); .orderByDesc("w.create_time");
if (workParam.getHappenTime().size() == 2) { if (workParam.getHappenTime().size() == 2) {
queryWrapper.between("n.happenTime", workParam.getHappenTime().get(0), workParam.getHappenTime().get(1)); queryWrapper.between("n.happenTime", workParam.getHappenTime().get(0), workParam.getHappenTime().get(1));
@ -46,4 +51,7 @@ public class NegativeWorkService extends ServiceImpl<NegativeWorkMapper, Negativ
return modelPage; return modelPage;
} }
public List<NegativeWork> list(String negativeId) {
return list(new LambdaQueryWrapper<NegativeWork>().eq(NegativeWork::getNegativeId, negativeId));
}
} }

36
src/main/java/com/biutag/supervision/util/WordUtil.java

@ -0,0 +1,36 @@
package com.biutag.supervision.util;
import com.aspose.words.Document;
import com.aspose.words.License;
import com.aspose.words.SaveFormat;
import lombok.extern.slf4j.Slf4j;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
@Slf4j
public class WordUtil {
public static InputStream convertDocx(InputStream is) {
getLicense();
try(ByteArrayOutputStream f = new ByteArrayOutputStream()) {
Document doc = new Document(is);
doc.save(f, SaveFormat.DOCX);
return new ByteArrayInputStream(f.toByteArray());
} catch (Exception e) {
throw new RuntimeException("docx转换异常:" + e.getMessage());
}
}
public static boolean getLicense() {
try (InputStream is = WordUtil.class.getResourceAsStream("/license/words.license.xml")){
License aposeLic = new License();
aposeLic.setLicense(is);
return true;
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
}

12
src/main/resources/application-local.yml

@ -14,14 +14,14 @@ spring:
password: ip12341234 password: ip12341234
data: data:
redis: redis:
host: 172.31.217.20 host: 127.0.0.1
# 端口,默认为6379 # 端口,默认为6379
port: 30079 port: 6379
password: ip1234!@#$ password: 123456
#mybatis-plus: mybatis-plus:
# configuration: configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
fdfs: fdfs:
tracker-list: #TrackerList参数,支持多个 tracker-list: #TrackerList参数,支持多个

13
src/main/resources/license/words.license.xml

@ -0,0 +1,13 @@
<License>
<Data>
<Products>
<Product>Aspose.Total for Java</Product>
<Product>Aspose.Words for Java</Product>
</Products>
<EditionType>Enterprise</EditionType>
<SubscriptionExpiry>20991231</SubscriptionExpiry>
<LicenseExpiry>20991231</LicenseExpiry>
<SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
</Data>
<Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
</License>

4
src/main/resources/mapper/NegativeWorkMapper.xml

@ -5,11 +5,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="com.biutag.supervision.mapper.NegativeWorkMapper"> <mapper namespace="com.biutag.supervision.mapper.NegativeWorkMapper">
<select id="queryPage" resultType="com.biutag.supervision.pojo.model.NegativeWorkModel"> <select id="queryPage" resultType="com.biutag.supervision.pojo.model.NegativeWorkModel">
select w.id, w.negative_id, w.depart_id work_depart_id, n.* select distinct w.id work_id, w.negative_id, w.depart_id work_depart_id, w.flow_key work_flow_key , n.*
from negative_work w from negative_work w
left join negative n on w.negative_id = n.id left join negative n on w.negative_id = n.id
left join negative_blame nb on nb.negativeId = n.id
${ew.getCustomSqlSegment} ${ew.getCustomSqlSegment}
</select> </select>
</mapper> </mapper>

4
src/test/java/com/biutag/supervision/StrUtil.java

@ -17,8 +17,6 @@ public class StrUtil {
@Test @Test
public void testSubstr() { public void testSubstr() {
for (int i = 0; i < 12; i++) { System.out.println(StrUtil.class.getSimpleName());
}
} }
} }

2
src/test/java/com/biutag/supervision/tools/GenCodeTests.java

@ -25,7 +25,7 @@ public class GenCodeTests {
@Test @Test
public void genEntity() throws TemplateException, IOException { public void genEntity() throws TemplateException, IOException {
String tableName = "risk_personal_tag"; String tableName = "negative_countersign";
String tableSchema = "negative"; String tableSchema = "negative";
boolean genMapper = true; boolean genMapper = true;
boolean genService = true; boolean genService = true;

Loading…
Cancel
Save