diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectReportController.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectReportController.java index c0cd79ee..2c103d0d 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectReportController.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectReportController.java @@ -44,7 +44,6 @@ public class ErpProjectReportController extends BaseController { @SaCheckPermission("oa/erp:projectReport:list") @GetMapping("/list") public TableDataInfo list(ErpProjectReportBo bo, PageQuery pageQuery) { - return erpProjectReportService.queryPageList(bo, pageQuery); } diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectReportVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectReportVo.java index e449f6bd..7c51f5a9 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectReportVo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectReportVo.java @@ -6,6 +6,7 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.oa.erp.domain.ErpProjectReport; import java.io.Serial; @@ -21,7 +22,7 @@ import java.io.Serializable; @Data @ExcelIgnoreUnannotated @AutoMapper(target = ErpProjectReport.class) -public class ErpProjectReportVo implements Serializable { +public class ErpProjectReportVo extends BaseEntity implements Serializable { @Serial private static final long serialVersionUID = 1L; @@ -29,13 +30,13 @@ public class ErpProjectReportVo implements Serializable { /** * 项目周报ID */ - @ExcelProperty(value = "项目周报ID") +// @ExcelProperty(value = "项目周报ID") private Long reportId; /** * 项目ID */ - @ExcelProperty(value = "项目ID") +// @ExcelProperty(value = "项目ID") private Long projectId; /** @@ -43,6 +44,11 @@ public class ErpProjectReportVo implements Serializable { */ @ExcelProperty(value = "项目名称") private String projectName; + /** + * 项目编码 + */ + @ExcelProperty(value = "项目编码") + private String projectCode; /** * 当前里程碑 @@ -53,70 +59,27 @@ public class ErpProjectReportVo implements Serializable { /** * 项目经理 */ - @ExcelProperty(value = "项目经理") +// @ExcelProperty(value = "项目经理") private Long managerId; /** * 部门ID */ - @ExcelProperty(value = "部门ID") +// @ExcelProperty(value = "部门ID") private Long deptId; /** * 部门负责人 */ - @ExcelProperty(value = "部门负责人") +// @ExcelProperty(value = "部门负责人") private Long chargeId; /** * 分管副总 */ - @ExcelProperty(value = "分管副总") +// @ExcelProperty(value = "分管副总") private Long deputyId; - /** - * 周报情况说明 - */ - @ExcelProperty(value = "周报情况说明") - private String informationNote; - - /** - * 排序号 - */ - @ExcelProperty(value = "排序号") - private Long sortOrder; - - /** - * 附件ID(预留) - */ - @ExcelProperty(value = "附件ID", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "预=留") - private String ossId; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - - /** - * 激活标识(1是 0否) - */ - @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "1=是,0=否") - private String activeFlag; - - /** - * 项目编码 - */ - @ExcelProperty(value = "项目编码") - private String projectCode; - /** - * 项目类型名称 - */ - @ExcelProperty(value = "项目类型名称") - private String typeName; - /** * 部门名称 */ @@ -140,5 +103,43 @@ public class ErpProjectReportVo implements Serializable { */ @ExcelProperty(value = "分管副总名称") private String deputyName; + /** + * 周报情况说明 + */ + @ExcelProperty(value = "周报情况说明") + private String informationNote; + + /** + * 排序号 + */ +// @ExcelProperty(value = "排序号") + private Long sortOrder; + + /** + * 附件ID(预留) + */ + @ExcelProperty(value = "附件ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "预=留") + private String ossId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "1=是,0=否") + private String activeFlag; + + /** + * 项目类型名称 + */ +// @ExcelProperty(value = "项目类型名称") + private String typeName; + } diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectReportMapper.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectReportMapper.java index 7cde812d..44a4fbac 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectReportMapper.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectReportMapper.java @@ -45,4 +45,8 @@ public interface ErpProjectReportMapper extends BaseMapperPlus selectCustomErpProjectReportVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + public ErpProjectReportVo selectVoAndUserById(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + public List selectVoAndUserList(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); } diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectReportDetailServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectReportDetailServiceImpl.java index b1247d25..6e4e61ed 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectReportDetailServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectReportDetailServiceImpl.java @@ -34,8 +34,10 @@ 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; @@ -55,12 +57,12 @@ public class ErpProjectReportDetailServiceImpl implements IErpProjectReportDetai private final IErpProjectReportService erpProjectReportService; - private final ErpProjectReportDetailMapper baseMapper; @DubboReference(timeout = 30000) private RemoteWorkflowService remoteWorkflowService; + /** * 查询项目周报明细 * @@ -68,23 +70,23 @@ public class ErpProjectReportDetailServiceImpl implements IErpProjectReportDetai * @return 项目周报明细 */ @Override - public ErpProjectReportDetailVo queryById(Long reportDetailId){ + public ErpProjectReportDetailVo queryById(Long reportDetailId) { return baseMapper.selectVoById(reportDetailId); } - /** - * 分页查询项目周报明细列表 - * - * @param bo 查询条件 - * @param pageQuery 分页参数 - * @return 项目周报明细分页列表 - */ - @Override - public TableDataInfo queryPageList(ErpProjectReportDetailBo bo, PageQuery pageQuery) { - MPJLambdaWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } + /** + * 分页查询项目周报明细列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 项目周报明细分页列表 + */ + @Override + public TableDataInfo queryPageList(ErpProjectReportDetailBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } /** * 查询符合条件的项目周报明细列表 @@ -101,27 +103,26 @@ public class ErpProjectReportDetailServiceImpl implements IErpProjectReportDetai private MPJLambdaWrapper buildQueryWrapper(ErpProjectReportDetailBo bo) { Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(ErpProjectReportDetail.class) - .selectAll(ErpProjectReportDetail.class) - .eq(bo.getReportId() != null, ErpProjectReportDetail::getReportId, bo.getReportId()) - .eq(bo.getProjectId() != null, ErpProjectReportDetail::getProjectId, bo.getProjectId()) - .eq(bo.getFillTime() != null, ErpProjectReportDetail::getFillTime, bo.getFillTime()) - .eq(StringUtils.isNotBlank(bo.getCurrentWorkWeek()), ErpProjectReportDetail::getCurrentWorkWeek, bo.getCurrentWorkWeek()) - .eq(StringUtils.isNotBlank(bo.getMilestonePlan()), ErpProjectReportDetail::getMilestonePlan, bo.getMilestonePlan()) - .eq(StringUtils.isNotBlank(bo.getSecondaryPhase()), ErpProjectReportDetail::getSecondaryPhase, bo.getSecondaryPhase()) - .eq(StringUtils.isNotBlank(bo.getTasksCompleted()), ErpProjectReportDetail::getTasksCompleted, bo.getTasksCompleted()) - .eq(StringUtils.isNotBlank(bo.getNextPlan()), ErpProjectReportDetail::getNextPlan, bo.getNextPlan()) - .eq(StringUtils.isNotBlank(bo.getRiskResolution()), ErpProjectReportDetail::getRiskResolution, bo.getRiskResolution()) - .eq(bo.getPlannedCompletionRate() != null, ErpProjectReportDetail::getPlannedCompletionRate, bo.getPlannedCompletionRate()) - .eq(StringUtils.isNotBlank(bo.getInformationNote()), ErpProjectReportDetail::getInformationNote, bo.getInformationNote()) - .eq(StringUtils.isNotBlank(bo.getScheduleStatus()), ErpProjectReportDetail::getScheduleStatus, bo.getScheduleStatus()) - .eq(StringUtils.isNotBlank(bo.getProjectReportStatus()), ErpProjectReportDetail::getProjectReportStatus, bo.getProjectReportStatus()) - .eq(StringUtils.isNotBlank(bo.getFlowStatus()), ErpProjectReportDetail::getFlowStatus, bo.getFlowStatus()) - .eq(bo.getSortOrder() != null, ErpProjectReportDetail::getSortOrder, bo.getSortOrder()) - .eq(StringUtils.isNotBlank(bo.getProjectPhases()), ErpProjectReportDetail::getProjectPhases, bo.getProjectPhases()) - .eq(bo.getContractId() != null, ErpProjectReportDetail::getContractId, bo.getContractId()) - .eq(StringUtils.isNotBlank(bo.getOssId()), ErpProjectReportDetail::getOssId, bo.getOssId()) - .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ErpProjectReportDetail::getActiveFlag, bo.getActiveFlag()) -; + .selectAll(ErpProjectReportDetail.class) + .eq(bo.getReportId() != null, ErpProjectReportDetail::getReportId, bo.getReportId()) + .eq(bo.getProjectId() != null, ErpProjectReportDetail::getProjectId, bo.getProjectId()) + .eq(bo.getFillTime() != null, ErpProjectReportDetail::getFillTime, bo.getFillTime()) + .eq(StringUtils.isNotBlank(bo.getCurrentWorkWeek()), ErpProjectReportDetail::getCurrentWorkWeek, bo.getCurrentWorkWeek()) + .eq(StringUtils.isNotBlank(bo.getMilestonePlan()), ErpProjectReportDetail::getMilestonePlan, bo.getMilestonePlan()) + .eq(StringUtils.isNotBlank(bo.getSecondaryPhase()), ErpProjectReportDetail::getSecondaryPhase, bo.getSecondaryPhase()) + .eq(StringUtils.isNotBlank(bo.getTasksCompleted()), ErpProjectReportDetail::getTasksCompleted, bo.getTasksCompleted()) + .eq(StringUtils.isNotBlank(bo.getNextPlan()), ErpProjectReportDetail::getNextPlan, bo.getNextPlan()) + .eq(StringUtils.isNotBlank(bo.getRiskResolution()), ErpProjectReportDetail::getRiskResolution, bo.getRiskResolution()) + .eq(bo.getPlannedCompletionRate() != null, ErpProjectReportDetail::getPlannedCompletionRate, bo.getPlannedCompletionRate()) + .eq(StringUtils.isNotBlank(bo.getInformationNote()), ErpProjectReportDetail::getInformationNote, bo.getInformationNote()) + .eq(StringUtils.isNotBlank(bo.getScheduleStatus()), ErpProjectReportDetail::getScheduleStatus, bo.getScheduleStatus()) + .eq(StringUtils.isNotBlank(bo.getProjectReportStatus()), ErpProjectReportDetail::getProjectReportStatus, bo.getProjectReportStatus()) + .eq(StringUtils.isNotBlank(bo.getFlowStatus()), ErpProjectReportDetail::getFlowStatus, bo.getFlowStatus()) + .eq(bo.getSortOrder() != null, ErpProjectReportDetail::getSortOrder, bo.getSortOrder()) + .eq(StringUtils.isNotBlank(bo.getProjectPhases()), ErpProjectReportDetail::getProjectPhases, bo.getProjectPhases()) + .eq(bo.getContractId() != null, ErpProjectReportDetail::getContractId, bo.getContractId()) + .eq(StringUtils.isNotBlank(bo.getOssId()), ErpProjectReportDetail::getOssId, bo.getOssId()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ErpProjectReportDetail::getActiveFlag, bo.getActiveFlag()); return lqw; } @@ -158,7 +159,7 @@ public class ErpProjectReportDetailServiceImpl implements IErpProjectReportDetai /** * 保存前的数据校验 */ - private void validEntityBeforeSave(ErpProjectReportDetail entity){ + private void validEntityBeforeSave(ErpProjectReportDetail entity) { //TODO 做一些数据校验,如唯一约束 } @@ -171,7 +172,7 @@ public class ErpProjectReportDetailServiceImpl implements IErpProjectReportDetai */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; @@ -179,14 +180,15 @@ public class ErpProjectReportDetailServiceImpl implements IErpProjectReportDetai /** * 提交项目周报信息并提交流程 + * * @param projectReport * @param projectDetailReport * @return */ @Override - @GlobalTransactional(rollbackFor = Exception.class) + @Transactional(rollbackFor = Exception.class) public ErpProjectReportDetailVo projectReportSubmitAndFlowStart(ErpProjectReportBo projectReport, ErpProjectReportDetailBo projectDetailReport) { - if (projectReport.getReportId() != null) { + if (StringUtils.isNotNull(projectReport.getReportId())) { ErpProjectReportVo existingReport = erpProjectReportService.queryById(projectReport.getReportId()); if (existingReport != null) { erpProjectReportService.updateByBo(projectReport); diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectReportServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectReportServiceImpl.java index 19d98791..9b226b54 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectReportServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectReportServiceImpl.java @@ -8,6 +8,7 @@ import org.dromara.common.core.utils.MapstructUtils; 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.oa.erp.domain.ErpProjectContracts; import org.dromara.oa.erp.domain.ErpProjectReport; import org.dromara.oa.erp.domain.bo.ErpProjectReportBo; import org.dromara.oa.erp.domain.vo.ErpProjectReportVo; @@ -39,7 +40,11 @@ public class ErpProjectReportServiceImpl implements IErpProjectReportService { */ @Override public ErpProjectReportVo queryById(Long reportId) { - return baseMapper.selectVoById(reportId); + ErpProjectReportBo bo = new ErpProjectReportBo(); + bo.setReportId(reportId); + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + lqw.eq(reportId != null, ErpProjectReport::getReportId, bo.getReportId()); + return baseMapper.selectVoAndUserById(lqw); } /** @@ -65,7 +70,7 @@ public class ErpProjectReportServiceImpl implements IErpProjectReportService { @Override public List queryList(ErpProjectReportBo bo) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + return baseMapper.selectVoAndUserList(lqw); } private MPJLambdaWrapper buildQueryWrapper(ErpProjectReportBo bo) { @@ -82,14 +87,13 @@ public class ErpProjectReportServiceImpl implements IErpProjectReportService { .eq(bo.getSortOrder() != null, ErpProjectReport::getSortOrder, bo.getSortOrder()) .eq(StringUtils.isNotBlank(bo.getOssId()), ErpProjectReport::getOssId, bo.getOssId()) .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ErpProjectReport::getActiveFlag, bo.getActiveFlag()) + .eq("t.del_flag", "0") .like(StringUtils.isNotBlank(bo.getProjectName()), ErpProjectReport::getProjectName, bo.getProjectName()) .like(StringUtils.isNotBlank(bo.getProjectCode()), ErpProjectReport::getProjectCode, bo.getProjectCode()) - // 关联表条件 - 使用 apply 方法添加 .apply(StringUtils.isNotBlank(bo.getDeptName()), "d.dept_name LIKE CONCAT('%', {0}, '%')", bo.getDeptName()) .apply(StringUtils.isNotBlank(bo.getManagerName()), "u1.nick_name LIKE CONCAT('%', {0}, '%')", bo.getManagerName()) .apply(StringUtils.isNotBlank(bo.getChargeName()), "u2.nick_name LIKE CONCAT('%', {0}, '%')", bo.getChargeName()) .apply(StringUtils.isNotBlank(bo.getDeputyName()), "u3.nick_name LIKE CONCAT('%', {0}, '%')", bo.getDeputyName()); - return lqw; } diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectReportMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectReportMapper.xml index 900372e4..0ac908a6 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectReportMapper.xml +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectReportMapper.xml @@ -6,39 +6,66 @@ - + SELECT + + + ${ew.customSqlSegment} + + + + + + +