0988b67d by xu

Merge branch 'develop-v1.0.6' into feature-tds-v1.0.0

# Conflicts:
#	src/main/java/com/csbr/qingcloud/portal/service/EnterpriseService.java
2 parents 21fc2263 2be08149
Showing 25 changed files with 1614 additions and 111 deletions
package com.csbr.qingcloud.portal.controller;
import com.csbr.cloud.common.response.CommonRes;
import csbr.cloud.entity.annotation.SystemLog;
import csbr.cloud.entity.domain.base.vo.PageListVO;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseAttachmentQueryVO;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseAttachmentRQVO;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseAttachmentRSVO;
import com.csbr.qingcloud.portal.service.EnterpriseAttachmentService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @program:
* @description: 开发主体附件信息-控制器
* @author: makejava
* @create: 2025-09-05 13:50
**/
@RestController
@RequestMapping("/enterprise-attachment")
@Tag(name = "开发主体附件信息-控制器")
public class EnterpriseAttachmentController {
@Resource
private EnterpriseAttachmentService enterpriseAttachmentService;
//region 基本操作
@PostMapping("/save")
@SystemLog(value = "开发主体附件信息-新增")
@Operation(summary = "开发主体附件信息-新增")
public CommonRes<Boolean> saveEnterpriseAttachment(@RequestBody @Valid EnterpriseAttachmentRQVO vo) {
enterpriseAttachmentService.saveEnterpriseAttachment(vo);
return CommonRes.success(true);
}
@PutMapping("/update")
@SystemLog(value = "开发主体附件信息-修改")
@Operation(summary = "开发主体附件信息-修改")
public CommonRes<Boolean> updateEnterpriseAttachment(@RequestBody @Valid EnterpriseAttachmentRQVO vo) {
enterpriseAttachmentService.updateEnterpriseAttachment(vo);
return CommonRes.success(true);
}
@DeleteMapping("/delete")
@SystemLog(value = "开发主体附件信息-批量删除")
@Operation(summary = "开发主体附件信息-批量删除")
public CommonRes<Boolean> removeByGuids(@RequestBody List<String> guids) {
enterpriseAttachmentService.removeByGuids(guids);
return CommonRes.success(true);
}
@PostMapping("/page-list")
@SystemLog(value = "开发主体附件信息-分页")
@Operation(summary = "开发主体附件信息-分页")
public CommonRes<PageListVO<EnterpriseAttachmentRSVO>> pageList(@RequestBody @Valid EnterpriseAttachmentQueryVO queryVO) {
PageListVO<EnterpriseAttachmentRSVO> pageVO = enterpriseAttachmentService.pageList(queryVO);
return CommonRes.success(pageVO);
}
@GetMapping("/detail")
@SystemLog(value = "开发主体附件信息-详情")
@Operation(
summary = "开发主体附件信息-详情",
parameters = {
@Parameter(name = "guid", description = "开发主体附件信息唯一标识", required = true)}
)
public CommonRes<EnterpriseAttachmentRSVO> getEnterpriseAttachmentDetail(@RequestParam String guid) {
EnterpriseAttachmentRSVO vo = enterpriseAttachmentService.getEnterpriseAttachmentDetail(guid);
return CommonRes.success(vo);
}
@GetMapping("/get-fileUrl")
@SystemLog(value = "开发主体附件信息-查询文件Url地址")
@Operation(
summary = "开发主体附件信息-查询文件Url地址",
parameters = {
@Parameter(name = "fileId", description = "文件Id", required = true)},
hidden = true
)
public CommonRes<String> getFileUrl(@RequestParam String fileId) {
String fileUrl = enterpriseAttachmentService.getEnterpriseAttachmentUrl(fileId);
return CommonRes.success(fileUrl);
}
//endregion
}
......@@ -130,6 +130,19 @@ public class EnterpriseController {
return CommonRes.success(true);
}
@PostMapping("/list-by-tenant-guids")
@SystemLog(value = "企业信息-根据会员guids查询企业信息")
public CommonRes<List<EnterpriseRSVO>> listByTenantGuids(@RequestBody List<String> guids) {
List<EnterpriseRSVO> vo = enterpriseService.listByTenantGuids(guids);
return CommonRes.success(vo);
}
@GetMapping("/update-identity-state")
@SystemLog(value = "企业信息-修改身份状态")
public CommonRes<Boolean> updateIdentityState(@RequestParam String logonUser, @RequestParam String identityState) {
return CommonRes.success(enterpriseService.updateIdentityState(logonUser, identityState));
}
//endregion
//region 变更申请
......
package com.csbr.qingcloud.portal.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @program: ms-zcgl-system-manager-service
* @description: TODO
* @author: lixiang
* @create: 2023-10-19 16:28
**/
@Data
public class DataDictDetailVO {
/** 系统唯一标识 */
@Schema(title="系统唯一标识")
private String guid;
/** 参数名称 */
@Schema(title="参数名称")
private String paramName;
/** 参数编码 */
@Schema(title="参数编码")
private String paramCode;
/** 参数类型(用途归类) */
@Schema(title="参数类型(用途归类)")
private String paramType;
/** 参数值 */
@Schema(title="参数值")
private String paramValue;
/** 排序 */
@Schema(title="排序")
private Integer orderNum;
}
package com.csbr.qingcloud.portal.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
/**
* @program: @program:
* @description: 数据字典返回对象
* @author: csbrAuthor
* @create: 2023-08-25
**/
@Data
@Schema(title="数据字典返回对象")
public class DataDictVO {
/** 系统唯一标识 */
@Schema(title="系统唯一标识")
private String guid;
/** 参数类型(用途归类) */
@Schema(title="参数类型(用途归类)")
private String paramType;
/** 参数编码 */
@Schema(title="参数编码")
private String paramCode;
/** 参数名称 */
@Schema(title="参数名称")
private String paramName;
/** 描述 */
@Schema(title="描述")
private String remarks;
/** 参数值 */
@Schema(title="参数值")
private String paramValue;
/** 排序 */
@Schema(title="排序")
private Integer orderNum;
/** 修改姓名 */
@Schema(title="修改姓名")
private String updateUserName;
/** 修改时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title="修改时间")
private String updateTime;
@Schema(title="系统参数子明细")
List<DataDictDetailVO> detailVOList;
}
\ No newline at end of file
package com.csbr.qingcloud.portal.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @program:
......@@ -39,10 +39,17 @@ public class EnterpriseAttachmentRQVO {
private String enterpriseGuid;
/**
* 文件唯一标识
*/
@Schema(description = "文件唯一标识")
private String fileId;
/**
* 文件名称
*/
@Schema(description = "文件名称")
@Size(max = 50, message = "文件名称长度超过50")
@NotBlank(message = "文件名称为空.")
private String fileName;
/**
......@@ -50,6 +57,7 @@ public class EnterpriseAttachmentRQVO {
*/
@Schema(description = "文件类型【详情 开发主体附件类型数据字典】")
@Size(max = 10, message = "文件类型【详情 开发主体附件类型数据字典】长度超过10")
@NotBlank(message = "文件类型为空.")
private String fileType;
/**
......@@ -63,6 +71,7 @@ public class EnterpriseAttachmentRQVO {
*/
@Schema(description = "文件地址")
@Size(max = 500, message = "文件地址长度超过500")
@NotBlank(message = "文件地址为空.")
private String fileUrl;
/******** 库表存储属性 需处理 *****/
......
package com.csbr.qingcloud.portal.domain.vo;
import com.csbr.cloud.common.annotations.SystemParamsDict;
import io.swagger.v3.oas.annotations.media.Schema;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @program:
......@@ -47,6 +47,13 @@ public class EnterpriseAttachmentRSVO {
private String fileType;
/**
* 文件类型名称
*/
@Schema(description = "文件类型名称")
@SystemParamsDict(dictTypeName = "开发主体附件类型", codeFieldName = "fileType")
private String fileTypeName;
/**
* 文件大小
*/
@Schema(description = "文件大小")
......
package com.csbr.qingcloud.portal.domain.vo;
import csbr.cloud.entity.domain.base.dto.BasePageDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.EqualsAndHashCode;
import lombok.Data;
import java.util.Date;
/**
* @program:
* @description: 开发主体领域信息查询参数
* @author: makejava
* @create: 2025-09-12 11:02
**/
@EqualsAndHashCode(callSuper = true)
@Data
@Schema(title = "开发主体领域信息查询参数")
public class EnterpriseDomainQueryVO extends BasePageDTO {
}
package com.csbr.qingcloud.portal.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.Data;
import java.util.Date;
/**
* @program:
* @description: 开发主体领域信息新增、修改参数
* @author: makejava
* @create: 2025-09-12 11:02
**/
@Data
@Schema(title = "开发主体领域信息新增、修改参数")
public class EnterpriseDomainRQVO {
/**
* 系统唯一标识
*/
@Schema(description = "系统唯一标识")
@Size(max = 32, message = "系统唯一标识长度超过32")
private String guid;
/**
* 企业认证唯一标识
*/
@Schema(description = "企业认证唯一标识")
@Size(max = 32, message = "企业认证唯一标识长度超过32")
private String enterpriseGuid;
/**
* 领域代码
*/
@Schema(description = "领域代码")
@Size(max = 10, message = "领域代码长度超过10")
@NotBlank(message = "领域代码为空.")
private String domainId;
/**
* 授权协议号
*/
@Schema(description = "授权协议号")
@Size(max = 50, message = "授权协议号长度超过50")
@NotBlank(message = "授权协议号为空.")
private String authId;
/**
* 协议开始日期
*/
@Schema(description = "协议开始日期")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
@NotNull(message = "协议开始日期为空.")
private Date domainStartTime;
/**
* 协议结束日期
*/
@Schema(description = "协议结束日期")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
@NotNull(message = "协议结束日期为空.")
private Date domainEndTime;
/**
* 协议签订日期
*/
@Schema(description = "协议签订日期")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@NotNull(message = "协议签订日期为空.")
private Date domainSignTime;
/**
* 协议签订人
*/
@Schema(description = "协议签订人")
@Size(max = 20, message = "协议签订人长度超过20")
@NotBlank(message = "协议签订人为空.")
private String signee;
/**
* 协议状态,如10【10-生效中;20-已终止】
*/
@Schema(description = "协议状态,如10【10-生效中;20-已终止】")
@Size(max = 10, message = "协议状态,如10【10-生效中;20-已终止】长度超过10")
@NotBlank(message = "协议状态为空.")
@Pattern(regexp = "^10|20$", message = "领域代码应该为10、20中的值。")
private String domainStatus;
/******** 库表存储属性 需处理 *****/
/******** 自定义扩展 *****/
/******** 子对象 *****/
}
package com.csbr.qingcloud.portal.domain.vo;
import com.csbr.cloud.common.annotations.SystemParamsDict;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
/**
* @program:
* @description: 开发主体领域信息返回参数
* @author: makejava
* @create: 2025-09-12 11:02
**/
@Data
@Schema(title = "开发主体领域信息返回参数")
public class EnterpriseDomainRSVO {
/**
* 系统唯一标识
*/
@Schema(description = "系统唯一标识")
private String guid;
/**
* 企业唯一标识
*/
@Schema(description = "企业唯一标识")
private String tenantGuid;
/**
* 企业认证唯一标识
*/
@Schema(description = "企业认证唯一标识")
private String enterpriseGuid;
/**
* 领域代码
*/
@Schema(description = "领域代码")
private String domainId;
@Schema(title = "领域名称")
@SystemParamsDict(dictTypeName = "领域", codeFieldName = "domainId")
private String domainIdName;
/**
* 授权协议号
*/
@Schema(description = "授权协议号")
private String authId;
/**
* 协议开始日期
*/
@Schema(description = "协议开始日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date domainStartTime;
/**
* 协议结束日期
*/
@Schema(description = "协议结束日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date domainEndTime;
/**
* 协议签订日期
*/
@Schema(description = "协议签订日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date domainSignTime;
/**
* 协议签订人
*/
@Schema(description = "协议签订人")
private String signee;
/**
* 协议状态,如10【10-生效中;20-已终止】
*/
@Schema(description = "协议状态,如10【10-生效中;20-已终止】")
private String domainStatus;
@Schema(title = "协议状态名称")
@SystemParamsDict(dictTypeName = "协议状态", codeFieldName = "domainStatus")
private String domainStatusName;
/******** 库表存储属性 需处理 *****/
/******** 自定义扩展 *****/
/******** 子对象 *****/
}
package com.csbr.qingcloud.portal.domain.vo;
import com.csbr.cloud.workflow.domain.vo.appove.FlowRQBaseVO;
import io.swagger.v3.oas.annotations.media.Schema;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @program: D:/git/ms-data-circulation-portal-service
......@@ -175,10 +177,37 @@ public class EnterpriseRQVO extends FlowRQBaseVO {
@Schema(description = "业务审批状态【N 草稿中,A 审批中,Y 已通过,R 驳回,C 已撤销,D 已废弃;B 变更中; 默认 N】")
private String bizApproveState;
@Schema(description = "组织机构性质")
private String institutionType;
@Schema(description = "详细地址")
private String detailedAddress;
@Schema(description = "行业分类")
private String industry;
@Schema(description = "行业小类")
private String industrySmallcode;
@Schema(description = "授权方式")
private String authorizationMethod = "2";
@Schema(description = "身份状态")
private String identityState = "N";
@Schema(description = "经办人证件类型")
private String handlePersonIdType;
/******** 库表存储属性 需处理 *****/
/******** 自定义扩展 *****/
/******** 子对象 *****/
@Schema(description = "开发主体附件信息")
private List<EnterpriseAttachmentRQVO> attachmentRQVOS;
@Schema(description = "开发主体领域信息")
private List<EnterpriseDomainRQVO> domainRQVOS;
}
......
package com.csbr.qingcloud.portal.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import com.csbr.cloud.common.annotations.SystemParamsDict;
import com.csbr.cloud.workflow.domain.vo.appove.BizApproveVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import com.csbr.cloud.workflow.domain.vo.appove.BizApproveVO;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
......@@ -198,6 +200,56 @@ public class EnterpriseRSVO {
@Schema(title = "跨平台审批状态(N 初始 A 审批中 Y 已通过 R 驳回 C 已撤销)")
private String crossPlatformApproveState;
@Schema(description = "组织机构性质")
private String institutionType;
@Schema(description = "组织机构性质名称")
@SystemParamsDict(dictTypeName = "组织机构性质", codeFieldName = "institutionType")
private String institutionTypeName;
@Schema(description = "详细地址")
private String detailedAddress;
@Schema(description = "行业分类")
private String industry;
@Schema(description = "行业分类名称")
@SystemParamsDict(dictTypeName = "行业分类", codeFieldName = "industry")
private String industryName;
@Schema(description = "行业小类")
private String industrySmallcode;
@Schema(description = "行业小类名称")
@SystemParamsDict(dictTypeName = "行业分类", codeFieldName = "industrySmallcode")
private String industrySmallcodeName;
@Schema(description = "认证方式")
private String authenticationMethod;
@Schema(description = "认证状态")
private String authenticationState;
@Schema(description = "认证时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date authenticationTime;
@Schema(description = "认证等级")
private String authenticationLevel;
@Schema(description = "身份状态")
private String identityState;
@Schema(description = "授权方式")
private String authorizationMethod;
@Schema(description = "经办人证件类型")
private String handlePersonIdType;
@Schema(description = "经办人证件类型名称")
@SystemParamsDict(dictTypeName = "证件类型", codeFieldName = "handlePersonIdType")
private String handlePersonIdTypeName;
/******** 库表存储属性 需处理 *****/
/******** 自定义扩展 *****/
......@@ -216,4 +268,10 @@ public class EnterpriseRSVO {
/******** 子对象 *****/
@Schema(description = "开发主体附件信息返回参数")
private List<EnterpriseAttachmentRSVO> attachmentRSVOS;
@Schema(description = "开发主体领域信息返回参数")
private List<EnterpriseDomainRSVO> domainRSVOS;
}
......
package com.csbr.qingcloud.portal.feign;
import com.csbr.cloud.common.config.FastCallFeignConfiguration;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixProperty;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @program:
* @description: 公共服务调用
* @author: lixiang
* @create: 2023-11-07 17:55
**/
@FeignClient(value = "ms-daop-common-service", configuration = FastCallFeignConfiguration.class)
public interface DaopCommonFeign {
/**
* 下载文件流
* @param filePath
* @return
*/
@HystrixCommand(fallbackMethod = "CommonUtil.sleepFallback", commandProperties =
{
@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "9000")
})
@RequestMapping(value = "/obs/download-file-stream",method = RequestMethod.GET, produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
ResponseEntity<ByteArrayResource> downloadFile(@RequestParam(value = "filePath", required = true) String filePath);
}
......@@ -187,4 +187,36 @@ public class MfEnterprise extends BaseDO {
@Name("业务审批状态")
private String bizApproveState;
@Name("组织机构性质")
private String institutionType;
@Name("详细地址")
private String detailedAddress;
@Name("行业分类")
private String industry;
@Name("行业小类")
private String industrySmallcode;
@Name("认证方式")
private String authenticationMethod;
@Name("认证状态")
private String authenticationState;
@Name("认证时间")
private Date authenticationTime;
@Name("认证等级")
private String authenticationLevel;
@Name("身份状态")
private String identityState;
@Name("授权方式")
private String authorizationMethod;
@Name("经办人证件类型")
private String handlePersonIdType;
}
......
......@@ -205,4 +205,37 @@ public class MfEnterpriseChangeApprove extends BaseDO {
@Name("数据类型")
private String dataType;
@Name("组织机构性质")
private String institutionType;
@Name("详细地址")
private String detailedAddress;
@Name("行业分类")
private String industry;
@Name("行业小类")
private String industrySmallcode;
@Name("认证方式")
private String authenticationMethod;
@Name("认证状态")
private String authenticationState;
@Name("认证时间")
private Date authenticationTime;
@Name("认证等级")
private String authenticationLevel;
@Name("身份状态")
private String identityState;
@Name("授权方式")
private String authorizationMethod;
@Name("经办人证件类型")
private String handlePersonIdType;
}
......
package com.csbr.qingcloud.portal.mybatis.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import csbr.cloud.entity.domain.base.dao.BaseDO;
import jdk.jfr.Name;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* @program:
* @description: 开发主体领域信息实体
* @author: makejava
* @create: 2025-09-12 11:02
**/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@Name("开发主体领域信息")
public class MfEnterpriseDomain extends BaseDO {
/**
* 企业唯一标识
*/
@Name("企业唯一标识")
private String tenantGuid;
/**
* 企业认证唯一标识
*/
@Name("企业认证唯一标识")
private String enterpriseGuid;
/**
* 领域代码
*/
@Name("领域代码")
private String domainId;
/**
* 授权协议号
*/
@Name("授权协议号")
private String authId;
/**
* 协议开始日期
*/
@Name("协议开始日期")
private Date domainStartTime;
/**
* 协议结束日期
*/
@Name("协议结束日期")
private Date domainEndTime;
/**
*
*/
@Name("协议签订日期")
private Date domainSignTime;
/**
* 协议签订人
*/
@Name("协议签订人")
private String signee;
/**
* 协议状态,如10【10-生效中;20-已终止】
*/
@Name("协议状态,如10【10-生效中;20-已终止】")
private String domainStatus;
}
package com.csbr.qingcloud.portal.mybatis.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterpriseDomain;
/**
* @program:
* @description: 开发主体领域信息 Mapper 接口
* @author: makejava
* @create: 2025-09-12 11:02
**/
@Mapper
public interface MfEnterpriseDomainMapper extends BaseMapper<MfEnterpriseDomain> {
}
package com.csbr.qingcloud.portal.mybatis.service;
import com.csbr.cloud.base.service.CsbrService;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterpriseDomain;
/**
* @program:
* @description: 开发主体领域信息逻辑层接口
* @author: makejava
* @create: 2025-09-12 11:02
**/
public interface MfEnterpriseDomainService extends CsbrService<MfEnterpriseDomain> {
}
package com.csbr.qingcloud.portal.mybatis.service.impl;
import com.csbr.cloud.mybatis.service.impl.CsbrServiceImpl;
import com.csbr.qingcloud.portal.mybatis.mapper.MfEnterpriseDomainMapper;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterpriseDomain;
import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseDomainService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
/**
* @program:
* @description: 开发主体领域信息逻辑层接口实现
* @author: makejava
* @create: 2025-09-12 11:02
**/
@Service
public class MfEnterpriseDomainServiceImpl extends CsbrServiceImpl<MfEnterpriseDomainMapper, MfEnterpriseDomain> implements MfEnterpriseDomainService {
@Resource
private MfEnterpriseDomainMapper mfEnterpriseDomainMapper;
}
package com.csbr.qingcloud.portal.service;
import com.csbr.qingcloud.portal.domain.vo.dataExchange.*;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterprise;
import csbr.cloud.entity.domain.base.vo.PageListVO;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseAttachmentQueryVO;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseAttachmentRQVO;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseAttachmentRSVO;
import java.util.List;
import java.util.Map;
/**
* @program:
......@@ -83,4 +85,36 @@ public interface EnterpriseAttachmentService {
* @return
*/
String getEnterpriseAttachmentUrl(String fileId);
/**
* 批量新增开发主体附件信息
* @param attachmentRQVOS
* @param guid
* @param tenantGuid
* @param isRequired
*/
void batchSave(List<EnterpriseAttachmentRQVO> attachmentRQVOS, String guid, String tenantGuid, Boolean isRequired);
/**
* 删除开发主体附件信息
* @param enterpriseGuids
*/
void removeByEnterpriseGuids(List<String> enterpriseGuids);
/**
* 批量修改开发主体附件信息
* @param attachmentRQVOS
* @param guid
* @param tenantGuid
* @param isRequired
*/
void batchUpdate(List<EnterpriseAttachmentRQVO> attachmentRQVOS, String guid, String tenantGuid, Boolean isRequired);
/**
* 根据企业认证guid查询附件信息
* @param enterpriseGuids
* @return
*/
Map<String, List<EnterpriseAttachmentRSVO>> getMapByEnterpriseGuids(List<String> enterpriseGuids);
}
......
package com.csbr.qingcloud.portal.service;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseDomainQueryVO;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseDomainRQVO;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseDomainRSVO;
import csbr.cloud.entity.domain.base.vo.PageListVO;
import java.util.List;
import java.util.Map;
/**
* @program:
* @description: 开发主体领域信息业务逻辑接口
* @author: makejava
* @create: 2025-09-12 11:02
**/
public interface EnterpriseDomainService {
/**
* 开发主体领域信息分页查询
* @author makejava
* @date 2025-09-12 11:02
* @param queryVO
* @return com.csbr.cloud.mybatis.entity.PageListVO<com.csbr.qingcloud.portal.domain.vo.EnterpriseDomainRSVO>
*/
PageListVO<EnterpriseDomainRSVO> pageList(EnterpriseDomainQueryVO queryVO);
/**
* 开发主体领域信息获取详情数据
* @author makejava
* @date 2025-09-12 11:02
* @param guid
* @return com.csbr.qingcloud.portal.domain.vo.EnterpriseDomainRSVO
*/
EnterpriseDomainRSVO getEnterpriseDomainDetail(String guid);
/**
* 开发主体领域信息数据新增
* @author makejava
* @date 2025-09-12 11:02
* @param rqVO
* @return boolean
*/
void saveEnterpriseDomain(EnterpriseDomainRQVO rqVO);
/**
* 开发主体领域信息数据修改
* @author makejava
* @date 2025-09-12 11:02
* @param rqVO
* @return boolean
*/
void updateEnterpriseDomain(EnterpriseDomainRQVO rqVO);
/**
* 开发主体领域信息数据删除
* @author makejava
* @date 2025-09-12 11:02
* @param guids
* @return void
*/
void removeByGuids(List<String> guids);
/**
* 开发主体领域信息数据删除、并有相关的处理操作
* @author makejava
* @date 2025-09-12 11:02
* @param guids
* @return void
*/
void removeHandleByGuids(List<String> guids);
/**
* 批量新增开发主体领域信息
* @param domainRQVOS
* @param guid
*/
void batchSave(List<EnterpriseDomainRQVO> domainRQVOS, String guid);
/**
* 删除开发主体领域信息
* @param enterpriseGuids
*/
void removeByEnterpriseGuids(List<String> enterpriseGuids);
/**
* 批量新增开发主体领域信息
* @param domainRQVOS
* @param guid
*/
void batchUpdate(List<EnterpriseDomainRQVO> domainRQVOS, String guid);
/**
* 根据企业认证guid查询企业领域信息
* @param enterpriseGuids
* @return
*/
Map<String, List<EnterpriseDomainRSVO>> getMapByEnterpriseGuids(List<String> enterpriseGuids);
}
......@@ -115,6 +115,21 @@ public interface EnterpriseService {
JSExchageCommonRes<JSExchagePageListVO<JSEnterpriseRSVO>> enterpriseData(JSBaseRQVO<JSEnterpriseQueryVO> queryVO);
/**
* 根据会员guids查询企业信息
* @param guids
* @return
*/
List<EnterpriseRSVO> listByTenantGuids(List<String> guids);
/**
* 企业信息-修改身份状态
* @param logonUser
* @param identityState
* @return
*/
Boolean updateIdentityState(String logonUser, String identityState);
/**
* 按名称或者统一社会信用代码查企业信息详情
* @param tenantName
* @param uscc
......
package com.csbr.qingcloud.portal.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.csbr.cloud.common.enums.SystemError;
import com.csbr.cloud.common.exception.CsbrSystemException;
......@@ -8,6 +9,7 @@ import com.csbr.cloud.common.util.CommonUtil;
import com.csbr.cloud.common.util.CsbrBeanUtil;
import com.csbr.cloud.common.util.MessageSourceUtil;
import com.csbr.qingcloud.portal.domain.vo.dataExchange.*;
import com.csbr.qingcloud.portal.feign.DaopCommonFeign;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterprise;
import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseService;
import csbr.cloud.entity.domain.base.vo.PageListVO;
......@@ -17,18 +19,25 @@ import com.csbr.qingcloud.portal.domain.vo.EnterpriseAttachmentRSVO;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterpriseAttachment;
import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseAttachmentService;
import com.csbr.qingcloud.portal.service.EnterpriseAttachmentService;
import csbr.cloud.entity.domain.easyexcel.MockMultipartFile;
import csbr.cloud.entity.enums.ApprovalStateEnum;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.math.BigDecimal;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;
/**
* @program:
......@@ -57,6 +66,9 @@ public class EnterpriseAttachmentServiceImpl implements EnterpriseAttachmentServ
@Resource
private MfEnterpriseService mfEnterpriseService;
@Resource
private DaopCommonFeign daopCommonFeign;
/**
* 开发主体附件信息分页查询
* @author makejava
......@@ -266,6 +278,76 @@ public class EnterpriseAttachmentServiceImpl implements EnterpriseAttachmentServ
return null;
}
@Override
@Transactional
public void batchSave(List<EnterpriseAttachmentRQVO> attachmentRQVOS, String guid, String tenantGuid, Boolean isRequired) {
if (ObjectUtils.isNotEmpty(attachmentRQVOS)) {
List<MfEnterpriseAttachment> attachmentList = new ArrayList<>();
for (EnterpriseAttachmentRQVO attachmentRQVO : attachmentRQVOS) {
attachmentRQVO.setGuid(null);
attachmentRQVO.setEnterpriseGuid(guid);
attachmentRQVO.setTenantGuid(tenantGuid);
// 获取文件大小
// 下载文件流
String fileUrl = attachmentRQVO.getFileUrl();
String url = URLDecoder.decode(fileUrl.split("\\?AccessKeyId")[0], StandardCharsets.UTF_8);
String fileName = attachmentRQVO.getFileName().split("\\.")[0];
MultipartFile multipartFile = null;
ResponseEntity<ByteArrayResource> responseEntity = daopCommonFeign.downloadFile(url);
if (HttpStatus.OK.equals(responseEntity.getStatusCode()) && ObjectUtils.isNotEmpty(responseEntity.getBody())) {
multipartFile = new MockMultipartFile(fileName, fileName, "application/octet-stream", responseEntity.getBody().getByteArray());
}
if (multipartFile == null || multipartFile.isEmpty()) {
attachmentRQVO.setFileSize(BigDecimal.ZERO);
} else {
attachmentRQVO.setFileSize(BigDecimal.valueOf(multipartFile.getSize() / 1024.0));
}
attachmentRQVO.setFileId("enterprise_" + CommonUtil.newGuid().toUpperCase(Locale.ROOT));
MfEnterpriseAttachment mfEnterpriseAttachment = convertToEntity(attachmentRQVO);
mfEnterpriseAttachmentService.csbrAddEntity(mfEnterpriseAttachment);
attachmentList.add(mfEnterpriseAttachment);
}
mfEnterpriseAttachmentService.saveBatch(attachmentList);
}
}
@Transactional
@Override
public void removeByEnterpriseGuids(List<String> enterpriseGuids) {
if (CollectionUtils.isEmpty(enterpriseGuids)) {
return;
}
LambdaUpdateWrapper<MfEnterpriseAttachment> updateWrapper = Wrappers.lambdaUpdate(MfEnterpriseAttachment.class);
updateWrapper.in(MfEnterpriseAttachment::getEnterpriseGuid, enterpriseGuids);
mfEnterpriseAttachmentService.remove(updateWrapper);
}
@Override
@Transactional
public void batchUpdate(List<EnterpriseAttachmentRQVO> attachmentRQVOS, String guid, String tenantGuid, Boolean isRequired) {
// 删除开发主体附件信息
removeByEnterpriseGuids(Collections.singletonList(guid));
// 批量新增开发主体附件信息
batchSave(attachmentRQVOS, guid, tenantGuid, isRequired);
}
@Override
public Map<String, List<EnterpriseAttachmentRSVO>> getMapByEnterpriseGuids(List<String> enterpriseGuids) {
if (ObjectUtils.isEmpty(enterpriseGuids)) {
return null;
}
LambdaQueryWrapper<MfEnterpriseAttachment> queryWrapper = Wrappers.lambdaQuery(MfEnterpriseAttachment.class);
queryWrapper.in(MfEnterpriseAttachment::getEnterpriseGuid, enterpriseGuids);
queryWrapper.orderByAsc(MfEnterpriseAttachment::getCreateTime);
List<MfEnterpriseAttachment> enterpriseAttachments = mfEnterpriseAttachmentService.list(queryWrapper);
if (ObjectUtils.isEmpty(enterpriseAttachments)) {
return null;
}
return convertToVO(enterpriseAttachments).stream().collect(Collectors.groupingBy(EnterpriseAttachmentRSVO::getEnterpriseGuid));
}
/**
* 开发主体附件信息新新增前置处理
* @author makejava
......
......@@ -12,17 +12,16 @@ import com.csbr.cloud.common.util.CsbrBeanUtil;
import com.csbr.cloud.common.util.MessageSourceUtil;
import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO;
import com.csbr.cloud.workflow.util.ApprovalFlowUtil;
import com.csbr.qingcloud.portal.domain.vo.ChangeApproveVO;
import com.csbr.qingcloud.portal.domain.vo.ChangeInfoVO;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseRQVO;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseRSVO;
import com.csbr.qingcloud.portal.domain.vo.*;
import com.csbr.qingcloud.portal.feign.ConfigureFeign;
import com.csbr.qingcloud.portal.feign.PersonelFeign;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterprise;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterpriseChangeApprove;
import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseChangeApproveService;
import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseService;
import com.csbr.qingcloud.portal.service.EnterpriseAttachmentService;
import com.csbr.qingcloud.portal.service.EnterpriseChangeApproveService;
import com.csbr.qingcloud.portal.service.EnterpriseDomainService;
import com.csbr.qingcloud.portal.service.EnterpriseService;
import com.csbr.qingcloud.portal.util.ChangeInfoUtil;
import com.csbr.qingcloud.portal.util.InvokeUtil;
......@@ -35,6 +34,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.*;
......@@ -62,6 +62,9 @@ public class EnterpriseChangeApproveServiceImpl implements EnterpriseChangeAppro
@Autowired
private InvokeUtil invokeUtil;
@Value("${enterpriseAttachment.isRequired:true}")
private Boolean isRequired;
@Resource
private MfEnterpriseChangeApproveService mfEnterpriseChangeApproveService;
......@@ -86,6 +89,12 @@ public class EnterpriseChangeApproveServiceImpl implements EnterpriseChangeAppro
@Resource
private ConfigureFeign configureFeign;
@Resource
private EnterpriseAttachmentService enterpriseAttachmentService;
@Resource
private EnterpriseDomainService enterpriseDomainService;
/** 保存变更数据 */
@Override
public void changeSave(ChangeApproveVO vo) {
......@@ -108,6 +117,12 @@ public class EnterpriseChangeApproveServiceImpl implements EnterpriseChangeAppro
entity.setGuid(vo.getGuid());
mfEnterpriseChangeApproveService.save(entity);
// 保存新数据的附件和领域数据
List<EnterpriseAttachmentRQVO> attachmentRQVOS = beanVO.getAttachmentRQVOS();
enterpriseAttachmentService.batchSave(attachmentRQVOS, entity.getGuid(), entity.getTenantGuid(), isRequired);
List<EnterpriseDomainRQVO> domainRQVOS = beanVO.getDomainRQVOS();
enterpriseDomainService.batchSave(domainRQVOS, entity.getGuid());
//保存原数据
beanVO = JSON.parseObject(vo.getOldBizDataJson(),EnterpriseRQVO.class);
entity = csbrBeanUtil.convert(beanVO,MfEnterpriseChangeApprove.class);
......@@ -117,6 +132,12 @@ public class EnterpriseChangeApproveServiceImpl implements EnterpriseChangeAppro
entity.setTenantGuid(tenantGuid);
mfEnterpriseChangeApproveService.save(entity);
// 保存旧数据的附件和领域数据
List<EnterpriseAttachmentRQVO> attachmentRQVOSOld = beanVO.getAttachmentRQVOS();
enterpriseAttachmentService.batchSave(attachmentRQVOSOld, entity.getGuid(), entity.getTenantGuid(), isRequired);
List<EnterpriseDomainRQVO> domainRQVOSOld = beanVO.getDomainRQVOS();
enterpriseDomainService.batchSave(domainRQVOSOld, entity.getGuid());
log.info("========entity, {}", entity);
MfEnterprise bean = mfEnterpriseService.getById(entity.getSourceGuid());
bean.setBizApproveState("B");
......@@ -146,7 +167,21 @@ public class EnterpriseChangeApproveServiceImpl implements EnterpriseChangeAppro
vo.setGuid(bean.getGuid());
vo.setApproveGuid(bean.getApproveGuid());
vo.setSourceGuid(bean.getSourceGuid());
vo.setBizDataJson(convertToVO(bean));
if (ObjectUtils.isNotEmpty(bean)) {
EnterpriseRSVO enterpriseRSVO = csbrBeanUtil.convert(bean, EnterpriseRSVO.class);
// 查询附件信息
Map<String, List<EnterpriseAttachmentRSVO>> attachmentByEnterpriseGuids = enterpriseAttachmentService.getMapByEnterpriseGuids(Collections.singletonList(enterpriseRSVO.getGuid()));
if (ObjectUtils.isNotEmpty(attachmentByEnterpriseGuids) && attachmentByEnterpriseGuids.containsKey(enterpriseRSVO.getGuid())) {
enterpriseRSVO.setAttachmentRSVOS(attachmentByEnterpriseGuids.get(enterpriseRSVO.getGuid()));
}
// 查询领域信息
Map<String, List<EnterpriseDomainRSVO>> domainByEnterpriseGuids = enterpriseDomainService.getMapByEnterpriseGuids(Collections.singletonList(enterpriseRSVO.getGuid()));
if (ObjectUtils.isNotEmpty(domainByEnterpriseGuids) && domainByEnterpriseGuids.containsKey(enterpriseRSVO.getGuid())) {
enterpriseRSVO.setDomainRSVOS(domainByEnterpriseGuids.get(enterpriseRSVO.getGuid()));
}
vo.setBizDataJson(JSON.toJSONString(enterpriseRSVO));
}
//取原数据
queryWrapper = new LambdaQueryWrapper<>();
......@@ -154,7 +189,19 @@ public class EnterpriseChangeApproveServiceImpl implements EnterpriseChangeAppro
queryWrapper.eq(MfEnterpriseChangeApprove::getDataType,"1");
tempList = mfEnterpriseChangeApproveService.list(queryWrapper);
if(CollectionUtils.isNotEmpty(tempList)){
vo.setOldBizDataJson(convertToVO(tempList.get(0)));
EnterpriseRSVO enterpriseRSVO = csbrBeanUtil.convert(tempList.get(0), EnterpriseRSVO.class);
// 查询附件信息
Map<String, List<EnterpriseAttachmentRSVO>> attachmentByEnterpriseGuids = enterpriseAttachmentService.getMapByEnterpriseGuids(Collections.singletonList(enterpriseRSVO.getGuid()));
if (ObjectUtils.isNotEmpty(attachmentByEnterpriseGuids) && attachmentByEnterpriseGuids.containsKey(enterpriseRSVO.getGuid())) {
enterpriseRSVO.setAttachmentRSVOS(attachmentByEnterpriseGuids.get(enterpriseRSVO.getGuid()));
}
// 查询领域信息
Map<String, List<EnterpriseDomainRSVO>> domainByEnterpriseGuids = enterpriseDomainService.getMapByEnterpriseGuids(Collections.singletonList(enterpriseRSVO.getGuid()));
if (ObjectUtils.isNotEmpty(domainByEnterpriseGuids) && domainByEnterpriseGuids.containsKey(enterpriseRSVO.getGuid())) {
enterpriseRSVO.setDomainRSVOS(domainByEnterpriseGuids.get(enterpriseRSVO.getGuid()));
}
vo.setOldBizDataJson(JSON.toJSONString(enterpriseRSVO));
}
return vo;
......@@ -184,6 +231,21 @@ public class EnterpriseChangeApproveServiceImpl implements EnterpriseChangeAppro
vo.setBizApproveState("Y");
mfEnterpriseService.updateById(vo);
// 修改附件和领域数据
Map<String, List<EnterpriseAttachmentRSVO>> attachmentByEnterpriseGuids = enterpriseAttachmentService.getMapByEnterpriseGuids(Collections.singletonList(entity.getGuid()));
if (ObjectUtils.isNotEmpty(attachmentByEnterpriseGuids) && attachmentByEnterpriseGuids.containsKey(entity.getGuid())) {
List<EnterpriseAttachmentRSVO> attachmentRSVOS = attachmentByEnterpriseGuids.get(entity.getGuid());
List<EnterpriseAttachmentRQVO> attachmentRQVOS = csbrBeanUtil.convert(attachmentRSVOS, EnterpriseAttachmentRQVO.class);
enterpriseAttachmentService.batchUpdate(attachmentRQVOS, entity.getSourceGuid(), entity.getTenantGuid(), isRequired);
}
Map<String, List<EnterpriseDomainRSVO>> domainByEnterpriseGuids = enterpriseDomainService.getMapByEnterpriseGuids(Collections.singletonList(entity.getGuid()));
if (ObjectUtils.isNotEmpty(domainByEnterpriseGuids) && domainByEnterpriseGuids.containsKey(entity.getGuid())) {
List<EnterpriseDomainRSVO> domainRSVOS = domainByEnterpriseGuids.get(entity.getGuid());
List<EnterpriseDomainRQVO> domainRQVOS = csbrBeanUtil.convert(domainRSVOS, EnterpriseDomainRQVO.class);
enterpriseDomainService.batchUpdate(domainRQVOS, entity.getSourceGuid());
}
//同步更新会员表
enterpriseService.updateTenant(vo);
}
......@@ -209,6 +271,10 @@ public class EnterpriseChangeApproveServiceImpl implements EnterpriseChangeAppro
}
mfEnterpriseChangeApproveService.removeById(guid);
// 删除领域和附件信息
enterpriseAttachmentService.removeByEnterpriseGuids(Collections.singletonList(entity.getGuid()));
enterpriseDomainService.removeByEnterpriseGuids(Collections.singletonList(entity.getGuid()));
// 修改企业认证审批状态
LambdaQueryWrapper<MfEnterpriseChangeApprove> lambdaQueryWrapper = Wrappers.lambdaQuery(MfEnterpriseChangeApprove.class);
lambdaQueryWrapper.eq(MfEnterpriseChangeApprove::getSourceGuid, entity.getSourceGuid());
......@@ -264,6 +330,21 @@ public class EnterpriseChangeApproveServiceImpl implements EnterpriseChangeAppro
vo.setCrossPlatformApproveState("Y");
mfEnterpriseService.updateById(vo);
// 修改附件和领域数据
Map<String, List<EnterpriseAttachmentRSVO>> attachmentByEnterpriseGuids = enterpriseAttachmentService.getMapByEnterpriseGuids(Collections.singletonList(entity.getGuid()));
if (ObjectUtils.isNotEmpty(attachmentByEnterpriseGuids) && attachmentByEnterpriseGuids.containsKey(entity.getGuid())) {
List<EnterpriseAttachmentRSVO> attachmentRSVOS = attachmentByEnterpriseGuids.get(entity.getGuid());
List<EnterpriseAttachmentRQVO> attachmentRQVOS = csbrBeanUtil.convert(attachmentRSVOS, EnterpriseAttachmentRQVO.class);
enterpriseAttachmentService.batchUpdate(attachmentRQVOS, entity.getSourceGuid(), entity.getTenantGuid(), isRequired);
}
Map<String, List<EnterpriseDomainRSVO>> domainByEnterpriseGuids = enterpriseDomainService.getMapByEnterpriseGuids(Collections.singletonList(entity.getGuid()));
if (ObjectUtils.isNotEmpty(domainByEnterpriseGuids) && domainByEnterpriseGuids.containsKey(entity.getGuid())) {
List<EnterpriseDomainRSVO> domainRSVOS = domainByEnterpriseGuids.get(entity.getGuid());
List<EnterpriseDomainRQVO> domainRQVOS = csbrBeanUtil.convert(domainRSVOS, EnterpriseDomainRQVO.class);
enterpriseDomainService.batchUpdate(domainRQVOS, entity.getSourceGuid());
}
//同步更新会员表
enterpriseService.updateTenant(vo);
}
......@@ -321,6 +402,19 @@ public class EnterpriseChangeApproveServiceImpl implements EnterpriseChangeAppro
// 生成变更前的数据
vo.setBeforeChangeList(enterpriseService.beforeChangeList(entity.getApproveGuid()));
// 查询附件信息
Map<String, List<EnterpriseAttachmentRSVO>> attachmentByEnterpriseGuids = enterpriseAttachmentService.getMapByEnterpriseGuids(Collections.singletonList(entity.getGuid()));
if (ObjectUtils.isNotEmpty(attachmentByEnterpriseGuids) && attachmentByEnterpriseGuids.containsKey(entity.getGuid())) {
vo.setAttachmentRSVOS(attachmentByEnterpriseGuids.get(entity.getGuid()));
}
// 查询领域信息
Map<String, List<EnterpriseDomainRSVO>> domainByEnterpriseGuids = enterpriseDomainService.getMapByEnterpriseGuids(Collections.singletonList(entity.getGuid()));
if (ObjectUtils.isNotEmpty(domainByEnterpriseGuids) && domainByEnterpriseGuids.containsKey(entity.getGuid())) {
vo.setDomainRSVOS(domainByEnterpriseGuids.get(entity.getGuid()));
}
return vo;
}
......
package com.csbr.qingcloud.portal.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.csbr.cloud.common.enums.SystemError;
import com.csbr.cloud.common.exception.CsbrSystemException;
import com.csbr.cloud.common.util.CommonUtil;
import com.csbr.cloud.common.util.CsbrBeanUtil;
import com.csbr.cloud.common.util.MessageSourceUtil;
import csbr.cloud.entity.domain.base.vo.PageListVO;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseDomainQueryVO;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseDomainRQVO;
import com.csbr.qingcloud.portal.domain.vo.EnterpriseDomainRSVO;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterpriseDomain;
import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseDomainService;
import com.csbr.qingcloud.portal.service.EnterpriseDomainService;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @program:
* @description: 开发主体领域信息业务逻辑实现
* @author: makejava
* @create: 2025-09-12 11:02
**/
@Slf4j
@Service
public class EnterpriseDomainServiceImpl implements EnterpriseDomainService {
/**
* 功能名称
*/
private static final String FUNCTION_NAME = "开发主体领域信息";
@Resource
private MfEnterpriseDomainService mfEnterpriseDomainService;
@Resource
private CsbrBeanUtil csbrBeanUtil;
@Resource
private MessageSourceUtil messageSourceUtil;
/**
* 开发主体领域信息分页查询
* @author makejava
* @date 2025-09-12 11:02
* @param queryVO
* @return com.csbr.cloud.mybatis.entity.PageListVO<com.csbr.qingcloud.portal.domain.vo.EnterpriseDomainRSVO>
*/
@Override
public PageListVO<EnterpriseDomainRSVO> pageList(EnterpriseDomainQueryVO queryVO) {
beforeQuery(queryVO);
LambdaQueryWrapper<MfEnterpriseDomain> queryWrapper = mfEnterpriseDomainService.csbrQueryWrapper(queryVO, MfEnterpriseDomain.class);
queryWrapper.orderByDesc(MfEnterpriseDomain::getCreateTime);
PageListVO<MfEnterpriseDomain> pageList = mfEnterpriseDomainService.csbrPageList(queryVO, queryWrapper);
PageListVO<EnterpriseDomainRSVO> rsPageList = csbrBeanUtil.convert(pageList, PageListVO.class);
afterQuery(pageList, rsPageList);
return rsPageList;
}
/**
* 开发主体领域信息获取详情数据
* @author makejava
* @date 2025-09-12 11:02
* @param guid
* @return com.csbr.qingcloud.portal.domain.vo.EnterpriseDomainRSVO
*/
@Override
public EnterpriseDomainRSVO getEnterpriseDomainDetail(String guid) {
if (StringUtils.isBlank(guid)) {
// W00012 = {0}:参数[{1}]不能为空!
throw new CsbrSystemException(SystemError.DATA_INPUT_ERROR, messageSourceUtil.getMessage("W00010",
String.format("获取%s详情数据", FUNCTION_NAME), "数据唯一标识"));
}
MfEnterpriseDomain entity = mfEnterpriseDomainService.getById(guid);
if (entity == null) {
throw new CsbrSystemException(SystemError.DATA_NOT_EXISTS, messageSourceUtil.notExistsToSelectMessage(String.format("获取%s详情数据", FUNCTION_NAME)));
}
return convertToVO(entity);
}
/**
* 开发主体领域信息数据新增
* @author makejava
* @date 2025-09-12 11:02
* @param rqVO
* @return boolean
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void saveEnterpriseDomain(EnterpriseDomainRQVO rqVO) {
beforeSave(rqVO);
MfEnterpriseDomain entity = convertToEntity(rqVO);
mfEnterpriseDomainService.csbrAddEntity(entity);
boolean flag = mfEnterpriseDomainService.save(entity);
if (!flag) {
throw new CsbrSystemException(SystemError.DATA_ADD_ERROR, messageSourceUtil.addMessage(FUNCTION_NAME));
}
afterSave(rqVO);
}
/**
* 开发主体领域信息数据修改
* @author makejava
* @date 2025-09-12 11:02
* @param rqVO
* @return boolean
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void updateEnterpriseDomain(EnterpriseDomainRQVO rqVO) {
// 将修改前数据查出来缓存下来,传入到修改后方法中,用于一些特殊逻辑处理,如某个值变化才进行
// MfEnterpriseDomain oldEntity = mfEnterpriseDomainService.getById(rqVO.getGuid());
MfEnterpriseDomain oldEntity = null;
beforeUpdate(rqVO);
MfEnterpriseDomain entity = convertToEntity(rqVO);
mfEnterpriseDomainService.csbrUpdateEntity(entity);
boolean flag = mfEnterpriseDomainService.updateById(entity);
if (!flag) {
throw new CsbrSystemException(SystemError.DATA_UPDATE_ERROR, messageSourceUtil.updateMessage(FUNCTION_NAME));
}
afterUpdate(rqVO, oldEntity);
}
/**
* 开发主体领域信息数据删除
* @author makejava
* @date 2025-09-12 11:02
* @param guids
* @return void
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void removeByGuids(List<String> guids) {
if (CollectionUtils.isEmpty(guids)) {
// W00012 = {0}:参数[{1}]不能为空!
throw new CsbrSystemException(SystemError.DATA_INPUT_ERROR, messageSourceUtil.getMessage("W00012",
String.format("删除%s数据", FUNCTION_NAME), "数据唯一标识"));
}
if (!mfEnterpriseDomainService.isExistsData(guids, MfEnterpriseDomain.class)) {
throw new CsbrSystemException(SystemError.DATA_DEL_ERROR, messageSourceUtil.notExistsToDelMessage(FUNCTION_NAME));
}
boolean flag = mfEnterpriseDomainService.removeByIds(guids);
if (!flag) {
throw new CsbrSystemException(SystemError.DATA_DEL_ERROR, messageSourceUtil.delMessage(FUNCTION_NAME));
}
}
/**
* 开发主体领域信息数据删除、并有相关的处理操作
* @author makejava
* @date 2025-09-12 11:02
* @param guids
* @return void
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void removeHandleByGuids(List<String> guids) {
if (CollectionUtils.isEmpty(guids)) {
// W00012 = {0}:参数[{1}]不能为空!
throw new CsbrSystemException(SystemError.DATA_INPUT_ERROR, messageSourceUtil.getMessage("W00012",
String.format("删除%s数据", FUNCTION_NAME), "数据唯一标识"));
}
for (String guid : guids) {
MfEnterpriseDomain entity = mfEnterpriseDomainService.getById(guid);
beforeRemove(entity);
boolean flag = mfEnterpriseDomainService.removeById(guid);
if (!flag) {
throw new CsbrSystemException(SystemError.DATA_DEL_ERROR, messageSourceUtil.delMessage(FUNCTION_NAME));
}
afterRemove(entity);
}
}
@Override
@Transactional
public void batchSave(List<EnterpriseDomainRQVO> domainRQVOS, String guid) {
if (ObjectUtils.isNotEmpty(domainRQVOS)) {
List<MfEnterpriseDomain> enterpriseDomains = new ArrayList<>();
for (EnterpriseDomainRQVO enterpriseDomainRQVO : domainRQVOS) {
enterpriseDomainRQVO.setGuid(null);
MfEnterpriseDomain entity = convertToEntity(enterpriseDomainRQVO);
entity.setEnterpriseGuid(guid);
mfEnterpriseDomainService.csbrAddEntity(entity);
enterpriseDomains.add(entity);
}
mfEnterpriseDomainService.saveBatch(enterpriseDomains);
}
}
@Transactional
@Override
public void removeByEnterpriseGuids(List<String> enterpriseGuids) {
if (CollectionUtils.isEmpty(enterpriseGuids)) {
return;
}
LambdaUpdateWrapper<MfEnterpriseDomain> updateWrapper = Wrappers.lambdaUpdate(MfEnterpriseDomain.class);
updateWrapper.in(MfEnterpriseDomain::getEnterpriseGuid, enterpriseGuids);
mfEnterpriseDomainService.remove(updateWrapper);
}
@Override
@Transactional
public void batchUpdate(List<EnterpriseDomainRQVO> domainRQVOS, String guid) {
// 删除开发主体附件信息
removeByEnterpriseGuids(Collections.singletonList(guid));
// 批量新增开发主体附件信息
batchSave(domainRQVOS, guid);
}
@Override
public Map<String, List<EnterpriseDomainRSVO>> getMapByEnterpriseGuids(List<String> enterpriseGuids) {
if (ObjectUtils.isEmpty(enterpriseGuids)) {
return null;
}
LambdaQueryWrapper<MfEnterpriseDomain> queryWrapper = Wrappers.lambdaQuery(MfEnterpriseDomain.class);
queryWrapper.in(MfEnterpriseDomain::getEnterpriseGuid, enterpriseGuids);
queryWrapper.orderByAsc(MfEnterpriseDomain::getCreateTime);
List<MfEnterpriseDomain> mfEnterpriseDomains = mfEnterpriseDomainService.list(queryWrapper);
if (ObjectUtils.isEmpty(mfEnterpriseDomains)) {
return null;
}
return convertToVO(mfEnterpriseDomains).stream().collect(Collectors.groupingBy(EnterpriseDomainRSVO::getEnterpriseGuid));
}
/**
* 开发主体领域信息新新增前置处理
* @author makejava
* @date 2025-09-12 11:02
* @param rqVO
* @return void
*/
private void beforeSave(EnterpriseDomainRQVO rqVO) {
//region 1.输入基础验证
//endregion
//region 2.数据验证特殊处理
//region 2.1.业务合规性验证
//endregion 2.1.业务合规性验证
//region 2.2.业务数据验证
//endregion 2.2.业务数据验证
//endregion 2.数据验证特殊处理
//region 3.数据转换处理
//region 3.1.数据过程转换
//endregion 3.1.数据过程转换
//endregion 3.数据转换处理
//region 4.数据过滤与补充处理
//endregion 4.数据过滤与补充处理
//region 5.过程处理
//region 5.1.计算逻辑处理
//endregion 5.1.计算逻辑处理
//region 5.2.业务逻辑处理
//endregion 5.2.业务逻辑处理
//endregion 5.过程处理
}
/**
* 开发主体领域信息新增后置处理
* @author makejava
* @date 2025-09-12 11:02
* @param rqVO
* @return void
*/
private void afterSave(EnterpriseDomainRQVO rqVO) {
//region 1.输出特殊转换
//region 1.1.输出过滤与补充处理
//endregion 1.1.输出过滤与补充处理
//endregion 1.输出特殊转换
}
/**
* 开发主体领域信息修改前置校验、处理
* @author makejava
* @date 2025-09-12 11:02
* @param rqVO
* @return void
*/
private void beforeUpdate(EnterpriseDomainRQVO rqVO) {
//region 1.输入基础验证
if (StringUtils.isBlank(rqVO.getGuid())) {
// W00012 = {0}:参数[{1}]不能为空!
throw new CsbrSystemException(SystemError.DATA_INPUT_ERROR, messageSourceUtil.getMessage("W00010", String.format("修改%s数据",FUNCTION_NAME), "数据唯一标识"));
}
//endregion
//region 2.数据验证特殊处理
//region 2.1.业务合规性验证
//endregion 2.1.业务合规性验证
//region 2.2.业务数据验证
if (!mfEnterpriseDomainService.isExistsData(Collections.singletonList(rqVO.getGuid()), MfEnterpriseDomain.class)) {
throw new CsbrSystemException(SystemError.DATA_DEL_ERROR, messageSourceUtil.notExistsToUpdateMessage(FUNCTION_NAME));
}
//endregion 2.2.业务数据验证
//endregion 2.数据验证特殊处理
//region 3.数据转换处理
//region 3.1.数据过程转换
//endregion 3.1.数据过程转换
//endregion 3.数据转换处理
//region 4.数据过滤与补充处理
//endregion 4.数据过滤与补充处理
//region 5.过程处理
//region 5.1.计算逻辑处理
//endregion 5.1.计算逻辑处理
//region 5.2.业务逻辑处理
//endregion 5.2.业务逻辑处理
//endregion 5.过程处理
}
/**
* 开发主体领域信息修改后置处理
* @author makejava
* @date 2025-09-12 11:02
* @param rqVO
* @param entity
* @return void
*/
protected void afterUpdate(EnterpriseDomainRQVO rqVO, MfEnterpriseDomain entity) {
//region 1.输出特殊转换
//region 1.1.输出过滤与补充处理
//endregion 1.1.输出过滤与补充处理
//endregion 1.输出特殊转换
}
/**
* 开发主体领域信息删除前置处理
* @author makejava
* @date 2025-09-12 11:02
* @param entity
* @return void
*/
private void beforeRemove(MfEnterpriseDomain entity) {
if (entity == null) {
throw new CsbrSystemException(SystemError.DATA_DEL_ERROR, messageSourceUtil.notExistsToDelMessage(FUNCTION_NAME));
}
}
/**
* 开发主体领域信息删除后置处理
* @author makejava
* @date 2025-09-12 11:02
* @param entity
* @return void
*/
private void afterRemove(MfEnterpriseDomain entity) {
}
/**
* 开发主体领域信息查询方法前置验证、处理
* @author makejava
* @date 2025-09-12 11:02
* @param rqQueryVO
* @return void
*/
private void beforeQuery(EnterpriseDomainQueryVO rqQueryVO) {
}
/**
* 开发主体领域信息查询方法后置数据转换、处理
* @author makejava
* @date 2025-09-12 11:02
* @param pageList 数据库查询数据
* @param rsPageList 返回的最终数据
* @return void
*/
private void afterQuery(PageListVO<MfEnterpriseDomain> pageList, PageListVO<EnterpriseDomainRSVO> rsPageList) {
if (CollectionUtils.isNotEmpty(pageList.getRecords())) {
rsPageList.setRecords(convertToVO(pageList.getRecords()));
}
// 需要特殊处理数据时使用
/*if(CollectionUtils.isNotEmpty(pageList.getRecords())){
List<EnterpriseDomainRSVO> results = new ArrayList<>();
for (MfEnterpriseDomain item : pageList.getRecords()){
EnterpriseDomainRSVO vo = convertToVO(item);
results.add(vo);
}
rsPageList.setRecords(results);
}*/
}
//region 辅助操作
/**
* 开发主体领域信息实体数据转换为视图对象数据(多个)
* @author makejava
* @date 2025-09-12 11:02
* @param entityList 实体数据列表
* @return java.util.List<com.csbr.qingcloud.portal.domain.vo.EnterpriseDomainRSVO> 视图对象列表
*/
private List<EnterpriseDomainRSVO> convertToVO(List<MfEnterpriseDomain> entityList) {
if (CollectionUtils.isEmpty(entityList)) {
// W00012 = {0}:参数[{1}]不能为空!
throw new CsbrSystemException(SystemError.DATA_INPUT_ERROR, messageSourceUtil.getMessage("W00012",
"实体数据转换为视图对象实体数据", "实体数据"));
}
List<EnterpriseDomainRSVO> voList = new ArrayList<>(entityList.size());
for (MfEnterpriseDomain item : entityList) {
EnterpriseDomainRSVO vo = convertToVO(item);
voList.add(vo);
}
return voList;
}
/**
* 开发主体领域信息实体数据转换为视图对象数据
* @author makejava
* @date 2025-09-12 11:02
* @param entity
* @return com.csbr.qingcloud.portal.domain.vo.EnterpriseDomainRSVO
*/
private EnterpriseDomainRSVO convertToVO(MfEnterpriseDomain entity) {
EnterpriseDomainRSVO vo = csbrBeanUtil.convert(entity, EnterpriseDomainRSVO.class);
return vo;
}
/**
* 开发主体领域信息新增、修改和其他情况的参数转换为实体
* @author makejava
* @date 2025-09-12 11:02
* @param vo
* @return com.csbr.qingcloud.portal.mybatis.entity.MfEnterpriseDomain
*/
private MfEnterpriseDomain convertToEntity(EnterpriseDomainRQVO vo) {
MfEnterpriseDomain entity = csbrBeanUtil.convert(vo, MfEnterpriseDomain.class);
// 新增时数据默认guid赋值,转换后该guid可能别使用
if (StringUtils.isBlank(vo.getGuid())) {
entity.setGuid(CommonUtil.newGuid());
}
return entity;
}
//endregion
}
......@@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.csbr.cloud.common.entity.DictModel;
import com.csbr.cloud.common.enums.RedisKeyEnum;
import com.csbr.cloud.common.enums.SystemError;
import com.csbr.cloud.common.enums.WorkFlowBizEnum;
import com.csbr.cloud.common.exception.CsbrSystemException;
......@@ -13,6 +15,7 @@ import com.csbr.cloud.common.util.CommonUtil;
import com.csbr.cloud.common.util.CsbrBeanUtil;
import com.csbr.cloud.common.util.MessageSourceUtil;
import com.csbr.cloud.distributelock.util.RedisUtil;
import com.csbr.cloud.mybatis.util.ValidatorUtil;
import com.csbr.cloud.workflow.domain.dto.appove.AddApprovalDTO;
import com.csbr.cloud.workflow.domain.dto.appove.FlowQueryDTO;
import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO;
......@@ -31,6 +34,8 @@ import com.csbr.qingcloud.portal.mybatis.entity.MfEnterpriseChangeApprove;
import com.csbr.qingcloud.portal.mybatis.service.MfDemandService;
import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseChangeApproveService;
import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseService;
import com.csbr.qingcloud.portal.service.EnterpriseAttachmentService;
import com.csbr.qingcloud.portal.service.EnterpriseDomainService;
import com.csbr.qingcloud.portal.service.EnterpriseService;
import com.csbr.qingcloud.portal.util.ChangeInfoUtil;
import com.csbr.qingcloud.portal.util.DateUtil;
......@@ -45,6 +50,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -70,6 +76,9 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
private static final String SysFuncCode = "QYRZ";
@Value("${enterpriseAttachment.isRequired:true}")
private Boolean isRequired;
@Autowired
private ZQConfig zqConfig;
......@@ -106,6 +115,15 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
@Resource
private ConfigureFeign configureFeign;
@Resource
private EnterpriseAttachmentService enterpriseAttachmentService;
@Resource
private EnterpriseDomainService enterpriseDomainService;
@Resource
private ValidatorUtil validatorUtil;
/**
* 企业信息分页查询
* @author xcq
......@@ -593,6 +611,18 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
}
MfEnterprise mfEnterprise = enterpriseOptional.get();
EnterpriseRSVO enterpriseRSVO = convertToVO(mfEnterprise);
// 查询附件信息
String guid = enterpriseRSVO.getGuid();
Map<String, List<EnterpriseAttachmentRSVO>> attachmentByEnterpriseGuids = enterpriseAttachmentService.getMapByEnterpriseGuids(Collections.singletonList(guid));
// 查询领域信息
Map<String, List<EnterpriseDomainRSVO>> domainByEnterpriseGuids = enterpriseDomainService.getMapByEnterpriseGuids(Collections.singletonList(guid));
if (ObjectUtils.isNotEmpty(attachmentByEnterpriseGuids) && attachmentByEnterpriseGuids.containsKey(guid)) {
enterpriseRSVO.setAttachmentRSVOS(attachmentByEnterpriseGuids.get(guid));
}
if (ObjectUtils.isNotEmpty(domainByEnterpriseGuids) && domainByEnterpriseGuids.containsKey(guid)) {
enterpriseRSVO.setDomainRSVOS(domainByEnterpriseGuids.get(guid));
}
// 查询变更历史
LambdaQueryWrapper<MfEnterpriseChangeApprove> lambdaQueryWrapper = new LambdaQueryWrapper<>();
......@@ -607,8 +637,20 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
if ("B".equals(enterpriseRSVO.getBizApproveState())) {
Optional<MfEnterpriseChangeApprove> changeApproveOptFirst = approveList.stream().filter(item -> "2".equals(item.getDataType())).findFirst();
if (changeApproveOptFirst.isPresent()) {
enterpriseRSVO = csbrBeanUtil.convert(changeApproveOptFirst.get(), EnterpriseRSVO.class);
MfEnterpriseChangeApprove mfEnterpriseChangeApprove = changeApproveOptFirst.get();
enterpriseRSVO = csbrBeanUtil.convert(mfEnterpriseChangeApprove, EnterpriseRSVO.class);
enterpriseRSVO.setBizApproveState(mfEnterprise.getBizApproveState());
attachmentByEnterpriseGuids = enterpriseAttachmentService.getMapByEnterpriseGuids(Collections.singletonList(mfEnterpriseChangeApprove.getGuid()));
// 查询领域信息
domainByEnterpriseGuids = enterpriseDomainService.getMapByEnterpriseGuids(Collections.singletonList(mfEnterpriseChangeApprove.getGuid()));
if (ObjectUtils.isNotEmpty(attachmentByEnterpriseGuids) && attachmentByEnterpriseGuids.containsKey(mfEnterpriseChangeApprove.getGuid())) {
enterpriseRSVO.setAttachmentRSVOS(attachmentByEnterpriseGuids.get(mfEnterpriseChangeApprove.getGuid()));
}
if (ObjectUtils.isNotEmpty(domainByEnterpriseGuids) && domainByEnterpriseGuids.containsKey(mfEnterpriseChangeApprove.getGuid())) {
enterpriseRSVO.setDomainRSVOS(domainByEnterpriseGuids.get(mfEnterpriseChangeApprove.getGuid()));
}
}
}
......@@ -650,6 +692,32 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
return JSExchageCommonRes.success(pageListVO);
}
@Override
public List<EnterpriseRSVO> listByTenantGuids(List<String> guids) {
if (ObjectUtils.isEmpty(guids)) {
return null;
}
LambdaQueryWrapper<MfEnterprise> queryWrapper = Wrappers.lambdaQuery(MfEnterprise.class);
queryWrapper.in(MfEnterprise::getTenantGuid, guids);
queryWrapper.eq(MfEnterprise::getBizApproveState, "Y");
List<MfEnterprise> mfEnterprises = mfEnterpriseService.list(queryWrapper);
if (ObjectUtils.isEmpty(mfEnterprises)) {
return null;
}
return convertToVO(mfEnterprises);
}
@Override
public Boolean updateIdentityState(String logonUser, String identityState) {
if (StringUtils.isEmpty(logonUser) || StringUtils.isEmpty(identityState)) {
return Boolean.TRUE;
}
LambdaUpdateWrapper<MfEnterprise> updateWrapper = Wrappers.lambdaUpdate(MfEnterprise.class);
updateWrapper.eq(MfEnterprise::getLogonUser, logonUser);
updateWrapper.set(MfEnterprise::getIdentityState, identityState);
return mfEnterpriseService.update(updateWrapper);
}
private void afterEnterpriseData(PageListVO<MfEnterprise> enterprisePageListVO, JSExchagePageListVO<JSEnterpriseRSVO> pageListVO) {
pageListVO.setTotal(enterprisePageListVO.getTotalRows().intValue());
List<MfEnterprise> records = enterprisePageListVO.getRecords();
......@@ -759,6 +827,33 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
//region 1.输入基础验证
check(rqVO);
//endregion
// 校验附加信息
List<EnterpriseAttachmentRQVO> attachmentRQVOS = rqVO.getAttachmentRQVOS();
if (ObjectUtils.isNotEmpty(attachmentRQVOS)) {
List<DataDictVO> dataDictVOS = getSystemParamsList("开发主体附件类型");
Map<String, String> dataDictMap = new HashMap<>();
if (ObjectUtils.isNotEmpty(dataDictVOS)) {
dataDictMap = dataDictVOS.stream().collect(Collectors.toMap(DataDictVO::getParamValue, DataDictVO::getParamName));
}
for (EnterpriseAttachmentRQVO attachmentRQVO : attachmentRQVOS) {
if (StringUtils.isNotEmpty(attachmentRQVO.getFileName()) && attachmentRQVO.getFileName().length() > 100) {
String fileType = "";
if (ObjectUtils.isNotEmpty(dataDictMap) && dataDictMap.containsKey(attachmentRQVO.getFileType())) {
fileType = dataDictMap.get(attachmentRQVO.getFileType());
}
throw new CsbrSystemException(SystemError.DATA_INPUT_ERROR, fileType + "上传的文件名称长度超过100.");
}
}
}
if (isRequired) {
if (ObjectUtils.isEmpty(rqVO.getAttachmentRQVOS())) {
throw new CsbrSystemException(SystemError.DATA_INPUT_ERROR, "附件信息不能为空.");
}
String message = validatorUtil.validateRetrunAll(rqVO.getAttachmentRQVOS());
if (StringUtils.isNotEmpty(message)) {
throw new CsbrSystemException(SystemError.DATA_INPUT_ERROR, message);
}
}
//region 2.数据验证特殊处理
//region 2.1.业务合规性验证
......@@ -791,6 +886,27 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
//endregion 5.过程处理
}
public List<DataDictVO> getSystemParamsList(String dictType){
if(StringUtils.isEmpty(dictType)){
throw new CsbrSystemException(SystemError.ERROR,"数据字典类型不能为空。");
}
Object dictListValue= redisUtil.get(String.format(RedisKeyEnum.DICT_ITEM_DATA.getCode(), dictType));
if(ObjectUtils.isNotEmpty(dictListValue)) {
List<DictModel> dictModels = (List<DictModel>) dictListValue;
return dictModels.stream().map(d->getDataDictVO(d)).collect(Collectors.toList());
}
return new ArrayList<>();
}
private DataDictVO getDataDictVO(DictModel dm) {
DataDictVO vo = new DataDictVO();
vo.setGuid(dm.getGuid());
vo.setParamName(dm.getText());
vo.setParamValue(dm.getValue());
vo.setRemarks(dm.getRemarks());
return vo;
}
/**
* 企业信息新增后置处理
* @author xcq
......@@ -805,6 +921,14 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
enterpriseChangeApprove.setSourceGuid(entity.getGuid());
enterpriseChangeApprove.setDataType("0");
mfEnterpriseChangeApproveService.save(enterpriseChangeApprove);
// 新增附件信息
List<EnterpriseAttachmentRQVO> attachmentRQVOS = rqVO.getAttachmentRQVOS();
enterpriseAttachmentService.batchSave(attachmentRQVOS, entity.getGuid(), entity.getTenantGuid(), isRequired);
// 新增领域信息
List<EnterpriseDomainRQVO> domainRQVOS = rqVO.getDomainRQVOS();
enterpriseDomainService.batchSave(domainRQVOS, entity.getGuid());
}
/**
......@@ -875,6 +999,14 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
enterpriseChangeApprove.setSourceGuid(entity.getGuid());
enterpriseChangeApprove.setDataType("0");
mfEnterpriseChangeApproveService.updateById(enterpriseChangeApprove);
// 新增附件信息
List<EnterpriseAttachmentRQVO> attachmentRQVOS = rqVO.getAttachmentRQVOS();
enterpriseAttachmentService.batchUpdate(attachmentRQVOS, entity.getGuid(), entity.getTenantGuid(), isRequired);
// 新增领域信息
List<EnterpriseDomainRQVO> domainRQVOS = rqVO.getDomainRQVOS();
enterpriseDomainService.batchUpdate(domainRQVOS, entity.getGuid());
}
......@@ -903,7 +1035,11 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
* @return void
*/
private void afterRemove(MfEnterprise entity) {
// 删除附件信息
enterpriseAttachmentService.removeByEnterpriseGuids(Collections.singletonList(entity.getGuid()));
// 删除领域信息
enterpriseDomainService.removeByEnterpriseGuids(Collections.singletonList(entity.getGuid()));
}
/**
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!