Commit 50320cab authored by tianbo's avatar tianbo

feat(jg): 新增多个字段映射配置并优化业务逻辑

- 在CommonController中新增estateUnitName、installUnitCode和inspectUnitCreditCode字段映射 - 优化CommonEquipDataProcessService中的空值判断逻辑 - 修改CommonMapper.xml支持unitType多值查询 - 完善CommonServiceImpl中queryTcmUnitInfoBySeq方法的参数校验 - 调整IdxBizJgRegisterInfoServiceImpl中的使用登记信息获取逻辑 - 为IdxBizJqEquipmentRegisterController添加操作日志触发器注解 - 在JgChangeVehicleRegistrationUnitController中增加useUnitCreditCode字段映射 - 重构JgVehicleInformationServiceImpl中的单位信息处理逻辑 - 修正SingleEquipChangeProcess中的对象属性赋值错误 - 限制UseRegisterUpdateService中西安历史电梯的更新条件
parent befd8474
......@@ -3488,9 +3488,12 @@
where
(a.original_id = #{unitSeq} or a.sequence_nbr = #{unitSeq})
and a.is_delete = 0
<if test="unitType != null and unitType != ''">
and a.unit_type = #{unitType}
</if>
<if test="unitType != null and unitType != ''">
and unit_type in
<foreach item="item" index="index" collection="unitType.split(',')" open="(" separator="," close=")">
#{item}
</foreach>
</if>
order by a.original_id nulls last
limit 1
</select>
......
......@@ -962,6 +962,24 @@ public class CommonController extends BaseController {
serviceClass = CommonServiceImpl.class,
queryMethod = "queryTcmUnitCreditCodeAndNameBySeq",
secondParamValue = "CQ"
),
@FieldMapping.FieldMap(sourceField = "formData.estateUnitSeq",
targetField = "formData.estateUnitName",
serviceClass = CommonServiceImpl.class,
queryMethod = "queryTcmUnitCreditCodeAndNameBySeq",
secondParamValue = "CQ"
),
@FieldMapping.FieldMap(sourceField = "formData.installUnitCode",
targetField = "formData.installUnitCode",
serviceClass = CommonServiceImpl.class,
queryMethod = "queryTcmUnitCreditCodeAndNameBySeq",
secondParamValue = "AGW"
),
@FieldMapping.FieldMap(sourceField = "formData.inspectUnitCreditCode",
targetField = "formData.inspectUnitCreditCode",
serviceClass = CommonServiceImpl.class,
queryMethod = "queryTcmUnitCreditCodeAndNameBySeq",
secondParamValue = "JY,JC"
)
})
public ResponseModel<Map<String, Object>> getRegistrationOrCertReplenishFormUrl(@RequestBody JSONObject jsonObject) {
......
......@@ -73,6 +73,7 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/deleteBatch")
@ApiOperation(httpMethod = "POST", value = "批量删除设备注册信息", notes = "批量删除设备注册信息")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<Boolean> deleteByRecordList(@RequestBody Map<String, Object> map) {
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.batchDeleteByRecord(map));
}
......
......@@ -103,6 +103,7 @@ 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"),})
public ResponseModel<String> save(@RequestBody JSONObject model) {
ReginParams reginParams = getSelectedOrgInfo();
jgChangeVehicleRegistrationUnitServiceImpl.saveMessage(model, reginParams);
......
......@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.module.common.api.converter.CommonCustomConverter;
import com.yeejoin.amos.boot.module.jg.api.dto.FieldChangeMeta;
......@@ -19,7 +20,9 @@ import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgRegistrationHistorySer
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationEqServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
......@@ -102,48 +105,59 @@ public class UseRegisterUpdateService {
*
*/
public void updateUseRegistrationInfo(String bizId, List<FieldChangeMeta> allChangeColumns) {
Map<String, Object> useRegistrationMap = jgUseRegistrationService.getJgUseRegistrationMapper().getUseRegistrationDetail(bizId);
if (ValidationUtil.isEmpty(useRegistrationMap)) {
return;
}
JgUseRegistration jgUseRegistration = jgUseRegistrationService.getById(MapUtils.getString(useRegistrationMap, "UseRegistratSequenceNbr"));
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getDteailByRecord(bizId, MapUtils.getString(useRegistrationMap, "UseRegistratSequenceNbr"));
allChangeColumns.forEach(meta -> {
if (!ValidationUtil.isEmpty(jgUseRegistration)) {
// 更新接收机构
if ("receiveCompanyCode".equals(meta.getColumnKey())) {
String receiveCompanyCode = meta.getColumnNewValue();
if (receiveCompanyCode != null) {
jgUseRegistration.setReceiveCompanyCode(receiveCompanyCode);
jgUseRegistration.setReceiveOrgName(CommonCustomConverter.CompanyCodeConverter.getNameByCode(receiveCompanyCode));
// 西安历史电梯未做过除历史登记外其他业务时才需要更新登记机关
boolean inOtherBusiness = !jgUseRegistrationService.getJgUseRegistrationMapper().selectListForSelfDiscard(Lists.newArrayList(bizId)).isEmpty();
IdxBizJgUseInfo idxBizJgUseInfo = commonEquipDataProcessService.getIdxBizJgUseInfoService().lambdaQuery().select(IdxBizJgUseInfo::getDataSource).eq(IdxBizJgUseInfo::getRecord, bizId).one();
IdxBizJgRegisterInfo idxBizJgRegisterInfo = commonEquipDataProcessService.getJgRegisterInfoService().lambdaQuery().select(IdxBizJgRegisterInfo::getEquList).eq(IdxBizJgRegisterInfo::getRecord, bizId).one();
if (!inOtherBusiness
&& !ValidationUtil.isEmpty(idxBizJgRegisterInfo)
&& EquipmentClassifityEnum.DT.getCode().equals(idxBizJgRegisterInfo.getEquList())
&& !ValidationUtil.isEmpty(idxBizJgUseInfo)
&& "jg_his_xa".equals(idxBizJgUseInfo.getDataSource())) {
Map<String, Object> useRegistrationMap = jgUseRegistrationService.getJgUseRegistrationMapper().getUseRegistrationDetail(bizId);
if (ValidationUtil.isEmpty(useRegistrationMap)) {
return;
}
JgUseRegistration jgUseRegistration = jgUseRegistrationService.getById(MapUtils.getString(useRegistrationMap, "UseRegistratSequenceNbr"));
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getDteailByRecord(bizId, MapUtils.getString(useRegistrationMap, "UseRegistratSequenceNbr"));
allChangeColumns.forEach(meta -> {
if (!ValidationUtil.isEmpty(jgUseRegistration)) {
// 更新接收机构
if ("receiveCompanyCode".equals(meta.getColumnKey())) {
String receiveCompanyCode = meta.getColumnNewValue();
if (receiveCompanyCode != null) {
jgUseRegistration.setReceiveCompanyCode(receiveCompanyCode);
jgUseRegistration.setReceiveOrgName(CommonCustomConverter.CompanyCodeConverter.getNameByCode(receiveCompanyCode));
}
}
}
// 更新首次登记日期
if ("oRegDate".equals(meta.getColumnKey())) {
String regDateStr = meta.getColumnNewValue();
if (regDateStr != null) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date regDate = sdf.parse(regDateStr);
jgUseRegistration.setRegDate(regDate);
} catch (Exception e) {
// 如果日期格式不正确,则设置为null
jgUseRegistration.setRegDate(null);
// 更新首次登记日期
if ("oRegDate".equals(meta.getColumnKey())) {
String regDateStr = meta.getColumnNewValue();
if (regDateStr != null) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date regDate = sdf.parse(regDateStr);
jgUseRegistration.setRegDate(regDate);
} catch (Exception e) {
// 如果日期格式不正确,则设置为null
jgUseRegistration.setRegDate(null);
}
}
}
jgUseRegistrationService.updateById(jgUseRegistration);
}
jgUseRegistrationService.updateById(jgUseRegistration);
}
// 更新历史表json数据
if (!ValidationUtil.isEmpty(jgRegistrationHistory)) {
if ("oRegDate".equals(meta.getColumnKey())) {
JSONObject parsedChangeData = JSONObject.parseObject(jgRegistrationHistory.getChangeData());
parsedChangeData.put("oRegDate", meta.getColumnNewValue());
jgRegistrationHistory.setChangeData(parsedChangeData.toJSONString());
// 更新历史表json数据
if (!ValidationUtil.isEmpty(jgRegistrationHistory)) {
if ("oRegDate".equals(meta.getColumnKey())) {
JSONObject parsedChangeData = JSONObject.parseObject(jgRegistrationHistory.getChangeData());
parsedChangeData.put("oRegDate", meta.getColumnNewValue());
jgRegistrationHistory.setChangeData(parsedChangeData.toJSONString());
}
jgRegistrationHistoryService.updateById(jgRegistrationHistory);
}
jgRegistrationHistoryService.updateById(jgRegistrationHistory);
}
});
});
}
}
private List<JgUseRegistrationEq> buildPipelineEqs(Map<String, List<PipelineChangeItemDto>> pipelineChangeItemMap) {
......
......@@ -830,7 +830,9 @@ public class CommonEquipDataProcessService {
.eq(JgUseRegistrationManage::getIsDelete, 0)
.eq(JgUseRegistrationManage::getCertificateStatus,YIDENGJI.getName())
.select(JgUseRegistrationManage::getSequenceNbr, JgUseRegistrationManage::getReceiveCompanyCode).one();
result.put("receiveCompanyCode", jgUseRegistrationManage.getReceiveCompanyCode());
if (!ValidationUtil.isEmpty(jgUseRegistrationManage)) {
result.put("receiveCompanyCode", jgUseRegistrationManage.getReceiveCompanyCode());
}
}
// 返回是否做过除历史登记外的其他业务
result.put("inOtherBusiness", !jgUseRegistrationService.getJgUseRegistrationMapper().selectListForSelfDiscard(Lists.newArrayList(record)).isEmpty());
......
......@@ -82,7 +82,7 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy
.eq(JgUseRegistrationManage::getIsDelete,0)
.eq(JgUseRegistrationManage::getCertificateStatus,YIDENGJI.getName())
.select(JgUseRegistrationManage::getSequenceNbr, JgUseRegistrationManage::getReceiveCompanyCode).one();
useInfoOld.setReceiveCompanyCode(jgUseRegistrationManage.getReceiveCompanyCode());
useInfoNew.setReceiveCompanyCode(jgUseRegistrationManage.getReceiveCompanyCode());
}
// 历史有证设备检验(台套类设备+气瓶)
......
......@@ -3400,7 +3400,7 @@ public class CommonServiceImpl implements ICommonService {
public Map<String, String> queryTcmUnitInfoBySeq(String estateUnitSeq, String unitType) {
Map<String, String> propertyUnitInfo = commonMapper.queryTcmUnitInfoBySeq(estateUnitSeq, unitType);
if (ValidationUtil.isEmpty(propertyUnitInfo)) {
if (ValidationUtil.isEmpty(propertyUnitInfo) && !ValidationUtil.isEmpty(estateUnitSeq)) {
// 未查询到产权信息则保存上送的产权信息
propertyUnitInfo = Maps.newHashMap();
Long seqNbr = IdWorker.getId();
......
......@@ -26,7 +26,6 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.dto.CountDto;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.entity.TzsBaseEntity;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.*;
import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory;
......@@ -50,7 +49,6 @@ import com.yeejoin.amos.boot.module.jg.biz.reminder.core.event.EquipCreateOrEdit
import com.yeejoin.amos.boot.module.jg.biz.service.*;
import com.yeejoin.amos.boot.module.jg.biz.utils.CodeUtil;
import com.yeejoin.amos.boot.module.jg.biz.utils.JsonUtils;
import com.yeejoin.amos.boot.module.ymt.api.dto.KV;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzsUserInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
......@@ -1927,6 +1925,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
public String judgeTheBusinessAccordingByRecord(String record, Map<String, Object> objMap) {
String equListStr = (String) objMap.get("EQU_LIST");
String equCategoryStr = (String) objMap.get("EQU_CATEGORY");
String useRegistrationCode = (String) objMap.get("useRegistrationCode");
String business = "";
// 仅做施工告知的设备查询施工信息。厂车=5000、流动式起重机=4400、气瓶=2300不查询施工信息
......@@ -1960,10 +1959,12 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
}
}
// 使用登记
Map<String, Object> useRegistrationDetail = jgUseRegistrationMapper.getUseRegistrationDetail(record);
if (!ObjectUtils.isEmpty(useRegistrationDetail)) {
// Map<String, Object> useRegistrationDetail = jgUseRegistrationMapper.getUseRegistrationDetail(record);
JgUseRegistrationManage jgUseRegistrationManage = jgUseRegistrationManageService.lambdaQuery().select(JgUseRegistrationManage::getReceiveOrgName, JgUseRegistrationManage::getReceiveCompanyCode).eq(JgUseRegistrationManage::getUseRegistrationCode, useRegistrationCode).one();
if (!ObjectUtils.isEmpty(jgUseRegistrationManage)) {
business = business + ",使用登记";
objMap.putAll(useRegistrationDetail);
// objMap.putAll(useRegistrationDetail);
objMap.put("receiveCompanyCode", jgUseRegistrationManage.getReceiveCompanyCode());
}
return business;
}
......
......@@ -223,24 +223,6 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
*/
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
@FieldMapping({
@FieldMapping.FieldMap(
sourceField = "installUnitCode",
paramIndex = 1,
targetField = "installUnitSeq",
serviceClass = CommonServiceImpl.class,
queryMethod = "queryTcmUnitCreditCodeAndNameBySeq",
secondParamValue = "AGW"
),
@FieldMapping.FieldMap(
sourceField = "inspectUnitCreditCode",
paramIndex = 1,
targetField = "inspectUnitSeq",
serviceClass = CommonServiceImpl.class,
queryMethod = "queryTcmUnitCreditCodeAndNameBySeq",
secondParamValue = "JY"
)
})
public List<JgVehicleInformation> save(String submit, JSONObject map) {
try {
if (SUBMIT_TYPE_FLOW.equals(submit)) {
......@@ -338,16 +320,20 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
vehicleInfoDto.setReceiveCompanyCode(result.getCompanyCode());
}
//检验机构信息
if (!StringUtils.isEmpty(vehicleInfoDto.getInspectUnitCreditCode())) {
String inspectUnitSeq = MapUtil.getStr(map, "inspectUnitSeq");
Map<String, String> inspectUnit = commonService.queryTcmUnitInfoBySeq(inspectUnitSeq, TcmUnitTypeEnum.JY.getCode());
if (ValidationUtil.isEmpty(vehicleInfoDto.getInspectUnitCreditCode())) {
vehicleInfoDto.setInspectUnitCreditCode("");
vehicleInfoDto.setInspectUnitName("");
} else {
Map<String, String> inspectUnit = commonService.queryTcmUnitInfoBySeq(vehicleInfoDto.getInspectUnitCreditCode(), TcmUnitTypeEnum.JY.getCode());
vehicleInfoDto.setInspectUnitCreditCode(MapUtil.getStr(inspectUnit, "unitCode"));
vehicleInfoDto.setInspectUnitName(MapUtil.getStr(inspectUnit, "unitName"));
}
//安装单位信息
if (!StringUtils.isEmpty(vehicleInfoDto.getInstallUnitCode())) {
String installUnitSeq = MapUtil.getStr(map, "installUnitSeq");
Map<String, String> installUnit = commonService.queryTcmUnitInfoBySeq(installUnitSeq, TcmUnitTypeEnum.JY.getCode());
if (ValidationUtil.isEmpty(vehicleInfoDto.getInstallUnitCode())) {
vehicleInfoDto.setInstallUnitCode("");
vehicleInfoDto.setInstallUnitName("");
} else {
Map<String, String> installUnit = commonService.queryTcmUnitInfoBySeq(vehicleInfoDto.getInstallUnitCode(), TcmUnitTypeEnum.AGW.getCode());
vehicleInfoDto.setInstallUnitCode(MapUtil.getStr(installUnit, "unitCode"));
vehicleInfoDto.setInstallUnitName(MapUtil.getStr(installUnit, "unitName"));
}
......@@ -368,18 +354,15 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
});
// 产权单位信息
if (!StringUtils.isEmpty(vehicleInfoDto.getEstateUnitName())) {
String[] data = String.valueOf(map.getString("estateUnitName")).split("_");
vehicleInfoDto.setEstateUnitCreditCode(data[0]);
vehicleInfoDto.setEstateUnitName(data[1]);
// 使用用户输入的产权单位信息未查询到数据,则保存新的产权单位信息
if (!ValidationUtil.isEmpty(map.getString("estateUnitSeq"))) {
String estateUnitSeq = String.valueOf(map.getString("estateUnitSeq"));
Map<String, String> propertyUnitInfo = commonService.queryTcmUnitInfoBySeq(estateUnitSeq, TcmUnitTypeEnum.CQ.getCode());
vehicleInfoDto.setEstateUnitCreditCode(propertyUnitInfo.get("unitCode"));
vehicleInfoDto.setEstateUnitName(propertyUnitInfo.get("unitName"));
} else {
// 使用用户输入的产权单位信息未查询到数据,则保存新的产权单位信息
if (!ValidationUtil.isEmpty(map.getString("estateUnitSeq"))) {
String estateUnitSeq = String.valueOf(map.getString("estateUnitSeq"));
Map<String, String> propertyUnitInfo = commonService.queryTcmUnitInfoBySeq(estateUnitSeq, TcmUnitTypeEnum.CQ.getCode());
vehicleInfoDto.setEstateUnitCreditCode(propertyUnitInfo.get("unitCode"));
vehicleInfoDto.setEstateUnitName(propertyUnitInfo.get("unitName"));
}
vehicleInfoDto.setEstateUnitCreditCode("");
vehicleInfoDto.setEstateUnitName("");
}
// 其他附件
......@@ -1954,7 +1937,7 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
targetField = "inspectUnitSeq",
serviceClass = CommonServiceImpl.class,
queryMethod = "queryTcmUnitCreditCodeAndNameBySeq",
secondParamValue = "JY"
secondParamValue = "JY,JC"
)
})
public List<JgVehicleInformation> saveOrUpdateHisData(JSONObject map) {
......@@ -2342,7 +2325,7 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
targetField = "inspectUnitSeq",
serviceClass = CommonServiceImpl.class,
queryMethod = "queryTcmUnitCreditCodeAndNameBySeq",
secondParamValue = "JY"
secondParamValue = "JY,JC"
)
})
public List<JgVehicleInformation> updateHistoryByVehicle(JSONObject map) {
......
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