diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectCommonUtil.java b/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectCommonUtil.java index a9567e0..f7c2756 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectCommonUtil.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectCommonUtil.java @@ -574,4 +574,11 @@ public class ProjectCommonUtil { * 账号兼职正则表达式 */ public static final String REG_PATTEN = "^.+_\\d*$"; + + /** + * 项目异常处理 公告状态0 未编辑 + */ + public static final int PROJECT_ENTRUST_BACK_STATUS_0 = 0; + + public static final int PROJECT_ENTRUST_BACK_STATUS_1 = 1; } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectExceptionEnum.java b/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectExceptionEnum.java index eee6bf1..23e0e1e 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectExceptionEnum.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectExceptionEnum.java @@ -183,6 +183,8 @@ public enum ProjectExceptionEnum implements BusinessExceptionAssert { FRAME_EXCEPTION_INQUIRY_RESPONSE_FORMAT_LIST_CATEGORY_NAME_ERROR(110085,"询价应答格式列表数据中类别名称包含特殊字符"), FRAME_EXCEPTION_INQUIRY_RESPONSE_FORMAT_LIST_NAME_EMPTY(110086,"询价应答格式列表数据中目录名称不能为空字符并且不能超过30个字符"), + + FRAME_EXCEPTION_PROJECT_RECORD_NOT_BACK(110087,"该项目已建档,无法撤回"), ; /** diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/column/ProjectEntrustBackField.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/column/ProjectEntrustBackField.java new file mode 100644 index 0000000..c97f9f0 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/column/ProjectEntrustBackField.java @@ -0,0 +1,90 @@ +package com.chinaunicom.mall.ebtp.project.projectentrust.column; + +/** + * 字段常量 委托单撤回实体 + * @author daixc + * @date 2022/02/14 + */ +public class ProjectEntrustBackField { + + /** + * 编号 + */ + public static final String ID = "ID"; + + /** + * 采购人 + */ + public static final String PURCHASER = "purchaser"; + + /** + * 委托部门 + */ + public static final String ENTRUST_DEPARTMENT = "entrust_department"; + + /** + * 委托部门名称 + */ + public static final String ENTRUST_DEPARTMENT_NAME = "entrust_department_name"; + + /** + * 项目名称 + */ + public static final String PROJECT_NAME = "project_name"; + + /** + * 采购类型,1-货物,2-工程,3-服务,4-其他 + */ + public static final String PROCUREMENT_TYPE = "procurement_type"; + + /** + * 采购方式 + */ + public static final String PROCUREMENT_MODE = "procurement_mode"; + + /** + * 接收时间 + */ + public static final String RECEIVE_TIME = "receive_time"; + + /** + * 状态,0 出始化 1 已还原 + */ + public static final String STATUS = "status"; + + /** + * 项目编号(方案编号) + */ + public static final String PROJECT_NUMBER = "project_number"; + + /** + * 备注 + */ + public static final String REMARKS = "remarks"; + + /** + * 采购经理 + */ + public static final String PURCHASING_MANAGER = "purchasing_manager"; + + /** + * 代理机构 + */ + public static final String AGENCY_COMPANY = "agency_company"; + + /** + * 项目经理 + */ + public static final String PROJECT_MANAGER = "project_manager"; + + /** + * 删除信息(记录) + */ + public static final String DELETE_DATA = "delete_data"; + + /** + * 委托ID + */ + public static final String ENTRUST_ID = "entrust_id"; + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/controller/ProjectEntrustBackController.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/controller/ProjectEntrustBackController.java new file mode 100644 index 0000000..810f6f7 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/controller/ProjectEntrustBackController.java @@ -0,0 +1,103 @@ +package com.chinaunicom.mall.ebtp.project.projectentrust.controller; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustBack; +import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustBackVO; +import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustVO; +import com.chinaunicom.mall.ebtp.project.projectentrust.service.IProjectEntrustBackService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +/** + * 项目委托撤回 + * @author daixc + * @date 2022/02/14 + */ + +@RestController +@Api(tags = "项目委托撤回信息表") +@RequestMapping("/v1/projectentrustback") +public class ProjectEntrustBackController{ + + @Resource + private IProjectEntrustBackService projectEntrustBackService; + + /** + * 插入新数据 + * @param projectEntrustBack + * @return + */ + @ApiOperation("插入新数据") + @PostMapping("") + public BaseResponse insert(@ApiParam(value = "对象数据", required = true) @RequestBody @Valid ProjectEntrustBack projectEntrustBack){ + + boolean save = projectEntrustBackService.save(projectEntrustBack); + + return BaseResponse.success(save); + } + + /** + * 查询数据 + * + * @param id + * + * @return + */ + @ApiOperation("查询数据") + @GetMapping("/{id}") + public BaseResponse get(@ApiParam(value = "主键id", required = true) @PathVariable String id){ + + ProjectEntrustBack projectEntrustBack = projectEntrustBackService.getById(id); + + return BaseResponse.success(projectEntrustBack); + } + + /** + * 查询分页数据 + * + * @param projectEntrustBackVO 分页信息 + * + * @return 返回结果 + */ + @ApiOperation("查询分页数据") + @PostMapping("/getPage") + public BaseResponse> getPage(@ApiParam(value = "对象数据", required = true) @RequestBody ProjectEntrustBackVO projectEntrustBackVO){ + + return BaseResponse.success(projectEntrustBackService.getPage(projectEntrustBackVO)); + } + + /** + * 还原数据 + * @param id 主键ID + * @return 返回结果 + */ + @ApiOperation("还原数据") + @GetMapping("recall/{id}") + public BaseResponse recall(@ApiParam(value = "主键id", required = true) @PathVariable String id){ + + return BaseResponse.success(projectEntrustBackService.recall(id)); + } + + /** + * 查询数据 + * + * @param id + * + * @return + */ + @ApiOperation("查询详细数据") + @GetMapping("getDetail/{id}") + public BaseResponse getDetail(@ApiParam(value = "主键id", required = true) @PathVariable String id){ + + return BaseResponse.success(projectEntrustBackService.getDetail(id)); + } + + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/controller/ProjectEntrustController.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/controller/ProjectEntrustController.java index 8081738..85391c9 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/controller/ProjectEntrustController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/controller/ProjectEntrustController.java @@ -5,6 +5,9 @@ import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; import com.chinaunicom.mall.ebtp.common.idempotent.annotation.Idempotent; +import com.chinaunicom.mall.ebtp.common.log.OperationLogDetail; +import com.chinaunicom.mall.ebtp.common.log.enums.EbtpLogBusinessModule; +import com.chinaunicom.mall.ebtp.common.log.enums.EbtpLogType; import com.chinaunicom.mall.ebtp.project.baseoperlog.aop.OperLog; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrust; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustVO; @@ -211,6 +214,7 @@ public class ProjectEntrustController{ @Idempotent(expireTime = 10) @ApiOperation("委托项目信息出始化") @PostMapping("/initProjectEntrust") + @OperationLogDetail(businessModule = EbtpLogBusinessModule.PROJECT_ENTRUST_INIT,operationType = EbtpLogType.INSERT,detail = "委托项目信息出始化") public BaseResponse initProjectEntrust(@ApiParam(value = "实施项目编码", required = true) @RequestParam(name = "ebpProjectId") Long ebpProjectId) { return BaseResponse.success(projectEntrustService.initProjectEntrust(String.valueOf(ebpProjectId))); @@ -240,6 +244,7 @@ public class ProjectEntrustController{ @OperLog("询价通知返回处理接口") @ApiOperation("询价通知返回处理接口") @PostMapping("/inquiryNotice") + @OperationLogDetail(businessModule = EbtpLogBusinessModule.PROJECT_INQUIRY_UPDATE,operationType = EbtpLogType.UPDATE,detail = "询价通知返回处理接口") public BaseResponse inquiryNotice(@ApiParam(value = "询价通知返回实体", required = true) @RequestBody InquiryNoticeVO inquiryNoticeVO){ return BaseResponse.success(inquiryService.inquiryNotice(inquiryNoticeVO)); @@ -256,9 +261,25 @@ public class ProjectEntrustController{ @OperLog("初始化询价信息接口") @ApiOperation("初始化询价信息接口") @PostMapping("/initInquiryProjectEntrust") + @OperationLogDetail(businessModule = EbtpLogBusinessModule.PROJECT_INQUIRY_ENTRUST_INIT,operationType = EbtpLogType.INSERT,detail = "初始化询价信息接口") public BaseResponse initInquiryProjectEntrust(@ApiParam(value = "询价实体", required = true) @RequestBody @Valid InquiryVO inquiryVO){ return BaseResponse.success(inquiryService.initProjectEntrust(inquiryVO)); } + + /** + * 根据实施项目ID删除相关信息(委托 项目 标段) + * @param ebpProjectId 实施项目编码 + * @return 返回结果 + */ + @Idempotent(expireTime = 10) + @ApiOperation("根据实施项目ID删除相关信息") + @PostMapping("/deleteProjectEntrust") + @OperationLogDetail(businessModule = EbtpLogBusinessModule.PROJECT_INQUIRY_ENTRUST_INIT,operationType = EbtpLogType.DELETE,detail = "删除委托信息") + public BaseResponse deleteProjectEntrust(@ApiParam(value = "实施项目编码", required = true) @RequestParam(name = "ebpProjectId") Long ebpProjectId, + @ApiParam(value = "撤回原因", required = false) @RequestParam(name = "reason") String reason){ + + return BaseResponse.success(projectEntrustService.deleteProjectEntrust(ebpProjectId,reason)); + } } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/dao/ProjectEntrustBackMapper.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/dao/ProjectEntrustBackMapper.java new file mode 100644 index 0000000..da83365 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/dao/ProjectEntrustBackMapper.java @@ -0,0 +1,14 @@ +package com.chinaunicom.mall.ebtp.project.projectentrust.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustBack; + +/** + * @author daixc + * @date @date 2022/02/14 + */ +public interface ProjectEntrustBackMapper extends BaseMapper { + + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/dao/mapper/ProjectEntrustBackMapper.xml b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/dao/mapper/ProjectEntrustBackMapper.xml new file mode 100644 index 0000000..da0a05f --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/dao/mapper/ProjectEntrustBackMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ProjectEntrustBack.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ProjectEntrustBack.java new file mode 100644 index 0000000..26579bf --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ProjectEntrustBack.java @@ -0,0 +1,140 @@ +package com.chinaunicom.mall.ebtp.project.projectentrust.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity; +import com.chinaunicom.mall.ebtp.common.config.CustomJacksonTypeHandler; +import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ebpentity.PurpImplementSendVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 实体类 ProjectEntrustBack + * 项目委托撤销信息 + * + * @author daixc + * @version 1.0 + * @date 2029/10/23 + */ +@Data +@Accessors(chain = true) +@ApiModel("项目委托撤销信息") +@TableName(value = "biz_project_entrust_back", autoResultMap = true) +public class ProjectEntrustBack extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 编号 + */ + @ApiModelProperty(value = "编号") + @JsonSerialize(using = ToStringSerializer.class) + private String id; + + /** + * 采购人,GG_JGBH,JGBH + */ + @ApiModelProperty(value = "采购人") + private String purchaser; + + /** + * 委托部门 + */ + @ApiModelProperty(value = "委托部门") + private String entrustDepartment; + + /** + * 委托部门名称 + */ + @ApiModelProperty(value = "委托部门名称") + private String entrustDepartmentName; + + /** + * 项目名称 + */ + @ApiModelProperty(value = "项目名称") + private String projectName; + + + /** + * 采购类型,1-货物,2-工程,3-服务,4-其他 + */ + @ApiModelProperty(value = "采购类型,1-货物,2-工程,3-服务,4-其他") + private String procurementType; + + + /** + * 采购方式,参考XM_ZBXM.CGFS描述 + */ + @ApiModelProperty(value = "采购方式") + private String procurementMode; + + + /** + * 状态,0-初始化,10-已提交,11-已退回,20-已分派,30-已建档,-1-已拒绝 + */ + @ApiModelProperty(value = "状态,0-初始化,10-已提交,11-已退回,20-已分派,30-已建档,-1-已拒绝") + private Integer status; + + /** + * 项目编号 + */ + @ApiModelProperty(value = "项目编号") + private String projectNumber; + + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + private String remarks; + + /** + * 接收时间 + */ + @ApiModelProperty(value = "接收时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime receiveTime; + + /** + * 采购经理 + */ + @ApiModelProperty(value = "采购经理") + private String purchasingManager; + + /** + * 代理公司 + */ + @ApiModelProperty(value = "代理公司") + private String agencyCompany; + + /** + * 项目经理 + */ + @ApiModelProperty(value = "项目经理") + private String projectManager; + + /** + * 删除信息 + */ + @ApiModelProperty(value = "删除信息") + @TableField(typeHandler = CustomJacksonTypeHandler.class) + private ProjectEntrustDeleteData deleteData; + + /** + * 委托单ID + */ + @ApiModelProperty(value = "委托单ID") + @JsonSerialize(using = ToStringSerializer.class) + private String entrustId; +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ProjectEntrustBackVO.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ProjectEntrustBackVO.java new file mode 100644 index 0000000..adf0360 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ProjectEntrustBackVO.java @@ -0,0 +1,27 @@ +package com.chinaunicom.mall.ebtp.project.projectentrust.entity; + +import com.chinaunicom.mall.ebtp.common.base.entity.BasePageRequest; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 实体类 ProjectEntrustBack + * 项目委托撤销信息 + * + * @author daixc + * @version 1.0 + * @date 2029/10/23 + */ +@Data +@Accessors(chain = true) +public class ProjectEntrustBackVO extends ProjectEntrustBack implements Serializable { + + /** + * 分页数据 + */ + @ApiModelProperty(value = "分页对象信息") + private BasePageRequest basePageRequest; +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ProjectEntrustDeleteData.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ProjectEntrustDeleteData.java new file mode 100644 index 0000000..08c30d6 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ProjectEntrustDeleteData.java @@ -0,0 +1,29 @@ +package com.chinaunicom.mall.ebtp.project.projectentrust.entity; + +import com.chinaunicom.mall.ebtp.project.projectrecord.entity.ProjectRecord; +import com.chinaunicom.mall.ebtp.project.projectsection.entity.ProjectSection; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * 实体类 ProjectEntrustDeleteData + * 项目委托撤销删除信息 + * + * @author daixc + * @version 1.0 + * @date 2029/10/23 + */ +@Data +@Accessors(chain = true) +@ApiModel("项目委托撤销删除信息") +public class ProjectEntrustDeleteData { + + private ProjectEntrust projectEntrust; + + private ProjectRecord projectRecord; + + private List sectionList; +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/IProjectEntrustBackService.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/IProjectEntrustBackService.java new file mode 100644 index 0000000..e1e12c2 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/IProjectEntrustBackService.java @@ -0,0 +1,37 @@ +package com.chinaunicom.mall.ebtp.project.projectentrust.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustBack; +import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustBackVO; +import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustVO; + +/** + * 对数据表 biz_project_entrust_back 操作的 service + * @author Auto create + * + */ +public interface IProjectEntrustBackService extends IService{ + + /** + * 委托单撤回页信息 + * @param projectEntrustBackVO 委托单撤回查询信息 + * @return 返回结果 + */ + IPage getPage(ProjectEntrustBackVO projectEntrustBackVO); + + /** + * 撤销 + * @param id 主键ID + * @return 返回结果 + */ + boolean recall(String id); + + /** + * 查看详细信息 + * @param id 主键ID + * @return 返回结果 + */ + ProjectEntrustVO getDetail(String id); +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/IProjectEntrustService.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/IProjectEntrustService.java index ef9b322..2c891a0 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/IProjectEntrustService.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/IProjectEntrustService.java @@ -93,4 +93,11 @@ public interface IProjectEntrustService extends IBaseService{ * @return 返回结果 */ boolean updateProject(ProjectEntrustVO projectEntrustVO); + + /** + * 根据实施项目ID删除相关信息(委托 项目 标段) + * @param ebpProjectId 实施项目ID + * @return 返回结果 + */ + boolean deleteProjectEntrust(Long ebpProjectId,String reason); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustBackServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustBackServiceImpl.java new file mode 100644 index 0000000..b403c20 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustBackServiceImpl.java @@ -0,0 +1,149 @@ +package com.chinaunicom.mall.ebtp.project.projectentrust.service.impl; + + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chinaunicom.mall.ebtp.common.base.entity.BasePageRequest; +import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum; +import com.chinaunicom.mall.ebtp.common.util.JsonUtils; +import com.chinaunicom.mall.ebtp.project.common.ProjectCommonUtil; +import com.chinaunicom.mall.ebtp.project.projectentrust.column.ProjectEntrustBackField; +import com.chinaunicom.mall.ebtp.project.projectentrust.dao.ProjectEntrustBackMapper; +import com.chinaunicom.mall.ebtp.project.projectentrust.entity.*; +import com.chinaunicom.mall.ebtp.project.projectentrust.service.IProjectEntrustBackService; +import com.chinaunicom.mall.ebtp.project.projectentrust.service.IProjectEntrustExpandService; +import com.chinaunicom.mall.ebtp.project.projectentrust.service.IProjectEntrustService; +import com.chinaunicom.mall.ebtp.project.projectrecord.service.IProjectRecordService; +import com.chinaunicom.mall.ebtp.project.projectsection.service.IProjectSectionService; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +/** + * 对数据表 biz_project_entrust_back 操作的 serviceImpl + * @author daixc + * + */ +@Service +public class ProjectEntrustBackServiceImpl extends ServiceImpl implements IProjectEntrustBackService { + + @Resource + private IProjectEntrustService entrustService; + + @Resource + private IProjectRecordService recordService; + + @Resource + private IProjectSectionService sectionService; + + @Resource + private IProjectEntrustExpandService entrustExpandService; + + /** + * 查询条件 + * @param projectEntrustBack 查询条件 + * @return 查询条件 + */ + private QueryWrapper getProjectEntrustBackQueryWrapper(ProjectEntrustBack projectEntrustBack){ + + QueryWrapper query = new QueryWrapper<>(); + + if(StringUtils.isNotBlank(projectEntrustBack.getProjectName())){ + query.like(ProjectEntrustBackField.PROJECT_NAME, projectEntrustBack.getProjectName()); + } + + //项目经理 + if(StringUtils.isNotBlank(projectEntrustBack.getProjectManager())){ + query.eq(ProjectEntrustBackField.PROJECT_MANAGER, projectEntrustBack.getProjectManager()); + } + + //代理机构 + if(StringUtils.isNotBlank(projectEntrustBack.getAgencyCompany())){ + query.eq(ProjectEntrustBackField.AGENCY_COMPANY, projectEntrustBack.getAgencyCompany()); + } + + //采购经理 + if(StringUtils.isNotBlank(projectEntrustBack.getPurchasingManager())){ + query.eq(ProjectEntrustBackField.PURCHASING_MANAGER, projectEntrustBack.getPurchasingManager()); + } + + //采购方式 + if(StringUtils.isNotBlank(projectEntrustBack.getProcurementMode())){ + query.eq(ProjectEntrustBackField.PROCUREMENT_MODE, projectEntrustBack.getProcurementMode()); + } + + return query; + } + + + @Override + public IPage getPage(ProjectEntrustBackVO projectEntrustBackVO) { + + QueryWrapper query = getProjectEntrustBackQueryWrapper(projectEntrustBackVO); + + query.orderByDesc(ProjectEntrustBackField.ID); + + if(null == projectEntrustBackVO.getBasePageRequest()){ + projectEntrustBackVO.setBasePageRequest(new BasePageRequest()); + } + + //查询 + IPage p = new Page<>(projectEntrustBackVO.getBasePageRequest().getPageNo(), projectEntrustBackVO.getBasePageRequest().getPageSize()); + IPage result = this.page(p, query); + + IPage voPage = result.convert(c -> BeanUtil.toBean(c,ProjectEntrustBackVO.class)); + voPage.setRecords(JsonUtils.jsonToList(result.getRecords(),ProjectEntrustBackVO.class)); + return voPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean recall(String id) { + ProjectEntrustBack entrustBack = this.getById(id); + + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_NOT_EXIST.customValid(null == entrustBack); + + ProjectEntrustDeleteData deleteData = entrustBack.getDeleteData(); + + boolean result = entrustService.save(deleteData.getProjectEntrust()); + + if(null != deleteData.getProjectRecord()){ + recordService.save(deleteData.getProjectRecord()); + } + + if(!CollectionUtils.isEmpty(deleteData.getSectionList())){ + sectionService.saveBatch(deleteData.getSectionList()); + } + + entrustBack.setStatus(ProjectCommonUtil.PROJECT_ENTRUST_BACK_STATUS_1); + this.updateById(entrustBack); + return result; + } + + @Override + public ProjectEntrustVO getDetail(String id) { + + ProjectEntrustBack entrustBack = this.getById(id); + + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_NOT_FIND.customValid(null == entrustBack); + + ProjectEntrustVO projectEntrustVO = BeanUtil.toBean(entrustBack.getDeleteData().getProjectEntrust(),ProjectEntrustVO.class); + + ProjectEntrustExpand expand = entrustExpandService.getOne(new LambdaQueryWrapper() + .eq(ProjectEntrustExpand::getEntrustId,entrustBack.getEntrustId())); + + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_NOT_FIND.customValid(null == expand); + + if(null != projectEntrustVO){ + projectEntrustVO.setProjectEntrustExpand(expand); + } + return projectEntrustVO; + } +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustServiceImpl.java index 76dc41c..9cd715d 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustServiceImpl.java @@ -1,15 +1,21 @@ package com.chinaunicom.mall.ebtp.project.projectentrust.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.chinaunicom.mall.ebtp.common.base.entity.BasePageRequest; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService; import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl; import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum; +import com.chinaunicom.mall.ebtp.common.log.enums.EbtpLogBusinessModule; +import com.chinaunicom.mall.ebtp.common.log.enums.EbtpLogType; +import com.chinaunicom.mall.ebtp.common.log.service.OperationLogService; import com.chinaunicom.mall.ebtp.common.util.JsonUtils; import com.chinaunicom.mall.ebtp.common.util.PropertyUtils; import com.chinaunicom.mall.ebtp.project.baseoperlog.service.IBaseOperLogService; @@ -20,14 +26,16 @@ import com.chinaunicom.mall.ebtp.project.feign.EbtpAuctionApi; import com.chinaunicom.mall.ebtp.project.feign.MallPurpApi; import com.chinaunicom.mall.ebtp.project.feign.PriceQueryApi; import com.chinaunicom.mall.ebtp.project.projectentrust.dao.ProjectEntrustMapper; -import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrust; -import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustExpand; -import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustVO; +import com.chinaunicom.mall.ebtp.project.projectentrust.entity.*; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ebpentity.*; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.inquiryentity.InquiryNoticeVO; +import com.chinaunicom.mall.ebtp.project.projectentrust.service.IProjectEntrustBackService; import com.chinaunicom.mall.ebtp.project.projectentrust.service.IProjectEntrustExpandService; import com.chinaunicom.mall.ebtp.project.projectentrust.service.IProjectEntrustService; +import com.chinaunicom.mall.ebtp.project.projectrecord.entity.ProjectRecord; import com.chinaunicom.mall.ebtp.project.projectrecord.service.IProjectRecordService; +import com.chinaunicom.mall.ebtp.project.projectsection.entity.ProjectSection; +import com.chinaunicom.mall.ebtp.project.projectsection.service.IProjectSectionService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; @@ -39,6 +47,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * 对数据表 biz_project_entrust 操作的 serviceImpl @@ -71,6 +80,15 @@ public class ProjectEntrustServiceImpl extends BaseServiceImpl queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(ProjectEntrust::getProcurementPlanId,ebpProjectId); + List projectEntrustList = this.list(queryWrapper); + ProjectEntrustBack entrustBack = new ProjectEntrustBack(); + + //判断委托单是否为空 + if (!CollectionUtils.isEmpty(projectEntrustList)) { + ProjectEntrust delProjectEntrust; + //判断委托如果有多个 获取状态不为9(退回)状态的 + if (projectEntrustList.size() > 1) { + delProjectEntrust = projectEntrustList.stream(). + filter(n -> n.getStatus() != ProjectCommonUtil.ENTRUS_STATUS_9).collect(Collectors.toList()).get(0); + } else { + delProjectEntrust = projectEntrustList.get(0); + } + + BeanUtil.copyProperties(delProjectEntrust,entrustBack); + entrustBack.setId(PropertyUtils.getSnowflakeId()) + .setEntrustId(delProjectEntrust.getId()) + .setStatus(ProjectCommonUtil.PROJECT_ENTRUST_BACK_STATUS_0) + .setRemarks(reason) + .setReceiveTime(delProjectEntrust.getCreateDate()); + + ProjectEntrustDeleteData deleteData = new ProjectEntrustDeleteData(); + deleteData.setProjectEntrust(delProjectEntrust); + LambdaQueryWrapper recordQueryWrapper = Wrappers.lambdaQuery(); + recordQueryWrapper.eq(ProjectRecord::getEntrustId, delProjectEntrust.getId()); + List recordList = projectRecordService.list(recordQueryWrapper); + + if(!CollectionUtils.isEmpty(recordList)){ + long recordCount = recordList.stream().filter(n -> n.getStatus() > 1).count(); + ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_RECORD_NOT_BACK.customValid(recordCount > 0); + ProjectRecord record = recordList.get(0); + LambdaQueryWrapper sectionQueryWrapper = Wrappers.lambdaQuery(); + sectionQueryWrapper.eq(ProjectSection::getProjectId,record.getId()); + List sectionList = sectionService.list(sectionQueryWrapper); + deleteData.setProjectRecord(record); + deleteData.setSectionList(sectionList); + + projectRecordService.removeById(record.getId()); + sectionService.remove(new LambdaQueryWrapper().eq(ProjectSection::getProjectId,record.getId())); + } + + entrustBack.setDeleteData(deleteData); + entrustBackService.save(entrustBack); + this.removeById(delProjectEntrust.getId()); + } + return true; + } + /** * 出始化项目辅助相关信息 * @param projectEntrustVO 插入信息 diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectexception/controller/ProjectExceptionController.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectexception/controller/ProjectExceptionController.java index d613a61..c3859bd 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectexception/controller/ProjectExceptionController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectexception/controller/ProjectExceptionController.java @@ -3,6 +3,9 @@ package com.chinaunicom.mall.ebtp.project.projectexception.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.common.log.OperationLogDetail; +import com.chinaunicom.mall.ebtp.common.log.enums.EbtpLogBusinessModule; +import com.chinaunicom.mall.ebtp.common.log.enums.EbtpLogType; import com.chinaunicom.mall.ebtp.project.baseoperlog.aop.OperLog; import com.chinaunicom.mall.ebtp.project.projectexception.entity.ProjectException; import com.chinaunicom.mall.ebtp.project.projectexception.entity.ProjectExceptionVO; @@ -140,6 +143,7 @@ public class ProjectExceptionController{ @OperLog("项目中心提供异常调用接口") @ApiOperation("项目中心提供异常调用接口") @PostMapping("initiateException") + @OperationLogDetail(businessModule = EbtpLogBusinessModule.PROJECT_INVITATION_FAIL,operationType = EbtpLogType.UPDATE,detail = "项目中心提供异常调用接口") public BaseResponse initiateException( @ApiParam(value = "子项目ID", required = true) @RequestParam(name = "subprojectId") String subprojectId, @ApiParam(value = "方案ID", required = true) @RequestParam(name = "projectPlanId") String projectPlanId, diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectexception/service/impl/ProjectExceptionServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectexception/service/impl/ProjectExceptionServiceImpl.java index 65ca2ee..e40fabc 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectexception/service/impl/ProjectExceptionServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectexception/service/impl/ProjectExceptionServiceImpl.java @@ -13,6 +13,9 @@ import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; import com.chinaunicom.mall.ebtp.common.base.enums.ResponseEnum; import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl; import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum; +import com.chinaunicom.mall.ebtp.common.log.enums.EbtpLogBusinessModule; +import com.chinaunicom.mall.ebtp.common.log.enums.EbtpLogType; +import com.chinaunicom.mall.ebtp.common.log.service.OperationLogService; import com.chinaunicom.mall.ebtp.common.util.JsonUtils; import com.chinaunicom.mall.ebtp.common.util.PropertyUtils; import com.chinaunicom.mall.ebtp.project.common.EbpProjectCommonUtil; @@ -44,7 +47,6 @@ import com.chinaunicom.mall.ebtp.project.sectionsupplier.service.ISectionSupplie import io.seata.core.context.RootContext; import io.seata.spring.annotation.GlobalTransactional; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -94,6 +96,9 @@ public class ProjectExceptionServiceImpl extends BaseServiceImpl getPage(ProjectExceptionVO projectExceptionVO) { @@ -472,6 +477,8 @@ public class ProjectExceptionServiceImpl extends BaseServiceImpl response = wfapApi.start(approve); log.info("访问重新评审流程初始化接口返回结果:"+ JsonUtils.objectToJson(response)); + logService.addOperationLog("访重新评审流程初始化接口访问参数:{}" + JsonUtils.objectToJson(approve) + ",返回结果{}"+JsonUtils.objectToJson(response),response.isSuccess(), + EbtpLogBusinessModule.PROJECT_RE_EVALUATION_TASK, EbtpLogType.INSERT); if(!response.isSuccess()){ CommonExceptionEnum.FRAME_EXCEPTION_COMMON_NOT_UPDATE.customValidName(response.getMessage(),!response.isSuccess()); } diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index 17bd30e..e4fcbd0 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -90,6 +90,8 @@ spring: # 天宫 redis 需要使用哨兵进行访问 redis: + database: + idempotent: 0 sentinel: master: eshop-redis nodes: 10.125.164.124:32718, 10.125.164.118:32716, 10.125.164.121:32716 @@ -175,3 +177,10 @@ management: cors: allowed-origins: "*" allowed-methods: "*" + health: + mongo: + enabled: false + + data: + mongodb: + uri: mongodb://admin:M2RXbt8Vog9e@10.242.29.19:10011/ebtp_mall_im?authSource=admin&authMechanism=SCRAM-SHA-1&maxIdleTimeMS=3000