Commit 27fb979f authored by tianbo's avatar tianbo

feat(jg): 优化产权单位信息查询与处理逻辑

- 调整使用登记表产权单位代码提取逻辑,过滤以TCM开头的代码 - 完善queryTcmUnitInfoBySeq方法返回值空值判断 - 新增字段映射注解支持产权单位信用代码和名称查询 - 优化车辆登记变更中产权单位信息的获取与设置 - 增强数据解析容错性,避免数组越界异常 - 补充estateUnitSeq为空时的默认值处理
parent 1e1c3a92
......@@ -103,7 +103,20 @@ public class JgChangeVehicleRegistrationUnitController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增、更新车用气瓶变更", notes = "新增、更新车用气瓶变更")
@FieldMapping({@FieldMapping.FieldMap(sourceField = "useUnitSeq", targetField = "useUnitCreditCode", serviceClass = CommonServiceImpl.class, queryMethod = "queryUnitCreditInfoBySeq"),})
@FieldMapping({
@FieldMapping.FieldMap(
sourceField = "useUnitSeq",
targetField = "useUnitCreditCode",
serviceClass = CommonServiceImpl.class,
queryMethod = "queryUnitCreditInfoBySeq"),
@FieldMapping.FieldMap(
sourceField = "estateUnitSeq",
targetField = "estateUnitCreditCode",
serviceClass = CommonServiceImpl.class,
queryMethod = "queryTcmUnitCreditCodeAndNameBySeq",
secondParamValue = "CQ"
)
})
public ResponseModel<String> save(@RequestBody JSONObject model) {
ReginParams reginParams = getSelectedOrgInfo();
jgChangeVehicleRegistrationUnitServiceImpl.saveMessage(model, reginParams);
......
......@@ -2524,7 +2524,8 @@ public class CommonServiceImpl implements ICommonService {
formData.put("estatePhone", contactPhone);
}
}
formData.put("CQUnitCode", formData.getString("estateUnitName").split("_")[0]);
String cqUnitCode = formData.getString("estateUnitName").split("_")[0];
formData.put("CQUnitCode", cqUnitCode.startsWith("TCM") ? "" : cqUnitCode);
formData.put("estateUnitName", formData.getString("estateUnitName").split("_")[1]);
}
if (formData.containsKey("equList")) {
......@@ -3449,6 +3450,6 @@ public class CommonServiceImpl implements ICommonService {
commonMapper.addTcmUnitInfo(propertyUnitInfo);
}
return propertyUnitInfo;
return !ValidationUtil.isEmpty(propertyUnitInfo) ? propertyUnitInfo : Maps.newHashMap();
}
}
\ No newline at end of file
......@@ -18,7 +18,6 @@ import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.enums.TcmUnitTypeEnum;
import com.yeejoin.amos.boot.biz.common.enums.TcmUnitTypeEnum;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
......@@ -1869,21 +1868,19 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
String useCode = String.valueOf(v.get("useRegistrationCode"));
String newCarNumber = String.valueOf(v.get("newCarNumber"));
String estateUnitSeq = String.valueOf(v.get("estateUnitName"));
TzBaseEnterpriseInfo enterpriseInfo = (estateUnitSeq != null && !estateUnitSeq.isEmpty())
? tzBaseEnterpriseInfoMapper.selectById(estateUnitSeq)
: null;
Map<String, String> propertyUnitInfo = commonServiceImpl.queryTcmUnitInfoBySeq(estateUnitSeq, TcmUnitTypeEnum.CQ.getCode());
List<String> records = idxBizJgRegisterInfoService.getBaseMapper()
.selectList(new LambdaQueryWrapper<IdxBizJgRegisterInfo>()
.eq(IdxBizJgRegisterInfo::getUseOrgCode, useCode))
.stream()
.map(IdxBizJgRegisterInfo::getRecord)
.collect(Collectors.toList());
if (!records.isEmpty() && enterpriseInfo != null) {
if (!records.isEmpty()) {
idxBizJgUseInfoService.update(
new IdxBizJgUseInfo()
.setEstateUnitCreditCode(enterpriseInfo.getUseUnitCode())
.setEstateUnitCreditCode(propertyUnitInfo.get("unitCode"))
.setEquState(EquimentEnum.ZAIYONG.getCode().toString())
.setEstateUnitName(enterpriseInfo.getUseUnit()),
.setEstateUnitName(propertyUnitInfo.get("unitName")),
new LambdaQueryWrapper<IdxBizJgUseInfo>()
.in(IdxBizJgUseInfo::getRecord, records)
);
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
......@@ -8,9 +9,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.annotation.FieldMapping;
import com.yeejoin.amos.boot.biz.common.annotation.ResultFieldMapping;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.enums.TcmUnitTypeEnum;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent;
......@@ -183,6 +186,10 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
company.getCompanyCode());
}
}
String estateUnitSeq = MapUtil.getStr(map,"estateUnitSeq");
Map<String, String> propertyUnitInfo = commonServiceImpl.queryTcmUnitInfoBySeq(estateUnitSeq, TcmUnitTypeEnum.CQ.getCode());
map.put("estateUnitCreditCode", propertyUnitInfo.get("unitCode"));
map.put("estateUnitName", propertyUnitInfo.get("unitName"));
if (!map.containsKey("sequenceNbr")) {
// 新增
BeanUtil.copyProperties(map, dto);
......@@ -513,6 +520,16 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
tzsServiceFeignClient.commonUpdateEsDataByIds(objMap);
}
@FieldMapping({
@FieldMapping.FieldMap(
sourceField = "estateUnitName",
paramIndex = 1,
targetField = "estateUnitName",
serviceClass = CommonServiceImpl.class,
queryMethod = "queryTcmUnitCreditCodeAndNameBySeq",
secondParamValue = "CQ"
)
})
public void saveRecord(JgChangeVehicleRegistrationUnit jgChangeVehicleRegistrationUnit, TaskV2Model taskV2Model) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
JgUseRegistrationManage manage = jgUseRegistrationManageService.lambdaQuery()
......@@ -587,8 +604,13 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
LambdaQueryWrapper<IdxBizJgUseInfo> lambda = new QueryWrapper<IdxBizJgUseInfo>().lambda();
lambda.in(IdxBizJgUseInfo::getRecord, collect);
IdxBizJgUseInfo useInfo = new IdxBizJgUseInfo();
useInfo.setEstateUnitName(data[1]);
useInfo.setEstateUnitCreditCode(data[0]);
if (data.length > 1) {
useInfo.setEstateUnitCreditCode(data[0]);
useInfo.setEstateUnitName(data[1]);
} else {
useInfo.setEstateUnitName(MapUtil.getStr(jsonObject, "estateUnitName"));
useInfo.setEstateUnitCreditCode(MapUtil.getStr(jsonObject, "estateUnitCreditCode"));
}
idxBizJgUseInfoServiceImpl.update(useInfo, lambda);
}
......@@ -816,6 +838,13 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
return jgUseRegistrationManageService.queryUseRegistrationManagePage(page, dto, null);
}
@ResultFieldMapping({
@ResultFieldMapping.ResultFieldMap(sourceField = "estateUnitCode",
targetField = "estateUnitSeq",
serviceClass = CommonServiceImpl.class,
queryMethod = "queryTcmUnitSeqByCreditCode",
secondParamValue = "CQ")
})
public Map<String, Object> getEquList(String useRegistrationCode) {
HashMap<String, Object> map = new HashMap<>();
// 组件回显
......@@ -838,11 +867,17 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
a.put("chargingMedium", getFillingMediumMap().get(a.getOrDefault("chargingMedium", "") + ""));
}
});
map.put("estateUnitName", equList.stream()
.map(e -> e.get("estateUnitName"))
.filter(Objects::nonNull)
.findFirst()
.orElse(null));
String estateUnitName = equList.stream()
.map(e -> e.get("estateUnitName"))
.filter(Objects::nonNull)
.filter(String.class::isInstance)
.map(String.class::cast)
.findFirst()
.orElse("");
if (!ValidationUtil.isEmpty(estateUnitName) && estateUnitName.contains("_")) {
map.put("estateUnitCode", estateUnitName.split("_")[0]);
map.put("estateUnitName", estateUnitName.split("_")[1]);
}
map.put("dataList", equList);
// 组件回显
if (!ObjectUtils.isEmpty(registrationManage) && !ObjectUtils.isEmpty(registrationManage.getCarNumber())) {
......
......@@ -16,7 +16,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.yeejoin.amos.boot.biz.common.annotation.ResultFieldMapping;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
......@@ -736,6 +735,9 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
Map<String, String> propertyUnitInfo = commonServiceImpl.queryTcmUnitInfoBySeq(estateUnitSeq, TcmUnitTypeEnum.CQ.getCode());
map.put("estateUnitCode", propertyUnitInfo.get("unitCode"));
map.put("estateUnitName", propertyUnitInfo.get("unitCode") + "_" + propertyUnitInfo.get("unitName"));
} else {
map.put("estateUnitCode", null);
map.put("estateUnitName", null);
}
jgUseRegistration.setUseAddress(jgUseRegistration.getUseAddress() + map.get("address"));
......@@ -2468,7 +2470,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
@ResultFieldMapping({
@ResultFieldMapping.ResultFieldMap(sourceField = "estateUnitCode",
@ResultFieldMapping.ResultFieldMap(sourceField = "estateUnitName",
targetField = "estateUnitSeq",
serviceClass = CommonServiceImpl.class,
queryMethod = "queryTcmUnitSeqByCreditCode",
......
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