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

项目台账:新建项目

parent 43405264
......@@ -27,7 +27,7 @@ public interface CbProjectConstants {
/**
* 项目文件状态:待解析
*/
Integer PROJECT_FILE_STATUS_NOT_PARSE = 1;
Integer PROJECT_FILE_STATUS_WAIT_PARSE = 1;
/**
* 项目文件状态:解析中
*/
......
package com.dsk.cscec.controller;
import cn.hutool.core.lang.Assert;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.R;
import com.dsk.cscec.domain.CbProjectRecord;
import com.dsk.cscec.domain.bo.AddCbProjectBo;
import com.dsk.cscec.service.CbProjectRecordService;
import com.dsk.cscec.service.IDProjectService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.NotBlank;
/**
* 项目台账表(CbProjectRecord)表控制层
......@@ -13,12 +21,40 @@ import javax.annotation.Resource;
*/
@RestController
@RequestMapping("cbProjectRecord")
public class CbProjectRecordController {
public class CbProjectRecordController extends BaseController {
/**
* 服务对象
*/
@Resource
private CbProjectRecordService baseService;
@Resource
private IDProjectService dProjectService;
/**
* 校验项目编码是否存在
*/
@GetMapping("/checkProjectCodeExist/{projectCode}")
public R<Boolean> checkProjectCodeExist(@NotBlank(message = "项目编码不能为空") @PathVariable String projectCode) {
return R.ok(dProjectService.checkProjectCodeExist(projectCode));
}
/**
* 新增项目
*/
@PostMapping("/addProject")
public R<CbProjectRecord> addProject(@Validated @RequestBody AddCbProjectBo addCbProjectBo) {
CbProjectRecord projectRecord = baseService.addProject(addCbProjectBo);
Assert.notNull(projectRecord, "新增项目失败,请联系管理员");
return R.ok(projectRecord);
}
///**
// * 根据项目文件导入数据
// */
//@PostMapping("/importData")
//public R<Void> importData(@Validated @RequestBody ImportCbProjectDataBo importDataBo){
// return toAjax(baseService.importData(importDataBo));
//}
}
......@@ -38,6 +38,10 @@ public class CbProjectRecord extends BaseEntity implements Serializable {
* IPM项目编码
*/
private String ipmProjectNo;
/**
* 是否获取项目详情(0:是、1:否)
*/
private Integer isGetProjectDetail;
/**
* 文件名称
*/
......
package com.dsk.cscec.domain.bo;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author sxk
* @date 2024.02.05
* @time 15:26
*/
@Data
public class AddCbProjectBo {
/**
* 项目名称
*/
private String projectName;
/**
* IPM项目编码
*/
private String ipmProjectNo;
/**
* 是否获取项目详情(0:否、1:是)
*/
@NotNull(message = "是否获取项目详情不能为空")
private Integer isGetProjectDetail;
/**
* 文件名称
*/
private String projectFileName;
/**
* 成本阶段(0:标前成本、1:标后成本、2:转固成本)
*/
@NotNull(message = "未选择成本阶段")
private Integer cbStage;
}
......@@ -2,6 +2,7 @@ package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.cscec.domain.CbProjectRecord;
import com.dsk.cscec.domain.bo.AddCbProjectBo;
/**
* 项目台账表(CbProjectRecord)表服务接口
......@@ -10,6 +11,19 @@ import com.dsk.cscec.domain.CbProjectRecord;
* @since 2024-02-05 11:37:53
*/
public interface CbProjectRecordService extends IService<CbProjectRecord> {
/**
* 新增项目
*
* @param addCbProjectBo 新增对象
* @return 新增结果
*/
CbProjectRecord addProject(AddCbProjectBo addCbProjectBo);
///**
// * 根据项目文件导入数据
// *
// * @param importDataBo 导入对象
// * @return 导入结果
// */
//Boolean importData(ImportCbProjectDataBo importDataBo);
}
......@@ -52,5 +52,13 @@ public interface IDProjectService extends IService<DProject> {
* @return 项目详情
*/
ProjectDetailVo queryProjectDetail(ProjectDetailBo projectDetailBo);
/**
* 校验项目编码是否存在
*
* @param projectCode 项目编码
* @return 校验结果
*/
Boolean checkProjectCodeExist(String projectCode);
}
package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil;
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.mapper.CbProjectFileMapper;
import com.dsk.cscec.mapper.CbProjectRecordMapper;
import com.dsk.cscec.service.CbProjectRecordService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
......@@ -18,5 +24,55 @@ import javax.annotation.Resource;
public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMapper, CbProjectRecord> implements CbProjectRecordService {
@Resource
private CbProjectRecordMapper baseMapper;
@Resource
private CbProjectFileMapper projectFileMapper;
/**
* 新增项目
*
* @param addCbProjectBo 新增对象
* @return 新增结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public CbProjectRecord addProject(AddCbProjectBo addCbProjectBo) {
CbProjectRecord projectRecord = BeanUtil.toBean(addCbProjectBo, CbProjectRecord.class);
//项目文件状态:待解析
projectRecord.setProjectFileStatus(CbProjectConstants.PROJECT_FILE_STATUS_WAIT_PARSE);
//删除状态:否
projectRecord.setDelFlag(CbProjectConstants.DELETE_FLAG_EXIST);
if (baseMapper.insert(projectRecord) > 0) {
CbProjectFile projectFile = new CbProjectFile();
projectFile.setProjectId(projectRecord.getId());
projectFile.setCbStage(projectRecord.getCbStage());
//项目文件状态:未上传
projectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_NOT_UPLOAD);
//成本类型:未确定
projectFile.setCbType(CbProjectConstants.CB_TYPE_NOT_CONFIRM);
projectFile.setDelFlag(CbProjectConstants.DELETE_FLAG_EXIST);
projectFileMapper.insert(projectFile);
return projectRecord;
}
return null;
}
///**
// * 根据项目文件导入数据
// *
// * @param importDataBo 导入对象
// * @return 导入结果
// */
//@Override
//public Boolean importData(ImportCbProjectDataBo importDataBo) {
// 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:调各个成本类型的导入文件方法
//
// return null;
//}
}
......@@ -11,7 +11,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.utils.StringUtils;
import com.dsk.cscec.constant.AdvisoryBodyManageQueryConstants;
import com.dsk.cscec.domain.AdvisoryBody;
......@@ -20,7 +19,6 @@ import com.dsk.cscec.domain.DProject;
import com.dsk.cscec.domain.bo.CooperateProjectDetailSearchBo;
import com.dsk.cscec.domain.bo.ProjectDetailBo;
import com.dsk.cscec.domain.bo.ProjectSearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyExistVo;
import com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo;
import com.dsk.cscec.domain.vo.ProjectDetailVo;
import com.dsk.cscec.domain.vo.ProjectSearchVo;
......@@ -248,5 +246,17 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
}
return projectDetailVo;
}
/**
* 校验项目编码是否存在
*
* @param projectCode 项目编码
* @return 校验结果
*/
@Override
public Boolean checkProjectCodeExist(String projectCode) {
return baseMapper.exists(new LambdaQueryWrapper<DProject>()
.eq(DProject::getProjectCode, projectCode));
}
}
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