diff --git a/db/prod/2024-3-18-变更.sql b/db/prod/2024-3-18-变更.sql index 8a97224b..84139181 100644 --- a/db/prod/2024-3-18-变更.sql +++ b/db/prod/2024-3-18-变更.sql @@ -199,6 +199,12 @@ INSERT INTO `laws_tag` (`id`, `table_name`, `db_field_name`, `db_field_en_name`, -- 2024-08-12 零部件性能优化 ALTER TABLE `laws_tag` ADD COLUMN `tree_first_href` varchar(255) NULL DEFAULT NULL COMMENT '懒加载树形结构一级接口' AFTER `usable_range`; -UPDATE `laws_tag` SET `field_show_type` = '17', `tree_first_href` = '/laws/standard/partName/queryFirstList' WHERE `id` = '1696038850540003301'; -UPDATE `laws_tag` SET `field_show_type` = '17', `tree_first_href` = '/laws/standard/partName/queryFirstList' WHERE `id` = '1696038850540003330'; -UPDATE `laws_tag` SET `field_show_type` = '17', `tree_first_href` = '/laws/standard/partName/queryFirstList' WHERE `id` = '1703608885251108865'; +UPDATE `laws_tag` SET `field_show_type` = '16', `tree_first_href` = '/laws/standard/partName/queryFirstList' WHERE `id` = '1696038850540003301'; +UPDATE `laws_tag` SET `field_show_type` = '16', `tree_first_href` = '/laws/standard/partName/queryFirstList' WHERE `id` = '1696038850540003330'; +UPDATE `laws_tag` SET `field_show_type` = '16', `tree_first_href` = '/laws/standard/partName/queryFirstList' WHERE `id` = '1703608885251108865'; + +-- 2024-08-15 海外标准关联国内标准 +ALTER TABLE `laws_overseas_standard` + ADD COLUMN `associated_domestic_standards` varchar(1) NULL COMMENT '关联国内标准'; + +INSERT INTO `laws_tag` (`id`, `table_name`, `db_field_name`, `db_field_en_name`, `db_field_txt`, `order_num`, `db_field_name_old`, `db_is_key`, `db_is_null`, `db_type`, `db_length`, `db_point_length`, `db_default_val`, `dict_field`, `dict_table`, `dict_text`, `field_show_type`, `field_href`, `field_length`, `field_valid_type`, `field_must_input`, `field_extend_json`, `field_default_value`, `is_show_form_create`, `is_query`, `is_show_form`, `is_show_list`, `is_read_only`, `query_mode`, `main_table`, `main_field`, `update_by`, `update_time`, `create_time`, `create_by`, `converter`, `query_def_val`, `query_dict_text`, `query_dict_field`, `query_dict_table`, `query_show_type`, `query_config_flag`, `query_valid_type`, `query_must_input`, `sort_flag`, `show_area`, `is_show_laws_list`, `is_show_search`, `del_flag`, `is_model`, `dict_id`, `home_search_context_order`, `home_search_file_order`, `dict_field_search`, `dict_table_search`, `dict_text_search`, `usable_range`, `tree_first_href`) VALUES ('1722802933703528452', 'laws_overseas_standard', 'associated_domestic_standards', 'Associated domestic standards', '关联国内标准', 28, 'associated_domestic_standards', 0, 1, 'String', 1, NULL, NULL, NULL, NULL, NULL, '6', NULL, NULL, NULL, '0', NULL, NULL, 1, 0, 1, 0, 1, NULL, NULL, NULL, NULL, NULL, '2023-11-10 10:26:42', 'zx-test', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0', '1694630711725498369', NULL, 1, 0, '1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java b/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java index a6510d74..c19a3430 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java @@ -127,6 +127,10 @@ public class FieldCommon { // 代替标准号 public static final String REPLACED_STANDARD = "substitute_standard_number"; + // 关联海外标准 + public static final String ASSOCIATED_FOREIGN_STANDARDS = "associated_foreign_standards"; + // 关联国内标准 + public static final String ASSOCIATED_DOMESTIC_STANDARDS = "associated_domestic_standards"; // 被代替标准号 public static final String REPLACED_BY_STANDARD = "replaced_by_standard_number"; // 引用标准 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index 646f4b79..6ade6157 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -189,6 +189,9 @@ public class LawsCommonServiceImpl implements ILawsCommonService { @Resource private EnterpriseStandardAuthDeptService authDeptService; + @Resource + private ILawsStandardAssociateService standardAssociateService; + public static boolean ENCRYPT_ENABLE; public static String DECRYPT_URL; public static String DECRYPT_APP_CODE; @@ -572,6 +575,22 @@ public class LawsCommonServiceImpl implements ILawsCommonService { List partNameList = partNameService.list(partNameLambdaQueryWrapper); resultMap.put(key, value); resultMap.put(key + FieldCommon._DICT_TEXT, partNameList.stream().map(PartName::getName).collect(Collectors.joining(","))); + } else if (FieldCommon.ASSOCIATED_FOREIGN_STANDARDS.equals(key)) { + // 如果是关联海外表标准 + LambdaQueryWrapper saWrapper = new LambdaQueryWrapper<>(); + saWrapper.eq(LawsStandardAssociate::getDomesticStandard, standardNumber); + List list = standardAssociateService.list(saWrapper); + resultMap.put(key, StringUtils.join(list.stream() + .map(LawsStandardAssociate::getOverseasStandard) + .collect(Collectors.toList()), ",")); + } else if (FieldCommon.ASSOCIATED_DOMESTIC_STANDARDS.equals(key)) { + // 如果是关联海外表标准 + LambdaQueryWrapper saWrapper = new LambdaQueryWrapper<>(); + saWrapper.eq(LawsStandardAssociate::getOverseasStandard, standardNumber); + List list = standardAssociateService.list(saWrapper); + resultMap.put(key, StringUtils.join(list.stream() + .map(LawsStandardAssociate::getDomesticStandard) + .collect(Collectors.toList()), ",")); } } @@ -753,6 +772,11 @@ public class LawsCommonServiceImpl implements ILawsCommonService { // 处理新增和编辑时的代替标准、引用标准 processReplaced(parameterMap, standardNumber, module); + // 国标和海外标准的关联标准 + if (module.equals(TableNameEnum.DOMESTIC_REGULATIONS.getValue()) || + module.equals(TableNameEnum.FOREIGN_REGULATIONS.getValue())) { + processAssociatedStandard(parameterMap, standardNumber, module); + } // 获取要操作的表名 String tableName = TableNameEnum.getTableName(module); @@ -848,6 +872,42 @@ public class LawsCommonServiceImpl implements ILawsCommonService { return ResultCommon.OK; } + private void processAssociatedStandard(Map parameterMap, String standardNumber, String module) { + if (module.equals(TableNameEnum.DOMESTIC_REGULATIONS.getValue())) { + String associateStandard = (String) parameterMap.get(FieldCommon.ASSOCIATED_FOREIGN_STANDARDS); + // 先删除已经存储的关联 + standardAssociateService.removeDomesticAssociate(standardNumber); + if (StringUtils.isNotBlank(associateStandard)) { + // 再添加新的关联 + List associateStandardList = Arrays.asList(associateStandard.split(",")); + List standardAssociateList = associateStandardList.stream().map(s -> { + LawsStandardAssociate associate = new LawsStandardAssociate(); + associate.setDomesticStandard(standardNumber); + associate.setOverseasStandard(s); + return associate; + }).collect(Collectors.toList()); + standardAssociateService.saveBatch(standardAssociateList); + } + parameterMap.remove(FieldCommon.ASSOCIATED_FOREIGN_STANDARDS); + } else if (module.equals(TableNameEnum.FOREIGN_REGULATIONS.getValue())) { + String associateStandard = (String) parameterMap.get(FieldCommon.ASSOCIATED_DOMESTIC_STANDARDS); + // 先删除已经存储的关联 + standardAssociateService.removeOverseasAssociate(standardNumber); + if (StringUtils.isNotBlank(associateStandard)) { + // 再添加新的关联 + List associateStandardList = Arrays.asList(associateStandard.split(",")); + List standardAssociateList = associateStandardList.stream().map(s -> { + LawsStandardAssociate associate = new LawsStandardAssociate(); + associate.setOverseasStandard(standardNumber); + associate.setDomesticStandard(s); + return associate; + }).collect(Collectors.toList()); + standardAssociateService.saveBatch(standardAssociateList); + } + parameterMap.remove(FieldCommon.ASSOCIATED_DOMESTIC_STANDARDS); + } + } + /** * 保存新增编辑企标时的稽查内容 * @@ -934,6 +994,11 @@ public class LawsCommonServiceImpl implements ILawsCommonService { // 处理新增和编辑时的代替标准、引用标准 processReplaced(parameterMap, standardNumber, module); + // 国标和海外标准的关联标准 + if (module.equals(TableNameEnum.DOMESTIC_REGULATIONS.getValue()) || + module.equals(TableNameEnum.FOREIGN_REGULATIONS.getValue())) { + processAssociatedStandard(parameterMap, standardNumber, module); + } // 获取数据库里没修改的数据 Map oldDataMap = getByIdAndModule(id, module, "2", standardNumber); @@ -2310,6 +2375,22 @@ public class LawsCommonServiceImpl implements ILawsCommonService { selectCondition.append(sql); parameterMap.remove(FieldCommon.REFERENCED_STANDARD); } + // 关联国内标准 + String associatedDomesticStandards = (String) parameterMap.get(FieldCommon.ASSOCIATED_DOMESTIC_STANDARDS); + if (StrUtil.isNotBlank(associatedDomesticStandards)) { + List standardNo = Arrays.asList(associatedDomesticStandards.split(",")); + String sql = getStandardsAssociateDomesticSql(tableName, standardNo); + selectCondition.append(sql); + parameterMap.remove(FieldCommon.ASSOCIATED_DOMESTIC_STANDARDS); + } + // 关联海外标准 + String associatedForeignStandards = (String) parameterMap.get(FieldCommon.ASSOCIATED_FOREIGN_STANDARDS); + if (StrUtil.isNotBlank(associatedForeignStandards)) { + List standardNo = Arrays.asList(associatedForeignStandards.split(",")); + String sql = getStandardsAssociateOverseasSql(tableName, standardNo); + selectCondition.append(sql); + parameterMap.remove(FieldCommon.ASSOCIATED_FOREIGN_STANDARDS); + } // 零部件名称 String partName = (String) parameterMap.get(FieldCommon.PART_NAME); if (StrUtil.isNotBlank(partName)) { @@ -2470,6 +2551,32 @@ public class LawsCommonServiceImpl implements ILawsCommonService { " and type = " + type + " and " + str + ")"; } + @NotNull + private String getStandardsAssociateDomesticSql(String tableName, List standardNo) { + StringBuilder str = new StringBuilder(); + for (int i = 0; i < standardNo.size(); i++) { + str.append("domestic_standard").append(" like '%").append(standardNo.get(i)).append("%' "); + if (i != standardNo.size() - 1) { + str.append(" and "); + } + } + return "and exists (select id from laws_standard_associate where " + tableName + ".standard_number = overseas_standard" + + " and " + str + ")"; + } + + @NotNull + private String getStandardsAssociateOverseasSql(String tableName, List standardNo) { + StringBuilder str = new StringBuilder(); + for (int i = 0; i < standardNo.size(); i++) { + str.append("overseas_standard").append(" like '%").append(standardNo.get(i)).append("%' "); + if (i != standardNo.size() - 1) { + str.append(" and "); + } + } + return "and exists (select id from laws_standard_associate where " + tableName + ".standard_number = domestic_standard" + + " and " + str + ")"; + } + /** * @Author: liao * @Date: 2023/8/22 11:41 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsOverseasStandard.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsOverseasStandard.java index 3ae64beb..2f8c9a65 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsOverseasStandard.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsOverseasStandard.java @@ -184,4 +184,7 @@ public class LawsOverseasStandard implements Serializable { /**标准号*/ @ApiModelProperty(value = "标准号") private java.lang.String standardNumberTemp; + /**关联国内标准号*/ + @ApiModelProperty(value = "关联国内标准号") + private java.lang.String associatedDomesticStandards; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsStandardAssociate.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsStandardAssociate.java new file mode 100644 index 00000000..d92608a4 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsStandardAssociate.java @@ -0,0 +1,76 @@ +package com.jero.modules.laws.standard.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import lombok.Data; + +/** + * + * @TableName laws_standard_associate + */ +@TableName(value ="laws_standard_associate") +@Data +public class LawsStandardAssociate implements Serializable { + /** + * 主键ID + */ + @TableId + private String id; + + /** + * 国标id + */ + private String domesticStandard; + + /** + * 外标id + */ + private String overseasStandard; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; + + @Override + public boolean equals(Object that) { + if (this == that) { + return true; + } + if (that == null) { + return false; + } + if (getClass() != that.getClass()) { + return false; + } + LawsStandardAssociate other = (LawsStandardAssociate) that; + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getDomesticStandard() == null ? other.getDomesticStandard() == null : this.getDomesticStandard().equals(other.getDomesticStandard())) + && (this.getOverseasStandard() == null ? other.getOverseasStandard() == null : this.getOverseasStandard().equals(other.getOverseasStandard())); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getDomesticStandard() == null) ? 0 : getDomesticStandard().hashCode()); + result = prime * result + ((getOverseasStandard() == null) ? 0 : getOverseasStandard().hashCode()); + return result; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", domesticStandard=").append(domesticStandard); + sb.append(", overseasStandard=").append(overseasStandard); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/mapper/LawsStandardAssociateMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/mapper/LawsStandardAssociateMapper.java new file mode 100644 index 00000000..bea1562b --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/mapper/LawsStandardAssociateMapper.java @@ -0,0 +1,18 @@ +package com.jero.modules.laws.standard.mapper; + +import com.jero.modules.laws.standard.entity.LawsStandardAssociate; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author ThinkBook +* @description 针对表【laws_standard_associate】的数据库操作Mapper +* @createDate 2024-08-15 14:00:08 +* @Entity com.jero.modules.laws.standard.entity.LawsStandardAssociate +*/ +public interface LawsStandardAssociateMapper extends BaseMapper { + +} + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/mapper/xml/LawsStandardAssociateMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/standard/mapper/xml/LawsStandardAssociateMapper.xml new file mode 100644 index 00000000..9d6122cd --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/mapper/xml/LawsStandardAssociateMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + id,domestic_standard,overseas_standard + + diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsStandardAssociateService.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsStandardAssociateService.java new file mode 100644 index 00000000..00d72f35 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsStandardAssociateService.java @@ -0,0 +1,16 @@ +package com.jero.modules.laws.standard.service; + +import com.jero.modules.laws.standard.entity.LawsStandardAssociate; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author ThinkBook +* @description 针对表【laws_standard_associate】的数据库操作Service +* @createDate 2024-08-15 14:00:08 +*/ +public interface ILawsStandardAssociateService extends IService { + + void removeDomesticAssociate(String standardNumber); + + void removeOverseasAssociate(String standardNumber); +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsStandardAssociateServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsStandardAssociateServiceImpl.java new file mode 100644 index 00000000..c12db2e8 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsStandardAssociateServiceImpl.java @@ -0,0 +1,36 @@ +package com.jero.modules.laws.standard.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.modules.laws.standard.entity.LawsStandardAssociate; +import com.jero.modules.laws.standard.service.ILawsStandardAssociateService; +import com.jero.modules.laws.standard.mapper.LawsStandardAssociateMapper; +import org.springframework.stereotype.Service; + +/** +* @author ThinkBook +* @description 针对表【laws_standard_associate】的数据库操作Service实现 +* @createDate 2024-08-15 14:00:08 +*/ +@Service +public class LawsStandardAssociateServiceImpl extends ServiceImpl + implements ILawsStandardAssociateService { + + @Override + public void removeDomesticAssociate(String standardNumber) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(LawsStandardAssociate::getDomesticStandard, standardNumber); + this.remove(wrapper); + } + + @Override + public void removeOverseasAssociate(String standardNumber) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(LawsStandardAssociate::getOverseasStandard, standardNumber); + this.remove(wrapper); + } +} + + + +