Commit f0f2fecd authored by suhuiguang's avatar suhuiguang

Merge branch 'develop_tzs_register' into develop_tzs_bugfix

parents 982b2cdd 6af18bca
......@@ -180,4 +180,7 @@ public class JgUseRegistrationDto extends BaseDto {
@ApiModelProperty(value = "气瓶类别(0液化石油气瓶、1工业气瓶、2其他)")
private String cylinderCategory;
@ApiModelProperty(value = " 监察处置机构代码")
private String supervisionOrgCode;
}
......@@ -64,4 +64,9 @@ public class TaskMessageDto {
* 下节点任务id
*/
String nextTaskId;
/**
* 登记类型(新增使用登记,历史使用登记,特殊使用登记)
*/
String regType;
}
......@@ -255,4 +255,10 @@ public class JgUseRegistration extends BaseEntity {
*/
@TableField("cylinder_category")
private String cylinderCategory;
/**
* 监察处置机构代码
*/
@TableField("supervision_org_code")
private String supervisionOrgCode;
}
package com.yeejoin.amos.boot.module.jg.api.enums;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import lombok.AllArgsConstructor;
import lombok.Getter;
......@@ -10,7 +11,7 @@ import java.util.Map;
@AllArgsConstructor
public enum EquipSourceEnum {
jg_his("历史设备", "jg_his"),
jg_his_black("历史设备(无登记证)", "jg_his_black"),
jg("新设备", "jg");
private final String name;
......@@ -45,4 +46,17 @@ public enum EquipSourceEnum {
public String getName() {
return name;
}
public static String getDataSourceName(String dataSource) {
if(StringUtils.isEmpty(dataSource)){
return EquipSourceEnum.jg_his.getName();
}
if(EquipSourceEnum.jg.getCode().equals(dataSource) || (dataSource.startsWith(EquipSourceEnum.jg.getCode()) && !dataSource.startsWith(EquipSourceEnum.jg_his.getCode()))){
return EquipSourceEnum.jg.getName();
} else if(dataSource.startsWith(EquipSourceEnum.jg_his_black.getCode())){
return EquipSourceEnum.jg_his_black.getName();
} else {
return EquipSourceEnum.jg_his.getName();
}
}
}
......@@ -19,11 +19,11 @@ public enum WorkFlowStatusEnum {
* 使用登记流程
*/
USE_SUBMIT("使用单位提交", "useSubmit", "使用单位待提交", "一级受理已驳回", "使用单位已撤回"),
USE_RECEIVE("一级受理", "useReceive", "一级待受理", "二级受理已驳回", "一级受理已撤回"),
USE_RECEIVE("一级受理", "useReceive", "一级待受理", "已驳回", "一级受理已撤回"),
USE_SAFETY_CHECK("安全监察受理", "safetyCheck", "安全监察待受理", "二级受理已驳回", "安全监察已撤回"),
USE_PRELIMINARY("二级受理", "usePreliminary", "二级待受理", "三级受理已驳回", "二级受理已撤回"),
USE_REEXAMINE("三级受理", "useReexamine", "三级待受理","",""),
/**
* 维保备案
*/
......
......@@ -36,4 +36,6 @@ public interface JgMaintenanceContractMapper extends BaseMapper<JgMaintenanceCon
List<CompanyEquipCountDto> queryForFlowingEquipList();
List<MaintenanceVo> queryMaintenanceInIds(@Param("ids") List<String> ids);
String getNameByEquDefine(String equDefine);
}
......@@ -152,7 +152,7 @@
jfi.FACTORY_NUM,
jui.ADDRESS as ADDRESS,
jui.RECORD record,
jri.EQU_DEFINE,
(SELECT name from tz_equipment_category where code = jri.EQU_DEFINE) as EQU_DEFINE,
jri.PRODUCT_NAME,
jri.EQU_CODE,
(SELECT name from tz_equipment_category where code = jri.EQU_LIST) as EQU_LIST,
......@@ -165,6 +165,12 @@
WHERE mc.equip_transfer_id = #{id}
</select>
<select id="getNameByEquDefine" resultType="String">
select name
from tz_equipment_category
where code = #{equDefine}
</select>
<select id="queryForFlowingEquipList" resultType="com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto">
select a.use_unit_code as companyCode,
group_concat(b.equ_id) as records
......
......@@ -77,6 +77,7 @@
ur.receive_company_code,
ur.use_unit_credit_code,
ur.transfer_to_user_ids,
ur.supervision_org_code,
ur.use_address as fullAddress,
ur.cancel_reason as cancelReason,
(select group_concat(re.equ_id) from tzs_jg_use_registration_eq re where ur.sequence_nbr = re.equip_transfer_id) as equipId,
......@@ -186,8 +187,9 @@
AND auditPassDate BETWEEN #{dto.auditPassDateStart} AND #{dto.auditPassDateEnd}
</if>
<if test="dto.dataType == 'supervision' ">
AND (receive_company_code = #{dto.receiveCompanyCode} or transfer_to_user_ids LIKE concat ('%',
#{dto.currentUserId}, '%'))
AND (receive_company_code = #{dto.receiveCompanyCode}
OR transfer_to_user_ids LIKE concat ('%',#{dto.currentUserId}, '%'))
OR supervision_org_code LIKE concat (#{dto.supervisionOrgCode}, '%')
AND status <![CDATA[<>]]> '使用单位待提交'
</if>
<if test="dto.dataType == 'company' ">
......@@ -305,7 +307,8 @@
jri.OTHER_ACCESSORIES_REG as otherAccessoriesReg,
jfi.OTHER_ACCESSORIES_FACT as otherAccessoriesFact,
jfi.FACT_SUPERVISION_INSPECTION_REPORT as factSupervisionInspectionReport,
jfi.BOILER_ENERGY_EFFICIENCY_CERTIFICATE as boilerEnergyEfficiencyCertificate
jfi.BOILER_ENERGY_EFFICIENCY_CERTIFICATE as boilerEnergyEfficiencyCertificate,
jfi.FACTORY_IS_COMPLETE as factoryIsComplete
from idx_biz_jg_register_info jri
LEFT JOIN idx_biz_jg_factory_info jfi on jri.RECORD = jfi.RECORD
where jri.RECORD = #{id}
......@@ -399,7 +402,8 @@
APPRAISAL_DATE as appraisalDate,
DESIGN_DOC as designDoc,
DESIGN_STANDARD as designStandard,
OTHER_ACCESSORIES_DES as otherAccessoriesDes
OTHER_ACCESSORIES_DES as otherAccessoriesDes,
DESIGN_IS_COMPLETE as designIsComplete
from idx_biz_jg_design_info
where RECORD = #{id}
</select>
......
......@@ -120,6 +120,20 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.queryForEquipmentRegisterPage(jsonObject));
}
/**
* @author LiuLin
*
* 历史无证设备分页查询接口(ES)
* @param map 参数
* @return 分页信息
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/queryHisNoCertEquipPage")
@ApiOperation(httpMethod = "GET", value = "历史无证设备分页查询接口查询", notes = "历史无证设备分页查询接口查询")
public ResponseModel<Page<JSONObject>> queryHisNoCertEquipPage(@RequestParam Map<String, Object> map) {
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.queryHisNoCertEquipPage(new JSONObject(map)));
}
// /**
// * 查询设备注册列表
// *
......@@ -149,10 +163,14 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
@RequestParam(value = "type", required = false) String type) {
List<DictionarieValueModel> dictionarieValueModels = idxBizJgRegisterInfoService.equCategoryListByCompanyType(getSelectedOrgInfo(), equList, businessScenarios, dataSource, type);
//bug 24467 新增历史设备--有移动式压力容器,需禁用或者删除
if ("his".equals(dataSource) && "2000".equals(equList) && "SB_XZ".equals(type) && "0".equals(businessScenarios)) {
//bug 24467 新增历史设备--有移动式压力容器,需禁用或者删除 (历史设备录入(有证-his,无证-black))
if ("his".equals(dataSource) && "2000".equals(equList) && "SB_XZ".equals(type) && "0".equals(businessScenarios)) {
dictionarieValueModels = dictionarieValueModels.stream().filter(dictionarieValueModel -> !dictionarieValueModel.getDictDataValue().equals("移动式压力容器")).collect(Collectors.toList());
}
// 历史无证设备录入(有证-his,无证-black))
if ( "black".equals(dataSource) && "2000".equals(equList) && "SB_XZ".equals(type) && "0".equals(businessScenarios)) {
dictionarieValueModels = dictionarieValueModels.stream().filter(dictionarieValueModel -> !dictionarieValueModel.getDictDataValue().equals("移动式压力容器") && !dictionarieValueModel.getDictDataValue().equals("气瓶")).collect(Collectors.toList());
}
return ResponseHelper.buildResponse(dictionarieValueModels);
}
......
......@@ -112,6 +112,7 @@ public class JgUseRegistrationController extends BaseController {
} else {
dto.setDataType(BaseController.COMPANY_TYPE_SUPERVISION);
dto.setReceiveCompanyCode(info.getCompany().getCompanyCode());
dto.setSupervisionOrgCode(info.getCompany().getOrgCode());
}
if (dto.getAuditPassDateRange() != null && !dto.getAuditPassDateRange().isEmpty() && !dto.getAuditPassDateRange().equals("[, ]")) {
String dateRangeStr = dto.getAuditPassDateRange();
......@@ -136,7 +137,7 @@ public class JgUseRegistrationController extends BaseController {
Page<Map<String, Object>> list = jgUseRegistrationServiceImpl.getList(dto, sort, page, dto.getRoleIds());
list.getRecords().forEach(x -> {
x.put("companyType", info.getCompany().getCompanyType());
x.put("regType", "1".equals(x.get("regType")) ? "历史登记" : "新增登记");
x.put("regType", "1".equals(x.get("regType")) ? "历史登记": "2".equals(x.get("regType")) ? "特殊历史登记": "新增登记");
});
return ResponseHelper.buildResponse(list);
}
......
......@@ -172,7 +172,7 @@ public class ShCarController extends BaseController {
@ApiOperation(httpMethod = "GET", value = "数据查询,校验是否是三环系统数据", notes = "数据查询,校验是否是三环系统数据")
@GetMapping(value = "/searchForSanHanAllParams")
public ResponseModel<ShCar> searchForSanHan(@ApiParam(name = "使用登记证编号") @RequestParam String useRegistrationCode,
@ApiParam(name = "车牌号") @RequestParam String carNumber,
@ApiParam(name = "车牌号") @RequestParam(value = "carNumber", required = false) String carNumber,
@ApiParam(name = "单位内编号") @RequestParam(value = "USE_INNER_CODE", required = false) String useInnerCode,
@ApiParam(name = "车辆VIN码") @RequestParam String identificationCode) {
if (StringUtils.isEmpty(carNumber) && !StringUtils.isEmpty(useInnerCode)) {
......
......@@ -73,4 +73,6 @@ public interface IIdxBizJgRegisterInfoService {
void inspectionExpirationReminderOnce();
void initEnterpriseLicenseExpirationOnce();
Page<JSONObject> queryHisNoCertEquipPage(JSONObject jsonObject);
}
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentCategoryEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.Map;
@Service
public class CodeGenServiceImpl {
private final EquipmentCategoryMapper equipmentCategoryMapper;
// 西安行政区划code
private static final String XIAN = "610100";
// 咸阳行政区划code
private static final String XIAN_YANG = "610400";
public CodeGenServiceImpl(EquipmentCategoryMapper equipmentCategoryMapper) {
this.equipmentCategoryMapper = equipmentCategoryMapper;
}
public String getSupervisorCodePrefix(String isNotXiXian, String city, String county) {
String division;
if (((XIAN.equals(city) || XIAN_YANG.equals(city)) && "1".equals(isNotXiXian))) {
division = "X";
} else {
// 生成监管码前缀
Map<String, Object> divisionMap = equipmentCategoryMapper.getAdministrativeDivision(EquipmentCategoryEnum.XZQH.getCode(), county);
division = ObjectUtils.isEmpty(divisionMap) ? equipmentCategoryMapper.getAdministrativeDivision(EquipmentCategoryEnum.XZQH.getCode(), city).get("code").toString() : divisionMap.get("code").toString();
}
return division;
}
}
......@@ -251,6 +251,9 @@ public class CommonServiceImpl implements ICommonService {
@Autowired
private JgChangeVehicleRegistrationUnitServiceImpl jgChangeVehicleRegistrationUnitService;
@Autowired
private CodeGenServiceImpl codeGenService;
@Value("${qrcode.prefix:https://sxtzsb.sxsei.com:19435/tzs}")
private String qrcodePrefix;
......@@ -629,7 +632,7 @@ public class CommonServiceImpl implements ICommonService {
}
private List<LinkedHashMap> creatReceiveUnitTree(String bizType) {
FeignClientResult tree = privilegeFeginService.tree(RequestContext.getToken(), RequestContext.getAppKey(), RequestContext.getProduct());
FeignClientResult tree = privilegeFeginService.queryAgencyTreeForCache(RequestContext.getToken(), RequestContext.getAppKey(), RequestContext.getProduct());
List<LinkedHashMap> result = (List<LinkedHashMap>) tree.getResult();
// 删除非监管机构的单位
deleteData(result, REGULATOR_UNIT);
......@@ -1291,6 +1294,11 @@ public class CommonServiceImpl implements ICommonService {
return jgUseRegistrationServiceImpl.handleUnitHistoryEquip(jsonObject);
case "vehicle":
return jgVehicleInformationService.saveOrUpdateHisData(jsonObject);
case "set_sp"://特殊历史登记
jsonObject.put("regType", "2");
jsonObject.put("businessCode", "DJ_SY");
jsonObject.put("submit", Boolean.TRUE);
return jgUseRegistrationServiceImpl.handleUseRegistration(jsonObject);
default:
return jgUseRegistrationServiceImpl.handleHistoryEquip(jsonObject);
}
......@@ -1791,6 +1799,7 @@ public class CommonServiceImpl implements ICommonService {
return list;
}
/**
* 生成使用登记编号
*
......@@ -1841,6 +1850,62 @@ public class CommonServiceImpl implements ICommonService {
}
/**
* 生成使用登记编号
*
* @param equipId 设备id
* @param supervisoryCompanyCode 接收机构单位代码
* @return 使用登记编号
*/
public String generateRegistrationCode(String equipId, JgRegistrationHistory historyData, String supervisoryCompanyCode, boolean isUnit) {
// 根据设备id查询设备类别、品种
LambdaQueryWrapper<RegistrationInfo> equipWrapper = new LambdaQueryWrapper<>();
equipWrapper.eq(RegistrationInfo::getRecord, equipId);
RegistrationInfo equipRegistrationInfo = tzsJgRegistrationInfoMapper.selectOne(equipWrapper);
if (!ValidationUtil.isEmpty(equipRegistrationInfo)) {
String equCategory = equipRegistrationInfo.getEquCategory(); // 设备类别 "3100"
String equDefine = equipRegistrationInfo.getEquDefine(); // 设备品种 "3110"
if (!ObjectUtils.isEmpty(equCategory)) {
// 设备种类简称,如果是气瓶返回瓶
String equCategoryAbbrName = CylinderTypeEnum.CYLINDER.getCode().equals(equCategory) ?
CylinderTypeEnum.CYLINDER.getName() :
EquipTypeEnum.getMessage(equCategory.substring(0, 1));
// 设备代码中间两位
String equipType2MidDigits = equCategory.substring(1, 3);
//台套还是取品种的中间两位
if (!isUnit) {
if (!ValidationUtil.isEmpty(equDefine)) {
equipType2MidDigits = equDefine.substring(1, 3);
}
}
Map<String, Object> changeData = JSON.parseObject(historyData.getChangeData(), Map.class);
String cityCode = Optional.ofNullable((String) changeData.get("transferCity"))
.map(s -> s.split("_")[0])
.orElse("");
String countyCode = Optional.ofNullable((String) changeData.get("transferCounty"))
.map(s -> s.split("_")[0])
.orElse("");
String isXiXian = "0".equals(changeData.get("transferIsXixian")) ? "0" : "1";
// 登记机关代号
String city = codeGenService.getSupervisorCodePrefix(isXiXian, cityCode, countyCode);
// 西咸新区监管码对应的设备使用登记证还按咸阳(D)生成
if ("X".equals(city)) {
city = "D";
}
if (!ValidationUtil.isEmpty(supervisoryCompanyCode)) {
DataDictionary specialRegionCode = dataDictionaryService.getByCode(supervisoryCompanyCode, SPECIAL_REGION_CODE);
if (!ValidationUtil.isEmpty(specialRegionCode)) {
city = specialRegionCode.getName();
}
}
ResponseModel<String> stringResponseModel = tzsServiceFeignClient.useRegistrationCode(equCategoryAbbrName + equipType2MidDigits + "陕" + city);
return stringResponseModel.getResult();
}
}
return null;
}
/**
* 检查实际状态是否不等于期望状态
*
* @param latestStatus 业务最新状态
......
......@@ -68,7 +68,7 @@ public class EquipChangeDataUpdateService {
public void updateDesignChangeData(String record, EquipDesignChangeDataDto equipDesignChangeDataDto) {
LambdaUpdateWrapper<IdxBizJgDesignInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(IdxBizJgDesignInfo::getRecord, record);
updateWrapper.set(IdxBizJgDesignInfo::getDesignDate, DateUtil.parse(equipDesignChangeDataDto.getDesignDate(), "yyyy-MM-dd"));
updateWrapper.set(IdxBizJgDesignInfo::getDesignDate, StringUtils.isNotEmpty(equipDesignChangeDataDto.getDesignDate()) ? DateUtil.parse(equipDesignChangeDataDto.getDesignDate(), "yyyy-MM-dd") : null);
updateWrapper.set(IdxBizJgDesignInfo::getDesignDoc, equipDesignChangeDataDto.getDesignDoc());
updateWrapper.set(IdxBizJgDesignInfo::getDesignUnitCreditCode, equipDesignChangeDataDto.getDesignUnitCreditCode());
updateWrapper.set(IdxBizJgDesignInfo::getDesignUnitName, equipDesignChangeDataDto.getDesignUnitName());
......@@ -86,7 +86,7 @@ public class EquipChangeDataUpdateService {
LambdaUpdateWrapper<IdxBizJgFactoryInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(IdxBizJgFactoryInfo::getRecord, record);
// 影响设备代码的生成
updateWrapper.set(IdxBizJgFactoryInfo::getProduceDate, DateUtil.parse(equipFactoryChangeDataDto.getProduceDate(), "yyyy-MM-dd"));
updateWrapper.set(IdxBizJgFactoryInfo::getProduceDate, StringUtils.isNotEmpty(equipFactoryChangeDataDto.getProduceDate()) ? DateUtil.parse(equipFactoryChangeDataDto.getProduceDate(), "yyyy-MM-dd") : null);
updateWrapper.set(IdxBizJgFactoryInfo::getProduceUnitName, equipFactoryChangeDataDto.getProduceUnitName());
updateWrapper.set(IdxBizJgFactoryInfo::getProduceCountry, equipFactoryChangeDataDto.getProduceCountry());
updateWrapper.set(IdxBizJgFactoryInfo::getProduceUnitCreditCode, equipFactoryChangeDataDto.getProduceUnitCreditCode());
......
......@@ -41,10 +41,7 @@ import com.yeejoin.amos.boot.module.ymt.api.dto.IdxBizJgRegisterInfoDto;
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.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
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.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.*;
import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
......@@ -383,11 +380,56 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
if (paramMap == null) {
throw new IllegalArgumentException("参数Map不能为空");
}
LinkedHashMap equipmentInfoForm = (LinkedHashMap) checkAndCast(paramMap.get(EQUIP_INFO_FORM_ID));
String dataSource = (String) equipmentInfoForm.get(DATA_SOURCE);
if(dataSource.contains("black")){
return this.blackEquipCreateOrUpdate(paramMap);
} else {
return this.otherEquipCreateOrUpdate(paramMap);
}
}
private ResponseModel blackEquipCreateOrUpdate(Map<String, Object> paramMap) {
LinkedHashMap equipmentClassForm = (LinkedHashMap) checkAndCast(paramMap.get(EQUIP_CLASS_FORM_ID));
LinkedHashMap equipmentInfoForm = (LinkedHashMap) checkAndCast(paramMap.get(EQUIP_INFO_FORM_ID));
LinkedHashMap equipmentParamsForm = (LinkedHashMap) checkAndCast(paramMap.get(EQUIP_PARAMS_FORM_ID));
String submitType = String.valueOf(paramMap.get("submitType"));
String record = (String) equipmentInfoForm.get(RECORD);
try {
// 设备代码 字段的唯一性校验
checkEquCodeUniqueness(equipmentInfoForm);
// 车用气瓶业务里面的 产品编号 校验唯一性(产品编号在车用气瓶范围内全局唯一)
checkFactoryNumUniqueness(equipmentInfoForm);
// 96333码 字段的唯一性校验
check96333Code(equipmentInfoForm);
} catch (Exception e) {
handleError(e, null);
}
// 操作类型
try {
// 保存数据
record = batchSubmitOrUpdate(equipmentClassForm, equipmentInfoForm, equipmentParamsForm, submitType);
// 保存Es数据
if (!ObjectUtils.isEmpty(record)) {
checkEsData(record);
}
} catch (Exception e) {
log.error("操作失败,数据异常: " + e.getMessage(), e);
handleError(e, record);
}
return ResponseHelper.buildResponse(record);
}
private ResponseModel otherEquipCreateOrUpdate(Map<String, Object> paramMap) {
if (paramMap == null) {
throw new IllegalArgumentException("参数Map不能为空");
}
LinkedHashMap equipmentClassForm = (LinkedHashMap) checkAndCast(paramMap.get(EQUIP_CLASS_FORM_ID));
LinkedHashMap equipmentInfoForm = (LinkedHashMap) checkAndCast(paramMap.get(EQUIP_INFO_FORM_ID));
LinkedHashMap equipmentParamsForm = (LinkedHashMap) checkAndCast(paramMap.get(EQUIP_PARAMS_FORM_ID));
String submitType = String.valueOf(paramMap.get("submitType"));
String record = (String) equipmentInfoForm.get(RECORD);
String dataSource = (String) equipmentInfoForm.get(DATA_SOURCE);
try {
// 设备代码 字段的唯一性校验
......@@ -429,6 +471,9 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
return ResponseHelper.buildResponse(record);
}
private Object checkAndCast(Object obj) {
if (obj instanceof LinkedHashMap) {
return obj;
......@@ -441,12 +486,14 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
// 根据设备代码检查唯一性
String equCode = (String) equipmentInfoForm.get(EQU_CODE);
String sequenceNbr = (String) equipmentInfoForm.get(SEQUENCE_NBR);
List<Integer> results = Stream.of(idxBizJgRegisterInfoMapper.selectByEquCodeAndClaimStatus(equCode, sequenceNbr, null),
idxBizJgRegisterInfoMapper.selectInstallNoticeEqByEquCode(equCode, sequenceNbr)
).collect(Collectors.toList());
if(StringUtils.isNotEmpty(equCode)) {
List<Integer> results = Stream.of(idxBizJgRegisterInfoMapper.selectByEquCodeAndClaimStatus(equCode, sequenceNbr, null),
idxBizJgRegisterInfoMapper.selectInstallNoticeEqByEquCode(equCode, sequenceNbr)
).collect(Collectors.toList());
if (results.stream().anyMatch(count -> count > 0)) {
throw new BadRequest("设备代码已存在,请重新输入!");
if (results.stream().anyMatch(count -> count > 0)) {
throw new BadRequest("设备代码已存在,请重新输入!");
}
}
}
......@@ -536,16 +583,30 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
// 匹配车辆VIN码
List<Map<String, String>> VINMapList = commonMapper.VINAccountUniqueWithVehGasCyl(VIN, record);
boolean hasVIN = !VINMapList.isEmpty();
boolean VINOfTheEnterprise = hasVIN ? JSON.toJSONString(useRegMapList).contains(companyCode) : Boolean.FALSE;
boolean VINOfTheEnterprise = hasVIN ? JSON.toJSONString(VINMapList).contains(companyCode) : Boolean.FALSE;
// 无证无VIN 和 本企业的证本企业的VIN 两种情况可以放行
if (!((!hasUseReg && !hasVIN) || (certificateOfTheEnterprise && VINOfTheEnterprise))) {
if (log.isDebugEnabled()) {
log.info("历史车用气瓶==输入的==>使用登记证编号:{},车辆VIN码:{}", useRegistrationCode, VIN);
log.info("历史车用气瓶==匹配到的==>使用登记证编号:{},车辆VIN码:{}", JSON.toJSONString(useRegMapList), JSON.toJSONString(VINMapList));
log.info("历史车用气瓶====>是否本企业使用登记证编号:{},是否本企业车辆VIN码:{}", certificateOfTheEnterprise, VINOfTheEnterprise);
}
throw new BadRequest("使用登记证号和车辆VIN码数据异常,请联系管理员!");
if ((!hasUseReg && !hasVIN) || (certificateOfTheEnterprise && VINOfTheEnterprise)) {
return;
}
if (log.isDebugEnabled()) {
log.info("历史车用气瓶==输入的==>使用登记证编号:{},车辆VIN码:{}", useRegistrationCode, VIN);
log.info("历史车用气瓶==匹配到的==>使用登记证编号:{},车辆VIN码:{}", JSON.toJSONString(useRegMapList), JSON.toJSONString(VINMapList));
log.info("历史车用气瓶====>是否本企业使用登记证编号:{},是否本企业车辆VIN码:{}", certificateOfTheEnterprise, VINOfTheEnterprise);
}
// 本企业存在证 + 无VIN 无证 + 本企业存在VIN
if ((certificateOfTheEnterprise && !hasVIN) || (!hasUseReg && VINOfTheEnterprise)) {
throw new BadRequest("使用的登记证号,车辆VIN码与本企业原先录入的数据不一致!");
}
// 本企业存在证 + VIN属于其他企业 无证 + VIN属于其他企业
if ((certificateOfTheEnterprise && hasVIN && !VINOfTheEnterprise) || (!hasUseReg && hasVIN && !VINOfTheEnterprise)) {
throw new BadRequest("车辆VIN码已被其他企业使用!");
}
// 其他企业存在证 + 本企业存在VIN 其他企业存在证 + 无VIN
if ((hasUseReg && !certificateOfTheEnterprise && VINOfTheEnterprise) || (hasUseReg && !certificateOfTheEnterprise && !hasVIN)) {
throw new BadRequest("使用的登记证号已被其他企业使用!");
}
// 其他企业存在证 + 其他企业存在VIN
throw new BadRequest("使用的登记证号,车辆VIN码已被其他企业使用!");
}
}
}
......@@ -678,10 +739,12 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
equipInfoMap.put("EQU_CODE_TYPE", "1");
equipInfoMap.put("SUPERVISORY_CODE", null);
equipInfoMap.put("CAR_NUMBER", null);
equipInfoMap.put("useRegistrationCode", null);
// 气瓶的部分信息赋空
equipInfoMap.put("INFORMATION_SITUATION", null);
equipInfoMap.put("INFORMATION_MANAGE_CODE", null);
equipInfoMap.put("CYLINDER_STAMP_ATTACHMENT", null);
equipInfoMap.put("identificationCode", null);
}
return resultMap;
}
......@@ -746,8 +809,8 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
@Override
public List<DictionarieValueModel> equCategoryListByCompanyType(ReginParams selectedOrgInfo, String equList, String businessScenarios, String dataSource, String type) {
// 历史设备录入 直接取所有的设备种类(equList)下的所有设备类别
if ("his".equals(dataSource)) {
// 历史设备录入(有证-his,无证-black) 直接取所有的设备种类(equList)下的所有设备类别
if ("his".equals(dataSource) || "black".equals(dataSource)) {
// 历史数据导入设备类别限制 bug-21172
if (!ObjectUtils.isEmpty(type) && "PL_DR".equals(type)) {
return this.baseMapper.queryAllEquCategoriesUnderTheEquList(equList).stream()
......@@ -988,6 +1051,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
objMap.putAll(filterMap);
}
}
objMap.put(DATA_SOURCE_NAME, EquipSourceEnum.getDataSourceName(useInfo.getDataSource()));
// 设计制造
IdxBizJgDesignInfo designInfo = iIdxBizJgDesignInfoService.getOneData(record);
if (!ValidationUtil.isEmpty(designInfo)) {
......@@ -1542,6 +1606,296 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
return resultListMap;
}
@Override
public Page<JSONObject> queryHisNoCertEquipPage(JSONObject map) {
if (map.containsKey("flag") && !map.containsKey("USE_UNIT_CREDIT_CODE")) {
return new Page<>();
}
Integer pageNumber = ObjectUtils.isEmpty(map.getInteger("number")) ? 1 : map.getInteger("number");
Integer size = ObjectUtils.isEmpty(map.getInteger("size")) ? 20 : map.getInteger("size");
Page<JSONObject> result = new Page<>(pageNumber, size);
SearchRequest request = new SearchRequest();
request.indices("idx_biz_view_jg_all");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.trackTotalHits(true);
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
// 获取当前登录人单位类型
JSONObject company = getCompanyType();
if (ValidationUtil.isEmpty(company)) {
result.setRecords(new ArrayList<>());
result.setTotal(0);
return result;
}
String companyCode = company.getString("companyCode").contains("_") ?
company.getString("companyCode").split("_")[1] : company.getString("companyCode");
String type = company.getString("companyType");
// 根据当前登录人查询
if (!ValidationUtil.isEmpty(map.get(EQUSTATE))) {
map.put(EQUSTATE, EquimentEnum.getCode.get(map.get(EQUSTATE).toString()).toString());
}
// 根据当前登录用户类型及管辖机构筛选条件添加对应参数
if (ObjectUtils.isEmpty(map.getString(SEQUENCE_NBR)) && ObjectUtils.isEmpty(map.getString("useUnitCreditCode"))) {
if (!ValidationUtil.isEmpty(type) && type.contains("使用单位")) {
if (ValidationUtil.isEmpty(map.getString("USE_UNIT_CREDIT_CODE"))) {
map.put("USE_UNIT_CREDIT_CODE", companyCode);
}
}
if (!ValidationUtil.isEmpty(type) && type.contains("安装改造维修单位")) {
map.put("USC_UNIT_CREDIT_CODE", companyCode);
}
if (!ValidationUtil.isEmpty(type) && type.contains("个人主体")) {
map.put("USE_UNIT_CREDIT_CODE", companyCode);
}
}
// 默认条件【STATUS==="" || null】
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.should(QueryBuilders.matchQuery("STATUS", "已认领"));
meBuilder.should(QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery("STATUS")));
meBuilder.should(QueryBuilders.boolQuery().must(QueryBuilders.matchPhraseQuery("STATUS", "")));
meBuilder.minimumShouldMatch(1);
boolMust.must(meBuilder);
// 查询下次检验日期大于当前天的设备
long currentDayTime = DateUtil.parse(DateUtil.now(), "yyy-MM-dd").getTime();
boolMust.must(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").gte(currentDayTime));
// DATA_SOURCE 为“jg”开头的数据(从监管新加或复制的设备)
// 20240314 提出的监管业务不要让企业用户选到之前一码通认领或补录的设备,让从监管业务中去新增
BoolQueryBuilder dBuilder = QueryBuilders.boolQuery();
String queryType = map.getString("QUERY_TYPE");
if (map.containsKey("DATA_SOURCE") && !ObjectUtils.isEmpty(map.get("DATA_SOURCE"))) {
String dataSource = map.getString("DATA_SOURCE");
if ("jg_his_black".equals(dataSource)) {
// 只查历史,前缀为 jg_his
dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his_black"));
}
}
boolMust.must(dBuilder);
if (!ObjectUtils.isEmpty(map.getString(IS_INTO_MANAGEMENT))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String param = QueryParser.escape(map.getString(IS_INTO_MANAGEMENT));
pBuilder.must(QueryBuilders.matchQuery(IS_INTO_MANAGEMENT, param));
boolMust.must(pBuilder);
}
if (!ObjectUtils.isEmpty(map.getString(EQU_CATEGORY))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String param = QueryParser.escape(map.getString(EQU_CATEGORY));
pBuilder.must(QueryBuilders.matchPhraseQuery(EQU_CATEGORY, "*" + param + "*"));
boolMust.must(pBuilder);
}
// 使用单位 //安装改造维修单位
if (!ObjectUtils.isEmpty(map.getString("USE_UNIT_CREDIT_CODE")) && !ObjectUtils.isEmpty(map.getString("USC_UNIT_CREDIT_CODE"))) {
BoolQueryBuilder ubuilder = QueryBuilders.boolQuery();
String useCode = QueryParser.escape(map.getString("USE_UNIT_CREDIT_CODE"));
useCode = useCode.contains("_") ? useCode.split("_")[0] : useCode;
ubuilder.must(QueryBuilders.matchQuery("USE_UNIT_CREDIT_CODE", useCode));
String uscCode = QueryParser.escape(map.getString("USC_UNIT_CREDIT_CODE")).toLowerCase();
ubuilder.must(QueryBuilders.wildcardQuery("USC_UNIT_CREDIT_CODE", "*" + QueryParser.escape(uscCode) + "*"));
boolMust.must(ubuilder);
} else {
if (!ObjectUtils.isEmpty(map.getString("USE_UNIT_CREDIT_CODE")) || !ObjectUtils.isEmpty(map.getString("useUnitCreditCode"))) {
BoolQueryBuilder uuccBuilder = QueryBuilders.boolQuery();
String uucc = !ValidationUtil.isEmpty(map.getString("USE_UNIT_CREDIT_CODE")) ? map.getString("USE_UNIT_CREDIT_CODE") : map.getString("useUnitCreditCode");
String param = QueryParser.escape(uucc);
param = param.contains("_") ? param.split("_")[0] : param;
uuccBuilder.must(QueryBuilders.matchQuery("USE_UNIT_CREDIT_CODE", param));
boolMust.must(uuccBuilder);
}
if (!ObjectUtils.isEmpty(map.getString("USC_UNIT_CREDIT_CODE"))) {
BoolQueryBuilder uuccBuilder = QueryBuilders.boolQuery();
String uscCode = QueryParser.escape(map.getString("USC_UNIT_CREDIT_CODE")).toLowerCase();
uuccBuilder.must(QueryBuilders.wildcardQuery("USC_UNIT_CREDIT_CODE", "*" + QueryParser.escape(uscCode) + "*"));
boolMust.must(uuccBuilder);
}
}
// 设备种类编码
if (!ObjectUtils.isEmpty(map.getString("EQU_LIST_CODE"))) {
BoolQueryBuilder elcBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString("EQU_LIST_CODE"));
elcBuilder.must(QueryBuilders.matchPhraseQuery("EQU_LIST_CODE", test));
boolMust.must(elcBuilder);
}
// 设备类别编码
if (!ObjectUtils.isEmpty(map.getString("EQU_DEFINE_CODE"))) {
BoolQueryBuilder elcBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString("EQU_DEFINE_CODE"));
elcBuilder.must(QueryBuilders.matchPhraseQuery("EQU_DEFINE_CODE", test));
boolMust.must(elcBuilder);
}
// 设备种类名称
if (!ObjectUtils.isEmpty(map.getString(EQU_LIST))) {
BoolQueryBuilder elBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString(EQU_LIST));
elBuilder.must(QueryBuilders.matchPhraseQuery(EQU_LIST, "*" + test + "*"));
boolMust.must(elBuilder);
}
// 设备类别
if (!ObjectUtils.isEmpty(map.getString(EQU_CATEGORY_CODE))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString(EQU_CATEGORY_CODE));
pBuilder.must(QueryBuilders.termQuery(EQU_CATEGORY_CODE, test));
boolMust.must(pBuilder);
}
// 设备代码模糊查询
if (!ObjectUtils.isEmpty(map.getString(EQU_CODE))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString(EQU_CODE));
pBuilder.must(QueryBuilders.wildcardQuery(EQU_CODE, "*" + QueryParser.escape(test.toLowerCase()) + "*"));
boolMust.must(pBuilder);
}
// 单位内部编号模糊查询
if (!ObjectUtils.isEmpty(map.getString("USE_INNER_CODE"))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString("USE_INNER_CODE"));
pBuilder.must(QueryBuilders.wildcardQuery("USE_INNER_CODE", "*" + QueryParser.escape(test.toLowerCase()) + "*"));
boolMust.must(pBuilder);
}
// 出厂编号/产品编码模糊查询
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, "*" + QueryParser.escape(test.toLowerCase()) + "*"));
boolMust.must(pBuilder);
}
// 制造单位(生产单位)名称模糊查询
if (!ObjectUtils.isEmpty(map.getString("PRODUCE_UNIT_NAME"))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString("PRODUCE_UNIT_NAME"));
pBuilder.must(QueryBuilders.wildcardQuery("PRODUCE_UNIT_NAME", "*" + QueryParser.escape(test.toLowerCase()) + "*"));
boolMust.must(pBuilder);
}
// 模糊查询
if (!ObjectUtils.isEmpty(map.getString(USE_PLACE_CODE))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString(USE_PLACE_CODE));
pBuilder.must(QueryBuilders.wildcardQuery(USE_PLACE_CODE, "*" + QueryParser.escape(test.toLowerCase()) + "*"));
boolMust.must(pBuilder);
}
// 工程装置名称模糊查询
if (!ObjectUtils.isEmpty(map.getString(PROJECT_CONTRAPTION))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
pBuilder.must(QueryBuilders.termsQuery("PROJECT_CONTRAPTION.keyword", map.getString(PROJECT_CONTRAPTION)));
boolMust.must(pBuilder);
}
// 查询 使用登记【可选设备列表】【(EQU_STATUS=== null || "" ) && (USE_ORG_CODE(使用登记证编号) ==="" || null)】
BoolQueryBuilder syBuilder = QueryBuilders.boolQuery();
syBuilder.mustNot(QueryBuilders.existsQuery("EQU_STATE"));
// syBuilder.mustNot(QueryBuilders.wildcardQuery("USE_ORG_CODE", "*"));
boolMust.must(syBuilder);
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "useRegistration");
builder.query(boolMust);
builder.sort("REC_DATE", SortOrder.DESC);
builder.from((pageNumber - 1) * size);
builder.size(size);
request.source(builder);
List<JSONObject> list = new LinkedList<>();
long totle = 0;
if (log.isDebugEnabled()) {
log.debug("查询es 的查询条件: {}", request);
}
try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
for (SearchHit hit : response.getHits().getHits()) {
System.out.println(hit);
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(hit);
JSONObject dto2 = jsonObject.getJSONObject("sourceAsMap");
if (!ValidationUtil.isEmpty(dto2.get(CONSTRUCTIONTYPE))) {
// 转化施工类型
String constructionType = dto2.get(CONSTRUCTIONTYPE).toString();
if (!ValidationUtil.isEmpty(constructionType)) {
String[] constructionTypeList = constructionType.split(",");
List<String> statusList = new ArrayList<>();
for (String cType : constructionTypeList) {
Integer integer = Integer.valueOf(cType);
String status = ConstructionEnum.getName.get(integer);
statusList.add(status);
}
dto2.put(CONSTRUCTIONTYPE, Joiner.on(",").join(statusList));
}
}
if (!ValidationUtil.isEmpty(dto2.get(EQUSTATE))) {
Integer integer = Integer.valueOf(dto2.get(EQUSTATE).toString());
String status = EquimentEnum.getName.get(integer);
dto2.put(EQUSTATE, status);
}
if (!ValidationUtil.isEmpty(dto2.get(DATA_SOURCE))) {
String s = dto2.get(DATA_SOURCE).toString();
dto2.put(DATA_SOURCE, s);
dto2.put(DATA_SOURCE_NAME, Arrays.stream(EquipSourceEnum.values())
.filter(e -> s.startsWith(e.getCode()))
.map(EquipSourceEnum::getName)
.findFirst()
.orElse(EquipSourceEnum.jg.getName()));
}
dto2.put("record", dto2.get(SEQUENCE_NBR));
list.add(dto2);
}
// 获取所有设备的Id
List<String> equIds = null;
if (!ValidationUtil.isEmpty(list)) {
equIds = list.stream().map(item -> item.get(SEQUENCE_NBR).toString()).collect(Collectors.toList());
}
if (!ValidationUtil.isEmpty(equIds)) {
// 查询设备地址
List<IdxBizJgUseInfo> useInfoListByEquIds = idxBizJgUseInfoService.getUseInfoListByEquIds(equIds);
Map<String, String> equAddressMap = new HashMap<>();
if (!ValidationUtil.isEmpty(useInfoListByEquIds)) {
equAddressMap = useInfoListByEquIds.stream().collect(Collectors.toMap(IdxBizJgUseInfo::getRecord,
useInfo -> {
String fulladdress = "";
if (!ValidationUtil.isEmpty(useInfo.getProvinceName())) {
fulladdress += useInfo.getProvinceName();
}
if (!ValidationUtil.isEmpty(useInfo.getCityName())) {
fulladdress += useInfo.getCityName();
}
if (!ValidationUtil.isEmpty(useInfo.getCountyName())) {
fulladdress += useInfo.getCountyName();
}
if (!ValidationUtil.isEmpty(useInfo.getStreetName())) {
fulladdress += useInfo.getStreetName();
}
if (!ValidationUtil.isEmpty(useInfo.getAddress())) {
fulladdress += useInfo.getAddress();
}
return fulladdress;
}
)
);
}
// 更新设备使用情况和设备地址
for (JSONObject item : list) {
String fullAddress = equAddressMap.get(item.getString(SEQUENCE_NBR));
item.put("ADDRESS", !ValidationUtil.isEmpty(fullAddress) ? fullAddress : "");
item.put("CAN_EDIT", this.checkEquipIsCanEdit(item.getString(SEQUENCE_NBR)));
item.put("CAN_DELETE", this.checkEquipIsCanDelete(item.getString(SEQUENCE_NBR)));
}
}
totle = response.getInternalResponse().hits().getTotalHits().value;
result.setRecords(list);
result.setTotal(totle);
} catch (IOException e) {
throw new RuntimeException(e);
}
return result;
}
/**
* 设备注册信息分页查询
*
......@@ -1613,6 +1967,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
if ("jg_his".equals(dataSource)) {
// 只查历史,前缀为 jg_his
dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his"));
dBuilder.mustNot(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his_black"));// 排除黑设备
} else {
// 只查新增,前缀为 jg 且前缀不为 jg_his
dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg"))
......@@ -1913,11 +2268,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
if (!ValidationUtil.isEmpty(dto2.get(DATA_SOURCE))) {
String s = dto2.get(DATA_SOURCE).toString();
dto2.put(DATA_SOURCE, s);
dto2.put(DATA_SOURCE_NAME, Arrays.stream(EquipSourceEnum.values())
.filter(e -> s.startsWith(e.getCode()))
.map(EquipSourceEnum::getName)
.findFirst()
.orElse(EquipSourceEnum.jg.getName()));
dto2.put(DATA_SOURCE_NAME, EquipSourceEnum.getDataSourceName(s));
}
dto2.put("record", dto2.get(SEQUENCE_NBR));
list.add(dto2);
......@@ -1972,6 +2323,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
return result;
}
/**
* 设备注册信息分页查询
*
......@@ -2257,11 +2609,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
if (!ValidationUtil.isEmpty(dto2.get(DATA_SOURCE))) {
String s = dto2.get(DATA_SOURCE).toString();
dto2.put(DATA_SOURCE, s);
dto2.put(DATA_SOURCE_NAME, Arrays.stream(EquipSourceEnum.values())
.filter(e -> s.startsWith(e.getCode()))
.map(EquipSourceEnum::getName)
.findFirst()
.orElse(EquipSourceEnum.jg.getName()));
dto2.put(DATA_SOURCE_NAME, EquipSourceEnum.getDataSourceName(s));
}
dto2.put("record", dto2.get(SEQUENCE_NBR));
list.add(dto2);
......@@ -2380,23 +2728,21 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
String equDefine = String.valueOf(equipmentClassForm.get(EQU_DEFINE));
// 业务场景
String businessScenarios = String.valueOf(equipmentClassForm.get(BUSINESS_SCENARIOS));
// 数据来源 历史数据his 新数据new
String equipSource = String.valueOf(equipmentClassForm.get(DATA_SOURCE));
// 操作类型
String operateType = ValidationUtil.isEmpty(equipmentInfoForm.get(SEQUENCE_NBR)) ? OPERATESAVE : OPERATEEDIT;
// 设备是否复制而来,复制来的设备走新增
boolean isCopy = !ValidationUtil.isEmpty(equipmentInfoForm.get(IS_COPY));
operateType = isCopy ? OPERATESAVE : operateType;
// 新增设备保存时 : 历史设备=》dataSource为"his" jg新录入设备dataSource为"jg"
String dataSource = OPERATESAVE.equals(operateType) ? ("new".equals(equipSource) ? "jg" : "jg_his") : ValidationUtil.isEmpty(equipmentInfoForm.get("DATA_SOURCE")) ? "jg_his" : equipmentInfoForm.get("DATA_SOURCE").toString();
String dataSource = this.getDataSource(operateType, equipmentInfoForm);
if (isCopy) {
String sourceRecord = equipmentClassForm.get(RECORD).toString();
// dataSource = "new".equals(equipSource) ? ("jg_" + sourceRecord) : ("jg_his_" + sourceRecord);
// bug-21203
if (equipmentInfoForm.containsKey("DATA_SOURCE")) {
String dataSourceCopy = equipmentInfoForm.get("DATA_SOURCE").toString();
if (dataSourceCopy.startsWith("jg_his")) {
if (dataSourceCopy.startsWith("jg_his_black")) {
dataSource = "jg_his_black_" + sourceRecord;
} else if (dataSourceCopy.startsWith("jg_his")) {
dataSource = "jg_his_" + sourceRecord;
} else {
dataSource = "jg_" + sourceRecord;
......@@ -2427,7 +2773,17 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
IdxBizJgOtherInfo otherInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgOtherInfo.class);
// 检验检测 【新增时】 固定式压力容器(2100)和 气瓶(2300)可以添加检验检测信息
if ("add".equals(submitType) || isCopy) {
if (CylinderTypeEnum.CYLINDER.getCode().equals(equCategory) || "2100".equals(equCategory)) {
// 历史无证设备创建且是检验信息齐全时才创建检验信息
if (dataSource.contains("jg_his_black") && InspectIsInPeriodEnum.IN_PERIOD_YES.getValue().equals(registerInfo.getInInspectionPeriod())) {
IdxBizJgInspectionDetectionInfo inspectionDetectionInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgInspectionDetectionInfo.class);
inspectionDetectionInfo.setRecord(record);
inspectionDetectionInfo.setRecDate(date);
if (inspectionDetectionInfo.getNextInspectDate() != null) {
inspectionDetectionInfo.setNextInspectDate(DateUtil.parse(DateUtil.format(inspectionDetectionInfo.getNextInspectDate(), DatePattern.NORM_DATE_PATTERN)));
}
inspectionDetectionInfo.setSequenceNbr(null);
iIdxBizJgInspectionDetectionInfoService.saveOrUpdateData(inspectionDetectionInfo);
} else if (CylinderTypeEnum.CYLINDER.getCode().equals(equCategory) || "2100".equals(equCategory)) {
IdxBizJgInspectionDetectionInfo inspectionDetectionInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgInspectionDetectionInfo.class);
List<Map<String, Object>> inspectionAndTestingInstitutions = commonService.getUnitListByType("inspection", "gasCylindersForCars");
Optional<Map<String, Object>> optional = inspectionAndTestingInstitutions.stream().filter(x -> x.get("useCode").equals(inspectionDetectionInfo.getInspectOrgCode())).findFirst();
......@@ -2441,8 +2797,19 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
inspectionDetectionInfo.setSequenceNbr(OPERATESAVE.equals(operateType) ? null : String.valueOf(equipmentInfoForm.get("INSPECTIONDETECTIONINFO_SEQ")));
iIdxBizJgInspectionDetectionInfoService.saveOrUpdateData(inspectionDetectionInfo);
}
} else {// 更新时 固定式压力容器(2100)和 气瓶(2300)工业管道(8300) 可以更新检验检测信息
if (CylinderTypeEnum.CYLINDER.getCode().equals(equCategory) || "2100".equals(equCategory) || "8300".equals(equCategory)) {
} else {
if(dataSource.contains("jg_his_black") && InspectIsInPeriodEnum.IN_PERIOD_YES.getValue().equals(registerInfo.getInInspectionPeriod())){
// 历史无证设备编辑时,只有在选择检验信息齐全时,才更新或者插入检验信息数据[在原本检验信息齐全,而在编辑时选择不齐全时,不修改原有的检验信息]
IdxBizJgInspectionDetectionInfo inspectionDetectionInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgInspectionDetectionInfo.class);
inspectionDetectionInfo.setRecord(record);
inspectionDetectionInfo.setRecDate(date);
if (inspectionDetectionInfo.getNextInspectDate() != null) {
inspectionDetectionInfo.setNextInspectDate(DateUtil.parse(DateUtil.format(inspectionDetectionInfo.getNextInspectDate(), DatePattern.NORM_DATE_PATTERN)));
}
inspectionDetectionInfo.setSequenceNbr(String.valueOf(equipmentInfoForm.get("INSPECTIONDETECTIONINFO_SEQ")));
iIdxBizJgInspectionDetectionInfoService.saveOrUpdateData(inspectionDetectionInfo);
} else if (CylinderTypeEnum.CYLINDER.getCode().equals(equCategory) || "2100".equals(equCategory) || "8300".equals(equCategory)) {
//更新时 固定式压力容器(2100)和 气瓶(2300)工业管道(8300) 可以更新检验检测信息
IdxBizJgInspectionDetectionInfo inspectionDetectionInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgInspectionDetectionInfo.class);
List<Map<String, Object>> inspectionAndTestingInstitutions = commonService.getUnitListByType("inspection", "gasCylindersForCars");
Optional<Map<String, Object>> optional = inspectionAndTestingInstitutions.stream().filter(x -> x.get("useCode").equals(inspectionDetectionInfo.getInspectOrgCode())).findFirst();
......@@ -2540,7 +2907,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
registerInfo.setEquCode(ObjectUtils.isEmpty(registerInfo.getEquCode()) ? "" : registerInfo.getEquCode());
// copy设备 =》 使用登记证号置空
String useOrgCode = ValidationUtil.isEmpty(equipmentInfoForm.get("useRegistrationCode")) ? "" : String.valueOf(equipmentInfoForm.get("useRegistrationCode"));
registerInfo.setUseOrgCode(isCopy ? "" : useOrgCode);
registerInfo.setUseOrgCode(isCopy && !"1".equals(equipmentInfoForm.get("WHETHER_VEHICLE_CYLINDER")) ? "" : useOrgCode);
this.saveOrUpdate(registerInfo);
// 监督管理
......@@ -2715,6 +3082,16 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
return record;
}
private String getDataSource(String operateType, LinkedHashMap equipmentInfoForm) {
// 数据来源 历史数据his 新数据new
String equipSource = String.valueOf(equipmentInfoForm.get(DATA_SOURCE));
if(OPERATESAVE.equals(operateType)){
return "new".equals(equipSource) ? "jg" : "his".equals(equipSource) ? "jg_his" : "jg_his_black";
} else {
return equipSource;
}
}
public void checkEsData(String id) {
Map<String, Object> map = categoryOtherInfoMapper.selectDataById(id);
categoryOtherInfoMapper.updateEsStatus(id);
......@@ -2837,8 +3214,6 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
@Override
public Page<JSONObject> queryEquipCanUsedByVesselPageHistory(JSONObject jsonObject) {
Optional.ofNullable(jsonObject).filter(obj -> !ValidationUtil.isEmpty(obj.get("identificationCode"))).filter(obj -> !ValidationUtil.isEmpty(obj.get("useRegistrationCode"))).orElseThrow(() -> new BadRequest("请先填写使用登记证编号和车辆VIN码!"));
ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String useUnitCreditCode = reginParams.getCompany().getCompanyCode();
// 使用单位为个人时候 特殊处理
......@@ -2850,7 +3225,6 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
List<DictionarieValueModel> fillingMedium = Systemctl.dictionarieClient.dictValues("FILLING_MEDIUM").getResult();
Map<String, Object> fillingMediumMap = fillingMedium.stream().collect(Collectors.toMap(DictionarieValueModel::getDictDataKey, DictionarieValueModel::getDictDataValue));
Page<JSONObject> result = jgUseRegistrationMapper.queryForEquipUsedByVehiclePageHistory(page, jsonObject);
if (result.getRecords().isEmpty()) throw new BadRequest("请检查使用登记证编号和车辆VIN码是否填写正确!");
result.getRecords().forEach(i -> {
i.put("chargingMedium", fillingMediumMap.get(i.get("chargingMedium")));
});
......@@ -3254,6 +3628,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
int extractedYear = Integer.parseInt(extractedYearStr);
if (currentYearLastTwoDigits == extractedYear) {
if (redisUtils.hasKey(useRegistrationCode.substring(0, 5))) {
// 检查regType是否为Cylinder,如果是,才执行"瓶31" 和 "瓶32" 的条件判断
if (!"cylinder".equals(regType) || Stream.of("瓶31", "瓶32").noneMatch(prefix::equals)) {
if (currentSequenceStr != null) {
......@@ -3631,7 +4006,8 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
@Override
public List<Map<String, Object>> getProjectContraptionList(String useUnitCreditCode) {
return this.baseMapper.getProjectContraptionList(useUnitCreditCode);
List<Map<String, Object>> list = this.baseMapper.getProjectContraptionList(useUnitCreditCode);
return list.stream().filter(map -> map.values().stream().noneMatch(value -> value instanceof String && ((String) value).isEmpty())).collect(Collectors.toList());
}
@Override
......@@ -3809,11 +4185,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
if (!ValidationUtil.isEmpty(source.get(DATA_SOURCE))) {
String s = source.get(DATA_SOURCE).toString();
source.put(DATA_SOURCE, s);
source.put(DATA_SOURCE_NAME, Arrays.stream(EquipSourceEnum.values())
.filter(e -> s.startsWith(e.getCode()))
.map(EquipSourceEnum::getName)
.findFirst()
.orElse(EquipSourceEnum.jg.getName()));
source.put(DATA_SOURCE_NAME, EquipSourceEnum.getDataSourceName(s));
}
result.add(source);
}
......
......@@ -822,7 +822,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
this.getBaseMapper().updateById(jgChangeRegistrationTransfer);
}
private Map<String, String> createSupervisoryCode(JgRegistrationHistory historyData) {
private Map<String, String> create96333Code(JgRegistrationHistory historyData, String record) {
Map<String, Object> changeData = JSON.parseObject(historyData.getChangeData(), Map.class);
List<JSONObject> registrationList = (List<JSONObject>) changeData.get("registrationList");
String equCategoryCode = Optional.ofNullable(registrationList)
......@@ -838,20 +838,21 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
.map(s -> s.split("_")[0])
.orElse("");
String isXiXian = "0".equals(changeData.get("transferIsXixian")) ? "null" : "1";
// 移转不需要重新生成监管码,只需要新生成96333码,接口上送superviseCode则不再生成监管码
IdxBizJgOtherInfo otherInfo = otherInfoService.getOneData(record);
String superviseCode = otherInfo.getSupervisoryCode();
ImmutableMap<String, Object> map = ImmutableMap.<String, Object>builder()
.put("cityCode", cityCode)
.put("countyCode", countyCode)
.put("equCategory", equCategoryCode)
.put("isXiXian", isXiXian)
.put("superviseCode", superviseCode)
.build();
Map<String, Object> result = tzsServiceFeignClient.createCode(map).getResult();
return ImmutableMap.<String, String>builder()
.put("superviseCode", Optional.ofNullable(result)
.map(r -> (String) r.get("superviseCode"))
.orElse(""))
.put("superviseCode", superviseCode)
.put("code96333", Optional.ofNullable(result)
.map(r -> (String) r.get("code96333"))
.orElse(""))
......@@ -935,10 +936,10 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
String supervisoryCode = "", code96333 = "";
//区外移装
if ("1".equals(transfer.getTransferType())) {
Map<String, String> supervisoryCodeMap = this.createSupervisoryCode(historyData);
Map<String, String> supervisoryCodeMap = this.create96333Code(historyData, device.getEquId());
supervisoryCode = supervisoryCodeMap.get("superviseCode");
code96333 = supervisoryCodeMap.get("code96333");
useRegistrationCode.set(commonServiceImpl.generateRegistrationCode(device.getEquId(), supervisoryCode, transfer.getReceiveCompanyCode(), false));
useRegistrationCode.set(commonServiceImpl.generateRegistrationCode(device.getEquId(),historyData, transfer.getReceiveCompanyCode(), false));
useRegistrationCodeList.add(String.valueOf(useRegistrationCode));
isUpdateRegistrationCode.set(true);
} else {
......@@ -957,10 +958,10 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
.map(ReginStepEnum::getCode)
.anyMatch(code -> code.equals(county) || code.equals(deviceCity));
if (shouldUpdateCode) {
Map<String, String> supervisoryCodeMap = this.createSupervisoryCode(historyData);
Map<String, String> supervisoryCodeMap = this.create96333Code(historyData, device.getEquId());
supervisoryCode = supervisoryCodeMap.get("superviseCode");
code96333 = supervisoryCodeMap.get("code96333");
useRegistrationCode.set(commonServiceImpl.generateRegistrationCode(device.getEquId(), supervisoryCode, transfer.getReceiveCompanyCode(), false));
useRegistrationCode.set(commonServiceImpl.generateRegistrationCode(device.getEquId(), historyData, transfer.getReceiveCompanyCode(), false));
useRegistrationCodeList.add(String.valueOf(useRegistrationCode));
isUpdateRegistrationCode.set(true);
}
......
......@@ -488,7 +488,7 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
jgCertificateChangeRecord.setRegType(BUSINESS_NAME);
jgCertificateChangeRecord.setRegDate(jgChangeVehicleRegistrationUnit.getApplyDate());
FeignClientResult<AgencyUserModel> agencyUserModelFeignClientResult = Privilege.agencyUserClient.queryByUserId(jgChangeVehicleRegistrationUnit.getCreateUserId());
jgCertificateChangeRecord.setChangeContent(jgChangeVehicleRegistrationUnit.getUseUnitName()+"的"+agencyUserModelFeignClientResult.getResult().getRealName() + "办理了【" + BUSINESS_NAME + "】," + "单号【" + jgChangeVehicleRegistrationUnit.getApplyNo() +
jgCertificateChangeRecord.setChangeContent(jgChangeVehicleRegistrationUnit.getNewUseUnitName() + "的" + agencyUserModelFeignClientResult.getResult().getRealName() + "办理了【" + BUSINESS_NAME + "】," + "单号【" + jgChangeVehicleRegistrationUnit.getApplyNo() +
"】,原" + jgChangeVehicleRegistrationUnit.getUseUnitName() + "变更为" + jgChangeVehicleRegistrationUnit.getNewUseUnitName() + ",办理日期" + sdf.format(jgChangeVehicleRegistrationUnit.getAuditPassDate()));
jgCertificateChangeRecord.setRecUserId(jgChangeVehicleRegistrationUnit.getRecUserId());
jgCertificateChangeRecord.setRecDate(new Date());
......
......@@ -1140,8 +1140,6 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
ResponseModel<String> responseModel = tzsServiceFeignClient.deviceRegistrationCode(registrationCode);
String deviceRegistrationCode = responseModel.getResult();
Map<String, Object> map = new HashMap<>();
map.put("code96333", tzsJgOtherInfo.getCode96333());
map.put("superviseCode", tzsJgOtherInfo.getSupervisoryCode());
map.put("cityCode", jgInstallationNotice.getCity());
map.put("countyCode", jgInstallationNotice.getCounty());
map.put("equCategory", idxBizJgRegisterInfo.getEquCategory());
......
......@@ -183,6 +183,16 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
vo.setEquipmentLists(list);
}
} else {
//如果EQU_DEFINE是数字进行转换
for (int i = 0; i < objects.size(); i++) {
JSONObject currentObject = objects.getJSONObject(i);
String equDefineCode = currentObject.getString("EQU_DEFINE");
if (equDefineCode.chars().anyMatch(Character::isDigit)) {
currentObject.put("EQU_DEFINE", maintenanceContractMapper.getNameByEquDefine(equDefineCode));
}
}
List equList = objects.toJavaList(Map.class);
vo.setEquipmentLists(equList);
}
......
......@@ -441,8 +441,6 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
* @param map map
* @return list
*/
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public List<Map<String, Object>> save(JSONObject map) {
Map<String, Function<JSONObject, List<Map<String, Object>>>> functionMap = MapBuilder.<String, Function<JSONObject, List<Map<String, Object>>>>create()
.put("unit", this::handleUnitUseRegistration).build();
......@@ -456,7 +454,9 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
* @param map map
* @return list
*/
private List<Map<String, Object>> handleUseRegistration(JSONObject map) {
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public List<Map<String, Object>> handleUseRegistration(JSONObject map) {
try {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
CompanyBo company = reginParams.getCompany();
......@@ -483,6 +483,11 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
jgUseRegistration.setReceiveOrgName(splitMaintenanceUnitCode[1]);
jgUseRegistration.setReceiveCompanyOrgCode(commonService.getOneCompany(jgUseRegistration.getReceiveCompanyCode()).getOrgCode());
}
if (map.containsKey("orgBranchCode")) {
// 监察处置机构代码
String[] splitOrgBranchCode = String.valueOf(map.getString("orgBranchCode")).split("_");
jgUseRegistration.setSupervisionOrgCode(splitOrgBranchCode[0]);
}
// 安全管理员
if (map.containsKey("safetyManager")) {
String[] data = String.valueOf(map.getString("safetyManager")).split("_");
......@@ -563,8 +568,9 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
if (!ObjectUtils.isEmpty(listResponseModel)) {
jgUseRegistration.setApplyNo(listResponseModel.getResult().get(0));
}
jgUseRegistration.setAuditStatus("待提交");
jgUseRegistration.setAuditStatus("待提交");//字段不用
jgUseRegistration.setStatus(WorkFlowStatusEnum.USE_SUBMIT.getPass());
jgUseRegistration.setRegType("2".equals(map.get("regType")) ? "2" : "0");
this.save(jgUseRegistration);
jgRelationEquip.setEquipTransferId(jgUseRegistration.getSequenceNbr().toString());
jgRelationEquipMapper.insert(jgRelationEquip);
......@@ -596,12 +602,11 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
WorkflowResultDto workflowResultDto = resultDto.get(0);
updateData(jgUseRegistration.getSequenceNbr(), "0", workflowResultDto, "", Boolean.TRUE, null);
}
}
if (!ObjectUtils.isEmpty(instanceId)) {
// 执行流程
flowExecute(jgUseRegistration.getSequenceNbr(), instanceId, "0", "", "", map.getString("manageType"), String.valueOf(map.get("nextTaskId")), null);
flowExecute(jgUseRegistration.getSequenceNbr(), instanceId, "0", "", "", map.getString("manageType"), String.valueOf(map.get("nextTaskId")), map);
}
} else {
if (ObjectUtils.isEmpty(map.get("instanceId"))) {
......@@ -686,7 +691,9 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
* @param map map
* @return list
*/
private List<Map<String, Object>> handleUnitUseRegistration(JSONObject map) {
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public List<Map<String, Object>> handleUnitUseRegistration(JSONObject map) {
try {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())) + "", ReginParams.class);
CompanyBo company = reginParams.getCompany();
......@@ -1571,22 +1578,68 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
// 组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(jgUseRegistration.getNextTaskId());
dto.setComment(comment);
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", operate);
if (jgUseRegistration.getStatus().equals(WorkFlowStatusEnum.USE_SUBMIT.getReject()) || jgUseRegistration.getStatus().equals(WorkFlowStatusEnum.USE_SUBMIT.getRollBack())) {
map.put("approvalStatus", "提交");
}
dto.setVariable(map);
// 接受机构
if ("1".equals(operate) && WorkFlowStatusEnum.USE_RECEIVE.getPass().equals(jgUseRegistration.getStatus())) {
// 驳回到使用单位
dto.setNextExecuteUserCompanyCode(jgUseRegistration.getUseUnitCreditCode());
} else {
dto.setNextExecuteUserCompanyCode(jgUseRegistration.getReceiveCompanyCode());
String orgCode = "";
if (jsonObject.containsKey("orgBranchCode") && !ObjectUtils.isEmpty(jsonObject.get("orgBranchCode"))) {
orgCode = String.valueOf(jsonObject.get("orgBranchCode")).split("_")[0];;
}
//驳回
if ("1".equals(operate)){
//一级驳回
if(WorkFlowStatusEnum.USE_RECEIVE.getPass().equals(jgUseRegistration.getStatus())){
// 一级驳回到使用单位
dto.setNextExecuteUserCompanyCode(jgUseRegistration.getUseUnitCreditCode());
dto.setNextExecuteUserOrgCode(jgUseRegistration.getUseUnitCreditCode());
}
//特殊登记,安全监察驳回到一级
if("2".equals(jgUseRegistration.getRegType())) {
// 二级驳回到监察单位
if(WorkFlowStatusEnum.USE_PRELIMINARY.getPass().equals(jgUseRegistration.getStatus()) || WorkFlowStatusEnum.USE_PRELIMINARY.getReject().equals(jgUseRegistration.getStatus())){
map.put("nextExecuteUserOrgCode", orgCode);
dto.setResultCode("approvalStatus");
map.put("approvalStatus", "10");
operate = "2";
}else if(WorkFlowStatusEnum.USE_SAFETY_CHECK.getPass().equals(jgUseRegistration.getStatus())|| WorkFlowStatusEnum.USE_SAFETY_CHECK.getReject().equals(jgUseRegistration.getStatus())){
//安全监察驳回到一级
dto.setNextExecuteUserCompanyCode(jgUseRegistration.getReceiveCompanyCode());
map.put("nextExecuteUserOrgCode", "");
dto.setResultCode("approvalStatus");
map.put("approvalStatus", operate);
operate = "2";
}else{
dto.setNextExecuteUserCompanyCode(jgUseRegistration.getReceiveCompanyCode());
dto.setResultCode("approvalStatus");
map.put("nextExecuteUserOrgCode", "");
map.put("approvalStatus", operate);
}
} else {
//正常使用登记
dto.setNextExecuteUserCompanyCode(jgUseRegistration.getReceiveCompanyCode());
map.put("approvalStatus", operate);
dto.setResultCode("approvalStatus");
}
} else{
//通过
//一级通过,且是特殊登记,需要监察,approvalStatus=2
if ("2".equals(jgUseRegistration.getRegType()) && (WorkFlowStatusEnum.USE_RECEIVE.getPass().equals(jgUseRegistration.getStatus()) || WorkFlowStatusEnum.USE_RECEIVE.getReject().equals(jgUseRegistration.getStatus()))){
dto.setResultCode("approvalStatus");
map.put("approvalStatus", "9");
map.put("nextExecuteUserOrgCode", orgCode);
}else{//新增登记
map.put("approvalStatus", operate);
dto.setResultCode("approvalStatus");
map.put("nextExecuteUserOrgCode", "");
dto.setNextExecuteUserCompanyCode(jgUseRegistration.getReceiveCompanyCode());
}
}
dto.setVariable(map);//无驳回1需监察 0, 通过,需要监察2, 驳回到监察是2
ProcessTaskDTO complete = cmWorkflowService.completeOrReject(jgUseRegistration.getNextTaskId(), dto, operate);
ArrayList<ProcessTaskDTO> processTaskDTOS = new ArrayList<>();
processTaskDTOS.add(complete);
......@@ -2940,6 +2993,11 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
jgUseRegistration.setReceiveOrgName(splitMaintenanceUnitCode[1]);
jgUseRegistration.setReceiveCompanyOrgCode(commonService.getOneCompany(jgUseRegistration.getReceiveCompanyCode()).getOrgCode());
}
if (map.containsKey("orgBranchCode")) {
// 监察处置机构代码
String[] splitOrgBranchCode = String.valueOf(map.getString("orgBranchCode")).split("_");
jgUseRegistration.setSupervisionOrgCode(splitOrgBranchCode[0]);
}
// 安全管理员
if (map.containsKey("safetyManager")) {
String[] data = String.valueOf(map.getString("safetyManager")).split("_");
......@@ -3410,6 +3468,11 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
jgUseRegistration.setReceiveOrgName(splitMaintenanceUnitCode[1]);
jgUseRegistration.setReceiveCompanyOrgCode(commonService.getOneCompany(jgUseRegistration.getReceiveCompanyCode()).getOrgCode());
}
if (map.containsKey("orgBranchCode")) {
// 监察处置机构代码
String[] splitOrgBranchCode = String.valueOf(map.getString("orgBranchCode")).split("_");
jgUseRegistration.setSupervisionOrgCode(splitOrgBranchCode[0]);
}
// 安全管理员
if (map.containsKey("safetyManager")) {
String[] data = String.valueOf(map.getString("safetyManager")).split("_");
......
......@@ -1768,6 +1768,8 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public List<JgVehicleInformation> saveOrUpdateHisData(JSONObject map) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())) + "", ReginParams.class);
CompanyBo company = reginParams.getCompany();
// 使用登记证编号
String useRegistrationCode = String.valueOf(map.get("useRegistrationCode")).trim();
// 车辆VIN码
......@@ -1795,17 +1797,11 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
})
.orElseThrow(() -> new BadRequest("使用登记证号、车辆VIN码与所选设备不一致,请重新选择设备!"));
// 校验使用登记证编号的唯一性 ====> 20241202 任务ID 32776 将校验前置到了新增历史设备阶段
// Boolean used = commonService.useRegistrationCertificateAccountUnique(useRegistrationCode, equipId);
// if (used){
// throw new BadRequest("使用登记证编号已存在!");
// }
// 检测是否三环系统中的车用气瓶数据 不让三环系统数据通过设备新增方式进来
// this.checkIsSanSystemHanData(map);
//使用登记证编号判断是否使用未来系统生成编号
idxBizJgRegisterInfoService.checkUseRegistrationCode(useRegistrationCode, "vehicle");
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())) + "", ReginParams.class);
JgVehicleInformationDto vehicleInfoDto = JSON.parseObject(JSON.toJSONString(map), JgVehicleInformationDto.class);
List<IdxBizJgInspectionDetectionInfo> inspectionDetectionInfoList = idxBizJgInspectionDetectionInfoService.checkInspectionInfo(
......@@ -1825,8 +1821,6 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
.filter(Objects::nonNull)
.min(Date::compareTo)
.orElse(null));
CompanyBo company = reginParams.getCompany();
vehicleInfoDto.setCreateDate(new Date());
vehicleInfoDto.setPromoter(reginParams.getUserModel().getUserId());
......@@ -1844,14 +1838,31 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
// 【A109】 车用气瓶登记业务 车辆VIN码 校验唯一性
LambdaQueryWrapper<JgVehicleInformation> informationLambdaQueryWrapper = new LambdaQueryWrapper<JgVehicleInformation>()
.select(JgVehicleInformation::getUseUnitCreditCode)
.eq(JgVehicleInformation::getIdentificationCode, vehicleInfoDto.getIdentificationCode())
.eq(JgVehicleInformation::getIsDelete, false)
.ne(JgVehicleInformation::getStatus, "已作废")
.ne(JgVehicleInformation::getStatus, "使用单位待提交")
.ne(!ValidationUtil.isEmpty(vehicleInfoDto.getSequenceNbr()), JgVehicleInformation::getSequenceNbr, vehicleInfoDto.getSequenceNbr());
Integer identificationCodeCount = this.baseMapper.selectCount(informationLambdaQueryWrapper);
if (identificationCodeCount > 0) {
throw new BadRequest("车辆VIN码已存在,请重新输入!");
List<JgVehicleInformation> vehicleInfoVINs = this.baseMapper.selectList(informationLambdaQueryWrapper);
if (!vehicleInfoVINs.isEmpty()) {
String companyCode = company.getCompanyCode();
String errMsg = JSON.toJSONString(vehicleInfoVINs).contains(companyCode) ? "已经发起过相同车辆VIN码的历史登记,不支持重复发起!" : "车辆VIN码已存在,请重新输入!";
throw new BadRequest(errMsg);
}
// 车用气瓶登记业务 使用登记证 校验唯一性
LambdaQueryWrapper<JgVehicleInformation> vehicleInformationLambdaQueryWrapper = new LambdaQueryWrapper<JgVehicleInformation>()
.select(JgVehicleInformation::getUseUnitCreditCode)
.eq(JgVehicleInformation::getUseRegistrationCode, vehicleInfoDto.getUseRegistrationCode())
.eq(JgVehicleInformation::getIsDelete, false)
.ne(JgVehicleInformation::getStatus, "已作废")
.ne(JgVehicleInformation::getStatus, "使用单位待提交")
.ne(!ValidationUtil.isEmpty(vehicleInfoDto.getSequenceNbr()), JgVehicleInformation::getSequenceNbr, vehicleInfoDto.getSequenceNbr());
List<JgVehicleInformation> vehicleInfoUseRegs = this.baseMapper.selectList(vehicleInformationLambdaQueryWrapper);
if (!vehicleInfoUseRegs.isEmpty()) {
String companyCode = company.getCompanyCode();
String errMsg = JSON.toJSONString(vehicleInfoUseRegs).contains(companyCode) ? "已经发起过相同使用登记证号的历史登记,不支持重复发起!" : "车辆VIN码已存在,请重新输入!";
throw new BadRequest(errMsg);
}
// 使用单位信息
......
......@@ -103,7 +103,7 @@
],
"XZSB": [
{
"name": "新增设备",
"name": "单台(套)录入",
"code": "SB_XZ",
"image": "upload/tzs/common/image/新增设备.png"
},
......
......@@ -96,7 +96,9 @@ public class CommonServiceImpl {
return;
}
if (personType.equals(OpenBizTypeEnum.JY.getCode())) {
userInfoQueryWrapper.like(TzsUserInfo::getPost, jcUserPost);
//userInfoQueryWrapper.like(TzsUserInfo::getPost, jcUserPost);
userInfoQueryWrapper.like(TzsUserInfo::getPost, jyUserPost);
}
if (personType.equals(OpenBizTypeEnum.JC.getCode())) {
userInfoQueryWrapper.like(TzsUserInfo::getPost, jcUserPost);
......
package com.yeejoin.amos.boot.module.jyjc.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapBuilder;
import cn.hutool.core.text.CharSequenceUtil;
import com.alibaba.fastjson.JSON;
......@@ -286,7 +287,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
ta.setNextTaskId(model.getNextTaskId());
dto.setModel(ta);
//摘要 按原有规则组装
dto.setTaskContent("来自" + model.getEquList() + "【" + model.getSupervisoryCode() + "】的业务办理,【申请单号:" + model.getApplicationNo() + "】");
dto.setTaskContent(this.buildTaskContent(model));
//申请单号
dto.setTaskCode(model.getApplicationNo());
//业务类型枚举code值
......@@ -302,9 +303,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
taskModelService.deleteTaskModel(model.getSequenceNbr() + "");
this.createdTaskModel(model);
} else {
String taskContent = "来自" + model.getEquList() + "【" + model.getSupervisoryCode() + "】的业务办理,【申请单号:" + model.getApplicationNo() + "】";
taskModelService.updateTaskContentById(MapBuilder.<String, Object>create().put("taskContent", taskContent).put("relationId", model.getSequenceNbr() + "").build());
taskModelService.updateTaskContentById(MapBuilder.<String, Object>create().put("taskContent", this.buildTaskContent((model))).put("relationId", model.getSequenceNbr() + "").build());
}
}
......@@ -417,6 +416,13 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
return this.buildRedundancyField(model);
}
private String buildTaskContent(JyjcInspectionApplicationModel model){
return String.format("来自%s%s的业务办理,【申请单号:%s】", model.getEquList(), StringUtils.isNotBlank(model.getSupervisoryCode()) ? "【" + model.getSupervisoryCode() + "】" : "", model.getApplicationNo());
}
private String null2String(Object obj) {
return obj == null ? "" : obj.toString();
}
......@@ -686,6 +692,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
List<JyjcInspectionResult> resultModels = new ArrayList<>();
List<String> codes = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.JG.getCode(), applicationEquipModels.size()).getResult();
List<JgResumeInfoDto> jgResumeInfoDtoList = new ArrayList<>();
Date now = DateUtil.date();
for (int i = 0; i < applicationEquipModels.size(); i++) {
JyjcInspectionResult resultModel = new JyjcInspectionResult();
resultModel.setInspectionUnitCode(model.getInspectionUnitCode());
......@@ -695,7 +702,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
resultModel.setApplicationUnitName(model.getApplicationUnitName());
resultModel.setResultStatus(ResultStatusEnum.NO_RESULT.getCode());
resultModel.setApplicationDate(model.getApplicationDate());
resultModel.setRecDate(now);
resultModel.setInspectionType(model.getInspectionType());
resultModel.setInspectionTypeName(this.getDictNameByCode(model.getInspectionType()));
// 解析设备
......@@ -1030,7 +1037,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
dto.setFlowCreateDate(new Date());
dto.setTaskName(model.getNextTaskName());
dto.setFlowCode(model.getNextTaskId());
dto.setTaskContent("来自" + model.getEquList() + "【" + model.getSupervisoryCode() + "】的业务办理,【申请单号:" + model.getApplicationNo() + "】");
dto.setTaskContent(this.buildTaskContent(model));
dto.setTaskCode(model.getApplicationNo());
dto.setTaskType(BizTypeEnum.getNumByCode(model.getBizType()));
dto.setTaskTypeLabel(BizTypeEnum.getNameByCode(model.getBizType()));
......@@ -1273,7 +1280,12 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
if ("5000".equals(equListCode) && JYJCBusinessTypeEnum.SCJY.getCode().equals(inspectionType)) {
boolMust.must(QueryBuilders.termQuery("IS_INTO_MANAGEMENT", false));
} else {
boolMust.must(QueryBuilders.termQuery("IS_INTO_MANAGEMENT", true));
BoolQueryBuilder shouldBuilder = QueryBuilders.boolQuery();
// 历史无证设备可做检验
shouldBuilder.should(QueryBuilders.termQuery("IS_INTO_MANAGEMENT", true));
shouldBuilder.should(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his_black"));
shouldBuilder.minimumShouldMatch(1);
boolMust.must(shouldBuilder);
}
boolMust.must(QueryBuilders.existsQuery("IS_INTO_MANAGEMENT"));
}
......
......@@ -516,6 +516,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
userInfoQueryWrapper.eq(TzsUserInfo::getUnitCode, unitCode);
commonService.castPersonType2Post(userInfoQueryWrapper, personType);
userInfoQueryWrapper.eq(BaseEntity::getIsDelete, false);
userInfoQueryWrapper.orderByDesc(TzsUserInfo::getRecDate);
List<TzsUserInfo> userInfos = userInfoMapper.selectList(userInfoQueryWrapper);
String appKey = RequestContext.getAppKey();
String product = RequestContext.getProduct();
......@@ -523,6 +524,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
return userInfos.parallelStream().map(userInfo -> {
TzsUserInfoVo vo = new TzsUserInfoVo();
BeanUtils.copyProperties(userInfo, vo, "identification", "profile", "permissionItem", "appointDoc", "permissionData");
vo.setSequenceNbr(userInfo.getSequenceNbr());
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(token);
......@@ -548,7 +550,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
// 查询资质的人,
List<TzsUserPermissionDto> permissionDtos = userInfoMapper.queryPermissionByUserSeq(userInfo.getSequenceNbr(), this.buildPermissionKey(post));
// 注意检验资质、检测资质,每人只有一行数据, 一个人一个证
if (permissionDtos.size() > 0) {
if (!permissionDtos.isEmpty()) {
TzsUserPermissionDto userPermissionDto = permissionDtos.get(0);
// 不会出现为null, 程序健壮处理
if (userPermissionDto.getPermissionItem() != null && userPermissionDto.getPermissionLevel() != null) {
......
......@@ -2238,11 +2238,7 @@ public class JGDPStatisticsServiceImpl {
if (!ValidationUtil.isEmpty(dto2.get(DATA_SOURCE))) {
String s = dto2.get(DATA_SOURCE).toString();
dto2.put(DATA_SOURCE, s);
dto2.put(DATA_SOURCE_NAME, Arrays.stream(EquipSourceEnum.values())
.filter(e -> s.startsWith(e.getCode()))
.map(EquipSourceEnum::getName)
.findFirst()
.orElse(EquipSourceEnum.jg.getName()));
dto2.put(DATA_SOURCE_NAME, EquipSourceEnum.getDataSourceName(s));
}
dto2.put("record", dto2.get(SEQUENCE_NBR));
list.add(dto2);
......
......@@ -212,8 +212,9 @@ public class TzBaseEnterpriseInfoServiceImpl
if ("监管机构".equals(companyType)) {
unitLicencesCollect = unitLicences;
} else {
// 解决脏数据问题,脏数据不再显示
unitLicencesCollect = unitLicences.stream()
.filter(baseUnitLicence -> COMPANY_TYPE_CERT_TYPE_MAP.get(companyType).contains((baseUnitLicence.getCertTypeCode())))
.filter(baseUnitLicence -> baseUnitLicence.getCertTypeCode() != null && COMPANY_TYPE_CERT_TYPE_MAP.get(companyType).contains((baseUnitLicence.getCertTypeCode())))
.collect(Collectors.toList());
}
if (!ValidationUtil.isEmpty(unitLicencesCollect)) {
......
package com.yeejoin.amos.boot.module.ymt.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
......@@ -17,19 +17,16 @@ import java.util.Date;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="IdxBizJgDesignInfoDto", description="安全追溯-设计信息表")
public class IdxBizJgDesignInfoDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModel(value = "IdxBizJgDesignInfoDto", description = "安全追溯-设计信息表")
public class IdxBizJgDesignInfoDto extends BaseDto {
private static final long serialVersionUID = 1L;
@TableField("RECORD")
private String record;
@TableField("INSTANCE_ID")
private String instanceId;
......@@ -76,4 +73,7 @@ public class IdxBizJgDesignInfoDto extends BaseDto {
@TableField("DESIGN_STANDARD")
private String designStandard;
@ApiModelProperty("资料是否完整齐全:1-齐全;2-不齐全【历史无证设备需要】")
private String designIsComplete;
}
package com.yeejoin.amos.boot.module.ymt.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
......@@ -17,19 +17,16 @@ import java.util.Date;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="IdxBizJgFactoryInfoDto", description="安全追溯-制造信息")
public class IdxBizJgFactoryInfoDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModel(value = "IdxBizJgFactoryInfoDto", description = "安全追溯-制造信息")
public class IdxBizJgFactoryInfoDto extends BaseDto {
private static final long serialVersionUID = 1L;
@TableField("RECORD")
private String record;
@TableField("INSTANCE_ID")
private String instanceId;
......@@ -84,4 +81,6 @@ public class IdxBizJgFactoryInfoDto extends BaseDto {
@TableField("TYPE_TEST_CREDENTIAL")
private String typeTestCredential;
@ApiModelProperty(value = "资料是否完整齐全:1-齐全;2-不齐全【历史无证设备需要】")
private String factoryIsComplete;
}
package com.yeejoin.amos.boot.module.ymt.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -87,4 +88,8 @@ public class IdxBizJgRegisterInfoDto extends BaseDto {
@ApiModelProperty(value = "最新使用登记证路径")
private String lastUseCertFilePath;
@ApiModelProperty(value = "检验是否在有限期内:1-有限期内 ;2-不在有效期内【历史无证设备需要】")
private String inInspectionPeriod;
}
......@@ -104,5 +104,10 @@ public class IdxBizJgTechParamsBoilerDto extends BaseDto {
private String safetyAccessoriesAndRelatedDevices;
/**
* 参数是否完整齐全:1-齐全;2-不齐全 【历史无证设备需要】
*/
private String techParamIsComplete;
}
package com.yeejoin.amos.boot.module.ymt.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 安全追溯-电梯
......@@ -17,19 +15,16 @@ import java.util.Date;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="IdxBizJgTechParamsElevatorDto", description="安全追溯-电梯")
public class IdxBizJgTechParamsElevatorDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModel(value = "IdxBizJgTechParamsElevatorDto", description = "安全追溯-电梯")
public class IdxBizJgTechParamsElevatorDto extends BaseDto {
private static final long serialVersionUID = 1L;
@TableField("RECORD")
private String record;
@TableField("INSTANCE_ID")
private String instanceId;
......@@ -308,4 +303,8 @@ public class IdxBizJgTechParamsElevatorDto extends BaseDto {
@TableField("KZG_OPERATION_MODE")
private String kzgOperationMode;
/**
* 参数是否完整齐全:1-齐全;2-不齐全 【历史无证设备需要】
*/
private String techParamIsComplete;
}
package com.yeejoin.amos.boot.module.ymt.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
......@@ -17,19 +17,16 @@ import java.util.Date;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="IdxBizJgTechParamsLiftingDto", description="安全追溯-起重机械")
public class IdxBizJgTechParamsLiftingDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModel(value = "IdxBizJgTechParamsLiftingDto", description = "安全追溯-起重机械")
public class IdxBizJgTechParamsLiftingDto extends BaseDto {
private static final long serialVersionUID = 1L;
@TableField("RECORD")
private String record;
@TableField("INSTANCE_ID")
private String instanceId;
......@@ -774,4 +771,9 @@ public class IdxBizJgTechParamsLiftingDto extends BaseDto {
@TableField("HANGING_CAGES_NUMBER")
private String hangingCagesNumber;
/**
* 参数是否完整齐全:1-齐全;2-不齐全 【历史无证设备需要】
*/
private String techParamIsComplete;
}
package com.yeejoin.amos.boot.module.ymt.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 安全追溯-游乐设施
......@@ -17,19 +15,16 @@ import java.util.Date;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="IdxBizJgTechParamsRidesDto", description="安全追溯-游乐设施")
public class IdxBizJgTechParamsRidesDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModel(value = "IdxBizJgTechParamsRidesDto", description = "安全追溯-游乐设施")
public class IdxBizJgTechParamsRidesDto extends BaseDto {
private static final long serialVersionUID = 1L;
@TableField("RECORD")
private String record;
@TableField("INSTANCE_ID")
private String instanceId;
......@@ -236,4 +231,9 @@ public class IdxBizJgTechParamsRidesDto extends BaseDto {
@TableField("OPERATOR_NUMBER")
private Integer operatorNumber;
/**
* 参数是否完整齐全:1-齐全;2-不齐全 【历史无证设备需要】
*/
private String techParamIsComplete;
}
package com.yeejoin.amos.boot.module.ymt.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 安全追溯-索道
......@@ -17,19 +15,16 @@ import java.util.Date;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="IdxBizJgTechParamsRopewayDto", description="安全追溯-索道")
public class IdxBizJgTechParamsRopewayDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModel(value = "IdxBizJgTechParamsRopewayDto", description = "安全追溯-索道")
public class IdxBizJgTechParamsRopewayDto extends BaseDto {
private static final long serialVersionUID = 1L;
@TableField("RECORD")
private String record;
@TableField("INSTANCE_ID")
private String instanceId;
......@@ -95,4 +90,9 @@ public class IdxBizJgTechParamsRopewayDto extends BaseDto {
@TableField("BALANCE_CABLE")
private String balanceCable;
/**
* 参数是否完整齐全:1-齐全;2-不齐全 【历史无证设备需要】
*/
private String techParamIsComplete;
}
......@@ -210,4 +210,8 @@ public class IdxBizJgTechParamsVehicleDto extends BaseDto {
@TableField("MAIN_PARTS")
private String mainParts;
/**
* 参数是否完整齐全:1-齐全;2-不齐全 【历史无证设备需要】
*/
private String techParamIsComplete;
}
package com.yeejoin.amos.boot.module.ymt.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 安全追溯-压力容器
......@@ -17,19 +15,16 @@ import java.util.Date;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="IdxBizJgTechParamsVesselDto", description="安全追溯-压力容器")
public class IdxBizJgTechParamsVesselDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModel(value = "IdxBizJgTechParamsVesselDto", description = "安全追溯-压力容器")
public class IdxBizJgTechParamsVesselDto extends BaseDto {
private static final long serialVersionUID = 1L;
@TableField("RECORD")
private String record;
@TableField("INSTANCE_ID")
private String instanceId;
......@@ -360,4 +355,10 @@ public class IdxBizJgTechParamsVesselDto extends BaseDto {
@TableField("PER_CAPITA_CABIN_CAPACITY")
private String perCapitaCabinCapacity;
/**
* 参数是否完整齐全:1-齐全;2-不齐全 【历史无证设备需要】
*/
private String techParamIsComplete;
}
......@@ -107,4 +107,10 @@ public class IdxBizJgDesignInfo extends TzsBaseEntity {
@TableField("\"OTHER_ACCESSORIES_DES\"")
private String otherAccessoriesDes;
/**
* 资料是否完整齐全:1-齐全;2-不齐全【历史无证设备需要】
*/
@TableField("\"DESIGN_IS_COMPLETE\"")
private String designIsComplete;
}
......@@ -142,4 +142,11 @@ public class IdxBizJgFactoryInfo extends TzsBaseEntity {
@TableField(value = "\"BOILER_ENERGY_EFFICIENCY_CERTIFICATE\"")
private String boilerEnergyEfficiencyCertificate;
/**
* 资料是否完整齐全:1-齐全;2-不齐全【历史无证设备需要】
*/
@TableField("\"FACTORY_IS_COMPLETE\"")
private String factoryIsComplete;
}
......@@ -209,4 +209,12 @@ public class IdxBizJgRegisterInfo extends TzsBaseEntity {
@TableField("\"CYLINDER_CATEGORY\"")
private String cylinderCategory;
/**
* 检验是否在有限期内:1-有限期内 ;2-不在有效期内【历史无证设备需要】
*/
@TableField("\"IN_INSPECTION_PERIOD\"")
private String inInspectionPeriod;
}
......@@ -461,4 +461,10 @@ public class IdxBizJgTechParamsElevator extends TzsBaseEntity {
*/
@TableField("\"RATED_SPEED\"")
private String ratedSpeed;
/**
* 参数是否完整齐全:1-齐全;2-不齐全 【历史无证设备需要】
*/
@TableField("\"TECH_PARAM_IS_COMPLETE\"")
private String techParamIsComplete;
}
......@@ -1235,4 +1235,10 @@ public class IdxBizJgTechParamsLifting extends TzsBaseEntity {
@TableField("\"BICYCLE_MAX_COME_TIME\"")
private String bicycleMaxComeTime;
/**
* 参数是否完整齐全:1-齐全;2-不齐全【历史无证设备需要】
*/
@TableField("\"TECH_PARAM_IS_COMPLETE\"")
private String techParamIsComplete;
}
......@@ -166,5 +166,4 @@ public class IdxBizJgTechParamsPipeline extends TzsBaseEntity {
@TableField(value = "\"WORK_REMARKS\"")
private String workRemarks;
}
......@@ -342,4 +342,11 @@ public class IdxBizJgTechParamsRides extends TzsBaseEntity {
@TableField("\"OPERATOR_NUMBER\"")
private Integer operatorNumber;
/**
* 参数是否完整齐全:1-齐全;2-不齐全【历史无证设备需要】
*/
@TableField("\"TECH_PARAM_IS_COMPLETE\"")
private String techParamIsComplete;
}
......@@ -136,4 +136,11 @@ public class IdxBizJgTechParamsRopeway extends TzsBaseEntity {
@TableField("\"BALANCE_CABLE\"")
private String balanceCable;
/**
* 参数是否完整齐全:1-齐全;2-不齐全【历史无证设备需要】
*/
@TableField("\"TECH_PARAM_IS_COMPLETE\"")
private String techParamIsComplete;
}
......@@ -304,4 +304,11 @@ public class IdxBizJgTechParamsVehicle extends TzsBaseEntity {
@TableField("\"MAIN_PARTS\"")
private String mainParts;
/**
* 参数是否完整齐全:1-齐全;2-不齐全【历史无证设备需要】
*/
@TableField("\"TECH_PARAM_IS_COMPLETE\"")
private String techParamIsComplete;
}
......@@ -546,4 +546,11 @@ public class IdxBizJgTechParamsVessel extends TzsBaseEntity {
@TableField(value = "\"VIN\"")
private String vin;
/**
* 参数是否完整齐全:1-齐全;2-不齐全【历史无证设备需要】
*/
@TableField("\"TECH_PARAM_IS_COMPLETE\"")
private String techParamIsComplete;
}
package com.yeejoin.amos.boot.module.ymt.api.enums;
import lombok.Getter;
/**
*资料是否完整齐全枚举
*/
@Getter
public enum InfoIsCompleteEnum {
INFO_COMPLETE_YES("齐全完整", "1"),
INFO_COMPLETE_NO("不齐全", "2");
private final String name;
private final String value;
InfoIsCompleteEnum(String name, String value) {
this.name = name;
this.value = value;
}
}
package com.yeejoin.amos.boot.module.ymt.api.enums;
import lombok.Getter;
/**
* 检验是否在有限期内
*/
@Getter
public enum InspectIsInPeriodEnum {
IN_PERIOD_YES("有限期内", "1"),
IN_PERIOD_NO("不在有效期内", "2");
private final String name;
private final String value;
InspectIsInPeriodEnum(String name, String value) {
this.name = name;
this.value = value;
}
}
......@@ -8,7 +8,7 @@ import java.util.List;
@Data
public class TzsUserInfoVo {
private Long sequenceNbr;
/**
* 姓名
*/
......
......@@ -33,6 +33,7 @@ import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
......@@ -431,11 +432,12 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
*/
@Override
public Map<String, String> createSupervisorCode(Map<String, Object> map) {
String city, county, equipCategory, isNotXiXian, code96333;
String city, county, equipCategory, isNotXiXian, code96333, superviseCode;
// 获取对应行政区划
city = String.valueOf(map.get("cityCode"));
county = String.valueOf(map.get("countyCode"));
code96333 = String.valueOf(map.get("code96333"));
superviseCode = String.valueOf(map.get("superviseCode"));
// 获取对应设备分类
equipCategory = String.valueOf(map.get("equCategory"));
if ("null".equals(equipCategory) || "null".equals(city) || "null".equals(county)) {
......@@ -443,8 +445,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
}
isNotXiXian = Optional.ofNullable(map.get("isXiXian")).orElse("0").toString();
// 生成码
EquipmentCategoryServiceImpl categoryService = (EquipmentCategoryServiceImpl) AopContext.currentProxy();
Map<String, String> codeMap = creatCode(isNotXiXian, city, county, equipCategory, code96333, "null");
Map<String, String> codeMap = creatCode(isNotXiXian, city, county, equipCategory, code96333, superviseCode);
if (ObjectUtils.isEmpty(codeMap)) {
throw new BadRequest("该请求参数未生成监管码或96333码,请核对参数");
}
......@@ -704,10 +705,11 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
}
}
// 判断原数据是否存在监管码,存在则用原监管码即可,不存在则生成
if ("null".equals(supervisionCode)) {
if ("null".equals(supervisionCode) || StringUtils.isEmpty(supervisionCode)) {
String supervisor = createSupervisorCode(isNotXiXian, city, county, equipCategory);
supervisorCode.append(supervisor);
} else {
log.info("使用上送的监管码{},不再生成监管码", supervisionCode);
supervisorCode = new StringBuilder(supervisionCode);
}
......
......@@ -111,7 +111,7 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
return "ok";
}
private String generateSupervisorySequence(String sequenceKey) {
private String generateSupervisorySequence(String sequenceKey) {
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
RLock lock = redissonClient.getLock(LOCK_KEY_SUPERVISORY);
try {
......
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