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

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

parent 3264a87f
......@@ -21,9 +21,9 @@ public interface CbProjectConstants {
*/
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 {
* 成本类型:直接费成本
*/
Integer CB_TYPE_DIRECT_EXPENSE = 0;
String CB_TYPE_DIRECT_EXPENSE_NAME = "直接费成本";
/**
* 成本类型:工料汇总
*/
Integer CB_TYPE_QUANTITY_SUMMARY = 1;
String CB_TYPE_QUANTITY_SUMMARY_NAME = "工料汇总";
/**
* 成本类型:措施项目
*/
Integer CB_TYPE_MEASURE_PROJECT = 2;
String CB_TYPE_MEASURE_PROJECT_NAME = "措施项目";
/**
* 成本类型:其他项目
*/
Integer CB_TYPE_OTHER_PROJECT = 3;
String CB_TYPE_OTHER_PROJECT_NAME = "其他项目";
/**
* 成本类型:现场经费
*/
Integer CB_TYPE_SCENE_EXPENSE = 4;
String CB_TYPE_SCENE_EXPENSE_NAME = "现场经费";
/**
* 成本类型:成本汇总
*/
Integer CB_TYPE_SUMMARY = 5;
String CB_TYPE_SUMMARY_NAME = "成本汇总";
}
......@@ -31,7 +31,7 @@ public class CbProjectRecord extends BaseEntity implements Serializable {
*/
private String projectName;
/**
* 项目文件状态(0:待解析、1:解析中、2:解析成功、3:解析失败)
* 项目文件状态(0:准备中、1:解析中、2:解析成功、3:解析失败)
*/
private Integer projectFileStatus;
/**
......
......@@ -53,7 +53,7 @@ public class CbProjectFileServiceImpl extends ServiceImpl<CbProjectFileMapper, C
projectFile.setFileOssId(oss.getOssId());
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);
baseMapper.insert(projectFile);
......@@ -80,7 +80,7 @@ public class CbProjectFileServiceImpl extends ServiceImpl<CbProjectFileMapper, C
*/
@Override
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;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.cscec.constant.CbProjectConstants;
import com.dsk.cscec.domain.CbProjectFile;
import com.dsk.cscec.domain.CbProjectRecord;
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.mapper.CbProjectFileMapper;
import com.dsk.cscec.mapper.CbProjectRecordMapper;
......@@ -40,7 +42,7 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
public CbProjectRecord addProject(AddCbProjectBo addCbProjectBo) {
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);
if (baseMapper.insert(projectRecord) > 0) {
......@@ -59,11 +61,22 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
Long projectId = importDataBo.getProjectId();
Integer cbStage = importDataBo.getCbStage();
//校验项目是否存在
Assert.isTrue(baseMapper.exists(new LambdaQueryWrapper<CbProjectRecord>()
.eq(CbProjectRecord::getId, projectId)
.eq(CbProjectRecord::getCbStage, cbStage)
.eq(CbProjectRecord::getDelFlag, CbProjectConstants.DELETE_FLAG_EXIST)), "该项目不存在");
//TODO:校验各个成本类型是否至少有1个文件
this.checkProjectExist(projectId);
//校验各个成本类型是否至少有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:调各个成本类型的解析文件方法
//直接费成本
//工料汇总
......@@ -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