Commit a7795bcb authored by chenzhao's avatar chenzhao

修改重新提交

parent b9103c7f
......@@ -24,7 +24,6 @@ public class FailureRepairlogDto extends BaseDto {
@ApiModelProperty(value = "流程处理人Id")
private Integer processAuditorId;
@ApiModelProperty(value = "处理人所属部门")
private String processDepartment;
......@@ -41,6 +40,6 @@ public class FailureRepairlogDto extends BaseDto {
private Long faultId;
@ApiModelProperty(value = "流程处理人")
private String processAuditorCid;
private String processAuditorName;
}
......@@ -62,6 +62,4 @@ public class FailureRepairlog extends BaseEntity {
@TableField("fault_id")
private Long faultId;
}
package com.yeejoin.amos.boot.module.common.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.FailureDetailsDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrDto;
import com.yeejoin.amos.boot.module.common.api.entity.FailureDetails;
import org.apache.ibatis.annotations.Param;
/**
* Mapper 接口
......@@ -10,4 +15,28 @@ import com.yeejoin.amos.boot.module.common.api.entity.FailureDetails;
* @date 2021-08-04
*/
public interface FailureDetailsMapper extends BaseMapper<FailureDetails> {
/**
*查询全部 分页
* @param page
* @return
*/
IPage<FailureDetails> selectAllPage(Page page);
/**
*查询我发起的 分页
* current 当前页
* size 条数
* @return
*/
IPage<FailureDetails> selectISubPage(Page page, String submissionPid);
/**
*查询待处理 分页
* @param page
* @return
*/
IPage<FailureDetails> selectInProcessing(Page page);
}
<?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.yeejoin.amos.boot.module.common.api.mapper.FailureDetailsMapper">
<select id="selectAllPage" resultType="com.yeejoin.amos.boot.module.common.api.entity.FailureDetails">
SELECT
sequence_nbr,
current_status,
current_status,
failure_equipment_id,
failure_equipment,
fault_time,
fault_phenomenon,
submission_name,
submission_pid,
biz_code,
submission_time,
submission_branch,
submission_branch_id
FROM
cb_failure_details
</select>
<select id="selectISubPage" resultType="com.yeejoin.amos.boot.module.common.api.entity.FailureDetails">
SELECT
sequence_nbr,
current_status,
failure_equipment_id,
failure_equipment,
fault_time,
fault_phenomenon,
submission_name,
submission_pid,
biz_code,
submission_time,
submission_branch,
submission_branch_id
FROM
cb_failure_details
WHERE
submission_pid = #{submissionPid}
</select>
<select id="selectInProcessing" resultType="com.yeejoin.amos.boot.module.common.api.entity.FailureDetails">
SELECT
sequence_nbr,
current_status,
current_status,
failure_equipment_id,
failure_equipment,
fault_time,
fault_phenomenon,
submission_name,
submission_pid,
biz_code,
submission_time,
submission_branch,
submission_branch_id
FROM
cb_failure_details
WHERE
is_delete = 0
</select>
</mapper>
......@@ -49,8 +49,6 @@ public class FailureAuditController extends BaseController {
}
}
/**
* 根据sequenceNbr查询
*
......@@ -64,35 +62,6 @@ public class FailureAuditController extends BaseController {
return ResponseHelper.buildResponse(failureAuditServiceImpl.queryBySeq(sequenceNbr));
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "分页查询", notes = "分页查询")
public ResponseModel<Page<FailureAuditDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size) {
Page<FailureAuditDto> page = new Page<FailureAuditDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(failureAuditServiceImpl.queryForFailureAuditPage(page));
}
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<FailureAuditDto>> selectForList() {
return ResponseHelper.buildResponse(failureAuditServiceImpl.queryForFailureAuditList());
}
/**
* 审核列表记录查询
......
......@@ -2,23 +2,23 @@ package com.yeejoin.amos.boot.module.common.biz.controller;
import java.util.List;
import com.yeejoin.amos.boot.module.common.api.entity.FailureAudit;
import com.yeejoin.amos.boot.module.common.api.entity.FailureMaintain;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.api.dto.FailureMaintainDto;
import com.yeejoin.amos.boot.module.common.biz.service.impl.FailureMaintainServiceImpl;
......@@ -59,71 +59,6 @@ public class FailureMaintainController extends BaseController {
}
/**
* 根据sequenceNbr更新
* 根据传递的Status状态确认验收状态
*
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/verify")
@ApiOperation(httpMethod = "PUT", value = "验收操作", notes = "根据sequenceNbr更新")
public Object updateBySequenceNbrFailureMaintain(@RequestBody FailureMaintainDto model) {
try {
return ResponseHelper.buildResponse(failureMaintainServiceImpl.updateModel(model,getSelectedOrgInfo()));
} catch (Exception e) {
e.printStackTrace();
return ResponseHelper.buildResponse(false);
}
}
/*
*/
/**
* 根据sequenceNbr更新
* 根据传递的Status状态确认验收状态
*
* @param sequenceNbr 主键
* @return
*//*
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/update/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "维修完成", notes = "根据sequenceNbr更新")
public Object updateByFailureMaintain(@RequestBody FailureMaintainDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
try {
return ResponseHelper.buildResponse(failureMaintainServiceImpl.updateStatus(model,getSelectedOrgInfo()));
} catch (Exception e) {
return ResponseHelper.buildResponse(false);
}
}
*/
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "分页查询", notes = "分页查询")
public ResponseModel<Page<FailureMaintainDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size) {
Page<FailureMaintainDto> page = new Page<FailureMaintainDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(failureMaintainServiceImpl.queryForFailureMaintainPage(page));
}
/**
* 维修列表记录查询
*根据关联主表faultId查询
* @return
......
......@@ -44,21 +44,7 @@ public class FailureAuditServiceImpl extends BaseService<FailureAuditDto, Failur
@Autowired
FailureRepairlogServiceImpl failureRepairlogService;
private final Logger logger = LoggerFactory.getLogger(FailureAuditServiceImpl.class);
/**
* 分页查询
*/
public Page<FailureAuditDto> queryForFailureAuditPage(Page<FailureAuditDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<FailureAuditDto> queryForFailureAuditList() {
return this.queryForList("", false);
}
/**
* 发起审核
......@@ -75,23 +61,23 @@ public class FailureAuditServiceImpl extends BaseService<FailureAuditDto, Failur
FailureDetailsDto failureDetailsDto = failureDetailsService.queryBySeq(model.getFaultId());
int auditResult = 0;
Boolean repairResult = null;
//根据审核的结果进行业务操作
if (condition == AuditResultEnum.AGREE.getCode() && userInfo.getDepartment().getSequenceNbr().equals(failureDetailsDto.getBizCode())) {
auditResult = AuditResultEnum.AGREE.getCode();
Boolean repairResult = updateStatus(model, FailureStatuEnum.WAITING_AUDIT, userInfo, condition);
repairResult = updateStatus(model, FailureStatuEnum.WAITING_AUDIT, userInfo, condition);
} else if (condition == (AuditResultEnum.REFUSE.getCode())) {
auditResult = AuditResultEnum.REFUSE.getCode();
Boolean repairResult = updateStatus(model, FailureStatuEnum.REFUSE, userInfo, condition);
repairResult = updateStatus(model, FailureStatuEnum.REFUSE, userInfo, condition);
} else if (condition == (AuditResultEnum.SEND_BACK.getCode())) {
auditResult = AuditResultEnum.SEND_BACK.getCode();
Boolean repairResult = updateStatus(model, FailureStatuEnum.WAITING_SUBMIT, userInfo, condition);
repairResult = updateStatus(model, FailureStatuEnum.WAITING_SUBMIT, userInfo, condition);
} else if (condition == AuditResultEnum.AGREE.getCode()) {
auditResult = AuditResultEnum.AGREE.getCode();
Boolean repairResult = updateStatus(model, FailureStatuEnum.WAITING_MAINTAIN, userInfo, condition);
repairResult = updateStatus(model, FailureStatuEnum.WAITING_MAINTAIN, userInfo, condition);
}
if (ObjectUtils.isEmpty(auditResult)) {
if (!repairResult) {
throw new Exception("添加报修日志失败");
}
model.setAuditResult(auditResult);
......@@ -115,7 +101,7 @@ public class FailureAuditServiceImpl extends BaseService<FailureAuditDto, Failur
//当前角色部门id为维修部门的时候 修改状态
failureDetailsDto.setCurrentStatus(status.getCode());
failureDetailsDto.setSequenceNbr(model.getFaultId());
FailureDetailsDto failureDetailsDtos = failureDetailsService.updateWithModel(failureDetailsDto);
failureDetailsService.updateWithModel(failureDetailsDto);
String conditionText;
boolean result = failureDetailsService.checkExcuteTaskAuth(failureDetailsDto.getSequenceNbr(), userInfo);
......@@ -124,19 +110,18 @@ public class FailureAuditServiceImpl extends BaseService<FailureAuditDto, Failur
Long faultId = model.getFaultId();
Date processTime = model.getAuditTime();
String processDepartment = model.getAuditDepartment();
// String processAuditor = model.getAuditor();
Integer processAuditorId = Integer.parseInt(userInfo.getUserModel().getUserId());
String processAuditorCid = userInfo.getRole().getRoleName();
String processAuditorName = userInfo.getUserModel().getRealName();
Long auditDepartmentId = (userInfo.getDepartment().getSequenceNbr());
if (condition == AuditResultEnum.AGREE.getCode()) {
conditionText = AuditResultEnum.AGREE.getName();
repairlog(faultId, processAuditorId, auditDepartmentId, processTime, processDepartment, conditionText, processAuditorCid);
repairlog(faultId, processAuditorId, auditDepartmentId, processTime, processDepartment, conditionText, processAuditorName);
} else if (condition == AuditResultEnum.SEND_BACK.getCode()) {
conditionText = AuditResultEnum.SEND_BACK.getName();
repairlog(faultId, processAuditorId, auditDepartmentId, processTime, processDepartment, conditionText, processAuditorCid);
repairlog(faultId, processAuditorId, auditDepartmentId, processTime, processDepartment, conditionText, processAuditorName);
} else if (condition == AuditResultEnum.REFUSE.getCode()) {
conditionText = AuditResultEnum.REFUSE.getName();
repairlog(faultId, processAuditorId, auditDepartmentId, processTime, processDepartment, conditionText, processAuditorCid);
repairlog(faultId, processAuditorId, auditDepartmentId, processTime, processDepartment, conditionText, processAuditorName);
}
if (failureDetailsService.excuteTask(failureDetailsDto.getProcessId(), userInfo, condition + "")){
return true;
......@@ -152,7 +137,7 @@ public class FailureAuditServiceImpl extends BaseService<FailureAuditDto, Failur
*/
@Transactional
public Boolean repairlog(Long faultId, Integer processAuditorId, Long departmentId, Date processTime,
String processDepartment, String processResult, String processAuditorCid) {
String processDepartment, String processResult, String processAuditorName) {
FailureRepairlogDto failureRepairlogDto = new FailureRepairlogDto();
failureRepairlogDto.setFaultId(faultId);
failureRepairlogDto.setProcessAuditorId(processAuditorId);
......@@ -160,7 +145,7 @@ public class FailureAuditServiceImpl extends BaseService<FailureAuditDto, Failur
failureRepairlogDto.setProcessTime(processTime);
failureRepairlogDto.setProcessDepartment(processDepartment);
failureRepairlogDto.setProcessResult(processResult);
failureRepairlogDto.setProcessAuditorCid(processAuditorCid);
failureRepairlogDto.setProcessAuditorName(processAuditorName);
failureRepairlogService.createWithModel(failureRepairlogDto);
if (ObjectUtils.isNotEmpty(failureRepairlogDto)) {
return true;
......
......@@ -8,7 +8,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -18,7 +17,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -39,7 +37,6 @@ import com.yeejoin.amos.boot.module.common.api.service.IFailureAuditService;
import com.yeejoin.amos.boot.module.common.api.service.IFailureDetailsService;
import com.yeejoin.amos.boot.module.common.api.service.IFailureRepairlogService;
import com.yeejoin.amos.boot.module.common.biz.constats.Constants;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
/**
* 服务实现类
......@@ -49,507 +46,516 @@ import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
*/
@Service
public class FailureDetailsServiceImpl extends BaseService<FailureDetailsDto, FailureDetails, FailureDetailsMapper>
implements IFailureDetailsService {
@Autowired
SourceFileServiceImpl sourceFileServiceImpl;
@Autowired
WorkflowFeignService workflowFeignService;
@Value("${failure.work.flow.processDefinitionKey}")
private String processDefinitionKey;
@Autowired
FailureAuditServiceImpl failureAuditServiceImpl;
@Autowired
IFailureAuditService failureAuditService;
@Autowired
FailureRepairlogServiceImpl failureRepairlogService;
@Autowired
IFailureRepairlogService failureRepairlog;
public static String EMERGENCY_COMMAND = "应急指挥科";
public static String[] PROCESS_NAME = { "提交维修单", "审核", "维修", "验收", "维修中" };
private final Logger logger = LoggerFactory.getLogger(FailureDetailsServiceImpl.class);
public static Integer SELECY_ALL = 6;
public static Integer SELECY_STATUS = 7;
public static Integer SELECY_ISUBMIT = 8;
/**
* 分页查询
*/
public IPage<FailureDetails> queryAllPage(long size, long current) {
/*QueryWrapper<FailureDetails> wrapper = new QueryWrapper<>();
wrapper.orderByDesc("submission_time");
IPage<FailureDetails> page = new Page<>(current, size);
return baseMapper.selectPage(page, wrapper);*/
Page pages = new Page<>(current,size);
LambdaQueryWrapper<FailureDetails> lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.orderByDesc(FailureDetails::getSubmissionTime);
IPage iPage = page(pages, lambdaQueryWrapper);
Page<FailureDetails> page = new Page();
page.setCurrent(current);
page.setSize(size);
page.setRecords(iPage.getRecords());
return page;
}
public IPage<FailureDetails> queryForFailureDetailsPage(Page<FailureDetails> page, ReginParams userInfo,
Integer type) {
if (type.equals(SELECY_ALL)) {
return this.queryAllPage(page.getSize(), page.getCurrent());
}
if (type.equals(SELECY_ISUBMIT)) {
return queryForPage(page, userInfo.getUserModel().getUserId());
}
return this.queryForWaitManage(page, userInfo.getUserModel().getUserId());
}
/**
* 我发起分页查询
*/
public IPage<FailureDetails> queryForPage(Page<FailureDetails> page, String submissionPid) {
if (submissionPid == null) {
return null;
}
/* QueryWrapper<FailureDetails> wrapper = new QueryWrapper<>();
wrapper.eq("submission_pid", submissionPid);
wrapper.orderByDesc("submission_time");
IPage<FailureDetails> failureDetailsPage = new Page<>(page.getCurrent(), page.getSize());
return baseMapper.selectPage(failureDetailsPage, wrapper);*/
Page pages = new Page<>(page.getCurrent(),page.getSize());
LambdaQueryWrapper<FailureDetails> lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.eq(FailureDetails::getSubmissionPid,submissionPid);
lambdaQueryWrapper.orderByDesc(FailureDetails::getSubmissionTime);
return page(pages, lambdaQueryWrapper);
}
/**
* 待处理分页查询
*/
public IPage<FailureDetails> queryForWaitManage(Page<FailureDetails> page, String submissionPid) {
if (submissionPid == null) {
return null;
}
LambdaQueryWrapper<FailureDetails> lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.notIn(FailureDetails::getCurrentStatus,FailureStatuEnum.REFUSE.getCode(), FailureStatuEnum.FINISH.getCode()
).orderByDesc(FailureDetails::getSubmissionTime);
/*QueryWrapper<FailureDetails> wrapper = new QueryWrapper<>();
wrapper.eq("submission_pid", submissionPid);
wrapper.notIn("current_status", FailureStatuEnum.REFUSE.getCode(), FailureStatuEnum.FINISH.getCode(),
FailureStatuEnum.WAITING_AUDIT.getCode());
wrapper.orderByDesc("submission_time");*/
IPage<FailureDetails> failureDetailsPage = new Page<>(page.getCurrent(), page.getSize());
return baseMapper.selectPage(failureDetailsPage, lambdaQueryWrapper);
}
/**
* 列表查询 示例
*/
public List<FailureDetailsDto> queryForFailureDetailsList() {
return this.queryForList("", false);
}
/**
* 根据状态查询
*/
public FailureDetailsDto queryForOne(Long sequenceNbr) {
FailureDetailsDto failureDetailsDto = this.queryBySeq(sequenceNbr);
failureDetailsDto
.setCurrentStatusName(Constants.currentStatusNameMap.get(failureDetailsDto.getCurrentStatus()));
List<SourceFile> sourceFiles = sourceFileServiceImpl.findBySourceId(sequenceNbr);
failureDetailsDto.setAttachment(sourceFiles);
return failureDetailsDto;
}
/**
* 根据状态查询
*/
public List<FailureDetails> queryForFailureStatus(Long currentStatus) {
String status = new String();
List<FailureStatuEnum> list = new ArrayList<>();
list.add(FailureStatuEnum.WAITING_AUDIT);
list.add(FailureStatuEnum.WAITING_SUBMIT);
list.add(FailureStatuEnum.WAITING_MAINTAIN);
list.add(FailureStatuEnum.WAITING_ACCEPTANCE);
list.add(FailureStatuEnum.REFUSE);
list.add(FailureStatuEnum.FINISH);
for (int i = 0; i < list.size(); i++) {
if (currentStatus.equals(list.get(i).getCode())) {
status = list.get(i).getName();
}
;
}
/* FailureStatuEnum[] failureStatuEnums = new FailureStatuEnum []{}; */
QueryWrapper<FailureDetails> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("current_status", status).orderByDesc("submission_time");
return baseMapper.selectList(queryWrapper);
}
/**
* 查询任务状态数量
*/
public List<FailureStatusCountDto> queryStatusCount(Integer type) {
List<FailureDetailsDto> failureDetailsDtos = new ArrayList<>();
if (type.equals(SELECY_ALL)) {
failureDetailsDtos = this.queryForFailureDetailsList();
}
if (type.equals(SELECY_ISUBMIT)) {
failureDetailsDtos = this.queryForFailureDetailsList();
}
int auditStatus = 0;
int submitStatus = 0;
int maintainStatus = 0;
int acceptanceStatus = 0;
int refuseStatus = 0;
int finishStatus = 0;
int inMaintenance = 0;
List<FailureStatusCountDto> list = new ArrayList<>();
// String[] statusName = new String[]{"待审核", "待提交", "待维修", "待验收", "已拒绝", "已完结"};
List<String> statusName = new ArrayList<>();
Collections.addAll(statusName, FailureStatuEnum.WAITING_AUDIT.getName(),
FailureStatuEnum.WAITING_SUBMIT.getName(), FailureStatuEnum.WAITING_MAINTAIN.getName(),
FailureStatuEnum.WAITING_ACCEPTANCE.getName(), FailureStatuEnum.REFUSE.getName(),
FailureStatuEnum.FINISH.getName(), FailureStatuEnum.IN_MAINTENANCE.getName());
for (int i = 0; i < failureDetailsDtos.size(); i++) {
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.WAITING_AUDIT.getCode())) {
auditStatus++;
}
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.WAITING_SUBMIT.getCode())) {
submitStatus++;
}
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.WAITING_MAINTAIN.getCode())) {
maintainStatus++;
}
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.WAITING_ACCEPTANCE.getCode())) {
acceptanceStatus++;
}
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.REFUSE.getCode())) {
refuseStatus++;
}
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.FINISH.getCode())) {
finishStatus++;
}
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.IN_MAINTENANCE.getCode())) {
inMaintenance++;
}
}
int[] statusCount = { auditStatus, submitStatus, maintainStatus, acceptanceStatus, refuseStatus, finishStatus,
inMaintenance };
for (int i = 0; i < statusName.size(); i++) {
FailureStatusCountDto statusCountDto = new FailureStatusCountDto();
statusCountDto.setStatus(statusName.get(i));
statusCountDto.setCount(statusCount[i]);
list.add(statusCountDto);
}
return list;
}
/**
* 发起故障保修单
*
* @throws Exception
*/
@Transactional
public Object savemodel(FailureDetailsDto failureDetailsDto, ReginParams userInfo) throws Exception {
String businessKey = buildOrderNo();
JSONObject body = new JSONObject();
body.put("businessKey", businessKey);
body.put("processDefinitionKey", processDefinitionKey);
JSONObject jsonObject = workflowFeignService.startByVariable(body);
if (jsonObject == null) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// return CommonResponseUtil.failure("启动流程失败");
}
JSONObject instance = jsonObject.getJSONObject("data");
if (instance == null) {
// return CommonResponseUtil.failure("无提交隐患权限");
}
failureDetailsDto.setCurrentStatus(FailureStatuEnum.WAITING_AUDIT.getCode());
// 拿到流程processId
failureDetailsDto.setProcessId(instance.getString("id"));
FailureDetailsDto model = null;
// 发起主表流程 并添加至报修日志
failureDetailsDto.setSubmissionTime(new Date());
failureDetailsDto.setFailureCode(buildOrderNo());
failureDetailsDto.setBizCode(userInfo.getDepartment().getSequenceNbr());
failureDetailsDto.setIsDelete(false);
model = this.createWithModel(failureDetailsDto);
if (ObjectUtils.isNotEmpty(failureDetailsDto.getAttachment())) {
sourceFileServiceImpl.saveSourceFile(failureDetailsDto.getSequenceNbr(),
failureDetailsDto.getAttachment());
}
// 添加至报修日志
Long faultId = model.getSequenceNbr();
Integer processAuditorId = model.getSubmissionPid();
String processResult = "提交报修单";
String processDepartment = userInfo.getDepartment().getDepartmentName();
Long departmentId = userInfo.getDepartment().getSequenceNbr();
Date processTime = model.getSubmissionTime();
String processAuditorCid = userInfo.getRole().getRoleName();
repairlog(faultId,processAuditorId,departmentId, processTime, processDepartment, processResult,processAuditorCid);
if (excuteTask(instance.getString("id"), userInfo, null)){
return true;
}else {
throw new Exception("执行流程失败");
}
}
/**
* 添加报修日志
*/
@Transactional
public Boolean repairlog(Long faultId, Integer processAuditorId, Long departmentId,
Date processTime, String processDepartment, String processResult, String processAuditorCid) {
FailureRepairlogDto failureRepairlogDto = new FailureRepairlogDto();
failureRepairlogDto.setFaultId(faultId);
failureRepairlogDto.setProcessAuditorId(processAuditorId);
failureRepairlogDto.setProcessDepartmentId(departmentId);
failureRepairlogDto.setProcessTime(processTime);
failureRepairlogDto.setProcessDepartment(processDepartment);
failureRepairlogDto.setProcessResult(processResult);
failureRepairlogDto.setProcessAuditorCid(processAuditorCid);
FailureRepairlogDto repairlogModel = failureRepairlogService.createWithModel(failureRepairlogDto);
if (ObjectUtils.isNotEmpty(repairlogModel)) {
return true;
}
return false;
}
@Transactional
public boolean excuteTask(Long sequenceNbr, ReginParams userInfo, String condition) throws Exception {
HashMap<String, Object> conditionMap = new HashMap<String, Object>();
conditionMap.put("condition", Integer.parseInt(condition));
Map<String, Object> map = checkExcuteTaskAuthMap(sequenceNbr, userInfo);
if (Boolean.parseBoolean(map.get("checkFlag").toString())) {
if (map.get("name").toString().startsWith(PROCESS_NAME[4])) {
workflowFeignService.completeNoExecuteFromInstanceAdd(map.get("taskId").toString(), conditionMap);
} else {
workflowFeignService.pickupAndCompleteTask(map.get("taskId").toString(), conditionMap);
}
// 判断下一个节点是不是维修中,如果是则添加当前任务的执行人
String nextTaskId = checkIsInMaintenance(sequenceNbr);
if (nextTaskId != null) {
workflowFeignService.pickuptask(nextTaskId);
}
}
return true;
}
/**
* 已经存在的操作人的任务执行,用于维修中节点完成任务
*
* @param sequenceNbr
* @param userInfo
* @return
*/
public boolean excuteTaskOnlyOperation(Long sequenceNbr, ReginParams userInfo) {
Map<String, Object> map = checkExcuteTaskAuthMap(sequenceNbr, userInfo);
try {
if (Boolean.parseBoolean(map.get("checkFlag").toString())
&& map.get("checkFlag").toString().startsWith(PROCESS_NAME[4])) {
workflowFeignService.completeByVariable(map.get("taskId").toString(), null);
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
public boolean excuteTask(String procressId, ReginParams userInfo, String condition) throws Exception {
HashMap<String, Object> conditionMap = new HashMap<String, Object>();
conditionMap.put("condition", condition);
JSONObject teskObject = workflowFeignService.getTaskList(procressId);
if (ObjectUtils.isNotEmpty(teskObject)) {
JSONArray taskDetailArray = teskObject.getJSONArray("data");
for (Object obj : taskDetailArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(obj));
workflowFeignService.pickupAndCompleteTask(detail.getString("id"), conditionMap);
}
}
return true;
}
public Object getNextTaskGroupName(String procressId) {
JSONObject teskObject = workflowFeignService.getTaskList(procressId);
JSONArray taskDetailArray = teskObject.getJSONArray("data");
String currentRoleName = "";
for (Object obj : taskDetailArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(obj));
JSONObject taskGroupNameObject = workflowFeignService.getTaskGroupName(detail.getString("id"));
for (Object object : taskGroupNameObject.getJSONArray("data")) {
JSONObject taskGroupNameDetail = JSONObject.parseObject(JSONObject.toJSONString(object));
currentRoleName = currentRoleName + taskGroupNameDetail.getString("groupId") + ",";
}
}
return currentRoleName;
}
public boolean checkExcuteTaskAuth(Long sequenceNbr, ReginParams userInfo) {
Map<String, Object> map = this.checkExcuteTaskAuthMap(sequenceNbr, userInfo);
return Boolean.parseBoolean(map.get("checkFlag").toString());
}
public String checkIsInMaintenance(Long sequenceNbr) {
FailureDetails details = this.baseMapper.selectById(sequenceNbr);
String procressId = details.getProcessId();
JSONObject teskObject = workflowFeignService.getTaskList(procressId);
if (ObjectUtils.isNotEmpty(teskObject)) {
JSONArray taskDetailArray = teskObject.getJSONArray("data");
for (Object obj : taskDetailArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(obj));
String name = detail.getString("name");
if (name.startsWith(PROCESS_NAME[4])) {
String id = detail.getString("id");
return id;
}
}
}
return null;
}
public Map<String, Object> checkExcuteTaskAuthMap(Long sequenceNbr, ReginParams userInfo) {
// 获取当前登录用户的角色
String currentLoginUserRole = userInfo.getRole().getRoleName();
Map<String, Object> map = new HashMap<String, Object>();
map.put("checkFlag", false);
FailureDetailsDto failureDetailsDto = this.queryBySeq(sequenceNbr);
// 获取送达部门的ID
Long failureEquipmentId = failureDetailsDto.getSubmissionBranchId();
FailureDetails details = this.baseMapper.selectById(sequenceNbr);
String procressId = details.getProcessId();
Long seq = userInfo.getDepartment().getSequenceNbr();
JSONObject teskObject = workflowFeignService.getTaskList(procressId);
if (ObjectUtils.isNotEmpty(teskObject)) {
JSONArray taskDetailArray = teskObject.getJSONArray("data");
for (Object obj : taskDetailArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(obj));
String name = detail.getString("name");
JSONObject taskGroupNameObject = workflowFeignService.getTaskGroupName(detail.getString("id"));
// 获取流程中原本设置的当前节点的执行权限
JSONArray taskGroupNameDetail = taskGroupNameObject.getJSONArray("data");
// 如果拿不到当前任务的执行角色,则返回校验失败
if (ObjectUtils.isEmpty(taskGroupNameDetail)) {
continue;
}
String defaultExecutionRoleProcess = taskGroupNameDetail.getJSONObject(0).getString("groupId");
// 判断当前登录人的角色是不是与流程中设置的当前任务节点权限一致,一致则执行,不一致则退出
if (!defaultExecutionRoleProcess.equals(currentLoginUserRole)) {
continue;
}
// 当流程节点为应急指挥科时,需要判断当前用户所在的部门id和前面处理的用户部门id是否一致
if (name.contains(EMERGENCY_COMMAND)) {
FailureRepairlog failureRepairlog = failureRepairlogService.findByFaultId(sequenceNbr);
Long auditDepartmentId = failureRepairlog.getProcessDepartmentId();
if (auditDepartmentId.intValue() == seq.intValue()) {
map.put("taskId", detail.getString("id"));
map.put("checkFlag", true);
map.put("name", detail.getString("name"));
break;
}
} else {
// 判断当前节点任务属于送达部门节点时需要判断当前登录人所在的部门id是否与表单发起时设置的送达部门一致
if (failureEquipmentId.intValue() == seq.intValue()) {
map.put("taskId", detail.getString("id"));
map.put("checkFlag", true);
map.put("name", detail.getString("name"));
break;
}
}
}
}
return map;
}
/**
* 獲取待處理的任務數量
*
* @param userInfo
* @return
*/
public int getPendingCount(ReginParams userInfo) {
int countNum = 0;
// 获取当前登录人的部门id
Long seq = userInfo.getDepartment().getSequenceNbr();
// 获取同角色信息的我的待办任务
JSONObject taskListJson = workflowFeignService.getTasksNoAuth(processDefinitionKey,
userInfo.getUserModel().getUserId());
JSONArray taskList = JSONArray.parseArray(JSONObject.toJSONString(taskListJson.getString("data")));
for (Object i : taskList) {
JSONObject task = JSONObject.parseObject(JSONObject.toJSONString(i));
String procressId = task.getString("processInstanceId");
// 通过流程ID查找当前的故障报修表ID 的信息
LambdaQueryWrapper<FailureDetails> wrapper = new LambdaQueryWrapper<FailureDetails>();
wrapper.eq(FailureDetails::getProcessId, procressId);
FailureDetails failureDetails = this.baseMapper.selectOne(wrapper);
// 通过故障报修单查找创建人的部门ID
FailureRepairlog failureRepairlog = failureRepairlogService.findByFaultId(failureDetails.getSequenceNbr());
// 再去判断当前的任务节点信息是不是维修部门,是的话将于第一次填报保单的操作人部门id进行匹配,符合将视作为一条合法的待办任务
if (task.getString("name").contains(EMERGENCY_COMMAND)) {
Long auditDepartmentId = failureRepairlog.getProcessDepartmentId();
if (auditDepartmentId.intValue() == seq.intValue()) {
countNum++;
break;
}
} else {
// 判断当前节点任务属于送达部门节点时需要判断当前登录人所在的部门id是否与表单发起时设置的送达部门一致
if (failureDetails.getFailureEquipmentId().intValue() == seq.intValue()) {
countNum++;
break;
}
}
}
return countNum;
}
public Object getCurrentProcessHistoryTask(Long id) {
FailureDetailsDto failureDetailsDto = this.queryBySeq(id);
String processId = failureDetailsDto.getProcessId();
JSONObject object = workflowFeignService.queryHistoryTaskListByProcessId(processId);
JSONArray datArray = null;
if (ObjectUtils.isNotEmpty(object)) {
datArray = object.getJSONArray("data");
}
List<Object> list = new ArrayList<Object>();
if (datArray != null) {
for (Object i : datArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(i));
if (detail.containsKey("operator") && !detail.getString("name").contains("维修中")) {
// 从流程记录表中拿到处理人的名称
FailureRepairlog failureRepairlog = failureRepairlogService
.findByprocessAuditor(detail.getString("operator"));
if (failureRepairlog != null) {
detail.replace("operator", failureRepairlog.getProcessAuditorName() == null ? ""
: failureRepairlog.getProcessAuditorName());
}
}
list.add(detail);
}
implements IFailureDetailsService {
@Autowired
SourceFileServiceImpl sourceFileServiceImpl;
@Autowired
WorkflowFeignService workflowFeignService;
@Value("${failure.work.flow.processDefinitionKey}")
private String processDefinitionKey;
@Autowired
FailureAuditServiceImpl failureAuditServiceImpl;
@Autowired
IFailureAuditService failureAuditService;
@Autowired
FailureRepairlogServiceImpl failureRepairlogService;
@Autowired
IFailureRepairlogService failureRepairlog;
public static String EMERGENCY_COMMAND = "应急指挥科";
public static String[] PROCESS_NAME = {"提交报修单", "审核", "维修", "验收", "维修中"};
public static Integer SELECY_ALL = 6;
public static Integer SELECY_STATUS = 7;
public static Integer SELECY_ISUBMIT = 8;
public String[] roleName = {"",""} ;
/**
* 分页查询
*/
public IPage<FailureDetails> queryAllPage(long size, long current) {
Page pages = new Page<>(current, size);
LambdaQueryWrapper<FailureDetails> lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.orderByDesc(FailureDetails::getSubmissionTime);
return page(pages, lambdaQueryWrapper);
}
public IPage<FailureDetails> queryForFailureDetailsPage(Page<FailureDetails> page, ReginParams userInfo,
Integer type) {
if (type.equals(SELECY_ALL)) {
return this.baseMapper.selectAllPage(page);
}
if (type.equals(SELECY_ISUBMIT)) {
return baseMapper.selectISubPage(page,userInfo.getUserModel().getUserId());
}
return this.queryForWaitManage(page, userInfo);
}
/**
* 我发起分页查询
*/
public IPage<FailureDetails> queryForPage(Page<FailureDetails> page, String submissionPid) {
if (submissionPid == null) {
return null;
}
Page pages = new Page<>(page.getCurrent(), page.getSize());
LambdaQueryWrapper<FailureDetails> lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.eq(FailureDetails::getSubmissionPid, submissionPid);
lambdaQueryWrapper.orderByDesc(FailureDetails::getSubmissionTime);
return page(pages, lambdaQueryWrapper);
}
/**
* 待处理分页查询
*/
public IPage<FailureDetails> queryForWaitManage(Page<FailureDetails> page, ReginParams userInfo) {
/* if (userInfo.getRole().getRoleName().equals())*/
/* if (submissionPid == null) {
return null;
}
LambdaQueryWrapper<FailureDetails> lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.notIn(FailureDetails::getCurrentStatus, FailureStatuEnum.REFUSE.getCode(), FailureStatuEnum.FINISH.getCode()
).orderByDesc(FailureDetails::getSubmissionTime);
IPage<FailureDetails> failureDetailsPage = new Page<>(page.getCurrent(), page.getSize());
return baseMapper.selectPage(failureDetailsPage, lambdaQueryWrapper);*/
return baseMapper.selectInProcessing(page);
}
/**
* 列表查询 示例
*/
public List<FailureDetailsDto> queryForFailureDetailsList() {
return this.queryForList("", false);
}
/**
* 根据状态查询
*/
public FailureDetailsDto queryForOne(Long sequenceNbr) {
FailureDetailsDto failureDetailsDto = this.queryBySeq(sequenceNbr);
failureDetailsDto
.setCurrentStatusName(Constants.currentStatusNameMap.get(failureDetailsDto.getCurrentStatus()));
List<SourceFile> sourceFiles = sourceFileServiceImpl.findBySourceId(sequenceNbr);
failureDetailsDto.setAttachment(sourceFiles);
return failureDetailsDto;
}
/**
* 根据状态查询
*/
public List<FailureDetails> queryForFailureStatus(Long currentStatus) {
String status = new String();
List<FailureStatuEnum> list = new ArrayList<>();
list.add(FailureStatuEnum.WAITING_AUDIT);
list.add(FailureStatuEnum.WAITING_SUBMIT);
list.add(FailureStatuEnum.WAITING_MAINTAIN);
list.add(FailureStatuEnum.WAITING_ACCEPTANCE);
list.add(FailureStatuEnum.REFUSE);
list.add(FailureStatuEnum.FINISH);
for (int i = 0; i < list.size(); i++) {
if (currentStatus.equals(list.get(i).getCode())) {
status = list.get(i).getName();
}
}
QueryWrapper<FailureDetails> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("current_status", status).orderByDesc("submission_time");
return baseMapper.selectList(queryWrapper);
}
/**
* 查询任务状态数量
*/
public List<FailureStatusCountDto> queryStatusCount(Integer type) {
List<FailureDetailsDto> failureDetailsDtos = new ArrayList<>();
if (type.equals(SELECY_ALL)) {
failureDetailsDtos = this.queryForFailureDetailsList();
}
if (type.equals(SELECY_ISUBMIT)) {
failureDetailsDtos = this.queryForFailureDetailsList();
}
int auditStatus = 0;
int submitStatus = 0;
int maintainStatus = 0;
int acceptanceStatus = 0;
int refuseStatus = 0;
int finishStatus = 0;
int inMaintenance = 0;
List<FailureStatusCountDto> list = new ArrayList<>();
List<String> statusName = new ArrayList<>();
Collections.addAll(statusName, FailureStatuEnum.WAITING_AUDIT.getName(),
FailureStatuEnum.WAITING_SUBMIT.getName(), FailureStatuEnum.WAITING_MAINTAIN.getName(),
FailureStatuEnum.WAITING_ACCEPTANCE.getName(), FailureStatuEnum.REFUSE.getName(),
FailureStatuEnum.FINISH.getName(), FailureStatuEnum.IN_MAINTENANCE.getName());
for (int i = 0; i < failureDetailsDtos.size(); i++) {
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.WAITING_AUDIT.getCode())) {
auditStatus++;
}
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.WAITING_SUBMIT.getCode())) {
submitStatus++;
}
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.WAITING_MAINTAIN.getCode())) {
maintainStatus++;
}
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.WAITING_ACCEPTANCE.getCode())) {
acceptanceStatus++;
}
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.REFUSE.getCode())) {
refuseStatus++;
}
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.FINISH.getCode())) {
finishStatus++;
}
if (failureDetailsDtos.get(i).getCurrentStatus().equals(FailureStatuEnum.IN_MAINTENANCE.getCode())) {
inMaintenance++;
}
}
int[] statusCount = {auditStatus, submitStatus, maintainStatus, acceptanceStatus, refuseStatus, finishStatus,
inMaintenance};
for (int i = 0; i < statusName.size(); i++) {
FailureStatusCountDto statusCountDto = new FailureStatusCountDto();
statusCountDto.setStatus(statusName.get(i));
statusCountDto.setCount(statusCount[i]);
list.add(statusCountDto);
}
return list;
}
/**
* 发起故障保修单
*
* @throws Exception
*/
@Transactional
public Object savemodel(FailureDetailsDto failureDetailsDto, ReginParams userInfo) throws Exception {
if (null != failureDetailsDto.getSequenceNbr()){
return updatetoModel(failureDetailsDto, userInfo);
}
String businessKey = buildOrderNo();
JSONObject body = new JSONObject();
body.put("businessKey", businessKey);
body.put("processDefinitionKey", processDefinitionKey);
JSONObject jsonObject = workflowFeignService.startByVariable(body);
if (jsonObject == null) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// return CommonResponseUtil.failure("启动流程失败");
}
JSONObject instance = jsonObject.getJSONObject("data");
if (instance == null) {
// return CommonResponseUtil.failure("无提交隐患权限");
}
failureDetailsDto.setCurrentStatus(FailureStatuEnum.WAITING_AUDIT.getCode());
// 拿到流程processId
failureDetailsDto.setProcessId(instance.getString("id"));
FailureDetailsDto model = null;
// 发起主表流程 并添加至报修日志
failureDetailsDto.setSubmissionTime(new Date());
failureDetailsDto.setFailureCode(buildOrderNo());
failureDetailsDto.setSubmissionName(userInfo.getUserModel().getRealName());
failureDetailsDto.setBizCode(userInfo.getDepartment().getSequenceNbr());
model = this.createWithModel(failureDetailsDto);
if (ObjectUtils.isNotEmpty(failureDetailsDto.getAttachment())) {
sourceFileServiceImpl.saveSourceFile(failureDetailsDto.getSequenceNbr(),
failureDetailsDto.getAttachment());
}
// 添加至报修日志
Long faultId = model.getSequenceNbr();
Integer processAuditorId = model.getSubmissionPid();
String processResult = "提交报修单";
String processDepartment = userInfo.getDepartment().getDepartmentName();
Long departmentId = userInfo.getDepartment().getSequenceNbr();
Date processTime = model.getSubmissionTime();
String processAuditorName = failureDetailsDto.getSubmissionName();
repairlog(faultId, processAuditorId, departmentId, processTime, processDepartment, processResult, processAuditorName);
if (excuteTask(instance.getString("id"), userInfo, null)) {
return true;
} else {
throw new Exception("执行流程失败");
}
}
/**
* 更新故障保修单
*/
public Object updatetoModel(FailureDetailsDto failureDetailsDto, ReginParams userInfo) throws Exception {
// 发起主表流程 并添加至报修日志
failureDetailsDto.setSubmissionTime(new Date());
FailureDetailsDto model = this.updateWithModel(failureDetailsDto);
if (ObjectUtils.isNotEmpty(failureDetailsDto.getAttachment())) {
sourceFileServiceImpl.saveSourceFile(failureDetailsDto.getSequenceNbr(),
failureDetailsDto.getAttachment());
}
// 添加至报修日志
Long faultId = model.getSequenceNbr();
Integer processAuditorId = model.getSubmissionPid();
String processResult = "重新提交报修单";
String processDepartment = userInfo.getDepartment().getDepartmentName();
Long departmentId = userInfo.getDepartment().getSequenceNbr();
Date processTime = model.getSubmissionTime();
String processAuditorName = failureDetailsDto.getSubmissionName();
repairlog(faultId, processAuditorId, departmentId, processTime, processDepartment, processResult, processAuditorName);
if (excuteTask(failureDetailsDto.getProcessId(), userInfo, null)) {
return true;
} else {
throw new Exception("执行流程失败");
}
}
/**
* 添加报修日志
*/
@Transactional
public Boolean repairlog(Long faultId, Integer processAuditorId, Long departmentId,
Date processTime, String processDepartment, String processResult, String processAuditorName) {
FailureRepairlogDto failureRepairlogDto = new FailureRepairlogDto();
failureRepairlogDto.setFaultId(faultId);
failureRepairlogDto.setProcessAuditorId(processAuditorId);
failureRepairlogDto.setProcessDepartmentId(departmentId);
failureRepairlogDto.setProcessTime(processTime);
failureRepairlogDto.setProcessDepartment(processDepartment);
failureRepairlogDto.setProcessResult(processResult);
failureRepairlogDto.setProcessAuditorName(processAuditorName);
FailureRepairlogDto repairlogModel = failureRepairlogService.createWithModel(failureRepairlogDto);
if (ObjectUtils.isNotEmpty(repairlogModel)) {
return true;
}
return false;
}
@Transactional
public boolean excuteTask(Long sequenceNbr, ReginParams userInfo, String condition) throws Exception {
HashMap<String, Object> conditionMap = new HashMap<String, Object>();
conditionMap.put("condition", Integer.parseInt(condition));
Map<String, Object> map = checkExcuteTaskAuthMap(sequenceNbr, userInfo);
if (Boolean.parseBoolean(map.get("checkFlag").toString())) {
if (map.get("name").toString().startsWith(PROCESS_NAME[4])) {
workflowFeignService.completeNoExecuteFromInstanceAdd(map.get("taskId").toString(), conditionMap);
} else {
workflowFeignService.pickupAndCompleteTask(map.get("taskId").toString(), conditionMap);
}
// 判断下一个节点是不是维修中,如果是则添加当前任务的执行人
String nextTaskId = checkIsInMaintenance(sequenceNbr);
if (nextTaskId != null) {
workflowFeignService.pickuptask(nextTaskId);
}
}
return true;
}
/**
* 已经存在的操作人的任务执行,用于维修中节点完成任务
*
* @param sequenceNbr
* @param userInfo
* @return
*/
public boolean excuteTaskOnlyOperation(Long sequenceNbr, ReginParams userInfo) {
Map<String, Object> map = checkExcuteTaskAuthMap(sequenceNbr, userInfo);
try {
if (Boolean.parseBoolean(map.get("checkFlag").toString())
&& map.get("checkFlag").toString().startsWith(PROCESS_NAME[4])) {
workflowFeignService.completeByVariable(map.get("taskId").toString(), null);
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
public boolean excuteTask(String procressId, ReginParams userInfo, String condition) throws Exception {
HashMap<String, Object> conditionMap = new HashMap<String, Object>();
conditionMap.put("condition", condition);
JSONObject teskObject = workflowFeignService.getTaskList(procressId);
if (ObjectUtils.isNotEmpty(teskObject)) {
JSONArray taskDetailArray = teskObject.getJSONArray("data");
for (Object obj : taskDetailArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(obj));
workflowFeignService.pickupAndCompleteTask(detail.getString("id"), conditionMap);
}
}
return true;
}
public Object getNextTaskGroupName(String procressId) {
JSONObject teskObject = workflowFeignService.getTaskList(procressId);
JSONArray taskDetailArray = teskObject.getJSONArray("data");
String currentRoleName = "";
for (Object obj : taskDetailArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(obj));
JSONObject taskGroupNameObject = workflowFeignService.getTaskGroupName(detail.getString("id"));
for (Object object : taskGroupNameObject.getJSONArray("data")) {
JSONObject taskGroupNameDetail = JSONObject.parseObject(JSONObject.toJSONString(object));
currentRoleName = currentRoleName + taskGroupNameDetail.getString("groupId") + ",";
}
}
return currentRoleName;
}
public boolean checkExcuteTaskAuth(Long sequenceNbr, ReginParams userInfo) {
Map<String, Object> map = this.checkExcuteTaskAuthMap(sequenceNbr, userInfo);
return Boolean.parseBoolean(map.get("checkFlag").toString());
}
public String checkIsInMaintenance(Long sequenceNbr) {
FailureDetails details = this.baseMapper.selectById(sequenceNbr);
String procressId = details.getProcessId();
JSONObject teskObject = workflowFeignService.getTaskList(procressId);
if (ObjectUtils.isNotEmpty(teskObject)) {
JSONArray taskDetailArray = teskObject.getJSONArray("data");
for (Object obj : taskDetailArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(obj));
String name = detail.getString("name");
if (name.startsWith(PROCESS_NAME[4])) {
String id = detail.getString("id");
return id;
}
}
}
return null;
}
public Map<String, Object> checkExcuteTaskAuthMap(Long sequenceNbr, ReginParams userInfo) {
// 获取当前登录用户的角色
String currentLoginUserRole = userInfo.getRole().getRoleName();
Map<String, Object> map = new HashMap<String, Object>();
map.put("checkFlag", false);
FailureDetailsDto failureDetailsDto = this.queryBySeq(sequenceNbr);
// 获取送达部门的ID
Long failureEquipmentId = failureDetailsDto.getSubmissionBranchId();
FailureDetails details = this.baseMapper.selectById(sequenceNbr);
String procressId = details.getProcessId();
Long seq = userInfo.getDepartment().getSequenceNbr();
JSONObject teskObject = workflowFeignService.getTaskList(procressId);
if (ObjectUtils.isNotEmpty(teskObject)) {
JSONArray taskDetailArray = teskObject.getJSONArray("data");
for (Object obj : taskDetailArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(obj));
String name = detail.getString("name");
JSONObject taskGroupNameObject = workflowFeignService.getTaskGroupName(detail.getString("id"));
// 获取流程中原本设置的当前节点的执行权限
JSONArray taskGroupNameDetail = taskGroupNameObject.getJSONArray("data");
// 如果拿不到当前任务的执行角色,则返回校验失败
if (ObjectUtils.isEmpty(taskGroupNameDetail)) {
continue;
}
String defaultExecutionRoleProcess = taskGroupNameDetail.getJSONObject(0).getString("groupId");
// 判断当前登录人的角色是不是与流程中设置的当前任务节点权限一致,一致则执行,不一致则退出
if (!defaultExecutionRoleProcess.equals(currentLoginUserRole)) {
continue;
}
// 当流程节点为应急指挥科时,需要判断当前用户所在的部门id和前面处理的用户部门id是否一致
if (name.contains(EMERGENCY_COMMAND)) {
FailureRepairlog failureRepairlog = failureRepairlogService.findByFaultId(sequenceNbr);
Long auditDepartmentId = failureRepairlog.getProcessDepartmentId();
if (auditDepartmentId.intValue() == seq.intValue()) {
map.put("taskId", detail.getString("id"));
map.put("checkFlag", true);
map.put("name", detail.getString("name"));
break;
}
} else {
// 判断当前节点任务属于送达部门节点时需要判断当前登录人所在的部门id是否与表单发起时设置的送达部门一致
if (failureEquipmentId.intValue() == seq.intValue()) {
map.put("taskId", detail.getString("id"));
map.put("checkFlag", true);
map.put("name", detail.getString("name"));
break;
}
}
}
}
return map;
}
/**
* 獲取待處理的任務數量
*
* @param userInfo
* @return
*/
public int getPendingCount(ReginParams userInfo) {
int countNum = 0;
// 获取当前登录人的部门id
Long seq = userInfo.getDepartment().getSequenceNbr();
// 获取同角色信息的我的待办任务
JSONObject taskListJson = workflowFeignService.getTasksNoAuth(processDefinitionKey,
userInfo.getUserModel().getUserId());
JSONArray taskList = JSONArray.parseArray(JSONObject.toJSONString(taskListJson.getString("data")));
for (Object i : taskList) {
JSONObject task = JSONObject.parseObject(JSONObject.toJSONString(i));
String procressId = task.getString("processInstanceId");
// 通过流程ID查找当前的故障报修表ID 的信息
LambdaQueryWrapper<FailureDetails> wrapper = new LambdaQueryWrapper<FailureDetails>();
wrapper.eq(FailureDetails::getProcessId, procressId);
FailureDetails failureDetails = this.baseMapper.selectOne(wrapper);
// 通过故障报修单查找创建人的部门ID
FailureRepairlog failureRepairlog = failureRepairlogService.findByFaultId(failureDetails.getSequenceNbr());
// 再去判断当前的任务节点信息是不是维修部门,是的话将于第一次填报保单的操作人部门id进行匹配,符合将视作为一条合法的待办任务
if (task.getString("name").contains(EMERGENCY_COMMAND)) {
Long auditDepartmentId = failureRepairlog.getProcessDepartmentId();
if (auditDepartmentId.intValue() == seq.intValue()) {
countNum++;
break;
}
} else {
// 判断当前节点任务属于送达部门节点时需要判断当前登录人所在的部门id是否与表单发起时设置的送达部门一致
if (failureDetails.getFailureEquipmentId().intValue() == seq.intValue()) {
countNum++;
break;
}
}
}
return countNum;
}
public Object getCurrentProcessHistoryTask(Long id) {
FailureDetailsDto failureDetailsDto = this.queryBySeq(id);
String processId = failureDetailsDto.getProcessId();
JSONObject object = workflowFeignService.queryHistoryTaskListByProcessId(processId);
JSONArray datArray = null;
if (ObjectUtils.isNotEmpty(object)) {
datArray = object.getJSONArray("data");
}
List<Object> list = new ArrayList<Object>();
if (datArray != null) {
for (Object i : datArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(i));
if (detail.containsKey("operator") && !detail.getString("name").contains("维修中")) {
// 从流程记录表中拿到处理人的名称
FailureRepairlog failureRepairlog = failureRepairlogService
.findByprocessAuditor(detail.getString("operator"));
if (failureRepairlog != null) {
detail.replace("operator", failureRepairlog.getProcessAuditorName() == null ? ""
: failureRepairlog.getProcessAuditorName());
}
}
list.add(detail);
}
// datArray.stream().forEach(i -> {
// JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(i));
// if (detail.containsKey("operator") && !detail.getString("name").equals("维修中")) {
......@@ -560,99 +566,99 @@ public class FailureDetailsServiceImpl extends BaseService<FailureDetailsDto, Fa
// list.add(detail);
// }
// });
}
return list;
}
public static String buildOrderNo() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String newDate = sdf.format(new Date());
String result = "";
Random random = new Random();
for (int i = 0; i < 3; i++) {
result += random.nextInt(10);
}
return newDate + result;
}
/**
* 获取当前登录人能够操作的任务执行Button类型
*
* @param sequenceNbr
* @param userInfo
* @return
*/
public Integer getExcuteTaskAuthButton(Long sequenceNbr, ReginParams userInfo) {
int flag = 0;
Map<String, Object> map = this.checkExcuteTaskAuthMap(sequenceNbr, userInfo);
if (Boolean.parseBoolean(map.get("checkFlag").toString())) {
String buttonValueString = map.get("name").toString();
if (buttonValueString.endsWith(PROCESS_NAME[0])) { // 提交维修单
flag = 1;
} else if (buttonValueString.endsWith(PROCESS_NAME[1])) { // 审核
flag = 2;
if (buttonValueString.startsWith(PROCESS_NAME[2])) {
flag = 3;
}
} else if (buttonValueString.endsWith(PROCESS_NAME[2])) {// 维修
flag = 4;
} else if (buttonValueString.endsWith(PROCESS_NAME[3])) {// 验收
flag = 5;
}
}
FailureDetails details = this.baseMapper.selectById(sequenceNbr);
JSONObject object = workflowFeignService.queryHistoryTasksByProcessInstanceId(details.getProcessId());
JSONArray array = object.getJSONArray("rows");
for (Object historyDetail : array) {
JSONObject historyDetailJson = JSONObject.parseObject(JSONObject.toJSONString(historyDetail));
if ("rejected".equals(historyDetailJson.getString("activityId"))) {
flag = 6;
}
}
return flag;
}
public Object getCurrentTask(Long sequenceNbr) {
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
JSONArray taskDetailArray = null;
FailureDetails details = this.baseMapper.selectById(sequenceNbr);
String procressId = details.getProcessId();
JSONObject teskObject = workflowFeignService.getTaskList(procressId);
if (ObjectUtils.isNotEmpty(teskObject)) {
taskDetailArray = teskObject.getJSONArray("data");
for (Object obj : taskDetailArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(obj));
String name = detail.getString("name");
Map<String, String> map = new HashMap<String, String>();
map.put("name", name);
if (name.startsWith(PROCESS_NAME[4])) {
String id = detail.getString("id");
JSONObject assignObject = workflowFeignService.getTaskAssign(id);
JSONObject resultObject = assignObject.getJSONObject("data");
if (resultObject != null) {
map.put("name", "维修部门维修人员 维修");
if (detail.containsKey("informerList")) {
JSONArray informerList = detail.getJSONArray("informerList");
if (informerList != null && informerList.size() > 0) {
for (Object informerDetail : informerList) {
JSONObject informerDetailJson = JSONObject
.parseObject(JSONObject.toJSONString(informerDetail));
if (informerDetailJson.getString("userName")
.equals(resultObject.getString("assignee"))) {
map.put("assignee", informerDetailJson.getString("realName"));
break;
}
}
}
}
}
}
list.add(map);
}
}
return list;
}
}
return list;
}
public static String buildOrderNo() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String newDate = sdf.format(new Date());
String result = "";
Random random = new Random();
for (int i = 0; i < 3; i++) {
result += random.nextInt(10);
}
return newDate + result;
}
/**
* 获取当前登录人能够操作的任务执行Button类型
*
* @param sequenceNbr
* @param userInfo
* @return
*/
public Integer getExcuteTaskAuthButton(Long sequenceNbr, ReginParams userInfo) {
int flag = 0;
Map<String, Object> map = this.checkExcuteTaskAuthMap(sequenceNbr, userInfo);
if (Boolean.parseBoolean(map.get("checkFlag").toString())) {
String buttonValueString = map.get("name").toString();
if (buttonValueString.endsWith(PROCESS_NAME[0])) { // 提交维修单
flag = 1;
} else if (buttonValueString.endsWith(PROCESS_NAME[1])) { // 审核
flag = 2;
if (buttonValueString.startsWith(PROCESS_NAME[2])) {
flag = 3;
}
} else if (buttonValueString.endsWith(PROCESS_NAME[2])) {// 维修
flag = 4;
} else if (buttonValueString.endsWith(PROCESS_NAME[3])) {// 验收
flag = 5;
}
}
FailureDetails details = this.baseMapper.selectById(sequenceNbr);
JSONObject object = workflowFeignService.queryHistoryTasksByProcessInstanceId(details.getProcessId());
JSONArray array = object.getJSONArray("rows");
for (Object historyDetail : array) {
JSONObject historyDetailJson = JSONObject.parseObject(JSONObject.toJSONString(historyDetail));
if ("rejected".equals(historyDetailJson.getString("activityId"))) {
flag = 6;
}
}
return flag;
}
public Object getCurrentTask(Long sequenceNbr) {
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
JSONArray taskDetailArray = null;
FailureDetails details = this.baseMapper.selectById(sequenceNbr);
String procressId = details.getProcessId();
JSONObject teskObject = workflowFeignService.getTaskList(procressId);
if (ObjectUtils.isNotEmpty(teskObject)) {
taskDetailArray = teskObject.getJSONArray("data");
for (Object obj : taskDetailArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(obj));
String name = detail.getString("name");
Map<String, String> map = new HashMap<String, String>();
map.put("name", name);
if (name.startsWith(PROCESS_NAME[4])) {
String id = detail.getString("id");
JSONObject assignObject = workflowFeignService.getTaskAssign(id);
JSONObject resultObject = assignObject.getJSONObject("data");
if (resultObject != null) {
map.put("name", "维修部门维修人员 维修");
if (detail.containsKey("informerList")) {
JSONArray informerList = detail.getJSONArray("informerList");
if (informerList != null && informerList.size() > 0) {
for (Object informerDetail : informerList) {
JSONObject informerDetailJson = JSONObject
.parseObject(JSONObject.toJSONString(informerDetail));
if (informerDetailJson.getString("userName")
.equals(resultObject.getString("assignee"))) {
map.put("assignee", informerDetailJson.getString("realName"));
break;
}
}
}
}
}
}
list.add(map);
}
}
return list;
}
}
\ No newline at end of file
......@@ -76,8 +76,6 @@ public class FailureMaintainServiceImpl extends BaseService<FailureMaintainDto,
WorkflowFeignService workflowFeignService;
private static String RECORE_TYPE = "维修记录";
private final Logger logger = LoggerFactory.getLogger(FailureMaintainServiceImpl.class);
private static String[] MAINTENANCE_STATUS = {"维修完成", "维修中"};
private static int MAINTENANCE_COMPLETE = 0;
......@@ -86,25 +84,7 @@ public class FailureMaintainServiceImpl extends BaseService<FailureMaintainDto,
private static String[] PROCESS_RESULT = {"验证通过", "验证未通过"};
/**
* 分页查询
*/
public Page<FailureMaintainDto> queryForFailureMaintainPage(Page<FailureMaintainDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<FailureMaintainDto> queryForFailureMaintainList() {
return this.queryForList("", false);
}
/**
* 添加维修记录
......@@ -132,10 +112,10 @@ public class FailureMaintainServiceImpl extends BaseService<FailureMaintainDto,
// 添加报修日志
String processResult = MAINTENANCE_STATUS[1];// 维修中
Integer processAuditorId = Integer.parseInt(failureMaintainDto.getRecUserId());
String processAuditorCid = userInfo.getRole().getRoleName();
String processAuditorName = userInfo.getUserModel().getRealName();
repairlog(failureMaintainDto.getFaultId(), processAuditorId,
userInfo.getDepartment().getSequenceNbr(), failureMaintainDto.getMaintainTime(),
failureMaintainDto.getDepartment(), processResult, processAuditorCid);
failureMaintainDto.getDepartment(), processResult, processAuditorName);
if (ObjectUtils.isNotEmpty(failureMaintainDto.getAttachment())) {
sourceFileServiceImpl.saveSourceFile(failureMaintainDto.getSequenceNbr(),
failureMaintainDto.getAttachment());
......@@ -179,10 +159,10 @@ public class FailureMaintainServiceImpl extends BaseService<FailureMaintainDto,
// 添加报修日志
String processResult = MAINTENANCE_STATUS[0];// 维修完成
Integer processAuditorId = Integer.parseInt(failureMaintainDto.getRecUserId());
String processAuditorCid = userInfo.getRole().getRoleName();
String processAuditorName = userInfo.getUserModel().getRealName();
repairlog(failureMaintainDto.getFaultId(), processAuditorId,
userInfo.getDepartment().getSequenceNbr(), failureMaintainDto.getMaintainTime(),
failureMaintainDto.getDepartment(), processResult, processAuditorCid);
failureMaintainDto.getDepartment(), processResult, processAuditorName);
if (ObjectUtils.isNotEmpty(failureMaintainDto.getAttachment())) {
sourceFileServiceImpl.saveSourceFile(failureMaintainDto.getSequenceNbr(),
failureMaintainDto.getAttachment());
......@@ -195,55 +175,6 @@ public class FailureMaintainServiceImpl extends BaseService<FailureMaintainDto,
return true;
}
/**
* 根据审核结果更新维修表
*/
public Boolean updateModel(FailureMaintainDto failureMaintainDto, ReginParams userInfo) throws Exception {
boolean result = failureDetailsService.checkExcuteTaskAuth(failureMaintainDto.getFaultId(), userInfo);
FailureDetailsDto failureDetailsDto = failureDetailsService.queryBySeq(failureMaintainDto.getFaultId());
if (result) {
this.updateWithModel(failureMaintainDto);
// 根据status修改状态
String processResult = new String();
String condition = failureMaintainDto.getCondition();
int conditionStatus = Integer.parseInt(condition);
if (conditionStatus == AuditResultEnum.AGREE.getCode() && userInfo.getDepartment().getSequenceNbr()
== failureDetailsDto.getBizCode()) {// 同意状态为已完结
processResult = PROCESS_RESULT[0];
} else if (conditionStatus == AuditResultEnum.AGREE.getCode()) {// 同意状态为已完结
failureDetailsDto.setCurrentStatus(failureDetailsDto.getCurrentStatus());
failureDetailsService.updateWithModel(failureDetailsDto);
processResult = PROCESS_RESULT[0];
} else if (conditionStatus == AuditResultEnum.REFUSE.getCode()){// 不同意状态为已拒绝
failureDetailsDto.setCurrentStatus(FailureStatuEnum.REFUSE.getCode());
failureDetailsService.updateWithModel(failureDetailsDto);
processResult = PROCESS_RESULT[1];
}
// 添加报修日志
Integer processAuditorId = Integer.parseInt(failureMaintainDto.getRecUserId());
String processAuditorCid = userInfo.getRole().getRoleName();
Boolean repairlog = repairlog(failureMaintainDto.getFaultId(), processAuditorId,
userInfo.getDepartment().getSequenceNbr(), failureMaintainDto.getMaintainTime(),
failureMaintainDto.getDepartment(), processResult, processAuditorCid);
if (ObjectUtils.isEmpty(repairlog)){
throw new RuntimeException("验收添加报修日志出错");
}
if (failureDetailsService.excuteTask(failureMaintainDto.getFaultId(), userInfo, condition)){
return true;
}else {
throw new RuntimeException("验收执行流程失败");
}
}
return false;
}
/**
* 根据FaultId查询
......@@ -273,9 +204,7 @@ public class FailureMaintainServiceImpl extends BaseService<FailureMaintainDto,
* 添加报修日志
*/
public Boolean repairlog(Long faultId, Integer processAuditorId, Long departmentId,
Date processTime,
String processDepartment, String processResult, String processAuditorCid) {
Date processTime, String processDepartment, String processResult, String processAuditorName) {
FailureRepairlogDto failureRepairlogDto = new FailureRepairlogDto();
failureRepairlogDto.setFaultId(faultId);
......@@ -284,7 +213,7 @@ public class FailureMaintainServiceImpl extends BaseService<FailureMaintainDto,
failureRepairlogDto.setProcessTime(processTime);
failureRepairlogDto.setProcessDepartment(processDepartment);
failureRepairlogDto.setProcessResult(processResult);
failureRepairlogDto.setProcessAuditorCid(processAuditorCid);
failureRepairlogDto.setProcessAuditorName(processAuditorName);
failureRepairlogService.createWithModel(failureRepairlogDto);
if (ObjectUtils.isNotEmpty(failureRepairlogDto)) {
return true;
......
......@@ -66,33 +66,21 @@ public class FailureVerifyServiceImpl extends BaseService<FailureVerifyDto, Fail
}
Boolean repairResult = null;
//根据验收的结果进行业务操作
/* if (condition == AuditResultEnum.AGREE.getCode() ) {
verifyResult = AuditResultEnum.AGREE.getCode();
Boolean repairResult = updateStatus(model, FailureStatuEnum.WAITING_ACCEPTANCE, userInfo, condition);
} else*/
if (condition == (AuditResultEnum.REFUSE.getCode())) {
verifyResult = AuditResultEnum.REFUSE.getCode();
repairResult = updateStatus(model, FailureStatuEnum.REFUSE, userInfo, condition);
} /*else if (condition == (AuditResultEnum.SEND_BACK.getCode())) {
verifyResult = AuditResultEnum.SEND_BACK.getCode();
Boolean repairResult = updateStatus(model, FailureStatuEnum.WAITING_SUBMIT, userInfo, condition);
} */ else if (condition == AuditResultEnum.AGREE.getCode()) {
} else if (condition == AuditResultEnum.AGREE.getCode()) {
verifyResult = AuditResultEnum.AGREE.getCode();
repairResult = updateStatus(model, FailureStatuEnum.FINISH, userInfo, condition);
}
model.setVerifyResult(verifyResult);
List<FailureVerify> byfaultId = findByfaultId(failureDetailsDto.getSequenceNbr());
/* if (byfaultId.size() == 0) {
this.createWithModel(model);
} else {*/
this.createWithModel(model);
if (!failureDetailsService.excuteTask(failureDetailsDto.getSequenceNbr(), userInfo, condition + "")) {
throw new Exception("执行流程失败");
}
/* }*/
return true;
}
......@@ -154,7 +142,7 @@ public class FailureVerifyServiceImpl extends BaseService<FailureVerifyDto, Fail
failureRepairlogDto.setProcessTime(processTime);
failureRepairlogDto.setProcessDepartment(processDepartment);
failureRepairlogDto.setProcessResult(processResult);
failureRepairlogDto.setProcessAuditorCid(processVerifyorCid);
failureRepairlogDto.setProcessAuditorName(processVerifyorCid);
failureRepairlogService.createWithModel(failureRepairlogDto);
if (ObjectUtils.isNotEmpty(failureRepairlogDto)) {
return true;
......@@ -166,7 +154,6 @@ public class FailureVerifyServiceImpl extends BaseService<FailureVerifyDto, Fail
* 根据FaultId查询
*/
public List<FailureVerify> findByfaultId(Long faultId) {
Page<FailureVerify> page = new Page<>();
QueryWrapper<FailureVerify> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("fault_id", faultId).orderByDesc("verify_time");
return baseMapper.selectList(queryWrapper);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment