接口提交

This commit is contained in:
liang.chao 2025-07-05 17:24:36 +08:00
parent 27f44676f4
commit ff2cf08087
9 changed files with 203 additions and 27 deletions

View File

@ -110,4 +110,7 @@ public class ProjUsingRecord {
@Excel(name = "协议状态") @Excel(name = "协议状态")
private String isSltName; private String isSltName;
private String externalIds;
@ApiModelProperty(value = "关联外部(第三方)的工程ID")
private String externalId;
} }

View File

@ -20,6 +20,7 @@ import java.util.stream.Collectors;
/** /**
* 综合查询服务实现类 * 综合查询服务实现类
*
* @Author ma_sh * @Author ma_sh
* @create 2024/12/16 10:53 * @create 2024/12/16 10:53
*/ */
@ -32,16 +33,29 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
/** /**
* 工程机具使用列表 * 工程机具使用列表
*
* @param bean * @param bean
* @return * @return
*/ */
@Override @Override
public List<ProjUsingRecord> getProjUsingRecordList(ProjUsingRecord bean) { public List<ProjUsingRecord> getProjUsingRecordList(ProjUsingRecord bean) {
return complexQueryMapper.getProjUsingRecordList(bean); List<ProjUsingRecord> list = new ArrayList<>();
if (StringUtils.isNotBlank(bean.getExternalIds())) {
String[] externalIds = bean.getExternalIds().split(",");
for (String externalId : externalIds) {
bean.setExternalId(externalId);
List<ProjUsingRecord> projUsingRecordList = complexQueryMapper.getProjUsingRecordList(bean);
list.addAll(projUsingRecordList);
}
} else {
list = complexQueryMapper.getProjUsingRecordList(bean);
}
return list;
} }
/** /**
* 设备使用追溯查询 * 设备使用追溯查询
*
* @param bean * @param bean
* @return * @return
*/ */
@ -52,6 +66,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
/** /**
* 导出工程机具使用列表 * 导出工程机具使用列表
*
* @param bean * @param bean
*/ */
@Override @Override
@ -79,13 +94,14 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
projUsingRecord.setUsPrice(totalUsPrice.setScale(2, RoundingMode.HALF_UP)); projUsingRecord.setUsPrice(totalUsPrice.setScale(2, RoundingMode.HALF_UP));
projUsingRecord.setTotalPrice(totalTotalPrice.setScale(2, RoundingMode.HALF_UP)); projUsingRecord.setTotalPrice(totalTotalPrice.setScale(2, RoundingMode.HALF_UP));
projUsingRecord.setUnit("合计"); projUsingRecord.setUnit("合计");
list.add(0,projUsingRecord); list.add(0, projUsingRecord);
} }
return list; return list;
} }
/** /**
* 机具入库查询列表 * 机具入库查询列表
*
* @param bean * @param bean
* @return * @return
*/ */
@ -128,6 +144,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
/** /**
* 机具出库查询列表 * 机具出库查询列表
*
* @param bean * @param bean
* @return * @return
*/ */
@ -159,6 +176,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
/** /**
* 保有设备总量查询 * 保有设备总量查询
*
* @param bean * @param bean
* @return * @return
*/ */
@ -262,6 +280,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
/** /**
* 查询机具编码 * 查询机具编码
*
* @param bean * @param bean
* @return * @return
*/ */
@ -319,6 +338,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
/** /**
* 去重maCode保留最新的一个 * 去重maCode保留最新的一个
*
* @param list * @param list
*/ */
private void extracted(List<StorageInfo> list) { private void extracted(List<StorageInfo> list) {
@ -347,6 +367,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
/** /**
* 查询在用设备详情 * 查询在用设备详情
*
* @param bean * @param bean
* @return * @return
*/ */
@ -385,6 +406,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
/** /**
* 判断item是否包含关键字 * 判断item是否包含关键字
*
* @param item * @param item
* @param keyWord * @param keyWord
* @return * @return
@ -395,11 +417,12 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
(item.getCreator() != null && item.getCreator().equals(keyWord)) || (item.getCreator() != null && item.getCreator().equals(keyWord)) ||
(item.getMaCode() != null && item.getMaCode().contains(keyWord)) || (item.getMaCode() != null && item.getMaCode().contains(keyWord)) ||
(item.getProjectName() != null && item.getProjectName().contains(keyWord)) || (item.getProjectName() != null && item.getProjectName().contains(keyWord)) ||
(item.getCode() != null && item.getCode().contains(keyWord)) ; (item.getCode() != null && item.getCode().contains(keyWord));
} }
/** /**
* 查询在修设备详情 * 查询在修设备详情
*
* @param bean * @param bean
* @return * @return
*/ */
@ -410,6 +433,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
/** /**
* 查询新购待入库设备详情 * 查询新购待入库设备详情
*
* @param bean * @param bean
* @return * @return
*/ */
@ -476,6 +500,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
/** /**
* 查询修饰待入库设备详情 * 查询修饰待入库设备详情
*
* @param bean * @param bean
* @return * @return
*/ */
@ -486,6 +511,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
/** /**
* 查询待报废设备详情 * 查询待报废设备详情
*
* @param bean * @param bean
* @return * @return
*/ */
@ -496,6 +522,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
/** /**
* 查询已审核报废设备详情 * 查询已审核报废设备详情
*
* @param bean * @param bean
* @return * @return
*/ */
@ -506,6 +533,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
/** /**
* 修试查询--一机一档案查询 * 修试查询--一机一档案查询
*
* @param bean * @param bean
* @return * @return
*/ */

View File

@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.Map;
@Api(tags = "工作流详情表") @Api(tags = "工作流详情表")
@RestController @RestController
@ -100,4 +101,20 @@ public class SysWorkflowNodeController extends BaseController {
return getDataTableError(null); return getDataTableError(null);
} }
} }
/**
* 根据工程id查询工作流详情列表
*/
@ApiOperation(value = "根据工程id查询工作流详情列表")
@GetMapping("/listByproId")
public AjaxResult listByproId(SysWorkflowNode sysWorkflowNode) {
if (sysWorkflowNode == null || sysWorkflowNode.getProId() == null) {
throw new RuntimeException("查询参数不能为空");
}
try {
Map<Integer, SysWorkflowNode> integerSysWorkflowNodeMap = sysWorkflowNodeService.listByProId(sysWorkflowNode);
return AjaxResult.success(integerSysWorkflowNodeMap);
}catch (Exception e){
return AjaxResult.error();
}
}
} }

View File

@ -82,6 +82,11 @@ public class SysWorkflowNode {
*/ */
private String taskId; private String taskId;
/**
* 工程Id
*/
private String proId;
/** /**
* 任务类型 * 任务类型
*/ */

View File

@ -18,4 +18,6 @@ public interface SysWorkflowNodeMapper {
List<SysWorkflowNode> listByTaskId(SysWorkflowNode sysWorkflowNode); List<SysWorkflowNode> listByTaskId(SysWorkflowNode sysWorkflowNode);
SysWorkflowNode selectSysWorkflowNodeById(Integer nodeId); SysWorkflowNode selectSysWorkflowNodeById(Integer nodeId);
List<SysWorkflowNode> getTaskIdByProId(SysWorkflowNode sysWorkflowNode);
} }

View File

@ -4,6 +4,7 @@ package com.bonus.material.work.service;
import com.bonus.material.work.domain.SysWorkflowNode; import com.bonus.material.work.domain.SysWorkflowNode;
import java.util.List; import java.util.List;
import java.util.Map;
public interface SysWorkflowNodeService { public interface SysWorkflowNodeService {
List<SysWorkflowNode> selectSysWorkflowNodeList(SysWorkflowNode sysWorkflowNode); List<SysWorkflowNode> selectSysWorkflowNodeList(SysWorkflowNode sysWorkflowNode);
@ -17,4 +18,6 @@ public interface SysWorkflowNodeService {
List<SysWorkflowNode> listByTaskId(SysWorkflowNode sysWorkflowNode); List<SysWorkflowNode> listByTaskId(SysWorkflowNode sysWorkflowNode);
void copeNodeConfigPersonValuesByNode(SysWorkflowNode forSysWorkflowNode); void copeNodeConfigPersonValuesByNode(SysWorkflowNode forSysWorkflowNode);
Map<Integer, SysWorkflowNode> listByProId(SysWorkflowNode sysWorkflowNode);
} }

View File

@ -16,9 +16,12 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.IntStream;
@Service @Service
public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService { public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService {
@ -215,4 +218,86 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService {
System.err.println("执行审核流配置角色处理方法时发生异常:" + e.getMessage()); System.err.println("执行审核流配置角色处理方法时发生异常:" + e.getMessage());
} }
} }
@Override
public Map<Integer, SysWorkflowNode> listByProId(SysWorkflowNode sysWorkflowNode) {
Long userId = SecurityUtils.getLoginUser().getUserid();
// 获取工程下所有的任务id
List<SysWorkflowNode> list = sysWorkflowNodeMapper.getTaskIdByProId(sysWorkflowNode);
List<SysWorkflowNode> sysWorkflowNodeLists = new ArrayList<>();
for (SysWorkflowNode workflowNode : list) {
sysWorkflowNode.setTaskId(workflowNode.getTaskId());
List<SysWorkflowNode> sysWorkflowNodeList = sysWorkflowNodeMapper.listByTaskId(sysWorkflowNode);
if (sysWorkflowNodeList != null && !sysWorkflowNodeList.isEmpty()){
sysWorkflowNodeLists.addAll(sysWorkflowNodeList);
}
}
for (SysWorkflowNode forSysWorkflowNode : sysWorkflowNodeLists) {
// 传入节点信息自动处理节点配置角色相关的处理
copeNodeConfigPersonValuesByNode(forSysWorkflowNode);
SysWorkflowRecordHistory sysWorkflowRecordHistory = new SysWorkflowRecordHistory();
sysWorkflowRecordHistory.setRecordId(forSysWorkflowNode.getRecordId());
sysWorkflowRecordHistory.setNodeId(forSysWorkflowNode.getNodeId());
List<SysWorkflowRecordHistory> sysWorkflowRecordHistoryList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory);
if (!sysWorkflowRecordHistoryList.isEmpty()) {
//判断是或签还是会签0:或签 1:会签
if (0 == forSysWorkflowNode.getNodeSignType()) {
forSysWorkflowNode.setIsAccept(sysWorkflowRecordHistoryList.get(0).getIsAccept());
forSysWorkflowNode.setCreateTime(sysWorkflowRecordHistoryList.get(0).getCreateTime());
forSysWorkflowNode.setRemark(sysWorkflowRecordHistoryList.get(0).getRemark());
forSysWorkflowNode.setAuditBy(sysWorkflowRecordHistoryList.get(0).getAuditBy());
} else {
String[] configValue = forSysWorkflowNode.getConfigValues().split(",");
List<String> filteredList = Arrays.stream(configValue).collect(Collectors.toList());
// 过滤数组元素
for (SysWorkflowRecordHistory sysWorkflowRecordHistoryNew : sysWorkflowRecordHistoryList) {
// 过滤数组元素
filteredList = filteredList.stream()
.filter(value ->value != null && !value.equals(sysWorkflowRecordHistoryNew.getCreateBy()))
.collect(Collectors.toList());
}
//获取所有的审核状态
List<Integer> isAcceptList =sysWorkflowRecordHistoryList.stream()
.map(SysWorkflowRecordHistory::getIsAccept)
.collect(Collectors.toList());
//判断是否有人是驳回
if (isAcceptList.contains(2)) {
//获取驳回信息
List<SysWorkflowRecordHistory> sysWorkflowRecordHistoryListNew = sysWorkflowRecordHistoryList.stream()
.filter(value ->value != null && 2 == (value.getIsAccept()))
.collect(Collectors.toList());
forSysWorkflowNode.setIsAccept(sysWorkflowRecordHistoryListNew.get(0).getIsAccept());
forSysWorkflowNode.setCreateTime(sysWorkflowRecordHistoryListNew.get(0).getCreateTime());
forSysWorkflowNode.setRemark(sysWorkflowRecordHistoryListNew.get(0).getRemark());
forSysWorkflowNode.setAuditBy(sysWorkflowRecordHistoryListNew.get(0).getAuditBy());
} else {
// 获取当前人的审核信息
List<SysWorkflowRecordHistory> sysWorkflowRecordHistoryListNew = sysWorkflowRecordHistoryList.stream()
.filter(value -> value != null && userId.toString().equals(value.getCreateBy()))
.collect(Collectors.toList());
// 判断当前人是否是这个节点的审核人
if (!sysWorkflowRecordHistoryListNew.isEmpty()) {
forSysWorkflowNode.setIsAccept(sysWorkflowRecordHistoryListNew.get(0).getIsAccept());
forSysWorkflowNode.setCreateTime(sysWorkflowRecordHistoryListNew.get(0).getCreateTime());
forSysWorkflowNode.setRemark(sysWorkflowRecordHistoryListNew.get(0).getRemark());
forSysWorkflowNode.setAuditBy(sysWorkflowRecordHistoryListNew.get(0).getAuditBy());
} else {
forSysWorkflowNode.setIsAccept(sysWorkflowRecordHistoryList.get(0).getIsAccept());
forSysWorkflowNode.setCreateTime(sysWorkflowRecordHistoryList.get(0).getCreateTime());
forSysWorkflowNode.setRemark(sysWorkflowRecordHistoryList.get(0).getRemark());
forSysWorkflowNode.setAuditBy(sysWorkflowRecordHistoryList.get(0).getAuditBy());
}
}
}
}
}
Map<Integer, SysWorkflowNode> resultMap = IntStream.range(0, sysWorkflowNodeLists.size())
.boxed()
.collect(Collectors.toMap(
i -> i + 1,
i -> sysWorkflowNodeLists.get(i)
));
return resultMap;
}
} }

View File

@ -66,6 +66,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN ma_machine mm ON mm.ma_id = lod.ma_id LEFT JOIN ma_machine mm ON mm.ma_id = lod.ma_id
where 1=1 where 1=1
<if test="externalId != null and externalId != '' ">
and bpl.external_id = #{externalId}
</if>
<if test="keyWord != null and keyWord != ''"> <if test="keyWord != null and keyWord != ''">
and (bai.agreement_code like concat('%',#{keyWord},'%') or and (bai.agreement_code like concat('%',#{keyWord},'%') or
bui.unit_name like concat('%',#{keyWord},'%') or bui.unit_name like concat('%',#{keyWord},'%') or
@ -132,6 +135,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN ma_machine mm ON mm.ma_id = bcd.ma_id LEFT JOIN ma_machine mm ON mm.ma_id = bcd.ma_id
where 1=1 and bcd.is_finished = '1' where 1=1 and bcd.is_finished = '1'
<if test="externalId != null and externalId != '' ">
and bpl.external_id = #{externalId}
</if>
<if test="keyWord != null and keyWord != ''"> <if test="keyWord != null and keyWord != ''">
and (bai.agreement_code like concat('%',#{keyWord},'%') or and (bai.agreement_code like concat('%',#{keyWord},'%') or
bui.unit_name like concat('%',#{keyWord},'%') or bui.unit_name like concat('%',#{keyWord},'%') or

View File

@ -109,6 +109,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where where
id = #{nodeId} id = #{nodeId}
</select> </select>
<select id="getTaskIdByProId" resultType="com.bonus.material.work.domain.SysWorkflowNode">
select
bp.pro_id as proId,
lai.task_id as taskId
from
lease_apply_info lai
left join tm_task tt on lai.task_id = tt.task_id
left join lease_apply_details lad on lai.id = lad.parent_id
left join tm_task_agreement tta on lai.task_id = tta.task_id
left join bm_agreement_info bai on tta.agreement_id = bai.agreement_id
left join bm_unit bu on bu.unit_id = lai.unit_id
left join bm_project bp on bp.pro_id = lai.project_id
left join sys_dept sd on sd.dept_id = bp.imp_unit
left join sys_dict_data sda on tt.task_status = sda.dict_value
and sda.dict_type = 'lease_task_status'
left join ma_type mt on lad.type_id = mt.type_id and mt.del_flag = '0'
left join ma_type mt1 on mt.parent_id = mt1.type_id and mt1.del_flag = '0'
left join sys_workflow_record swr on tt.task_id = swr.task_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_config swc on swn.id = swc.node_id
left join sys_workflow_record_history swrs on swr.id = swrs.record_id
where 1=1
and bp.pro_id = #{proId}
GROUP BY lai.id
ORDER BY tt.create_time desc
</select>
</mapper> </mapper>