Compare commits

...

2 Commits

Author SHA1 Message Date
luotaiqian 7e7c063b94 Merge remote-tracking branch 'origin/dev_1.0.1' into dev_1.0.1 2026-07-14 11:04:13 +08:00
luotaiqian dfff500352 version 2026-07-14 11:04:08 +08:00
12 changed files with 105 additions and 15 deletions

View File

@ -1,12 +1,16 @@
package org.qinan.safetyeval.app.change.convertor; package org.qinan.safetyeval.app.change.convertor;
import com.alibaba.fastjson.JSON;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.Named;
import org.qinan.safetyeval.client.co.QualFilingChangeAggregationCO; import org.qinan.safetyeval.client.co.QualFilingChangeAggregationCO;
import org.qinan.safetyeval.client.dto.QualFilingChangeAddCmd; import org.qinan.safetyeval.client.dto.QualFilingChangeAddCmd;
import org.qinan.safetyeval.domain.entity.QualFilingChangeEntity; import org.qinan.safetyeval.domain.entity.QualFilingChangeEntity;
import org.qinan.safetyeval.domain.entity.QualFilingEntity; import org.qinan.safetyeval.domain.entity.QualFilingEntity;
import java.util.List;
/** /**
* *
* *
@ -21,6 +25,7 @@ public interface QualFilingChangeCmdConvertor {
* @param qualFilingChangeAddCmd * @param qualFilingChangeAddCmd
* @return * @return
*/ */
@Mapping(target = "businessScope", source = "businessScope", qualifiedByName = "listToJsonString")
QualFilingChangeEntity convertCmdToE(QualFilingChangeAddCmd qualFilingChangeAddCmd); QualFilingChangeEntity convertCmdToE(QualFilingChangeAddCmd qualFilingChangeAddCmd);
/** /**
@ -41,5 +46,16 @@ public interface QualFilingChangeCmdConvertor {
* @param changeEntity changeEntity * @param changeEntity changeEntity
* @return QualFilingChangeAggregationCO * @return QualFilingChangeAggregationCO
*/ */
@Mapping(target = "businessScope", source = "businessScope", qualifiedByName = "jsonStringToList")
QualFilingChangeAggregationCO convertChangeEToQualFilingChangeAggregationCO(QualFilingChangeEntity changeEntity); QualFilingChangeAggregationCO convertChangeEToQualFilingChangeAggregationCO(QualFilingChangeEntity changeEntity);
@Named("listToJsonString")
default String listToJsonString(List<String> list) {
return list == null ? null : JSON.toJSONString(list);
}
@Named("jsonStringToList")
default List<String> jsonStringToList(String json) {
return json == null || json.isEmpty() ? null : JSON.parseArray(json, String.class);
}
} }

View File

@ -2,6 +2,7 @@ package org.qinan.safetyeval.app.executor;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.alibaba.fastjson.JSON;
import org.qinan.safetyeval.app.change.convertor.*; import org.qinan.safetyeval.app.change.convertor.*;
import org.qinan.safetyeval.app.orchestrator.QualFilingOrchestrator; import org.qinan.safetyeval.app.orchestrator.QualFilingOrchestrator;
import org.qinan.safetyeval.client.api.QualFilingChangeApi; import org.qinan.safetyeval.client.api.QualFilingChangeApi;
@ -99,7 +100,7 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
entity.setFilingUnitTypeCode(cmd.getFilingUnitTypeCode()); entity.setFilingUnitTypeCode(cmd.getFilingUnitTypeCode());
entity.setFilingUnitTypeName(cmd.getFilingUnitTypeName()); entity.setFilingUnitTypeName(cmd.getFilingUnitTypeName());
entity.setFilingNo(cmd.getFilingNo()); entity.setFilingNo(cmd.getFilingNo());
entity.setBusinessScope(cmd.getBusinessScope()); entity.setBusinessScope(JSON.toJSONString(cmd.getBusinessScope()));
entity.setRegisterAddress(cmd.getRegisterAddress()); entity.setRegisterAddress(cmd.getRegisterAddress());
entity.setOfficeAddress(cmd.getOfficeAddress()); entity.setOfficeAddress(cmd.getOfficeAddress());
entity.setCreditCode(cmd.getCreditCode()); entity.setCreditCode(cmd.getCreditCode());
@ -137,7 +138,7 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
entity.setFilingUnitTypeCode(cmd.getFilingUnitTypeCode()); entity.setFilingUnitTypeCode(cmd.getFilingUnitTypeCode());
entity.setFilingUnitTypeName(cmd.getFilingUnitTypeName()); entity.setFilingUnitTypeName(cmd.getFilingUnitTypeName());
entity.setFilingNo(cmd.getFilingNo()); entity.setFilingNo(cmd.getFilingNo());
entity.setBusinessScope(cmd.getBusinessScope()); entity.setBusinessScope(JSON.toJSONString(cmd.getBusinessScope()));
entity.setRegisterAddress(cmd.getRegisterAddress()); entity.setRegisterAddress(cmd.getRegisterAddress());
entity.setOfficeAddress(cmd.getOfficeAddress()); entity.setOfficeAddress(cmd.getOfficeAddress());
entity.setCreditCode(cmd.getCreditCode()); entity.setCreditCode(cmd.getCreditCode());
@ -650,7 +651,7 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
co.setFilingUnitTypeCode(entity.getFilingUnitTypeCode()); co.setFilingUnitTypeCode(entity.getFilingUnitTypeCode());
co.setFilingUnitTypeName(entity.getFilingUnitTypeName()); co.setFilingUnitTypeName(entity.getFilingUnitTypeName());
co.setFilingNo(entity.getFilingNo()); co.setFilingNo(entity.getFilingNo());
co.setBusinessScope(entity.getBusinessScope()); co.setBusinessScope(JSON.parseArray(entity.getBusinessScope(), String.class));
co.setRegisterAddress(entity.getRegisterAddress()); co.setRegisterAddress(entity.getRegisterAddress());
co.setOfficeAddress(entity.getOfficeAddress()); co.setOfficeAddress(entity.getOfficeAddress());
co.setCreditCode(entity.getCreditCode()); co.setCreditCode(entity.getCreditCode());

View File

@ -1,6 +1,7 @@
package org.qinan.safetyeval.app.executor; package org.qinan.safetyeval.app.executor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.alibaba.fastjson.JSON;
import org.qinan.safetyeval.app.orchestrator.QualFilingOrchestrator; import org.qinan.safetyeval.app.orchestrator.QualFilingOrchestrator;
import org.qinan.safetyeval.client.api.QualFilingApi; import org.qinan.safetyeval.client.api.QualFilingApi;
import org.qinan.safetyeval.client.change.request.QualFilingCommitmentChangeAddCmd; import org.qinan.safetyeval.client.change.request.QualFilingCommitmentChangeAddCmd;
@ -68,7 +69,7 @@ public class QualFilingExecutor implements QualFilingApi {
entity.setFilingUnitTypeCode(cmd.getFilingUnitTypeCode()); entity.setFilingUnitTypeCode(cmd.getFilingUnitTypeCode());
entity.setFilingUnitTypeName(cmd.getFilingUnitTypeName()); entity.setFilingUnitTypeName(cmd.getFilingUnitTypeName());
entity.setFilingNo(cmd.getFilingNo()); entity.setFilingNo(cmd.getFilingNo());
entity.setBusinessScope(cmd.getBusinessScope()); entity.setBusinessScope(JSON.toJSONString(cmd.getBusinessScope()));
entity.setRegisterAddress(cmd.getRegisterAddress()); entity.setRegisterAddress(cmd.getRegisterAddress());
entity.setOfficeAddress(cmd.getOfficeAddress()); entity.setOfficeAddress(cmd.getOfficeAddress());
entity.setCreditCode(cmd.getCreditCode()); entity.setCreditCode(cmd.getCreditCode());
@ -167,6 +168,7 @@ public class QualFilingExecutor implements QualFilingApi {
// 拷贝基本信息 // 拷贝基本信息
QualFilingEntity entity = new QualFilingEntity(); QualFilingEntity entity = new QualFilingEntity();
BeanUtils.copyProperties(cmd.getQualFilingAddCmd(),entity); BeanUtils.copyProperties(cmd.getQualFilingAddCmd(),entity);
entity.setBusinessScope(JSON.toJSONString(cmd.getQualFilingAddCmd().getBusinessScope()));
//备案承诺书 //备案承诺书
QualFilingCommitmentEntity commitmentEntity = new QualFilingCommitmentEntity(); QualFilingCommitmentEntity commitmentEntity = new QualFilingCommitmentEntity();
BeanUtils.copyProperties(cmd.getQualFilingCommitmentAddCmd(),commitmentEntity); BeanUtils.copyProperties(cmd.getQualFilingCommitmentAddCmd(),commitmentEntity);
@ -213,6 +215,7 @@ public class QualFilingExecutor implements QualFilingApi {
QualFilingDO qualFilingDO = qualFilingMapper.selectById(cmd.getFilingId()); QualFilingDO qualFilingDO = qualFilingMapper.selectById(cmd.getFilingId());
QualFilingChangeAddCmd qualFilingChangeAddCmd = new QualFilingChangeAddCmd(); QualFilingChangeAddCmd qualFilingChangeAddCmd = new QualFilingChangeAddCmd();
BeanUtils.copyProperties(qualFilingDO, qualFilingChangeAddCmd, "id"); BeanUtils.copyProperties(qualFilingDO, qualFilingChangeAddCmd, "id");
qualFilingChangeAddCmd.setBusinessScope(JSON.parseArray(qualFilingDO.getBusinessScope(), String.class));
qualFilingChangeAddCmd.setFilingId(qualFilingDO.getId()); qualFilingChangeAddCmd.setFilingId(qualFilingDO.getId());
cmdSync.setQualFilingChangeAddCmd(qualFilingChangeAddCmd); cmdSync.setQualFilingChangeAddCmd(qualFilingChangeAddCmd);
// 备案承诺书 // 备案承诺书
@ -267,7 +270,7 @@ public class QualFilingExecutor implements QualFilingApi {
co.setFilingUnitTypeCode(entity.getFilingUnitTypeCode()); co.setFilingUnitTypeCode(entity.getFilingUnitTypeCode());
co.setFilingUnitTypeName(entity.getFilingUnitTypeName()); co.setFilingUnitTypeName(entity.getFilingUnitTypeName());
co.setFilingNo(entity.getFilingNo()); co.setFilingNo(entity.getFilingNo());
co.setBusinessScope(entity.getBusinessScope()); co.setBusinessScope(JSON.parseArray(entity.getBusinessScope(), String.class));
co.setRegisterAddress(entity.getRegisterAddress()); co.setRegisterAddress(entity.getRegisterAddress());
co.setOfficeAddress(entity.getOfficeAddress()); co.setOfficeAddress(entity.getOfficeAddress());
co.setCreditCode(entity.getCreditCode()); co.setCreditCode(entity.getCreditCode());

View File

@ -1,6 +1,8 @@
package org.qinan.safetyeval.app.orchestrator; package org.qinan.safetyeval.app.orchestrator;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.alibaba.fastjson.JSON;
import org.qinan.safetyeval.app.support.*; import org.qinan.safetyeval.app.support.*;
import org.qinan.safetyeval.client.co.*; import org.qinan.safetyeval.client.co.*;
import org.qinan.safetyeval.client.dto.QualFilingModifyCmd; import org.qinan.safetyeval.client.dto.QualFilingModifyCmd;
@ -616,7 +618,7 @@ public class QualFilingOrchestrator {
entity.setFilingNo(cmd.getFilingNo()); entity.setFilingNo(cmd.getFilingNo());
} }
if (cmd.getBusinessScope() != null) { if (cmd.getBusinessScope() != null) {
entity.setBusinessScope(cmd.getBusinessScope()); entity.setBusinessScope(JSONUtil.toJsonStr(cmd.getBusinessScope()));
} }
if (cmd.getRegisterAddress() != null) { if (cmd.getRegisterAddress() != null) {
entity.setRegisterAddress(cmd.getRegisterAddress()); entity.setRegisterAddress(cmd.getRegisterAddress());
@ -692,7 +694,7 @@ public class QualFilingOrchestrator {
co.setFilingUnitTypeCode(entity.getFilingUnitTypeCode()); co.setFilingUnitTypeCode(entity.getFilingUnitTypeCode());
co.setFilingUnitTypeName(entity.getFilingUnitTypeName()); co.setFilingUnitTypeName(entity.getFilingUnitTypeName());
co.setFilingNo(entity.getFilingNo()); co.setFilingNo(entity.getFilingNo());
co.setBusinessScope(entity.getBusinessScope()); co.setBusinessScope(JSON.parseArray(entity.getBusinessScope(), String.class));
co.setRegisterAddress(entity.getRegisterAddress()); co.setRegisterAddress(entity.getRegisterAddress());
co.setOfficeAddress(entity.getOfficeAddress()); co.setOfficeAddress(entity.getOfficeAddress());
co.setCreditCode(entity.getCreditCode()); co.setCreditCode(entity.getCreditCode());

View File

@ -3,9 +3,11 @@ package org.qinan.safetyeval.client.co;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.qinan.safetyeval.domain.constant.IndustryEnum;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* COClient Object * COClient Object
@ -37,7 +39,7 @@ public class QualFilingCO {
private String filingNo; private String filingNo;
@ApiModelProperty(value = "经营范围") @ApiModelProperty(value = "经营范围")
private String businessScope; private List<String> businessScope;
@ApiModelProperty(value = "注册地址") @ApiModelProperty(value = "注册地址")
private String registerAddress; private String registerAddress;

View File

@ -1,6 +1,8 @@
package org.qinan.safetyeval.client.co; package org.qinan.safetyeval.client.co;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -43,7 +45,7 @@ public class QualFilingChangeCO {
private String filingNo; private String filingNo;
@ApiModelProperty(value = "经营范围") @ApiModelProperty(value = "经营范围")
private String businessScope; private List<String> businessScope;
@ApiModelProperty(value = "注册地址") @ApiModelProperty(value = "注册地址")
private String registerAddress; private String registerAddress;

View File

@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* *
@ -35,7 +36,7 @@ public class QualFilingAddCmd {
private String filingNo; private String filingNo;
@ApiModelProperty(value = "备案安全评价业务范围") @ApiModelProperty(value = "备案安全评价业务范围")
private String businessScope; private List<String> businessScope;
@ApiModelProperty(value = "注册地址") @ApiModelProperty(value = "注册地址")
private String registerAddress; private String registerAddress;

View File

@ -8,6 +8,7 @@ import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* *
@ -54,8 +55,7 @@ public class QualFilingChangeAddCmd {
private String filingNo; private String filingNo;
@ApiModelProperty(value = "备案安全评价业务范围") @ApiModelProperty(value = "备案安全评价业务范围")
@Size(max = 512, message = "备案安全评价业务范围不能超过512个字符") private List<String> businessScope;
private String businessScope;
@ApiModelProperty(value = "注册地址") @ApiModelProperty(value = "注册地址")
@Size(max = 128, message = "注册地址不能超过128个字符") @Size(max = 128, message = "注册地址不能超过128个字符")

View File

@ -2,6 +2,8 @@ package org.qinan.safetyeval.client.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
import lombok.Data; import lombok.Data;
/** /**
@ -37,7 +39,7 @@ public class QualFilingChangeModifyCmd {
private String filingNo; private String filingNo;
@ApiModelProperty(value = "备案安全评价业务范围") @ApiModelProperty(value = "备案安全评价业务范围")
private String businessScope; private List<String> businessScope;
@ApiModelProperty(value = "注册地址") @ApiModelProperty(value = "注册地址")
private String registerAddress; private String registerAddress;

View File

@ -2,6 +2,7 @@ package org.qinan.safetyeval.client.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
import lombok.Data; import lombok.Data;
/** /**
@ -34,7 +35,7 @@ public class QualFilingModifyCmd {
private String filingNo; private String filingNo;
@ApiModelProperty(value = "备案安全评价业务范围") @ApiModelProperty(value = "备案安全评价业务范围")
private String businessScope; private List<String> businessScope;
@ApiModelProperty(value = "注册地址") @ApiModelProperty(value = "注册地址")
private String registerAddress; private String registerAddress;

View File

@ -0,0 +1,54 @@
package org.qinan.safetyeval.infrastructure.handler;
import com.alibaba.fastjson.JSON;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import org.apache.ibatis.type.MappedTypes;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collections;
import java.util.List;
/**
* MyBatis TypeHandler: varchar/text JSON List<String>
* <p>
* : List<String> -> JSON.toJSONString -> String
* : String -> JSON.parseArray -> List<String>
*
* @author safety-eval
*/
@MappedJdbcTypes(JdbcType.VARCHAR)
@MappedTypes(List.class)
public class JsonStringListTypeHandler extends BaseTypeHandler<List<String>> {
@Override
public void setNonNullParameter(PreparedStatement ps, int i, List<String> parameter, JdbcType jdbcType) throws SQLException {
ps.setString(i, JSON.toJSONString(parameter));
}
@Override
public List<String> getNullableResult(ResultSet rs, String columnName) throws SQLException {
return parse(rs.getString(columnName));
}
@Override
public List<String> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
return parse(rs.getString(columnIndex));
}
@Override
public List<String> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
return parse(cs.getString(columnIndex));
}
private List<String> parse(String json) {
if (json == null || json.isEmpty()) {
return Collections.emptyList();
}
return JSON.parseArray(json, String.class);
}
}

View File

@ -53,7 +53,13 @@
`id`, `org_id`, `filing_territory_code`, `filing_territory_name`, `filing_unit_name`, `filing_unit_type_code`, `filing_unit_type_name`, `filing_no`, `business_scope`, `register_address`, `office_address`, `credit_code`, `qual_cert_no`, `legal_person_phone`, `contact_phone`, `info_disclosure_url`, `fixed_asset_amount`, `archive_room_area`, `fulltime_evaluator_count`, `registered_engineer_count`, `workplace_area`, `unit_intro`, `attachment_url`, `origin_filing_id`, `reject_reason`, `submit_time`, `approve_time`, `filing_status_code`, `filing_status_name`, `apply_type_code`, `apply_type_name`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env` `id`, `org_id`, `filing_territory_code`, `filing_territory_name`, `filing_unit_name`, `filing_unit_type_code`, `filing_unit_type_name`, `filing_no`, `business_scope`, `register_address`, `office_address`, `credit_code`, `qual_cert_no`, `legal_person_phone`, `contact_phone`, `info_disclosure_url`, `fixed_asset_amount`, `archive_room_area`, `fulltime_evaluator_count`, `registered_engineer_count`, `workplace_area`, `unit_intro`, `attachment_url`, `origin_filing_id`, `reject_reason`, `submit_time`, `approve_time`, `filing_status_code`, `filing_status_name`, `apply_type_code`, `apply_type_name`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env`
</sql> </sql>
<select id="qualificationMonitoringPage" resultType="org.qinan.safetyeval.client.co.QualFilingCO"> <!-- CO查询映射结果business_scope 以 JSON 数组字符串存储,出库时转换为 List<String> -->
<resultMap id="QualFilingCOResultMap" type="org.qinan.safetyeval.client.co.QualFilingCO" autoMapping="true">
<result column="business_scope" property="businessScope"
typeHandler="org.qinan.safetyeval.infrastructure.handler.JsonStringListTypeHandler"/>
</resultMap>
<select id="qualificationMonitoringPage" resultMap="QualFilingCOResultMap">
select info.credit_code as creditCode, info.unit_name as unitName, filing.* from org_info as info select info.credit_code as creditCode, info.unit_name as unitName, filing.* from org_info as info
left join qual_filing as filing on info.id = filing.org_id left join qual_filing as filing on info.id = filing.org_id
where 1=1 where 1=1