委托撤回功能

This commit is contained in:
dxc
2022-02-15 09:33:28 +08:00
parent 91258a8f70
commit 3509758791
16 changed files with 724 additions and 4 deletions

View File

@ -20,7 +20,7 @@ import org.springframework.context.annotation.ComponentScan;
}) })
@EnableFeignClients @EnableFeignClients
@EnableEurekaClient @EnableEurekaClient
@EnableApolloConfig //@EnableApolloConfig
@MapperScan({"com.chinaunicom.mall.ebtp.project.**.dao"}) @MapperScan({"com.chinaunicom.mall.ebtp.project.**.dao"})
@ComponentScan("com.chinaunicom.mall.ebtp.*") @ComponentScan("com.chinaunicom.mall.ebtp.*")
public class BizServiceEbtpProjectApplication { public class BizServiceEbtpProjectApplication {

View File

@ -574,4 +574,11 @@ public class ProjectCommonUtil {
* 账号兼职正则表达式 * 账号兼职正则表达式
*/ */
public static final String REG_PATTEN = "^.+_\\d*$"; 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;
} }

View File

@ -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_CATEGORY_NAME_ERROR(110085,"询价应答格式列表数据中类别名称包含特殊字符"),
FRAME_EXCEPTION_INQUIRY_RESPONSE_FORMAT_LIST_NAME_EMPTY(110086,"询价应答格式列表数据中目录名称不能为空字符并且不能超过30个字符"), FRAME_EXCEPTION_INQUIRY_RESPONSE_FORMAT_LIST_NAME_EMPTY(110086,"询价应答格式列表数据中目录名称不能为空字符并且不能超过30个字符"),
FRAME_EXCEPTION_PROJECT_RECORD_NOT_BACK(110087,"该项目已建档,无法撤回"),
; ;
/** /**

View File

@ -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";
}

View File

@ -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("/api/projectentrustback")
public class ProjectEntrustBackController{
@Resource
private IProjectEntrustBackService projectEntrustBackService;
/**
* 插入新数据
* @param projectEntrustBack
* @return
*/
@ApiOperation("插入新数据")
@PostMapping("")
public BaseResponse<Boolean> 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<ProjectEntrustBack> 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<IPage<ProjectEntrustBackVO>> getPage(@ApiParam(value = "对象数据", required = true) @RequestBody ProjectEntrustBackVO projectEntrustBackVO){
return BaseResponse.success(projectEntrustBackService.getPage(projectEntrustBackVO));
}
/**
* 还原数据
* @param id 主键ID
* @return 返回结果
*/
@ApiOperation("还原数据")
@GetMapping("recall/{id}")
public BaseResponse<Boolean> recall(@ApiParam(value = "主键id", required = true) @PathVariable String id){
return BaseResponse.success(projectEntrustBackService.recall(id));
}
/**
* 查询数据
*
* @param id
*
* @return
*/
@ApiOperation("查询详细数据")
@GetMapping("getDetail/{id}")
public BaseResponse<ProjectEntrustVO> getDetail(@ApiParam(value = "主键id", required = true) @PathVariable String id){
return BaseResponse.success(projectEntrustBackService.getDetail(id));
}
}

View File

@ -267,4 +267,19 @@ public class ProjectEntrustController{
return BaseResponse.success(inquiryService.initProjectEntrust(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<Boolean> 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));
}
} }

View File

@ -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<ProjectEntrustBack> {
}

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.chinaunicom.mall.ebtp.project.bizprojectentrustback.dao.BizProjectEntrustBackMapper">
<resultMap id="BaseResultMap"
type="com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustBack">
<result column="ID" jdbcType="VARCHAR" property="id"/>
<result column="purchaser" jdbcType="VARCHAR" property="purchaser"/>
<result column="entrust_department" jdbcType="VARCHAR" property="entrustDepartment"/>
<result column="entrust_department_name" jdbcType="VARCHAR" property="entrustDepartmentName"/>
<result column="project_name" jdbcType="VARCHAR" property="projectName"/>
<result column="procurement_type" jdbcType="VARCHAR" property="procurementType"/>
<result column="procurement_mode" jdbcType="VARCHAR" property="procurementMode"/>
<result column="receive_time" jdbcType="TIMESTAMP" property="receiveTime"/>
<result column="status" jdbcType="INTEGER" property="status"/>
<result column="project_number" jdbcType="VARCHAR" property="projectNumber"/>
<result column="remarks" jdbcType="VARCHAR" property="remarks"/>
<result column="purchasing_manager" jdbcType="VARCHAR" property="purchasingManager"/>
<result column="agency_company" jdbcType="VARCHAR" property="agencyCompany"/>
<result column="project_manager" jdbcType="VARCHAR" property="projectManager"/>
<result column="delete_data" jdbcType="OTHER" property="deleteData" typeHandler="com.chinaunicom.mall.ebtp.common.config.CustomJacksonTypeHandler"/>
<result column="entrust_id" jdbcType="VARCHAR" property="entrustId"/>
<result column="create_by" jdbcType="VARCHAR" property="createBy"/>
<result column="create_date" jdbcType="TIMESTAMP" property="createDate"/>
<result column="update_by" jdbcType="VARCHAR" property="updateBy"/>
<result column="update_date" jdbcType="TIMESTAMP" property="updateDate"/>
<result column="tenant_id" jdbcType="VARCHAR" property="tenantId"/>
<result column="tenant_name" jdbcType="VARCHAR" property="tenantName"/>
<result column="delete_flag" jdbcType="VARCHAR" property="deleteFlag"/>
<result column="last_update_time" jdbcType="TIMESTAMP" property="lastUpdateTime"/>
</resultMap>
</mapper>

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<ProjectSection> sectionList;
}

View File

@ -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<ProjectEntrustBack>{
/**
* 委托单撤回页信息
* @param projectEntrustBackVO 委托单撤回查询信息
* @return 返回结果
*/
IPage<ProjectEntrustBackVO> getPage(ProjectEntrustBackVO projectEntrustBackVO);
/**
* 撤销
* @param id 主键ID
* @return 返回结果
*/
boolean recall(String id);
/**
* 查看详细信息
* @param id 主键ID
* @return 返回结果
*/
ProjectEntrustVO getDetail(String id);
}

View File

@ -93,4 +93,11 @@ public interface IProjectEntrustService extends IBaseService<ProjectEntrust>{
* @return 返回结果 * @return 返回结果
*/ */
boolean updateProject(ProjectEntrustVO projectEntrustVO); boolean updateProject(ProjectEntrustVO projectEntrustVO);
/**
* 根据实施项目ID删除相关信息委托 项目 标段)
* @param ebpProjectId 实施项目ID
* @return 返回结果
*/
boolean deleteProjectEntrust(Long ebpProjectId,String reason);
} }

View File

@ -0,0 +1,142 @@
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 javax.annotation.Resource;
/**
* 对数据表 biz_project_entrust_back 操作的 serviceImpl
* @author daixc
*
*/
@Service
public class ProjectEntrustBackServiceImpl extends ServiceImpl<ProjectEntrustBackMapper, ProjectEntrustBack> implements IProjectEntrustBackService {
@Resource
private IProjectEntrustService entrustService;
@Resource
private IProjectRecordService recordService;
@Resource
private IProjectSectionService sectionService;
@Resource
private IProjectEntrustExpandService entrustExpandService;
/**
* 查询条件
* @param projectEntrustBack 查询条件
* @return 查询条件
*/
private QueryWrapper<ProjectEntrustBack> getProjectEntrustBackQueryWrapper(ProjectEntrustBack projectEntrustBack){
QueryWrapper<ProjectEntrustBack> 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.getProcurementMode())){
query.eq(ProjectEntrustBackField.PROCUREMENT_MODE, projectEntrustBack.getProcurementMode());
}
return query;
}
@Override
public IPage<ProjectEntrustBackVO> getPage(ProjectEntrustBackVO projectEntrustBackVO) {
QueryWrapper<ProjectEntrustBack> query = getProjectEntrustBackQueryWrapper(projectEntrustBackVO);
query.orderByDesc(ProjectEntrustBackField.ID);
if(null == projectEntrustBackVO.getBasePageRequest()){
projectEntrustBackVO.setBasePageRequest(new BasePageRequest());
}
//查询
IPage<ProjectEntrustBack> p = new Page<>(projectEntrustBackVO.getBasePageRequest().getPageNo(), projectEntrustBackVO.getBasePageRequest().getPageSize());
IPage<ProjectEntrustBack> result = this.page(p, query);
IPage<ProjectEntrustBackVO> voPage = result.convert(c -> BeanUtil.toBean(c,ProjectEntrustBackVO.class));
voPage.setRecords(JsonUtils.jsonToList(result.getRecords(),ProjectEntrustBackVO.class));
return voPage;
}
@Override
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<ProjectEntrustExpand>()
.eq(ProjectEntrustExpand::getEntrustId,entrustBack.getEntrustId()));
CommonExceptionEnum.FRAME_EXCEPTION_COMMON_NOT_FIND.customValid(null == expand);
if(null != projectEntrustVO){
projectEntrustVO.setProjectEntrustExpand(expand);
}
return projectEntrustVO;
}
}

View File

@ -1,9 +1,12 @@
package com.chinaunicom.mall.ebtp.project.projectentrust.service.impl; package com.chinaunicom.mall.ebtp.project.projectentrust.service.impl;
import cn.hutool.core.bean.BeanUtil; 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.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaunicom.mall.ebtp.common.base.entity.BasePageRequest; 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.entity.BaseResponse;
@ -23,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.MallPurpApi;
import com.chinaunicom.mall.ebtp.project.feign.PriceQueryApi; import com.chinaunicom.mall.ebtp.project.feign.PriceQueryApi;
import com.chinaunicom.mall.ebtp.project.projectentrust.dao.ProjectEntrustMapper; 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.*;
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.ebpentity.*; 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.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.IProjectEntrustExpandService;
import com.chinaunicom.mall.ebtp.project.projectentrust.service.IProjectEntrustService; 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.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 lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -42,6 +47,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 对数据表 biz_project_entrust 操作的 serviceImpl * 对数据表 biz_project_entrust 操作的 serviceImpl
@ -77,6 +83,12 @@ public class ProjectEntrustServiceImpl extends BaseServiceImpl<ProjectEntrustMap
@Resource @Resource
private OperationLogService logService; private OperationLogService logService;
@Resource
private IProjectSectionService sectionService;
@Resource
private IProjectEntrustBackService entrustBackService;
private static final String METHOD = "initProjectEntrust"; private static final String METHOD = "initProjectEntrust";
private static final String DESCRIPTION = "项目委托查询采购数据"; private static final String DESCRIPTION = "项目委托查询采购数据";
@ -481,6 +493,58 @@ public class ProjectEntrustServiceImpl extends BaseServiceImpl<ProjectEntrustMap
return result; return result;
} }
@Override
public boolean deleteProjectEntrust(Long ebpProjectId,String reason) {
LambdaQueryWrapper<ProjectEntrust> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(ProjectEntrust::getProcurementPlanId,ebpProjectId);
List<ProjectEntrust> 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<ProjectRecord> recordQueryWrapper = Wrappers.lambdaQuery();
recordQueryWrapper.eq(ProjectRecord::getEntrustId, delProjectEntrust.getId());
List<ProjectRecord> recordList = projectRecordService.list(recordQueryWrapper);
this.removeById(delProjectEntrust.getId());
if(!CollectionUtils.isEmpty(recordList)){
long recordCount = recordList.stream().filter(n -> n.getStatus() > 1).count();
ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_RECORD_NOT_BACK.customValid(recordCount > 1);
ProjectRecord record = recordList.get(0);
LambdaQueryWrapper<ProjectSection> sectionQueryWrapper = Wrappers.lambdaQuery();
sectionQueryWrapper.eq(ProjectSection::getProjectId,record.getId());
List<ProjectSection> sectionList = sectionService.list(sectionQueryWrapper);
deleteData.setProjectRecord(record);
deleteData.setSectionList(sectionList);
projectRecordService.removeById(record.getId());
sectionService.remove(new LambdaQueryWrapper<ProjectSection>().eq(ProjectSection::getProjectId,record.getId()));
}
entrustBack.setDeleteData(deleteData);
entrustBackService.save(entrustBack);
}
return true;
}
/** /**
* 出始化项目辅助相关信息 * 出始化项目辅助相关信息
* @param projectEntrustVO 插入信息 * @param projectEntrustVO 插入信息

View File

@ -90,6 +90,8 @@ spring:
# 天宫 redis 需要使用哨兵进行访问 # 天宫 redis 需要使用哨兵进行访问
redis: redis:
database:
idempotent: 0
sentinel: sentinel:
master: eshop-redis master: eshop-redis
nodes: 10.125.164.124:32718, 10.125.164.118:32716, 10.125.164.121:32716 nodes: 10.125.164.124:32718, 10.125.164.118:32716, 10.125.164.121:32716
@ -175,3 +177,10 @@ management:
cors: cors:
allowed-origins: "*" allowed-origins: "*"
allowed-methods: "*" 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