项目周报完善

dev
lh 1 week ago
parent cebf0c0483
commit 9a1da3269d

@ -119,7 +119,7 @@ public class ErpProjectReportDetailController extends BaseController {
} }
/** /**
* *
* @param wrapper * @param wrapper
* @return * @return
*/ */
@ -132,4 +132,6 @@ public class ErpProjectReportDetailController extends BaseController {
ErpProjectReportDetailBo projectDetailReport = wrapper.getProjectDetailReport(); ErpProjectReportDetailBo projectDetailReport = wrapper.getProjectDetailReport();
return R.ok(erpProjectReportDetailService.projectReportSubmitAndFlowStart(projectReport, projectDetailReport)); return R.ok(erpProjectReportDetailService.projectReportSubmitAndFlowStart(projectReport, projectDetailReport));
} }
} }

@ -79,7 +79,7 @@ public class ErpProjectReportDetail extends TenantEntity {
/** /**
* *
*/ */
private Long plannedCompletionRate; private Double plannedCompletionRate;
/** /**
* *

@ -80,7 +80,7 @@ public class ErpProjectReportDetailBo extends BaseEntity {
/** /**
* *
*/ */
private Long plannedCompletionRate; private Double plannedCompletionRate;
/** /**
* *

@ -2,6 +2,7 @@ package org.dromara.oa.erp.domain.vo;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty; import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.annotation.write.style.ColumnWidth;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.annotation.ExcelDictFormat;
@ -47,30 +48,31 @@ public class ErpProjectReportDetailVo implements Serializable {
/** /**
* *
*/ */
@ExcelProperty(value = "部门名称") // @ExcelProperty(value = "部门名称")
private String deptName; private String deptName;
/** /**
* *
*/ */
@ExcelProperty(value = "项目经理名称") // @ExcelProperty(value = "项目经理名称")
private String managerName; private String managerName;
/** /**
* *
*/ */
@ExcelProperty(value = "部门负责人名称") // @ExcelProperty(value = "部门负责人名称")
private String chargeName; private String chargeName;
/** /**
* *
*/ */
@ExcelProperty(value = "分管副总名称") // @ExcelProperty(value = "分管副总名称")
private String deputyName; private String deputyName;
/** /**
* *
*/ */
@ExcelProperty(value = "填写日期") @ExcelProperty(value = "填写日期")
@ColumnWidth(20) // 设置列宽为20个字符
private Date fillTime; private Date fillTime;
/** /**
@ -113,7 +115,7 @@ public class ErpProjectReportDetailVo implements Serializable {
* *
*/ */
@ExcelProperty(value = "计划完成率") @ExcelProperty(value = "计划完成率")
private Long plannedCompletionRate; private Double plannedCompletionRate;
/** /**
* *
@ -131,7 +133,8 @@ public class ErpProjectReportDetailVo implements Serializable {
/** /**
* (1 2 3) * (1 2 3)
*/ */
@ExcelProperty(value = "周报状态(1暂存 2审批中 3可用)") @ExcelProperty(value = "周报状态(1暂存 2审批中 3可用)", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "1=暂存,2=审批中,3=可用")
private String projectReportStatus; private String projectReportStatus;
/** /**

@ -71,9 +71,10 @@ public interface IErpProjectReportDetailService {
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/** /**
* *
* @param * @param
* @return * @return
*/ */
ErpProjectReportDetailVo projectReportSubmitAndFlowStart(ErpProjectReportBo projectReport, ErpProjectReportDetailBo projectDetailReport); ErpProjectReportDetailVo projectReportSubmitAndFlowStart(ErpProjectReportBo projectReport, ErpProjectReportDetailBo projectDetailReport);
} }

@ -84,6 +84,7 @@ public class ErpProjectReportDetailServiceImpl implements IErpProjectReportDetai
@Override @Override
public TableDataInfo<ErpProjectReportDetailVo> queryPageList(ErpProjectReportDetailBo bo, PageQuery pageQuery) { public TableDataInfo<ErpProjectReportDetailVo> queryPageList(ErpProjectReportDetailBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<ErpProjectReportDetail> lqw = buildQueryWrapper(bo); MPJLambdaWrapper<ErpProjectReportDetail> lqw = buildQueryWrapper(bo);
lqw.orderByDesc(ErpProjectReportDetail::getFillTime);
Page<ErpProjectReportDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); Page<ErpProjectReportDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
@ -179,8 +180,7 @@ public class ErpProjectReportDetailServiceImpl implements IErpProjectReportDetai
} }
/** /**
* *
*
* @param projectReport * @param projectReport
* @param projectDetailReport * @param projectDetailReport
* @return * @return
@ -194,9 +194,13 @@ public class ErpProjectReportDetailServiceImpl implements IErpProjectReportDetai
erpProjectReportService.updateByBo(projectReport); erpProjectReportService.updateByBo(projectReport);
} else { } else {
erpProjectReportService.insertByBo(projectReport); erpProjectReportService.insertByBo(projectReport);
projectDetailReport.setReportId(projectReport.getReportId());
projectDetailReport.setProjectId(projectReport.getProjectId());
} }
} else { } else {
erpProjectReportService.insertByBo(projectReport); erpProjectReportService.insertByBo(projectReport);
projectDetailReport.setReportId(projectReport.getReportId());
projectDetailReport.setProjectId(projectReport.getProjectId());
} }
ErpProjectReportDetail erpProjectReportDetail = MapstructUtils.convert(projectDetailReport, ErpProjectReportDetail.class); ErpProjectReportDetail erpProjectReportDetail = MapstructUtils.convert(projectDetailReport, ErpProjectReportDetail.class);
validEntityBeforeSave(erpProjectReportDetail); validEntityBeforeSave(erpProjectReportDetail);

@ -10,11 +10,15 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.oa.erp.domain.ErpProjectContracts; import org.dromara.oa.erp.domain.ErpProjectContracts;
import org.dromara.oa.erp.domain.ErpProjectReport; import org.dromara.oa.erp.domain.ErpProjectReport;
import org.dromara.oa.erp.domain.ErpProjectReportDetail;
import org.dromara.oa.erp.domain.bo.ErpProjectReportBo; import org.dromara.oa.erp.domain.bo.ErpProjectReportBo;
import org.dromara.oa.erp.domain.vo.ErpProjectReportVo; import org.dromara.oa.erp.domain.vo.ErpProjectReportVo;
import org.dromara.oa.erp.mapper.ErpProjectReportDetailMapper;
import org.dromara.oa.erp.mapper.ErpProjectReportMapper; import org.dromara.oa.erp.mapper.ErpProjectReportMapper;
import org.dromara.oa.erp.service.IErpProjectReportDetailService;
import org.dromara.oa.erp.service.IErpProjectReportService; import org.dromara.oa.erp.service.IErpProjectReportService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -32,6 +36,9 @@ public class ErpProjectReportServiceImpl implements IErpProjectReportService {
private final ErpProjectReportMapper baseMapper; private final ErpProjectReportMapper baseMapper;
private final ErpProjectReportDetailMapper erpProjectReportDetailMapper;
/** /**
* *
* *
@ -143,10 +150,16 @@ public class ErpProjectReportServiceImpl implements IErpProjectReportService {
* @return * @return
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if (isValid) { if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验 //TODO 做一些业务上的校验,判断是否需要校验
} }
return baseMapper.deleteByIds(ids) > 0; boolean p = baseMapper.deleteByIds(ids) > 0;
// 构建删除条件根据reportIds删除所有相关的明细
MPJLambdaWrapper<ErpProjectReportDetail> wrapper = JoinWrappers.lambda(ErpProjectReportDetail.class)
.in(ErpProjectReportDetail::getReportId, ids);
boolean pd = erpProjectReportDetailMapper.delete(wrapper) > 0;
return p && pd;
} }
} }

Loading…
Cancel
Save