问题修复

This commit is contained in:
hongchao 2026-01-04 09:13:12 +08:00
parent 3d18957cbf
commit 650afdb89f
14 changed files with 385 additions and 88 deletions

View File

@ -143,7 +143,7 @@ public class StoreLogAspect {
//数量类型设备 //数量类型设备
if (leaseOutDetails.getManageType().equals(MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId())) { if (leaseOutDetails.getManageType().equals(MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId())) {
bmStorageLog.setOutNum(leaseOutDetails.getInputNum()); bmStorageLog.setOutNum(leaseOutDetails.getInputNum());
bmStorageLog.setPostStoreNum(leaseOutDetails.getPreStoreNum().subtract(bmStorageLog.getOutNum())); bmStorageLog.setPostStoreNum(leaseOutDetails.getPreStoreNum().subtract(bmStorageLog.getOutNum()));
bmStorageLog.setOutType(InputOutEnum.NUMBER_DEVICE.getTypeId()); bmStorageLog.setOutType(InputOutEnum.NUMBER_DEVICE.getTypeId());
bmStorageLogList.add(bmStorageLog); bmStorageLogList.add(bmStorageLog);
} else { } else {

View File

@ -133,30 +133,31 @@ public class MaterialConstants {
/** /**
* 立体库测试环境获取token路径 * 立体库测试环境获取token路径
*/ */
public static final String TEST_TOKEN_URL = "http://192.168.1.124:32400/api/Identity/login/getToken"; public static final String TEST_TOKEN_URL = "http://172.26.213.95:32400/api/Identity/login/getToken";
/** /**
* 立体库生产环境获取token路径 * 立体库生产环境获取token路径
*/ */
public static final String PROD_TOKEN_URL = "http://192.168.1.124:32400/api/Identity/login/getToken"; public static final String PROD_TOKEN_URL = "http://172.26.213.95:32400/api/Identity/login/getToken";
/** /**
* 立体库测试环境建立出库单路径 * 立体库测试环境建立出库单路径
*/ */
public static final String TEST_CREATE_OUT_URL = "http://192.168.1.124:32400/api/lims/zNXT/docOutStorage"; public static final String TEST_CREATE_OUT_URL = "http://172.26.213.95:32400/api/lims/zNXT/docOutStorage";
/** /**
* 立体库生产环境建立出库单路径 * 立体库生产环境建立出库单路径
*/ */
public static final String PROD_CREATE_OUT_URL = "http://192.168.1.124:32400/api/lims/zNXT/docOutStorage"; public static final String PROD_CREATE_OUT_URL = "http://172.26.213.95:32400/api/lims/zNXT/docOutStorage";
/** /**
* 立体库测试环境建立入库单路径 * 立体库测试环境建立入库单路径
*/ */
public static final String TEST_CREATE_IN_URL = "http://192.168.1.124:32400/api/lims/zNXT/docInStorage"; public static final String TEST_CREATE_IN_URL = "http://172.26.213.95:32400/api/lims/zNXT/docInStorage";
/** /**
* 立体库生产环境建立入库单路径 * 立体库生产环境建立入库单路径
*/ */
public static final String PROD_CREATE_IN_URL = "http://192.168.1.124:32400/api/lims/zNXT/docInStorage"; public static final String PROD_CREATE_IN_URL = "http://172.26.213.95" +
":32400/api/lims/zNXT/docInStorage";
} }

View File

@ -22,6 +22,9 @@ public class AutomaticOutPutDto {
@ApiModelProperty("物料名称") @ApiModelProperty("物料名称")
private String materialName; private String materialName;
@ApiModelProperty("物料规格")
private String specification;
@ApiModelProperty("计量单位") @ApiModelProperty("计量单位")
private String unitCode; private String unitCode;

View File

@ -1919,6 +1919,7 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService {
automaticOutPutDto.setOutQty(leaseOutDetails.getInputNum()); automaticOutPutDto.setOutQty(leaseOutDetails.getInputNum());
automaticOutPutDto.setLineNum(1); automaticOutPutDto.setLineNum(1);
automaticOutPutDto.setTypeId(leaseOutDetails.getTypeId()); automaticOutPutDto.setTypeId(leaseOutDetails.getTypeId());
automaticOutPutDto.setSpecification(leaseOutDetails.getTypeName());
list.add(automaticOutPutDto); list.add(automaticOutPutDto);
} else { } else {
manageType = 0; manageType = 0;

View File

@ -244,7 +244,8 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
automaticInPutDto.setUnitCode(purchaseDto.getUnitName()); automaticInPutDto.setUnitCode(purchaseDto.getUnitName());
automaticInPutDto.setInQty(purchaseDto.getInputNum()); automaticInPutDto.setInQty(purchaseDto.getInputNum());
automaticInPutDto.setLineNum(1); automaticInPutDto.setLineNum(1);
automaticInPutDto.setPurchaseId(purchaseDto.getPurchaseId()); automaticInPutDto.setPurchaseId(purchaseDto.getId()+"");
// automaticInPutDto.setPurchaseId(purchaseDto.getPurchaseId());
automaticInPutDto.setTypeId(Long.valueOf(purchaseDto.getTypeId())); automaticInPutDto.setTypeId(Long.valueOf(purchaseDto.getTypeId()));
list.add(automaticInPutDto); list.add(automaticInPutDto);
} else { } else {
@ -282,7 +283,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
// 修改状态为待上架 // 修改状态为待上架
if (CollectionUtils.isEmpty(purchaseDto.getInPutList())) { if (CollectionUtils.isEmpty(purchaseDto.getInPutList())) {
// 数量设备 // 数量设备
purchaseStorageMapper.updateNumById(PurchaseTaskStatusEnum.TO_UPLOAD.getStatus(), purchaseDto.getPurchaseId(), purchaseDto.getInputNum()); purchaseStorageMapper.updateNumById(PurchaseTaskStatusEnum.TO_UPLOAD.getStatus(), purchaseDto.getId()+"", purchaseDto.getInputNum());
} else { } else {
// 修改上架数量 // 修改上架数量
purchaseStorageMapper.updateUpNum(Long.valueOf(purchaseDto.getPurchaseId()), BigDecimal.valueOf(purchaseDto.getInPutList().size())); purchaseStorageMapper.updateUpNum(Long.valueOf(purchaseDto.getPurchaseId()), BigDecimal.valueOf(purchaseDto.getInPutList().size()));

View File

@ -56,64 +56,64 @@ public class DerateRecordQueryServiceImpl implements IDerateReocrdQueryService {
Long userId = SecurityUtils.getLoginUser().getUserid(); Long userId = SecurityUtils.getLoginUser().getUserid();
bean.setUserId(userId); bean.setUserId(userId);
List<SltAgreementReduce> sltAgreementReduceList = mapper.getAuditList(bean); List<SltAgreementReduce> sltAgreementReduceList = mapper.getAuditList(bean);
try { // try {
for (SltAgreementReduce sltAgreementReduceNew : sltAgreementReduceList) { // for (SltAgreementReduce sltAgreementReduceNew : sltAgreementReduceList) {
SltAgreementReduce sltAgreementReducePriceNew = mapper.getAuditPrice(sltAgreementReduceNew.getId()); // SltAgreementReduce sltAgreementReducePriceNew = mapper.getAuditPrice(sltAgreementReduceNew.getId());
sltAgreementReduceNew.setLeasePrice(sltAgreementReducePriceNew.getLeasePrice()); // sltAgreementReduceNew.setLeasePrice(sltAgreementReducePriceNew.getLeasePrice());
sltAgreementReduceNew.setLeaseMoney(sltAgreementReducePriceNew.getLeaseMoney()); // sltAgreementReduceNew.setLeaseMoney(sltAgreementReducePriceNew.getLeaseMoney());
sltAgreementReduceNew.setLeaseMoneyAll(sltAgreementReducePriceNew.getLeaseMoneyAll()); // sltAgreementReduceNew.setLeaseMoneyAll(sltAgreementReducePriceNew.getLeaseMoneyAll());
log.info("当前节点为{}",sltAgreementReduceNew.getNodeId()); // log.info("当前节点为{}",sltAgreementReduceNew.getNodeId());
SysWorkflowRecordHistory sysWorkflowRecordHistory = sysWorkflowRecordHistoryMapper.getWorkflowRecordHistoryByRecordId(sltAgreementReduceNew.getRecordId()); // SysWorkflowRecordHistory sysWorkflowRecordHistory = sysWorkflowRecordHistoryMapper.getWorkflowRecordHistoryByRecordId(sltAgreementReduceNew.getRecordId());
sltAgreementReduceNew.setNodeId(sysWorkflowRecordHistory.getNodeId()); // sltAgreementReduceNew.setNodeId(sysWorkflowRecordHistory.getNodeId());
//设置当前节点 // //设置当前节点
if (1==sltAgreementReduceNew.getNodeSignType() && sysWorkflowRecordHistory.getNodeSort()==1){ // if (1==sltAgreementReduceNew.getNodeSignType() && sysWorkflowRecordHistory.getNodeSort()==1){
sltAgreementReduceNew.setNodeId(sysWorkflowRecordHistory.getNextNodeId()); // sltAgreementReduceNew.setNodeId(sysWorkflowRecordHistory.getNextNodeId());
} // }
String configValue = sysWorkflowConfigMapper.selectConfigValueByNodeId(sltAgreementReduceNew.getNodeId()); // String configValue = sysWorkflowConfigMapper.selectConfigValueByNodeId(sltAgreementReduceNew.getNodeId());
SysWorkflowNode sysWorkflowNode = sysWorkflowNodeMapper.selectSysWorkflowNodeById(sltAgreementReduceNew.getNodeId()); // SysWorkflowNode sysWorkflowNode = sysWorkflowNodeMapper.selectSysWorkflowNodeById(sltAgreementReduceNew.getNodeId());
sltAgreementReduceNew.setConfigValue(configValue); // sltAgreementReduceNew.setConfigValue(configValue);
//判断当前节点是否审核 // //判断当前节点是否审核
sysWorkflowRecordHistory.setRecordId(sltAgreementReduceNew.getRecordId()); // sysWorkflowRecordHistory.setRecordId(sltAgreementReduceNew.getRecordId());
sysWorkflowRecordHistory.setNodeId(sltAgreementReduceNew.getNodeId()); // sysWorkflowRecordHistory.setNodeId(sltAgreementReduceNew.getNodeId());
List<SysWorkflowRecordHistory> sysWorkflowRecordHistoryList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory); // List<SysWorkflowRecordHistory> sysWorkflowRecordHistoryList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory);
//判断是或签还是会签0:或签 1:会签 // //判断是或签还是会签0:或签 1:会签
if (0==sysWorkflowNode.getNodeSignType()){ // if (0==sysWorkflowNode.getNodeSignType()){
//当前节点已经审核需要修改节点值 // //当前节点已经审核需要修改节点值
if (sysWorkflowRecordHistoryList.get(0)!=null){ // if (sysWorkflowRecordHistoryList.get(0)!=null){
String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); // String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId());
sltAgreementReduceNew.setNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); // sltAgreementReduceNew.setNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId());
sltAgreementReduceNew.setConfigValue(configValueNew); // sltAgreementReduceNew.setConfigValue(configValueNew);
} // }
}else { // }else {
String[] ConfigValue = configValue.split(","); // String[] ConfigValue = configValue.split(",");
List<String> filteredList = Arrays.stream(ConfigValue).collect(Collectors.toList()); // List<String> filteredList = Arrays.stream(ConfigValue).collect(Collectors.toList());
for (SysWorkflowRecordHistory sysWorkflowRecordHistoryNew : sysWorkflowRecordHistoryList) { // for (SysWorkflowRecordHistory sysWorkflowRecordHistoryNew : sysWorkflowRecordHistoryList) {
if (sysWorkflowRecordHistoryNew != null) { // if (sysWorkflowRecordHistoryNew != null) {
// 过滤数组元素 // // 过滤数组元素
filteredList = filteredList.stream() // filteredList = filteredList.stream()
.filter(value -> value != null && !value.equals(sysWorkflowRecordHistoryNew.getCreateBy())) // .filter(value -> value != null && !value.equals(sysWorkflowRecordHistoryNew.getCreateBy()))
.collect(Collectors.toList()); // .collect(Collectors.toList());
sltAgreementReduceNew.setConfigValue(filteredList.toString()); // sltAgreementReduceNew.setConfigValue(filteredList.toString());
} // }
} // }
//判断是否这个节点的所有人都审核 // //判断是否这个节点的所有人都审核
if (filteredList.size() == 0) { // if (filteredList.size() == 0) {
String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); // String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId());
sltAgreementReduceNew.setNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); // sltAgreementReduceNew.setNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId());
sltAgreementReduceNew.setConfigValue(configValueNew); // sltAgreementReduceNew.setConfigValue(configValueNew);
} else { // } else {
if (sysWorkflowRecordHistoryList.size() > 0) { // if (sysWorkflowRecordHistoryList.size() > 0) {
sltAgreementReduceNew.setNodeId(sltAgreementReduceNew.getNodeId()); // sltAgreementReduceNew.setNodeId(sltAgreementReduceNew.getNodeId());
sltAgreementReduceNew.setConfigValue(filteredList.toString()); // sltAgreementReduceNew.setConfigValue(filteredList.toString());
} // }
} // }
} // }
} // }
//
}catch (Exception e){ // }catch (Exception e){
log.info("查询结果出错{}",e.getMessage()); // log.info("查询结果出错{}",e.getMessage());
throw new ServiceException("查询结果出错"); // throw new ServiceException("查询结果出错");
} // }
return sltAgreementReduceList; return sltAgreementReduceList;
} }

View File

@ -1,8 +1,10 @@
package com.bonus.material.settlement.service.impl; package com.bonus.material.settlement.service.impl;
import com.bonus.common.biz.constant.GlobalConstants; import com.bonus.common.biz.constant.GlobalConstants;
import com.bonus.common.biz.domain.lease.WorkPeopleInfo;
import com.bonus.common.biz.enums.TmTaskTypeEnum; import com.bonus.common.biz.enums.TmTaskTypeEnum;
import com.bonus.common.biz.enums.WorkFlowStatusEnum; import com.bonus.common.biz.enums.WorkFlowStatusEnum;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils; import com.bonus.common.security.utils.SecurityUtils;
@ -10,8 +12,12 @@ import com.bonus.material.basic.mapper.BmFileInfoMapper;
import com.bonus.material.settlement.domain.SltAgreementReduce; import com.bonus.material.settlement.domain.SltAgreementReduce;
import com.bonus.material.settlement.mapper.SltAgreementReduceMapper; import com.bonus.material.settlement.mapper.SltAgreementReduceMapper;
import com.bonus.material.settlement.service.ISltAgreementReduceService; import com.bonus.material.settlement.service.ISltAgreementReduceService;
import com.bonus.material.work.domain.SysWorkflowNode;
import com.bonus.material.work.domain.SysWorkflowRecord;
import com.bonus.material.work.domain.SysWorkflowRecordHistory;
import com.bonus.material.work.domain.SysWorkflowType;
import com.bonus.material.work.domain.dto.SysWorkflowAuditDto; import com.bonus.material.work.domain.dto.SysWorkflowAuditDto;
import com.bonus.material.work.mapper.SysWorkflowRecordMapper; import com.bonus.material.work.mapper.*;
import com.bonus.material.work.service.SysWorkflowRecordService; import com.bonus.material.work.service.SysWorkflowRecordService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -53,6 +59,21 @@ public class SltAgreementReduceServiceImpl implements ISltAgreementReduceService
@Resource @Resource
private SysWorkflowRecordMapper workflowRecordMapper; private SysWorkflowRecordMapper workflowRecordMapper;
@Resource
private SysWorkflowRecordMapper sysWorkflowRecordMapper;
@Resource
private SysWorkflowTypeMapper sysWorkflowTypeMapper;
@Resource
private SysWorkflowNodeMapper sysWorkflowNodeMapper;
@Resource
private DirectAuditMapper directAuditMapper;
@Resource
private SysWorkflowRecordHistoryMapper sysWorkflowRecordHistoryMapper;
@Override @Override
public List<SltAgreementReduce> selectSltAgreementReduceList(SltAgreementReduce sltAgreement) { public List<SltAgreementReduce> selectSltAgreementReduceList(SltAgreementReduce sltAgreement) {
return sltAgreementRecudceMapper.selectSltAgreementReduceList(sltAgreement); return sltAgreementRecudceMapper.selectSltAgreementReduceList(sltAgreement);
@ -64,7 +85,6 @@ public class SltAgreementReduceServiceImpl implements ISltAgreementReduceService
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) // 对所有异常回滚
public AjaxResult addApply(SltAgreementReduce sltAgreement) { public AjaxResult addApply(SltAgreementReduce sltAgreement) {
List<SltAgreementReduce> list; List<SltAgreementReduce> list;
try { try {
@ -84,11 +104,7 @@ public class SltAgreementReduceServiceImpl implements ISltAgreementReduceService
// 插入外层任务信息 // 插入外层任务信息
Long rs = sltAgreementRecudceMapper.insertReduce(sltAgreement); Long rs = sltAgreementRecudceMapper.insertReduce(sltAgreement);
Long taskId = sltAgreement.getId(); Long taskId = sltAgreement.getId();
if (null != rs && rs > 0 && null != taskId && taskId > 0) {
workflowRecordService.addSysWorkflowRecord(Math.toIntExact(taskId), sltAgreement.getCode(), TmTaskTypeEnum.TM_TASK_PART_TYPE.getTaskTypeId());
} else {
throw new RuntimeException("新增失败");
}
AtomicBoolean addFileInfoResult = new AtomicBoolean(false); AtomicBoolean addFileInfoResult = new AtomicBoolean(false);
if (sltAgreement.getBmFileInfos() != null && !sltAgreement.getBmFileInfos().isEmpty()) { if (sltAgreement.getBmFileInfos() != null && !sltAgreement.getBmFileInfos().isEmpty()) {
sltAgreement.getBmFileInfos().removeIf(Objects::isNull); sltAgreement.getBmFileInfos().removeIf(Objects::isNull);
@ -106,8 +122,88 @@ public class SltAgreementReduceServiceImpl implements ISltAgreementReduceService
.collect(Collectors.toList()); .collect(Collectors.toList());
sltAgreementRecudceMapper.insertBatchReduceDetail(detailList); sltAgreementRecudceMapper.insertBatchReduceDetail(detailList);
} }
// ******************************** 减免审核工作流 ***********************************//
int count = 0;
//创建减免审核工作流
SysWorkflowType sysWorkflowType = new SysWorkflowType();
sysWorkflowType.setTaskType(13);
sysWorkflowType.setIsEnable(1);
List<SysWorkflowType> sysWorkflowTypeList = sysWorkflowTypeMapper.selectSysWorkflowTypeList(sysWorkflowType);
if (sysWorkflowTypeList.isEmpty()) {
throw new ServiceException("新增任务审批记录失败,请创建审核流程");
}
SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord();
// 如果该任务类型配置了一个审批流则直接使用
if (sysWorkflowTypeList.size() == 1) {
// 如果该任务类型配置了一个审批流则直接使用
sysWorkflowType = sysWorkflowTypeList.get(0);
sysWorkflowRecord = new SysWorkflowRecord();
sysWorkflowRecord.setWorkflowId(sysWorkflowType.getId());
sysWorkflowRecord.setTaskId(Math.toIntExact(taskId));
sysWorkflowRecord.setTaskType(13);
sysWorkflowRecord.setTaskCode(sltAgreement.getCode());
//创建审批任务
count = sysWorkflowRecordMapper.addSysWorkflowRecord(sysWorkflowRecord);
if (0 == count) {
throw new RuntimeException("创建审批任务失败!");
}
}
//处理审批流
if(!sysWorkflowTypeList.isEmpty()){
// 获取新创建的ID
int newId = sysWorkflowRecord.getId();
//获取当前审核流下的节点
SysWorkflowNode sysWorkflowNode = new SysWorkflowNode();
sysWorkflowNode.setTypeId(sysWorkflowType.getId());
List<SysWorkflowNode> sysWorkflowNodeList = sysWorkflowNodeMapper.selectSysWorkflowNodeList(sysWorkflowNode);
// 创建审核记录
SysWorkflowRecordHistory sysWorkflowRecordHistory = new SysWorkflowRecordHistory();
sysWorkflowRecordHistory.setRecordId(sysWorkflowRecord.getId());
sysWorkflowRecordHistory.setNodeId(sysWorkflowNodeList.get(0).getId());
sysWorkflowRecordHistory.setNextNodeId(sysWorkflowNodeList.get(1).getId());
sysWorkflowRecordHistory.setIsAccept(1);
sysWorkflowRecordHistory.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());
sysWorkflowRecordHistory.setCreateTime(DateUtils.getNowDate());
int projectId = directAuditMapper.getProjectIdById(Math.toIntExact(sltAgreement.getAgreementId()));
//根据project_id获取external_id
String externalId = directAuditMapper.getExternalId(projectId);
List<WorkPeopleInfo> userList = new ArrayList<>();
if (externalId != null && !externalId.isEmpty()) {
//获取项目总工id
String leaderId = directAuditMapper.getLeaderId(externalId);
if(leaderId != null && !leaderId.isEmpty()){
//获取项目总工账号
String leaderAccount = directAuditMapper.getUserNameById(leaderId);
if(leaderAccount != null && !leaderAccount.isEmpty()){
userList = directAuditMapper.getUserIdByUserName(leaderAccount);
if(userList != null && !userList.isEmpty()){
String userIds = userList.stream().map(WorkPeopleInfo::getUserId).map(String::valueOf).collect(Collectors.joining(","));
sysWorkflowRecordHistory.setDirectUserIds(userIds);
}
}
}else{
directAuditMapper.deleteWorkflowRecord(newId);
throw new RuntimeException("项目总工不存在");
}
}else{
directAuditMapper.deleteWorkflowRecord(newId);
throw new RuntimeException("未找到所属工程");
}
sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory);
// if (count > 0 && userList != null && !userList.isEmpty()) {
// createWorkOrderAndPeople(sysUser, event, Long.valueOf(sysWorkflowRecord.getTaskId()), newId,sysWorkflowRecordHistory.getNodeId(),userList);
// }
// return newId;
}
// ******************************** 减免审核工作流 ***********************************//
} else { } else {
return AjaxResult.warn("检索历史申请减免区间数据,已申请减免,请勿在提交申请单!"); return AjaxResult.warn("检索历史申请减免区间数据,已申请减免,请勿提交申请单!");
} }
return AjaxResult.success(); return AjaxResult.success();

View File

@ -59,6 +59,24 @@ public class SysWorkflowRecordHisController extends BaseController {
} }
} }
/**
* 审批
*/
@ApiOperation(value = "减免审批")
@PostMapping("/updateReduction")
@PreventRepeatSubmit
public AjaxResult reductionUpdate(@RequestBody SysWorkflowRecordHistory sysWorkflowRecordHistory)
{
try {
sysWorkflowRecordHistoryService.updateReductionSysWorkflowRecordHistory(sysWorkflowRecordHistory);
return new AjaxResult(200,"修改成功!");
}catch (Exception e){
logger.error("修改失败{}", e.getMessage(), e);
System.err.println("修改失败" + e.getMessage());
return error(e.getMessage());
}
}
/** /**
* 审批 * 审批
*/ */

View File

@ -3,6 +3,7 @@ package com.bonus.material.work.mapper;
import com.bonus.common.biz.domain.lease.WorkApplyInfo; import com.bonus.common.biz.domain.lease.WorkApplyInfo;
import com.bonus.material.work.domain.SysWorkflowRecord; import com.bonus.material.work.domain.SysWorkflowRecord;
import com.bonus.material.work.domain.SysWorkflowRecordHistory; import com.bonus.material.work.domain.SysWorkflowRecordHistory;
import feign.Param;
import java.util.List; import java.util.List;
@ -29,7 +30,7 @@ public interface SysWorkflowRecordHistoryMapper {
void deleteNowNode(SysWorkflowRecordHistory sysWorkflowRecordHistory); void deleteNowNode(SysWorkflowRecordHistory sysWorkflowRecordHistory);
String getRecordCodeByTaskId(Integer taskId); String getRecordCodeByTaskId(@Param("taskId") int taskId, @Param("taskTypeId") int taskTypeId);
/** /**
* 获取当前节点信息 * 获取当前节点信息
@ -62,4 +63,8 @@ public interface SysWorkflowRecordHistoryMapper {
* @param newId * @param newId
*/ */
void deleteSysWorkflowRecordHistory(int newId); void deleteSysWorkflowRecordHistory(int newId);
int getReductionAgreementIdByTaskId(SysWorkflowRecordHistory sysWorkflowRecordHistory);
String getReductionNodeUserIds(SysWorkflowRecordHistory history);
} }

View File

@ -11,4 +11,6 @@ public interface SysWorkflowRecordHistoryService {
SysWorkflowRecordHistory getAuditStatus(SysWorkflowRecordHistory sysWorkflowRecordHistory); SysWorkflowRecordHistory getAuditStatus(SysWorkflowRecordHistory sysWorkflowRecordHistory);
int updateDirectSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory); int updateDirectSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
int updateReductionSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
} }

View File

@ -179,7 +179,7 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
String flag = "0"; String flag = "0";
if("0".equals( flag)){ if("0".equals( flag)){
Integer taskId = sysWorkflowRecordHistory.getTaskId(); Integer taskId = sysWorkflowRecordHistory.getTaskId();
String recordCode = sysWorkflowRecordHistoryMapper.getRecordCodeByTaskId(taskId); String recordCode = sysWorkflowRecordHistoryMapper.getRecordCodeByTaskId(taskId,16);
Integer nextNodeId = sysWorkflowRecordHistory.getNextNodeId(); Integer nextNodeId = sysWorkflowRecordHistory.getNextNodeId();
Integer nodeId = sysWorkflowRecordHistory.getNodeId(); Integer nodeId = sysWorkflowRecordHistory.getNodeId();
sysWorkflowRecordHistory.setCreateBy(userId.toString()); sysWorkflowRecordHistory.setCreateBy(userId.toString());
@ -207,6 +207,48 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
} }
/**
* 减免审批
*/
@Override
public int updateReductionSysWorkflowRecordHistory(@NotNull(message = "审批方法参数不能为空") SysWorkflowRecordHistory sysWorkflowRecordHistory) {
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
Long userId = sysUser.getUserId();
Integer recordId = sysWorkflowRecordHistory.getRecordId();
//String flag = checkAuditUser(recordId,sysUser);
String flag = "0";
if("0".equals( flag)){
Integer taskId = sysWorkflowRecordHistory.getTaskId();
String recordCode = sysWorkflowRecordHistoryMapper.getRecordCodeByTaskId(taskId,13);
Integer nextNodeId = sysWorkflowRecordHistory.getNextNodeId();
Integer nodeId = sysWorkflowRecordHistory.getNodeId();
sysWorkflowRecordHistory.setCreateBy(userId.toString());
// sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory);
if (sysWorkflowRecordHistory.getIsAccept() == null) {
throw new ServiceException("请选择是否接受审批");
}
// 查询出当前任务所属审批流的所有节点
List<SysWorkflowNode> sysWorkflowNodeList = getWorkflowNodes(sysWorkflowRecordHistory);
if (sysWorkflowRecordHistory.getIsAccept() == 1) {
// 处理审批通过
handleReductionApproval(sysWorkflowNodeList, sysWorkflowRecordHistory, sysUser, taskId, recordCode, recordId,nextNodeId,nodeId);
} else {
// 处理审核驳回
// handleDirectReject(sysWorkflowNodeList, sysWorkflowRecordHistory, sysUser, taskId, recordCode, recordId,nextNodeId,nodeId);
}
}else{
throw new ServiceException("当前账号没有审批权限!");
}
return 0;
}
private String checkAuditUser(Integer recordId, SysUser sysUser) { private String checkAuditUser(Integer recordId, SysUser sysUser) {
@ -885,6 +927,104 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
} }
// 直转审批通过的方法 更新任务和审批流以及工单信息
private void handleReductionApproval(List<SysWorkflowNode> sysWorkflowNodeList, SysWorkflowRecordHistory sysWorkflowRecordHistory,
SysUser sysUser, Integer taskId, String recordCode, Integer recordId, Integer nextNodeId, Integer nodeId) {
boolean found = false;
Integer proId = null;
List<WorkPeopleInfo> userList = new ArrayList<>();
/**************** ******************/
for (int i = 0; i < sysWorkflowNodeList.size(); i++) {
// 判断列表中哪个节点是当前审批的节点如果不是审批的节点不处理
if (sysWorkflowRecordHistory.getNextNodeId().equals(sysWorkflowNodeList.get(i).getId())) {
log.info("-------------进入到了当前审批的节点-------------");
//获取转入接收方的agreementId
proId = sysWorkflowRecordHistoryMapper.getReductionAgreementIdByTaskId(sysWorkflowRecordHistory);
//插入history表中
SysWorkflowRecordHistory history = sysWorkflowRecordHistory;
history.setNodeId(sysWorkflowRecordHistory.getNextNodeId());
if(i==1){ //到项目总工审核
int deptId = directAuditMapper.getImpUnit(String.valueOf(proId));
DirectApplyInfo directApplyInfo = new DirectApplyInfo();
directApplyInfo.setLeaseProId(String.valueOf(proId));
directApplyInfo.setDeptId(deptId);
history.setNextNodeId(sysWorkflowNodeList.get(i+1).getId());
String userIds = sysWorkflowRecordHistoryMapper.getReductionNodeUserIds(history);
String[] userIdArray = userIds != null ? userIds.split(",") : new String[0];
//根据deptId判断送一还是送二
if(deptId == 327){ //送一
if (userIdArray.length > 0) {
boolean hasTrue = Arrays.asList(userIdArray).contains("1916"); //送二的武抒理
if (hasTrue) {
history.setDirectUserIds("1916");
}
}
}else if(deptId == 102){ //送二
if (userIdArray.length > 0) {
boolean hasTrue = Arrays.asList(userIdArray).contains("293"); //送二的武抒理
if (hasTrue) {
history.setDirectUserIds("293");
}
}
}else{
throw new ServiceException("无相应审批人,无法进行审批!");
}
if(history.getDirectUserIds().isEmpty()){
throw new ServiceException("无相应审批人,无法进行批批!");
}
}else if(i==2){//分公司分管领导审核
history.setNextNodeId(sysWorkflowNodeList.get(i+1).getId());
history.setDirectUserIds("1756"); //张必余
}else{//公司分管领导审核
history.setNextNodeId(null);
history.setDirectUserIds(null);
}
sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(history);
}
//获取当前node的directUserIds
String userIdsNow = sysWorkflowRecordHistoryMapper.getNowUserIds(sysWorkflowRecordHistory);
// 判断当前用户是否是当前节点的配置用户
if (userIdsNow.contains(sysUser.getUserId().toString())) {
log.info("-------------✅通过校验,当前用户是该节点审批人员,进行更新任务信息-------------");
// 根据任务ID 更新审批流状态
updateWorkflowStatus(taskId, 1);
// 根据任务ID 更新任务状态
updateTmTask(taskId.longValue(), LeaseTaskStatusEnum.LEASE_AUDIT_ING.getStatus());
found = true;
break;
} else {
//删除新增节点
sysWorkflowRecordHistoryMapper.deleteNowNode(sysWorkflowRecordHistory);
throw new ServiceException("您不是当前节点配置的审批人员,无法进行操作!!");
}
}
/**************** ******************/
Optional<SysWorkflowNode> maxNodeOptional = sysWorkflowNodeList.stream()
.max(Comparator.comparingInt(SysWorkflowNode::getNodeSort));
SysWorkflowNode endNodeInfo = maxNodeOptional.orElse(new SysWorkflowNode());
if (endNodeInfo.getId().equals(sysWorkflowRecordHistory.getNodeId()) && "2".equals(endNodeInfo.getNodeLabel())) {
checkFinalNodeDirectApproval(sysWorkflowRecordHistory, sysWorkflowNodeList);
}
}
private void checkFinalNodeApproval(SysWorkflowRecordHistory sysWorkflowRecordHistory, List<SysWorkflowNode> sysWorkflowNodeList) { private void checkFinalNodeApproval(SysWorkflowRecordHistory sysWorkflowRecordHistory, List<SysWorkflowNode> sysWorkflowNodeList) {
List<SysWorkflowRecordHistory> historyList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory); List<SysWorkflowRecordHistory> historyList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory);
String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistory.getNodeId()); String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistory.getNodeId());

View File

@ -317,7 +317,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SET SET
status = #{status} status = #{status}
WHERE WHERE
parent_id = #{record.parentId} and type_id = #{record.typeId} parent_id = #{parentId} and type_id = #{typeId}
</update> </update>
<update id="updateMaMachineStatus"> <update id="updateMaMachineStatus">

View File

@ -132,24 +132,38 @@
swrs.next_node_id AS nextNodeId, swrs.next_node_id AS nextNodeId,
swrs.record_id AS recordId, swrs.record_id AS recordId,
swn.node_sign_type as nodeSignType, swn.node_sign_type as nodeSignType,
sd.dept_name as impUnitName sd.dept_name as impUnitName,
swrs.direct_user as directUserIds,
swrs.direct_user as configValue,
a.leaseMoney,
a.leaseMoneyAll
FROM FROM
slt_reduce_apply sra slt_reduce_apply sra
LEFT JOIN slt_reduce_details srd on sra.id=srd.apply_id
LEFT JOIN sys_user su on su.user_id=sra.creator LEFT JOIN sys_user su on su.user_id=sra.creator
LEFT JOIN bm_agreement_info bai on bai.agreement_id=sra.agreement_id LEFT JOIN bm_agreement_info bai on bai.agreement_id=sra.agreement_id
LEFT JOIN bm_project bp ON bp.pro_id = bai.project_id LEFT JOIN bm_project bp ON bp.pro_id = bai.project_id
LEFT JOIN sys_dept sd on sd.dept_id = bp.imp_unit LEFT JOIN sys_dept sd on sd.dept_id = bp.imp_unit
LEFT JOIN bm_unit bu ON bu.unit_id = bai.unit_id LEFT JOIN bm_unit bu ON bu.unit_id = bai.unit_id
LEFT JOIN sys_workflow_record swr on sra.id = swr.task_id LEFT JOIN sys_workflow_record swr on sra.id = swr.task_id and swr.task_type = '13'
LEFT JOIN sys_workflow_type swt on swr.workflow_id = swt.id LEFT JOIN sys_workflow_type swt on swr.workflow_id = swt.id
LEFT JOIN sys_workflow_node swn on swt.id = swn.type_id LEFT JOIN sys_workflow_node swn on swt.id = swn.type_id
LEFT JOIN sys_workflow_config swc on swn.id = swc.node_id LEFT JOIN sys_workflow_config swc on swn.id = swc.node_id
left join sys_workflow_record_history swrs on swr.id = swrs.record_id left join sys_workflow_record_history swrs on swr.id = swrs.record_id
LEFT JOIN
(
SELECT
sra.id as id,
ROUND(SUM(srd.lease_price * srd.num * (DATEDIFF(srd.end_time, srd.start_time) + 1)), 2) as leaseMoney,
ROUND(SUM(srd.lease_money), 2) as leaseMoneyAll
FROM
slt_reduce_apply sra
LEFT JOIN slt_reduce_details srd on sra.id=srd.apply_id
GROUP BY sra.id
) a on a.id=sra.id
where 1=1 where 1=1
<if test="userId != null and userId != ''"> <!-- <if test="userId != null and userId != ''">-->
AND swc.config_value = #{userId} <!-- AND swc.config_value = #{userId}-->
</if> <!-- </if>-->
<if test="startTime != null and endTime != ''"> <if test="startTime != null and endTime != ''">
AND DATE_FORMAT(sra.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime} AND DATE_FORMAT(sra.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if> </if>
@ -166,9 +180,9 @@
<if test="status != null and status!=''"> <if test="status != null and status!=''">
AND sra.status = #{status} AND sra.status = #{status}
</if> </if>
<if test="taskStatus !=null"> <!-- <if test="taskStatus !=null">-->
AND sra.status = #{taskStatus} <!-- AND sra.status = #{taskStatus}-->
</if> <!-- </if>-->
GROUP BY sra.id GROUP BY sra.id
ORDER BY sra.create_time DESC ORDER BY sra.create_time DESC
</select> </select>

View File

@ -92,15 +92,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select select
direct_user as directUserIds direct_user as directUserIds
from sys_workflow_record_history from sys_workflow_record_history
where record_id = #{recordId} and next_node_id = #{nodeId} where record_id = #{recordId} and next_node_id = #{nodeId} limit 1
</select> </select>
<select id="getRecordCodeByTaskId" resultType="java.lang.String"> <select id="getRecordCodeByTaskId" resultType="java.lang.String">
select select
task_code as recordCode task_code as recordCode
from sys_workflow_record from sys_workflow_record
where task_id = #{taskId} where task_id = #{taskId}
and task_type = #{taskTypeId}
</select> </select>
<select id="getHistoryInfo" resultType="com.bonus.material.work.domain.SysWorkflowRecordHistory"> <select id="getHistoryInfo" resultType="com.bonus.material.work.domain.SysWorkflowRecordHistory">
SELECT swrh.id as id,swrh.create_time as createTime,swrh.next_node_id as nextNodeId, SELECT swrh.id as id,swrh.create_time as createTime,swrh.next_node_id as nextNodeId,
swrh.node_id as nodeId swrh.node_id as nodeId
@ -118,6 +121,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE WHERE
business_id = #{newId} business_id = #{newId}
</select> </select>
<select id="getReductionAgreementIdByTaskId" resultType="java.lang.Integer">
select
bai.project_id as proId
from slt_reduce_apply sra
left join bm_agreement_info bai ON sra.agreeement_id = bai.agreement_id
where id = #{taskId}
</select>
<select id="getReductionNodeUserIds" resultType="java.lang.String">
select
config_value
from sys_workflow_config
where node_id = #{nextNodeId} limit 1
</select>
<delete id="deleteNowNode"> <delete id="deleteNowNode">
delete from sys_workflow_record_history where record_id = #{recordId} and node_id = #{nodeId} delete from sys_workflow_record_history where record_id = #{recordId} and node_id = #{nodeId}