Commit f8301c9e authored by 施翔轲's avatar 施翔轲

修改项目文件状态,0:准备中

parent 3264a87f
...@@ -21,9 +21,9 @@ public interface CbProjectConstants { ...@@ -21,9 +21,9 @@ public interface CbProjectConstants {
*/ */
Integer CB_STAGE_TO_SOLID = 2; Integer CB_STAGE_TO_SOLID = 2;
/** /**
* 项目文件状态:待解析 * 项目文件状态:准备中
*/ */
Integer PROJECT_FILE_STATUS_WAIT_PARSE = 0; Integer PROJECT_FILE_STATUS_PREPARING = 0;
/** /**
* 项目文件状态:解析中 * 项目文件状态:解析中
*/ */
...@@ -58,25 +58,31 @@ public interface CbProjectConstants { ...@@ -58,25 +58,31 @@ public interface CbProjectConstants {
* 成本类型:直接费成本 * 成本类型:直接费成本
*/ */
Integer CB_TYPE_DIRECT_EXPENSE = 0; Integer CB_TYPE_DIRECT_EXPENSE = 0;
String CB_TYPE_DIRECT_EXPENSE_NAME = "直接费成本";
/** /**
* 成本类型:工料汇总 * 成本类型:工料汇总
*/ */
Integer CB_TYPE_QUANTITY_SUMMARY = 1; Integer CB_TYPE_QUANTITY_SUMMARY = 1;
String CB_TYPE_QUANTITY_SUMMARY_NAME = "工料汇总";
/** /**
* 成本类型:措施项目 * 成本类型:措施项目
*/ */
Integer CB_TYPE_MEASURE_PROJECT = 2; Integer CB_TYPE_MEASURE_PROJECT = 2;
String CB_TYPE_MEASURE_PROJECT_NAME = "措施项目";
/** /**
* 成本类型:其他项目 * 成本类型:其他项目
*/ */
Integer CB_TYPE_OTHER_PROJECT = 3; Integer CB_TYPE_OTHER_PROJECT = 3;
String CB_TYPE_OTHER_PROJECT_NAME = "其他项目";
/** /**
* 成本类型:现场经费 * 成本类型:现场经费
*/ */
Integer CB_TYPE_SCENE_EXPENSE = 4; Integer CB_TYPE_SCENE_EXPENSE = 4;
String CB_TYPE_SCENE_EXPENSE_NAME = "现场经费";
/** /**
* 成本类型:成本汇总 * 成本类型:成本汇总
*/ */
Integer CB_TYPE_SUMMARY = 5; Integer CB_TYPE_SUMMARY = 5;
String CB_TYPE_SUMMARY_NAME = "成本汇总";
} }
...@@ -31,7 +31,7 @@ public class CbProjectRecord extends BaseEntity implements Serializable { ...@@ -31,7 +31,7 @@ public class CbProjectRecord extends BaseEntity implements Serializable {
*/ */
private String projectName; private String projectName;
/** /**
* 项目文件状态(0:待解析、1:解析中、2:解析成功、3:解析失败) * 项目文件状态(0:准备中、1:解析中、2:解析成功、3:解析失败)
*/ */
private Integer projectFileStatus; private Integer projectFileStatus;
/** /**
......
...@@ -53,7 +53,7 @@ public class CbProjectFileServiceImpl extends ServiceImpl<CbProjectFileMapper, C ...@@ -53,7 +53,7 @@ public class CbProjectFileServiceImpl extends ServiceImpl<CbProjectFileMapper, C
projectFile.setFileOssId(oss.getOssId()); projectFile.setFileOssId(oss.getOssId());
projectFile.setFileOssUrl(oss.getUrl()); projectFile.setFileOssUrl(oss.getUrl());
//项目文件状态:解析中 //项目文件状态:解析中
projectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_WAIT_PARSE); projectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PREPARING);
//删除状态:未删除 //删除状态:未删除
projectFile.setDelFlag(CbProjectConstants.DELETE_FLAG_EXIST); projectFile.setDelFlag(CbProjectConstants.DELETE_FLAG_EXIST);
baseMapper.insert(projectFile); baseMapper.insert(projectFile);
...@@ -80,7 +80,7 @@ public class CbProjectFileServiceImpl extends ServiceImpl<CbProjectFileMapper, C ...@@ -80,7 +80,7 @@ public class CbProjectFileServiceImpl extends ServiceImpl<CbProjectFileMapper, C
*/ */
@Override @Override
public List<DraftDialogListVo> getDraftDialogList() { public List<DraftDialogListVo> getDraftDialogList() {
return baseMapper.getDraftDialogList(CbProjectConstants.PROJECT_FILE_STATUS_WAIT_PARSE, CbProjectConstants.DELETE_FLAG_EXIST); return baseMapper.getDraftDialogList(CbProjectConstants.PROJECT_FILE_STATUS_PREPARING, CbProjectConstants.DELETE_FLAG_EXIST);
} }
/** /**
......
...@@ -5,8 +5,10 @@ import cn.hutool.core.lang.Assert; ...@@ -5,8 +5,10 @@ import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.cscec.constant.CbProjectConstants; import com.dsk.cscec.constant.CbProjectConstants;
import com.dsk.cscec.domain.CbProjectFile;
import com.dsk.cscec.domain.CbProjectRecord; import com.dsk.cscec.domain.CbProjectRecord;
import com.dsk.cscec.domain.bo.AddCbProjectBo; import com.dsk.cscec.domain.bo.AddCbProjectBo;
import com.dsk.cscec.domain.bo.EditProjectInfoBo;
import com.dsk.cscec.domain.bo.ImportCbProjectDataBo; import com.dsk.cscec.domain.bo.ImportCbProjectDataBo;
import com.dsk.cscec.mapper.CbProjectFileMapper; import com.dsk.cscec.mapper.CbProjectFileMapper;
import com.dsk.cscec.mapper.CbProjectRecordMapper; import com.dsk.cscec.mapper.CbProjectRecordMapper;
...@@ -40,7 +42,7 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe ...@@ -40,7 +42,7 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
public CbProjectRecord addProject(AddCbProjectBo addCbProjectBo) { public CbProjectRecord addProject(AddCbProjectBo addCbProjectBo) {
CbProjectRecord projectRecord = BeanUtil.toBean(addCbProjectBo, CbProjectRecord.class); CbProjectRecord projectRecord = BeanUtil.toBean(addCbProjectBo, CbProjectRecord.class);
//项目文件状态:待解析 //项目文件状态:待解析
projectRecord.setProjectFileStatus(CbProjectConstants.PROJECT_FILE_STATUS_WAIT_PARSE); projectRecord.setProjectFileStatus(CbProjectConstants.PROJECT_FILE_STATUS_PREPARING);
//删除状态:否 //删除状态:否
projectRecord.setDelFlag(CbProjectConstants.DELETE_FLAG_EXIST); projectRecord.setDelFlag(CbProjectConstants.DELETE_FLAG_EXIST);
if (baseMapper.insert(projectRecord) > 0) { if (baseMapper.insert(projectRecord) > 0) {
...@@ -59,11 +61,22 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe ...@@ -59,11 +61,22 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
Long projectId = importDataBo.getProjectId(); Long projectId = importDataBo.getProjectId();
Integer cbStage = importDataBo.getCbStage(); Integer cbStage = importDataBo.getCbStage();
//校验项目是否存在 //校验项目是否存在
Assert.isTrue(baseMapper.exists(new LambdaQueryWrapper<CbProjectRecord>() this.checkProjectExist(projectId);
.eq(CbProjectRecord::getId, projectId)
.eq(CbProjectRecord::getCbStage, cbStage) //校验各个成本类型是否至少有1个文件
.eq(CbProjectRecord::getDelFlag, CbProjectConstants.DELETE_FLAG_EXIST)), "该项目不存在"); //直接费成本
//TODO:校验各个成本类型是否至少有1个文件 this.checkCbTypeExistFile(importDataBo, CbProjectConstants.CB_TYPE_DIRECT_EXPENSE, CbProjectConstants.CB_TYPE_DIRECT_EXPENSE_NAME);
//工料汇总
this.checkCbTypeExistFile(importDataBo, CbProjectConstants.CB_TYPE_QUANTITY_SUMMARY, CbProjectConstants.CB_TYPE_QUANTITY_SUMMARY_NAME);
//措施项目
this.checkCbTypeExistFile(importDataBo, CbProjectConstants.CB_TYPE_MEASURE_PROJECT, CbProjectConstants.CB_TYPE_MEASURE_PROJECT_NAME);
//其他项目
this.checkCbTypeExistFile(importDataBo, CbProjectConstants.CB_TYPE_OTHER_PROJECT, CbProjectConstants.CB_TYPE_OTHER_PROJECT_NAME);
//现场经费
this.checkCbTypeExistFile(importDataBo, CbProjectConstants.CB_TYPE_SCENE_EXPENSE, CbProjectConstants.CB_TYPE_SCENE_EXPENSE_NAME);
//成本汇总
this.checkCbTypeExistFile(importDataBo, CbProjectConstants.CB_TYPE_SUMMARY, CbProjectConstants.CB_TYPE_SUMMARY_NAME);
//TODO:调各个成本类型的解析文件方法 //TODO:调各个成本类型的解析文件方法
//直接费成本 //直接费成本
//工料汇总 //工料汇总
...@@ -73,4 +86,56 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe ...@@ -73,4 +86,56 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
//成本汇总 //成本汇总
} }
/**
* 校验各个成本类型是否至少有1个文件
*
* @param importDataBo 导入对象
* @param cbType 成本类型字典(0:直接费成本、1:工料汇总、2:措施项目、3:其他项目、4:现场经费、5:成本汇总)
* @param cbTypeName 成本类型名称
*/
private void checkCbTypeExistFile(ImportCbProjectDataBo importDataBo, Integer cbType, String cbTypeName) {
boolean isExist = projectFileMapper.exists(new LambdaQueryWrapper<CbProjectFile>()
.eq(CbProjectFile::getProjectId, importDataBo.getProjectId())
.eq(CbProjectFile::getCbStage, importDataBo.getCbStage())
.eq(CbProjectFile::getCbType, cbType)
//项目文件状态:待解析
.eq(CbProjectFile::getFileParseStatus, CbProjectConstants.PROJECT_FILE_STATUS_PREPARING)
//删除状态:否
.eq(CbProjectFile::getDelFlag, CbProjectConstants.DELETE_FLAG_EXIST));
Assert.isTrue(isExist, cbTypeName + "至少需要上传1个文件");
}
/**
* 修改项目信息
*
* @param editBo 修改对象
* @return 修改结果
*/
@Override
public Integer editProjectInfo(EditProjectInfoBo editBo) {
//校验项目是否存在
this.checkProjectExist(editBo.getProjectId());
CbProjectRecord projectRecord = baseMapper.selectById(editBo.getProjectId());
projectRecord.setProjectName(editBo.getProjectName());
projectRecord.setIpmProjectNo(editBo.getIpmProjectNo());
projectRecord.setIsGetProjectDetail(editBo.getIsGetProjectDetail());
projectRecord.setProjectFileName(editBo.getProjectFileName());
return baseMapper.updateById(projectRecord);
}
/**
* 校验项目是否存在
*
* @param projectId 项目ID
* @return 项目实体
*/
private CbProjectRecord checkProjectExist(Long projectId) {
CbProjectRecord projectRecord = baseMapper.selectOne(new LambdaQueryWrapper<CbProjectRecord>()
.eq(CbProjectRecord::getId, projectId)
.eq(CbProjectRecord::getDelFlag, CbProjectConstants.DELETE_FLAG_EXIST));
Assert.notNull(projectRecord, "该项目不存在");
return projectRecord;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment