|
|
|
|
@ -8,7 +8,6 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
|
|
import org.apache.seata.spring.annotation.GlobalTransactional;
|
|
|
|
|
import org.dromara.common.core.enums.BusinessStatusEnum;
|
|
|
|
|
import org.dromara.common.core.enums.OAStatusEnum;
|
|
|
|
|
import org.dromara.common.core.exception.ServiceException;
|
|
|
|
|
@ -17,32 +16,22 @@ import org.dromara.common.core.utils.StringUtils;
|
|
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
|
|
import org.dromara.common.tenant.helper.TenantHelper;
|
|
|
|
|
import org.dromara.oa.erp.domain.ErpContractInfo;
|
|
|
|
|
import org.dromara.oa.erp.domain.ErpProjectReport;
|
|
|
|
|
import org.dromara.oa.erp.domain.ErpProjectReportDetail;
|
|
|
|
|
import org.dromara.oa.erp.domain.bo.ErpContractInfoBo;
|
|
|
|
|
import org.dromara.oa.erp.domain.bo.ErpProjectReportBo;
|
|
|
|
|
import org.dromara.oa.erp.domain.bo.ErpProjectReportDetailBo;
|
|
|
|
|
import org.dromara.oa.erp.domain.bo.ProjectReportAndDetailWrapperBo;
|
|
|
|
|
import org.dromara.oa.erp.domain.vo.ErpContractInfoVo;
|
|
|
|
|
import org.dromara.oa.erp.domain.vo.ErpProjectReportDetailVo;
|
|
|
|
|
import org.dromara.oa.erp.domain.vo.ErpProjectReportVo;
|
|
|
|
|
import org.dromara.oa.erp.domain.vo.*;
|
|
|
|
|
import org.dromara.oa.erp.mapper.ErpProjectReportDetailMapper;
|
|
|
|
|
import org.dromara.oa.erp.mapper.ErpProjectReportMapper;
|
|
|
|
|
import org.dromara.oa.erp.service.IErpProjectInfoService;
|
|
|
|
|
import org.dromara.oa.erp.service.IErpProjectReportDetailService;
|
|
|
|
|
import org.dromara.oa.erp.service.IErpProjectReportService;
|
|
|
|
|
import org.dromara.workflow.api.RemoteWorkflowService;
|
|
|
|
|
import org.dromara.workflow.api.domain.RemoteStartProcess;
|
|
|
|
|
import org.dromara.workflow.api.event.ProcessEvent;
|
|
|
|
|
import org.redisson.api.RedissonClient;
|
|
|
|
|
import org.springframework.context.event.EventListener;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.util.Collection;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 项目周报明细Service业务层处理
|
|
|
|
|
@ -57,6 +46,8 @@ public class ErpProjectReportDetailServiceImpl implements IErpProjectReportDetai
|
|
|
|
|
|
|
|
|
|
private final IErpProjectReportService erpProjectReportService;
|
|
|
|
|
|
|
|
|
|
private final IErpProjectInfoService projectInfoService;
|
|
|
|
|
|
|
|
|
|
private final ErpProjectReportDetailMapper baseMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -258,4 +249,60 @@ public class ErpProjectReportDetailServiceImpl implements IErpProjectReportDetai
|
|
|
|
|
baseMapper.updateById(projectReportDetail);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 查询项目周报列表(用于导出,包含项目信息)
|
|
|
|
|
* 可以直接在原有的 queryList 方法中增加逻辑,或创建一个新方法如 queryExportList
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<ErpProjectReportDetailExportVo> queryListForExport(ErpProjectReportDetailBo bo) {
|
|
|
|
|
// 1. 查询原始的项目周报列表(假设原方法返回的是基础Vo列表)
|
|
|
|
|
List<ErpProjectReportDetailVo> baseList = this.queryList(bo); // 调用原有的查询逻辑
|
|
|
|
|
|
|
|
|
|
// 2. 转换为包含项目信息的导出Vo列表,并填充项目详情
|
|
|
|
|
List<ErpProjectReportDetailExportVo> exportList = new ArrayList<>();
|
|
|
|
|
for (ErpProjectReportDetailVo baseVo : baseList) {
|
|
|
|
|
// 使用 MapstructUtils 进行对象转换(根据你已有的工具类)
|
|
|
|
|
ErpProjectReportDetailExportVo exportVo = new ErpProjectReportDetailExportVo();
|
|
|
|
|
exportVo.setProjectId(baseVo.getProjectId());
|
|
|
|
|
exportVo.setMilestonePlan(baseVo.getMilestonePlan());
|
|
|
|
|
exportVo.setInformationNote(baseVo.getInformationNote());
|
|
|
|
|
exportVo.setOssId(baseVo.getOssId());
|
|
|
|
|
exportVo.setRemark(baseVo.getRemark());
|
|
|
|
|
exportVo.setFillTime(baseVo.getFillTime());
|
|
|
|
|
exportVo.setCurrentWorkWeek(baseVo.getCurrentWorkWeek());
|
|
|
|
|
exportVo.setSecondaryPhase(baseVo.getSecondaryPhase());
|
|
|
|
|
exportVo.setTasksCompleted(baseVo.getTasksCompleted());
|
|
|
|
|
exportVo.setNextPlan(baseVo.getNextPlan());
|
|
|
|
|
exportVo.setRiskResolution(baseVo.getRiskResolution());
|
|
|
|
|
exportVo.setPlannedCompletionRate(baseVo.getPlannedCompletionRate());
|
|
|
|
|
exportVo.setScheduleStatus(baseVo.getScheduleStatus());
|
|
|
|
|
exportVo.setProjectReportStatus(baseVo.getProjectReportStatus());
|
|
|
|
|
exportVo.setProjectStatus(baseVo.getProjectReportStatus());
|
|
|
|
|
exportVo.setFlowStatus(baseVo.getFlowStatus());
|
|
|
|
|
exportVo.setContractId(baseVo.getContractId());
|
|
|
|
|
// 3. 关键:根据项目ID查询项目详细信息
|
|
|
|
|
if (exportVo.getProjectId() != null) {
|
|
|
|
|
ErpProjectInfoVo projectInfoVo = projectInfoService.queryById(exportVo.getProjectId());
|
|
|
|
|
if (projectInfoVo != null) {
|
|
|
|
|
// 将项目信息字段注入到导出Vo中
|
|
|
|
|
exportVo.setProjectName(projectInfoVo.getProjectName());
|
|
|
|
|
exportVo.setProjectCode(projectInfoVo.getProjectCode());
|
|
|
|
|
exportVo.setContractFlag(projectInfoVo.getContractFlag());
|
|
|
|
|
exportVo.setBusinessDirection(projectInfoVo.getBusinessDirection());
|
|
|
|
|
exportVo.setProjectCategory(projectInfoVo.getProjectCategory());
|
|
|
|
|
exportVo.setPaymentMethod(projectInfoVo.getPaymentMethod());
|
|
|
|
|
exportVo.setAmount(projectInfoVo.getAmount());
|
|
|
|
|
exportVo.setProjectStatus(projectInfoVo.getProjectStatus());
|
|
|
|
|
// exportVo.setDeptName(baseVo.getDeptName());
|
|
|
|
|
// exportVo.setManagerName(baseVo.getManagerName());
|
|
|
|
|
// exportVo.setDeputyName(baseVo.getDeputyName());
|
|
|
|
|
// exportVo.setChargeName(baseVo.getChargeName());
|
|
|
|
|
// typeName 可能需要从其他关联表获取,这里假设 projectInfoVo 中已包含
|
|
|
|
|
exportVo.setTypeName(projectInfoVo.getTypeName());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
exportList.add(exportVo);
|
|
|
|
|
}
|
|
|
|
|
return exportList;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|