接口提交
This commit is contained in:
parent
27f44676f4
commit
ff2cf08087
|
|
@ -110,4 +110,7 @@ public class ProjUsingRecord {
|
|||
@Excel(name = "协议状态")
|
||||
private String isSltName;
|
||||
|
||||
private String externalIds;
|
||||
@ApiModelProperty(value = "关联外部(第三方)的工程ID")
|
||||
private String externalId;
|
||||
}
|
||||
|
|
@ -20,6 +20,7 @@ import java.util.stream.Collectors;
|
|||
|
||||
/**
|
||||
* 综合查询服务实现类
|
||||
*
|
||||
* @Author ma_sh
|
||||
* @create 2024/12/16 10:53
|
||||
*/
|
||||
|
|
@ -32,16 +33,29 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
|
||||
/**
|
||||
* 工程机具使用列表
|
||||
*
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
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
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -52,40 +66,42 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
|
||||
/**
|
||||
* 导出工程机具使用列表
|
||||
*
|
||||
* @param bean
|
||||
*/
|
||||
@Override
|
||||
public List<ProjUsingRecord> exportProjUsingRecord(ProjUsingRecord bean) {
|
||||
// 使用 BigDecimal 常量初始化
|
||||
BigDecimal totalLeaseNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal totalBackNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal totalUsNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal totalUsPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
BigDecimal totalTotalPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
List<ProjUsingRecord> list = complexQueryMapper.getProjUsingRecordList(bean);
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
ProjUsingRecord projUsingRecord = new ProjUsingRecord();
|
||||
for (ProjUsingRecord record : list) {
|
||||
totalLeaseNum = totalLeaseNum.add(record.getLeaseNum());
|
||||
totalBackNum = totalBackNum.add(record.getBackNum());
|
||||
totalUsNum = totalUsNum.add(record.getUsNum());
|
||||
totalUsPrice = totalUsPrice.add(record.getUsPrice());
|
||||
totalTotalPrice = totalTotalPrice.add(record.getTotalPrice());
|
||||
}
|
||||
// 设置 ProjUsingDto 总结数据
|
||||
projUsingRecord.setLeaseNum(totalLeaseNum.setScale(3, RoundingMode.HALF_UP));
|
||||
projUsingRecord.setBackNum(totalBackNum.setScale(3, RoundingMode.HALF_UP));
|
||||
projUsingRecord.setUsNum(totalUsNum.setScale(3, RoundingMode.HALF_UP));
|
||||
projUsingRecord.setUsPrice(totalUsPrice.setScale(2, RoundingMode.HALF_UP));
|
||||
projUsingRecord.setTotalPrice(totalTotalPrice.setScale(2, RoundingMode.HALF_UP));
|
||||
projUsingRecord.setUnit("合计");
|
||||
list.add(0,projUsingRecord);
|
||||
// 使用 BigDecimal 常量初始化
|
||||
BigDecimal totalLeaseNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal totalBackNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal totalUsNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal totalUsPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
BigDecimal totalTotalPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
List<ProjUsingRecord> list = complexQueryMapper.getProjUsingRecordList(bean);
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
ProjUsingRecord projUsingRecord = new ProjUsingRecord();
|
||||
for (ProjUsingRecord record : list) {
|
||||
totalLeaseNum = totalLeaseNum.add(record.getLeaseNum());
|
||||
totalBackNum = totalBackNum.add(record.getBackNum());
|
||||
totalUsNum = totalUsNum.add(record.getUsNum());
|
||||
totalUsPrice = totalUsPrice.add(record.getUsPrice());
|
||||
totalTotalPrice = totalTotalPrice.add(record.getTotalPrice());
|
||||
}
|
||||
return list;
|
||||
// 设置 ProjUsingDto 总结数据
|
||||
projUsingRecord.setLeaseNum(totalLeaseNum.setScale(3, RoundingMode.HALF_UP));
|
||||
projUsingRecord.setBackNum(totalBackNum.setScale(3, RoundingMode.HALF_UP));
|
||||
projUsingRecord.setUsNum(totalUsNum.setScale(3, RoundingMode.HALF_UP));
|
||||
projUsingRecord.setUsPrice(totalUsPrice.setScale(2, RoundingMode.HALF_UP));
|
||||
projUsingRecord.setTotalPrice(totalTotalPrice.setScale(2, RoundingMode.HALF_UP));
|
||||
projUsingRecord.setUnit("合计");
|
||||
list.add(0, projUsingRecord);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 机具入库查询列表
|
||||
*
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -128,6 +144,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
|
||||
/**
|
||||
* 机具出库查询列表
|
||||
*
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -159,6 +176,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
|
||||
/**
|
||||
* 保有设备总量查询
|
||||
*
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -262,6 +280,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
|
||||
/**
|
||||
* 查询机具编码
|
||||
*
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -319,6 +338,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
|
||||
/**
|
||||
* 去重maCode,保留最新的一个
|
||||
*
|
||||
* @param list
|
||||
*/
|
||||
private void extracted(List<StorageInfo> list) {
|
||||
|
|
@ -347,6 +367,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
|
||||
/**
|
||||
* 查询在用设备详情
|
||||
*
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -385,6 +406,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
|
||||
/**
|
||||
* 判断item是否包含关键字
|
||||
*
|
||||
* @param item
|
||||
* @param keyWord
|
||||
* @return
|
||||
|
|
@ -395,11 +417,12 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
(item.getCreator() != null && item.getCreator().equals(keyWord)) ||
|
||||
(item.getMaCode() != null && item.getMaCode().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
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -410,6 +433,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
|
||||
/**
|
||||
* 查询新购待入库设备详情
|
||||
*
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -476,6 +500,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
|
||||
/**
|
||||
* 查询修饰待入库设备详情
|
||||
*
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -486,6 +511,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
|
||||
/**
|
||||
* 查询待报废设备详情
|
||||
*
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -496,6 +522,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
|
||||
/**
|
||||
* 查询已审核报废设备详情
|
||||
*
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -506,6 +533,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
|||
|
||||
/**
|
||||
* 修试查询--一机一档案查询
|
||||
*
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.*;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Api(tags = "工作流详情表")
|
||||
@RestController
|
||||
|
|
@ -100,4 +101,20 @@ public class SysWorkflowNodeController extends BaseController {
|
|||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,6 +82,11 @@ public class SysWorkflowNode {
|
|||
*/
|
||||
private String taskId;
|
||||
|
||||
/**
|
||||
* 工程Id
|
||||
*/
|
||||
private String proId;
|
||||
|
||||
/**
|
||||
* 任务类型
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -18,4 +18,6 @@ public interface SysWorkflowNodeMapper {
|
|||
List<SysWorkflowNode> listByTaskId(SysWorkflowNode sysWorkflowNode);
|
||||
|
||||
SysWorkflowNode selectSysWorkflowNodeById(Integer nodeId);
|
||||
|
||||
List<SysWorkflowNode> getTaskIdByProId(SysWorkflowNode sysWorkflowNode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ package com.bonus.material.work.service;
|
|||
import com.bonus.material.work.domain.SysWorkflowNode;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface SysWorkflowNodeService {
|
||||
List<SysWorkflowNode> selectSysWorkflowNodeList(SysWorkflowNode sysWorkflowNode);
|
||||
|
|
@ -17,4 +18,6 @@ public interface SysWorkflowNodeService {
|
|||
List<SysWorkflowNode> listByTaskId(SysWorkflowNode sysWorkflowNode);
|
||||
|
||||
void copeNodeConfigPersonValuesByNode(SysWorkflowNode forSysWorkflowNode);
|
||||
|
||||
Map<Integer, SysWorkflowNode> listByProId(SysWorkflowNode sysWorkflowNode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,9 +16,12 @@ import org.springframework.stereotype.Service;
|
|||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
@Service
|
||||
public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService {
|
||||
|
|
@ -215,4 +218,86 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService {
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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_machine mm ON mm.ma_id = lod.ma_id
|
||||
where 1=1
|
||||
<if test="externalId != null and externalId != '' ">
|
||||
and bpl.external_id = #{externalId}
|
||||
</if>
|
||||
<if test="keyWord != null and keyWord != ''">
|
||||
and (bai.agreement_code 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_machine mm ON mm.ma_id = bcd.ma_id
|
||||
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 != ''">
|
||||
and (bai.agreement_code like concat('%',#{keyWord},'%') or
|
||||
bui.unit_name like concat('%',#{keyWord},'%') or
|
||||
|
|
|
|||
|
|
@ -109,6 +109,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
where
|
||||
id = #{nodeId}
|
||||
</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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue