Commit b138accd authored by 韩桐桐's avatar 韩桐桐

fix(jg):车用气瓶登记业务办理里面的产品编号、识别代码等都要校验唯一性(产品编号在车用气瓶范围内全局唯一)

parent 2242f3f3
......@@ -96,5 +96,12 @@ public interface CommonMapper extends BaseMapper<EquipmentCategory> {
* @return CompanyBo
*/
CompanyBo queryCompanyInfoByCode(String companyCode);
/**
* 车用气瓶登记业务办理里面的产品编号、识别代码等都要校验唯一性(产品编号在车用气瓶范围内全局唯一)
* @param factoryNum
* @return
*/
Integer checkFactoryNumUniquenessForVehicleCylinder(String factoryNum);
}
......@@ -834,4 +834,17 @@
</if>
</where>
</select>
<select id="checkFactoryNumUniquenessForVehicleCylinder" resultType="java.lang.Integer">
SELECT
count(1)
FROM
"amos_tzs_biz"."idx_biz_jg_factory_info"
WHERE
"RECORD" IN ( SELECT "RECORD"
FROM "amos_tzs_biz"."idx_biz_jg_register_info"
WHERE "EQU_LIST" = '2000' AND "EQU_CATEGORY" = '2300'
AND "EQU_DEFINE" = '23T0'
AND "WHETHER_VEHICLE_CYLINDER" = '1' )
AND "FACTORY_NUM" = #{factoryNum}
</select>
</mapper>
......@@ -14,6 +14,8 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.ConstructionEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CylinderTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationMapper;
import com.yeejoin.amos.boot.module.jg.biz.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.jg.biz.service.*;
......@@ -22,10 +24,7 @@ import com.yeejoin.amos.boot.module.ymt.api.dto.IdxBizJgRegisterInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.CategoryOtherInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.SuperviseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
......@@ -98,6 +97,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
private static final String MANAGE_TYPE = "manageType";
private static final String EQU_CODE = "EQU_CODE";
private static final String SEQUENCE_NBR = "SEQUENCE_NBR";
private static final String FACTORY_NUM = "FACTORY_NUM";
// 新增设备是否复制而来
private static final String IS_COPY = "isCopy";
......@@ -152,6 +152,8 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
@Autowired
ICommonService commonService;
@Autowired
CommonMapper commonMapper;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
private CategoryOtherInfoMapper categoryOtherInfoMapper;
......@@ -191,9 +193,11 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
LinkedHashMap equipmentInfoForm = (LinkedHashMap) checkAndCast(paramMap.get(EQUIP_INFO_FORM_ID));
LinkedHashMap equipmentParamsForm = (LinkedHashMap) checkAndCast(paramMap.get(EQUIP_PARAMS_FORM_ID));
// 设备代码 字段的唯一性校验
try {
// 设备代码 字段的唯一性校验
checkEquCodeUniqueness(equipmentInfoForm);
// 车用气瓶业务里面的 产品编号 校验唯一性(产品编号在车用气瓶范围内全局唯一)
checkFactoryNumUniqueness(equipmentInfoForm);
} catch (Exception e) {
handleError(e, null);
}
......@@ -240,6 +244,14 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
}
}
private void checkFactoryNumUniqueness(LinkedHashMap equipmentInfoForm) {
// 车用气瓶业务里面的 出厂编号/产品编码 校验唯一性(产品编号在车用气瓶范围内全局唯一)
Integer factoryNum = commonMapper.checkFactoryNumUniquenessForVehicleCylinder((String) equipmentInfoForm.get(FACTORY_NUM));
if (factoryNum > 0) {
throw new BadRequest("出厂编号/产品编码 已存在,请重新输入!");
}
}
private void handleError(Exception e, String record) {
log.error("处理异常: " + e.getMessage(), e);
//删除数据库数据和ES数据
......@@ -1321,10 +1333,10 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
boolMust.must(pBuilder);
}
// 出厂编号/产品编码模糊查询
if (!ObjectUtils.isEmpty(map.getString("FACTORY_NUM"))) {
if (!ObjectUtils.isEmpty(map.getString(FACTORY_NUM))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString("FACTORY_NUM"));
pBuilder.must(QueryBuilders.wildcardQuery("FACTORY_NUM", "*" + test.toLowerCase() + "*"));
String test = QueryParser.escape(map.getString(FACTORY_NUM));
pBuilder.must(QueryBuilders.wildcardQuery(FACTORY_NUM, "*" + test.toLowerCase() + "*"));
boolMust.must(pBuilder);
}
// 制造单位(生产单位)名称模糊查询
......
......@@ -145,6 +145,15 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
throw new LocalBadRequest("车牌号码已存在,请重新输入!");
}
// 【A109】 车用气瓶登记业务 识别代码 校验唯一性
LambdaQueryWrapper<JgVehicleInformation> informationLambdaQueryWrapper = new LambdaQueryWrapper<>();
informationLambdaQueryWrapper.eq(JgVehicleInformation::getIdentificationCode, vehicleInfoDto.getIdentificationCode());
informationLambdaQueryWrapper.eq(JgVehicleInformation::getIsDelete, false);
Integer identificationCodeCount = this.baseMapper.selectCount(informationLambdaQueryWrapper);
if (identificationCodeCount > 0) {
throw new BadRequest("识别代码已存在,请重新输入!");
}
// 使用单位信息
vehicleInfoDto.setUseUnitName(company.getCompanyName());
vehicleInfoDto.setUseUnitCreditCode(company.getCompanyCode());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment