Commit f8887bbb authored by suhuiguang's avatar suhuiguang

Merge branch 'develop_tzs_register_to_0715' of…

Merge branch 'develop_tzs_register_to_0715' of http://36.40.66.175:5000/moa/amos-boot-biz into develop_tzs_register_to_0715
parents 624f6ff8 30ad1f39
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.elevator.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertCalledQueryDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertCalledRecordDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertPaperInfoDto;
......@@ -52,7 +53,7 @@ public interface AlertCalledMapper extends BaseMapper<AlertCalled> {
*
* @return
*/
List<Map<String, Object>> queryListByLocation(@Param("regionCode") String regionCode);
List<Map<String, Object>> queryListByLocation(@Param("regionCode") String regionCode, @Param("dto") DPFilterParamDto filterParamDto);
/**
* 接警情况统计
*
......
......@@ -147,11 +147,14 @@
LEFT JOIN idx_biz_jg_use_info ibjuj ON tac.equipment_id = ibjuj.RECORD
LEFT JOIN cb_data_dictionary cdd ON ibjuj.USE_PLACE = cdd.sequence_nbr
WHERE
biz_org_code LIKE concat(#{regionCode}, '%')
tac.biz_org_code LIKE concat(#{regionCode}, '%')
AND (tac.alarm_type_code = '960' or tac.alarm_type_code = '961')
AND
ibjuj.USE_PLACE is NOT NULL
AND cdd.NAME is NOT NULL
AND cdd.NAME is NOT NULL
<if test="dto.beginDate !=null and dto.beginDate !='' and dto.endDate !=null and dto.endDate !=''">
AND tac.call_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
</if>
GROUP BY
cdd.NAME
ORDER BY ibjuj.USE_PLACE ASC
......
......@@ -111,20 +111,20 @@ public class DPStatisticsServiceImpl {
}
public JSONObject elevatorCountStat(DPFilterParamDto dpFilterParamDto) throws Exception {
String regionCode = dpFilterParamDto.getCityCode();
List<RegionModel> regionList = this.getRegionList(dpFilterParamDto);
List<String> xdata = regionList.stream().map(r -> r.getRegionName().toString()).collect(Collectors.toList());
if (!regionCode.equals("610000")){
regionCode = "610000#" + regionCode;
}
List<Integer> ydata = new ArrayList<>();
String finalRegionCode = regionCode;
regionList.stream().forEach(x -> {
Map<String, Integer> map = new HashMap<>();
regionList.parallelStream().forEach(x -> {
LambdaQueryWrapper<Elevator> lambda = new QueryWrapper<Elevator>().lambda();
lambda.eq(Elevator::getRegionCode, finalRegionCode + "#" + x.getRegionCode());
ydata.add(elevatorMapper.selectCount(lambda));
lambda.like(Elevator::getRegionCode, x.getRegionCode());
map.put(x.getRegionName(), elevatorMapper.selectCount(lambda));
});
xdata.stream().forEach(x -> {
ydata.add(map.get(x));
});
JSONObject jsonObject = new JSONObject();
jsonObject.put("xdata", xdata);
jsonObject.put("ydata", ydata);
......@@ -133,7 +133,10 @@ public class DPStatisticsServiceImpl {
public JSONObject eventStatByLocation(DPFilterParamDto dpFilterParamDto) throws Exception {
String orgCode = this.getAndSetOrgCode(dpFilterParamDto);
List<Map<String, Object>> maps = alertCalledMapper.queryListByLocation(orgCode);
dpFilterParamDto.setBeginDate(DateUtil.formatDate(DateTimeUtil.getMinValueOfOneDay(DateTimeUtil.addMonths(new Date(), -1)), DateUtil.Y_M_D_HMS));
dpFilterParamDto.setEndDate(DateUtil.formatDate(DateTimeUtil.getMaxValueOfOneDay(new Date()), DateUtil.Y_M_D_HMS));
List<Map<String, Object>> maps = alertCalledMapper.queryListByLocation(orgCode, dpFilterParamDto);
List<Object> xdata = maps.stream().map(item -> item.get("name")).collect(Collectors.toList());
List<Object> ydata = maps.stream().map(item -> item.get("majorAlertCount")).collect(Collectors.toList());
......
......@@ -64,4 +64,10 @@ public class JgChangeRegistrationTransferEq extends BaseEntity {
@TableField("device_info")
private String deviceInfo;
/**
* 使用登记证
*/
@TableField("use_registration_code")
private String useRegistrationCode;
}
......@@ -29,4 +29,6 @@ public interface JgChangeRegistrationTransferMapper extends BaseMapper<JgChangeR
@Select("select name from tz_equipment_category where code=#{code}")
String getEquiplistNameByEquiplist(String code);
List<String> queryForFlowingEquipList();
}
......@@ -110,5 +110,7 @@
</if>
recDate desc
</select>
<select id="queryForFlowingEquipList" resultType="java.lang.String">
select change_data from tzs_jg_registration_history WHERE registration_class = '移装变更登记'
</select>
</mapper>
......@@ -49,14 +49,6 @@ public class JgChangeRegistrationTransferController extends BaseController {
@ApiOperation(httpMethod = "POST", value = "新增移装变更登记登记", notes = "新增移装变更登记登记")
public ResponseModel<Object> save(@RequestParam(value = "submitType") String submitType,
@RequestBody JSONObject map) {
Map<String, Object> tableData = (Map<String, Object>) map.get(TABLE_PAGE_ID);
if(ValidationUtil.isEmpty(tableData)){
throw new BadRequest("参数校验失败.");
}
String equId = (String) tableData.get("record");
if(ValidationUtil.isEmpty(equId)){
throw new BadRequest("参数校验失败.");
}
ReginParams reginParams = getSelectedOrgInfo();
return ResponseHelper.buildResponse(jgChangeRegistrationTransferService.createTransfer(submitType, map, reginParams));
}
......@@ -72,14 +64,6 @@ public class JgChangeRegistrationTransferController extends BaseController {
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新移装变更登记登记", notes = "根据sequenceNbr更新移装变更登记登记")
public ResponseModel<Object> updateBySequenceNbr(@RequestParam(value = "submitType") String submitType,
@RequestBody JSONObject map) {
Map<String, Object> tableData = (Map<String, Object>) map.get(TABLE_PAGE_ID);
if(ValidationUtil.isEmpty(tableData)){
throw new BadRequest("参数校验失败.");
}
String equId = (String) tableData.get("sequenceNbr");
if(ValidationUtil.isEmpty(equId)){
throw new BadRequest("参数校验失败.");
}
ReginParams reginParams = getSelectedOrgInfo();
return ResponseHelper.buildResponse(jgChangeRegistrationTransferService.updateTransfer(submitType, map, reginParams));
}
......
......@@ -137,7 +137,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
private static final String IS_COPY = "isCopy";
// 设备种类
public static final String EQU_LIST = "EQU_LIST";
//模版上传集合
// 模版上传集合
public static final String EQU_LISTS = "equLists";
// 设备类别
public static final String EQU_CATEGORY = "EQU_CATEGORY";
......@@ -157,11 +157,12 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
// 设备来源名称 jg:新设备 jg_his:历史数据
public static final String DATA_SOURCE_NAME = "DATA_SOURCE_NAME";
private static final String ATTACHMENT_UPLOAD = "attachmentUpload";
public static final String USE_PLACE_CODE = "USE_PLACE_CODE";
private final List<String> resultError = new ArrayList<>();
List<String> useInnerCodeList = new ArrayList<>();//单位内部编号集合
List<String> equCodeList = new ArrayList<>();//设备代码集合
List<String> factoryNumList = new ArrayList<>();//出厂编码集合
List<String> useInnerCodeList = new ArrayList<>();// 单位内部编号集合
List<String> equCodeList = new ArrayList<>();// 设备代码集合
List<String> factoryNumList = new ArrayList<>();// 出厂编码集合
/**
* 业务类型 0:单个新增 1:批量导入
......@@ -549,15 +550,15 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
// 历史设备录入 直接取所有的设备种类(equList)下的所有设备类别
if ("his".equals(dataSource)) {
// 历史数据导入设备类别限制 bug-21172
if (!ObjectUtils.isEmpty(type) && "PL_DR".equals(type)){
if (!ObjectUtils.isEmpty(type) && "PL_DR".equals(type)) {
return this.baseMapper.queryAllEquCategoriesUnderTheEquList(equList).stream()
.filter(x -> "2300".equals(x.getDictDataKey()))
.filter(x -> "2300".equals(x.getDictDataKey()))
.collect(Collectors.toList());
}
// 历史数据新增设备类别限制 bug-21139
if (!ObjectUtils.isEmpty(equList) && "8000".equals(equList)){
if (!ObjectUtils.isEmpty(equList) && "8000".equals(equList)) {
return this.baseMapper.queryAllEquCategoriesUnderTheEquList(equList).stream()
.filter(x -> "8300".equals(x.getDictDataKey()))
.filter(x -> "8300".equals(x.getDictDataKey()))
.collect(Collectors.toList());
}
return this.baseMapper.queryAllEquCategoriesUnderTheEquList(equList);
......@@ -656,8 +657,10 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
}
return objMap;
}
@Autowired
private SafetyProblemTracingMapper safetyProblemTracingMapper;
@Autowired
private SafetyProblemTracingMapper safetyProblemTracingMapper;
/**
* 查询设备基本信息
*
......@@ -1348,14 +1351,14 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
BoolQueryBuilder dBuilder = QueryBuilders.boolQuery();
if (map.containsKey("DATA_SOURCE") && !ObjectUtils.isEmpty(map.get("DATA_SOURCE"))) {
if ("jg_his".equals(map.get("DATA_SOURCE"))) {//只查历史,前缀jg_his
if ("jg_his".equals(map.get("DATA_SOURCE"))) {// 只查历史,前缀jg_his
dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his"));
} else if (!"jg_his".equals(map.getString("DATA_SOURCE"))) {//只查新增,前缀为jg且前缀不为jg_his
} else if (!"jg_his".equals(map.getString("DATA_SOURCE"))) {// 只查新增,前缀为jg且前缀不为jg_his
dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg"));
dBuilder.mustNot(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his"));
}
} else {
//查所有,前缀jg
// 查所有,前缀jg
dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg"));
}
boolMust.must(dBuilder);
......@@ -1363,17 +1366,19 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
String queryType = map.getString("QUERY_TYPE");
if (!ObjectUtils.isEmpty(queryType)) {
// 查询 安装告知【可告知设备列表】【USE_UNIT_CREDIT_CODE=== null || ""】
if (ValidationUtil.equals(queryType, "AZ")) {//安装
if (ValidationUtil.equals(queryType, "AZ")) {// 安装
BoolQueryBuilder nullOrEmptyQuery = QueryBuilders.boolQuery()
.mustNot(QueryBuilders.wildcardQuery("USE_UNIT_CREDIT_CODE", "*"));
boolMust.must(nullOrEmptyQuery);
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "installNotice");
} else if (ValidationUtil.equals(queryType, "WB")) {//维保
// 安装告知设备选择 - 业务限制
// 根据设备类别(EQU_CATEGORY)、安装单位过滤设备(USC_UNIT_CREDIT_CODE) 下面过滤条件已有
} else if (ValidationUtil.equals(queryType, "WB")) {// 维保
// 查询 维保备案【可绑定设备列表】【(EQU_STATE=== null || "")】
BoolQueryBuilder wbBuilder = QueryBuilders.boolQuery();
wbBuilder.mustNot(QueryBuilders.existsQuery("EQU_STATE"));
boolMust.must(wbBuilder);
} else if (ValidationUtil.equals(queryType, "SY")) {//使用
} else if (ValidationUtil.equals(queryType, "SY")) {// 使用
// 查询 使用登记【可选设备列表】【(EQU_STATUS=== null || "" ) && (USE_ORG_CODE(使用登记证编号) ==="" || null)】
BoolQueryBuilder syBuilder = QueryBuilders.boolQuery();
syBuilder.mustNot(QueryBuilders.existsQuery("EQU_STATE"));
......@@ -1392,6 +1397,32 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
syBuilder.must(QueryBuilders.existsQuery("EQU_STATE"));
syBuilder.must(QueryBuilders.wildcardQuery("USE_ORG_CODE", "*"));
boolMust.must(syBuilder);
if (ValidationUtil.equals(queryType, "GZ_GZ")) {// 改造告知设备选择 - 业务限制
// 设备类别(EQU_CATEGORY)、安装单位(USC_UNIT_CREDIT_CODE)、选择的使用单位(USE_UNIT_CREDIT_CODE)、选择的区县(USE_PLACE_CODE)过滤数据
if (ValidationUtil.isEmpty(map.get("useUnitCreditCode")) || ValidationUtil.isEmpty(map.get("county"))) {
throw new BadRequest("请先选择使用单位,施工区县等信息");
}
map.put("USE_UNIT_CREDIT_CODE", map.get("useUnitCreditCode"));
map.put(USE_PLACE_CODE, String.valueOf(map.get("county")).split("_")[0]);
} else if (ValidationUtil.equals(queryType, "GZ_WX")) {// 维修告知设备选择 - 业务限制
// 设备类别(EQU_CATEGORY)、安装单位(USC_UNIT_CREDIT_CODE)、选择的使用单位(USE_UNIT_CREDIT_CODE)、选择的区县(USE_PLACE_CODE)过滤数据
if (ValidationUtil.isEmpty(map.get("useUnitCreditCode")) || ValidationUtil.isEmpty(map.get("county"))) {
throw new BadRequest("请先选择使用单位,施工区县等信息");
}
map.put("USE_UNIT_CREDIT_CODE", map.get("useUnitCreditCode"));
map.put(USE_PLACE_CODE, String.valueOf(map.get("county")).split("_")[0]);
} else if (ValidationUtil.equals(queryType, "GZ_YZ")) {// 移装告知设备选择 - 业务限制
// 设备类别(EQU_CATEGORY)、安装单位(USC_UNIT_CREDIT_CODE)、选择的使用单位(USE_UNIT_CREDIT_CODE)、(区内移装(transferType=区内移装)根据区县(USE_PLACE_CODE))过滤数据
if (ValidationUtil.isEmpty(map.get("useUnitCreditCode"))) {
throw new BadRequest("请先选择使用单位等信息");
}
if (!ValidationUtil.isEmpty(map.get("transferType")) && ValidationUtil.equals(map.get("transferType"), "区内移装")
&& ValidationUtil.isEmpty(map.get("county"))) {
throw new BadRequest("请先选择施工区域等信息");
}
map.put("USE_UNIT_CREDIT_CODE", map.get("useUnitCreditCode"));
map.put(USE_PLACE_CODE, ValidationUtil.equals(map.get("transferType"), "区内移装") ? String.valueOf(map.get("county")).split("_")[0] : null);
}
}
// this.setRepeatUsedCheckFilterByType(boolMust,companyCode,queryType);
}
......@@ -1437,11 +1468,10 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
BoolQueryBuilder ubuilder = QueryBuilders.boolQuery();
String useCode = QueryParser.escape(map.getString("USE_UNIT_CREDIT_CODE"));
useCode = useCode.contains("_") ? useCode.split("_")[0] : useCode;
ubuilder.should(QueryBuilders.matchQuery("USE_UNIT_CREDIT_CODE", useCode));
ubuilder.must(QueryBuilders.matchQuery("USE_UNIT_CREDIT_CODE", useCode));
String uscCode = QueryParser.escape(map.getString("USC_UNIT_CREDIT_CODE")).toLowerCase();
ubuilder.should(QueryBuilders.wildcardQuery("USC_UNIT_CREDIT_CODE", "*" + uscCode + "*"));
ubuilder.minimumShouldMatch(1);
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"))) {
......@@ -1455,7 +1485,7 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
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", "*" + uscCode + "*"));
uuccBuilder.must(QueryBuilders.wildcardQuery("USC_UNIT_CREDIT_CODE", "*" + QueryParser.escape(uscCode) + "*"));
boolMust.must(uuccBuilder);
}
}
......@@ -1515,28 +1545,35 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
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, "*" + test.toLowerCase() + "*"));
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", "*" + test.toLowerCase() + "*"));
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, "*" + test.toLowerCase() + "*"));
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", "*" + test.toLowerCase() + "*"));
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);
}
builder.query(boolMust);
......@@ -1637,39 +1674,39 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
}
private void setRepeatUsedCheckFilterByType(BoolQueryBuilder boolMust, String companyCode, String queryType) {
if("AZ".equals(queryType)){//安装告知
if ("AZ".equals(queryType)) {// 安装告知
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "installNotice");
}else if("GZ_GZ".equals(queryType)){//改造告知
} else if ("GZ_GZ".equals(queryType)) {// 改造告知
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "renovationNoticeNew");
}else if("GZ_WX".equals(queryType)){//维修告知
} else if ("GZ_WX".equals(queryType)) {// 维修告知
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "maintainInfo");
}else if("GZ_YZ".equals(queryType)){//移装告知
} else if ("GZ_YZ".equals(queryType)) {// 移装告知
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "transferNotice");
}else if("SY".equals(queryType)){//使用登记
} else if ("SY".equals(queryType)) {// 使用登记
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "useRegister");
}else if("DJ_GZ".equals(queryType)){//改造变更登记
} else if ("DJ_GZ".equals(queryType)) {// 改造变更登记
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "changeRegistration");
}else if("DJ_YZ".equals(queryType)){//移装变更登记
} else if ("DJ_YZ".equals(queryType)) {// 移装变更登记
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "changeRegistrationTransfer");
}else if("DJ_DW".equals(queryType)){//单位变更登记
} else if ("DJ_DW".equals(queryType)) {// 单位变更登记
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "unitChange");
}else if("DJ_GM".equals(queryType)){//更名变更登记
} else if ("DJ_GM".equals(queryType)) {// 更名变更登记
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "changeName");
}else if("BF_YZ".equals(queryType)){//注销
} else if ("BF_YZ".equals(queryType)) {// 注销
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "");
}else if("BF_ZX".equals(queryType)){//报废
} else if ("BF_ZX".equals(queryType)) {// 报废
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "");
}else if("SB_QY".equals(queryType)){//启用
} else if ("SB_QY".equals(queryType)) {// 启用
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "");
}else if("SB_TY".equals(queryType)){//停用
} else if ("SB_TY".equals(queryType)) {// 停用
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "");
}else if("WB_BA".equals(queryType)){//维保备案
} else if ("WB_BA".equals(queryType)) {// 维保备案
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "maintenanceFiling");
}else if("SB_YJ".equals(queryType)){//设备移交
} else if ("SB_YJ".equals(queryType)) {// 设备移交
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "equipmentHandover");
}else if("QP_BG".equals(queryType)){//车用气瓶变更
} else if ("QP_BG".equals(queryType)) {// 车用气瓶变更
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "vehicleGasCylinderChange");
}else if("QP_DJ".equals(queryType)){//车用气瓶登记
} else if ("QP_DJ".equals(queryType)) {// 车用气瓶登记
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "vehicleInformation");
}
}
......@@ -2046,10 +2083,7 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
object.put("orgCode", company.getOrgCode());
object.put("companyName", company.getCompanyName());
object.put("companyCode", company.getCompanyCode());
CompanyModel result = Privilege.companyClient.queryByCompanyCode(company.getCompanyCode()).getResult();
if (!ValidationUtil.isEmpty(result)) {
object.put("companyType", result.getCompanyType());
}
object.put("companyType", company.getCompanyType());
}
return object;
}
......@@ -2098,14 +2132,14 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
String sourceRecord = equipmentClassForm.get(RECORD).toString();
// dataSource = "new".equals(equipSource) ? ("jg_" + sourceRecord) : ("jg_his_" + sourceRecord);
// bug-21203
if (equipmentInfoForm.containsKey("DATA_SOURCE")){
if (equipmentInfoForm.containsKey("DATA_SOURCE")) {
String dataSourceCopy = equipmentInfoForm.get("DATA_SOURCE").toString();
if (dataSourceCopy.startsWith("jg_his")){
if (dataSourceCopy.startsWith("jg_his")) {
dataSource = "jg_his_" + sourceRecord;
}else {
} else {
dataSource = "jg_" + sourceRecord;
}
}else {
} else {
throw new BadRequest("数据异常,请联系管理员");
}
}
......@@ -2236,7 +2270,7 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
}
iIdxBizJgOtherInfoService.saveOrUpdateData(otherInfo);
if(CylinderTypeEnum.CYLINDER.getCode().equals(equCategory) || "2100".equals(equCategory)) {
if (CylinderTypeEnum.CYLINDER.getCode().equals(equCategory) || "2100".equals(equCategory)) {
IdxBizJgInspectionDetectionInfo inspectionDetectionInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgInspectionDetectionInfo.class);
List<Map<String, Object>> inspectionAndTestingInstitutions = commonMapper.getUnitListByType(INSPECTION_AND_TESTING_INSTITUTIONS);
Optional<Map<String, Object>> optional = inspectionAndTestingInstitutions.stream().filter(x -> x.get("useCode").equals(inspectionDetectionInfo.getInspectOrgCode())).findFirst();
......@@ -2456,9 +2490,9 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
jsonObject.put("useUnitCreditCode", useUnitCreditCode);
Page<JSONObject> page = new Page<>(jsonObject.getLong("number"), jsonObject.getLong("size"));
Set<String> records = EquipUsedCheckStrategyContext.getUsedStrategy("useRegister").getEquipInFlow(useUnitCreditCode);
if ("8300".equals(jsonObject.get("EQU_CATEGORY_CODE"))) {//管道
if ("8300".equals(jsonObject.get("EQU_CATEGORY_CODE"))) {// 管道
return jgUseRegistrationMapper.queryForUnitPipelineEquipmentPage(page, jsonObject, records);
} else if ("2300".equals(jsonObject.get("EQU_CATEGORY_CODE"))) {//气瓶
} else if ("2300".equals(jsonObject.get("EQU_CATEGORY_CODE"))) {// 气瓶
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.queryForUnitVesselEquipmentPage(page, jsonObject, records);
......@@ -2617,14 +2651,14 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
String insUseMaintainExplain = getUrlByKey(fileDataList, "INS_USE_MAINTAIN_EXPLAIN");
String otherAccessoriesFact = getUrlByKey(fileDataList, "OTHER_ACCESSORIES_FACT");
String factSupervisionInspectionReport = getUrlByKey(fileDataList, "FACT_SUPERVISION_INSPECTION_REPORT");
//使用信息
// 使用信息
IdxBizJgUseInfo useInfo = new IdxBizJgUseInfo();
BeanUtils.copyProperties(data, useInfo);
useInfo.setRecord(record);
useInfo.setRecDate(new Date());
useInfo.setDataSource("his".equals(equipInfoDto.getDataSource()) ? "jg_his" : "jg");//区分历史设备和新增设备
useInfo.setDataSource("his".equals(equipInfoDto.getDataSource()) ? "jg_his" : "jg");// 区分历史设备和新增设备
useInfo.setEquState(null);
useInfo.setIsIntoManagement("his".equals(equipInfoDto.getDataSource()));//历史气瓶导入为已纳管设备
useInfo.setIsIntoManagement("his".equals(equipInfoDto.getDataSource()));// 历史气瓶导入为已纳管设备
// 使用单位信息
if ("个人主体".equals(company.getCompanyType())) {
useInfo.setUseUnitCreditCode(company.getCompanyCode().split("_")[1]);
......@@ -2635,7 +2669,7 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
}
useInfoList.add(useInfo);
//设计信息
// 设计信息
IdxBizJgDesignInfo designInfo = new IdxBizJgDesignInfo();
BeanUtils.copyProperties(data, designInfo);
designInfo.setRecord(record);
......@@ -2648,7 +2682,7 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
designInfo.setOtherAccessoriesDes(otherAccessoriesDes);
designInfoList.add(designInfo);
//制造信息
// 制造信息
IdxBizJgFactoryInfo factoryInfo = new IdxBizJgFactoryInfo();
BeanUtils.copyProperties(data, factoryInfo);
factoryInfo.setRecord(record);
......@@ -2662,7 +2696,7 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
factoryInfo.setImported(Optional.ofNullable(data.getImported()).orElse("0"));
factoryInfoList.add(factoryInfo);
//注册登记
// 注册登记
IdxBizJgRegisterInfo registerInfo = new IdxBizJgRegisterInfo();
BeanUtils.copyProperties(data, registerInfo);
registerInfo.setRecord(record);
......@@ -2679,14 +2713,14 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
}
registerInfoList.add(registerInfo);
//检验检测
// 检验检测
IdxBizJgInspectionDetectionInfo inspectionDetectionInfo = new IdxBizJgInspectionDetectionInfo();
BeanUtils.copyProperties(data, inspectionDetectionInfo);
inspectionDetectionInfo.setInspectOrgCode(data.getInspectOrgCode());
inspectionDetectionInfo.setRecord(record);
inspectionDetectionInfo.setRecDate(new Date());
inspectionDetectionInfo.setInspectType("ZZJDJY");
inspectionDetectionInfo.setInspectConclusion("6040");//默认合格
inspectionDetectionInfo.setInspectConclusion("6040");// 默认合格
inspectionDetectionInfo.setInspectDate(DateUtil.parse(data.getInspectDate(), "yyyy-MM-dd"));
// 根据条件确定增加的年数
inspectionDetectionInfo.setNextInspectDate(Date.from(
......@@ -2707,7 +2741,7 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
}
otherInfoList.add(otherInfo);
//技术参数
// 技术参数
IdxBizJgTechParamsVessel paramsVessel = new IdxBizJgTechParamsVessel();
BeanUtils.copyProperties(data, paramsVessel);
paramsVessel.setRecord(record);
......@@ -2745,9 +2779,9 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
if ("his".equals(equipInfoDto.getDataSource())) {
// 生成tzs_jg_certificate_change_record_eq记录
JgCertificateChangeRecordEq changeRecordEq = new JgCertificateChangeRecordEq();
changeRecordEq.setChangeRecordId(String.valueOf(changeRecordId));//登记证记录主键
changeRecordEq.setEquId(registerInfo.getRecord());//设备主键
changeRecordEq.setProductCode(factoryInfo.getFactoryNum());//产品编号
changeRecordEq.setChangeRecordId(String.valueOf(changeRecordId));// 登记证记录主键
changeRecordEq.setEquId(registerInfo.getRecord());// 设备主键
changeRecordEq.setProductCode(factoryInfo.getFactoryNum());// 产品编号
certificateChangeRecordEqService.save(changeRecordEq);
}
});
......@@ -2823,13 +2857,13 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
changeRecord.setAuditPassDate(new Date());
changeRecord.setRegType(BusinessTypeEnum.JG_USAGE_REGISTRATION.getName());
changeRecord.setRegDate(registrationManage.getCreateDate());
changeRecord.setChangeContent(this.buildRecordContent(registrationManage));//变更内容
changeRecord.setUseRegistrationCode(registrationManage.getUseRegistrationCode());//使用登记编号
changeRecord.setReceiveCompanyCode(registrationManage.getReceiveCompanyCode());//接收机构公司代码
changeRecord.setCertificateNo(registrationManage.getCertificateNo());//登记证书唯一码
changeRecord.setUseUnitCreditCode(registrationManage.getUseUnitCreditCode());//使用单位统一信用代码
changeRecord.setUseUnitName(registrationManage.getUseUnitName());//使用单位名称
changeRecord.setEquCategory(registrationManage.getEquCategory());//设备类别编码
changeRecord.setChangeContent(this.buildRecordContent(registrationManage));// 变更内容
changeRecord.setUseRegistrationCode(registrationManage.getUseRegistrationCode());// 使用登记编号
changeRecord.setReceiveCompanyCode(registrationManage.getReceiveCompanyCode());// 接收机构公司代码
changeRecord.setCertificateNo(registrationManage.getCertificateNo());// 登记证书唯一码
changeRecord.setUseUnitCreditCode(registrationManage.getUseUnitCreditCode());// 使用单位统一信用代码
changeRecord.setUseUnitName(registrationManage.getUseUnitName());// 使用单位名称
changeRecord.setEquCategory(registrationManage.getEquCategory());// 设备类别编码
changeRecord.setRoutePath("");
changeRecord.setCreateDate(new Date());
changeRecord.setSequenceNbr(changeRecordId);
......
......@@ -2,12 +2,13 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.ImmutableMap;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
......@@ -23,9 +24,13 @@ import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationTransferEqService;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationTransferService;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService;
import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgOtherInfoService;
import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgUseInfoService;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
......@@ -46,6 +51,7 @@ import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
......@@ -60,6 +66,7 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl.getAuditPassedDate;
/**
......@@ -72,6 +79,7 @@ import static com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistration
public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChangeRegistrationTransferDto, JgChangeRegistrationTransfer, JgChangeRegistrationTransferMapper> implements IJgChangeRegistrationTransferService {
private static final String PROCESS_DEFINITION_KEY = "changeRegistrationTransfer";
private static final String TABLE_PAGE_ID = "changeRegistrationTransfer";
private final List<String> NOT_FLOWING_STATE = Arrays.asList("使用单位待提交", "一级受理已驳回", "使用单位已撤回", "已作废", "已完成");
@Autowired
RestHighLevelClient restHighLevelClient;
@Autowired
......@@ -128,6 +136,8 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
private JgCertificateChangeRecordEqServiceImpl certificateChangeRecordEqService;
@Autowired
private JgUseRegistrationManageServiceImpl useRegistrationManageService;
@Autowired
private IIdxBizJgOtherInfoService otherInfoService;
/**
* 新增移装变更登记
......@@ -137,235 +147,253 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
* @return
*/
@GlobalTransactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
public List<JgChangeRegistrationTransferDto> createTransfer(String submitType, JSONObject map, ReginParams reginParams) {
try {
Map<String, Object> tableData = (Map<String, Object>) map.get(TABLE_PAGE_ID);
if (ValidationUtil.isEmpty(tableData)) {
throw new BadRequest("参数校验失败.");
}
List<Map<String, Object>> registrationList = (List<Map<String, Object>>) tableData.get("registrationList");
if (CollectionUtils.isEmpty(registrationList)) {
throw new BadRequest("使用登记证不能为空!");
}
Map<String, Object> tableData = (Map<String, Object>) map.get(TABLE_PAGE_ID);
if (ValidationUtil.isEmpty(tableData)) {
throw new BadRequest("参数校验失败.");
}
List<Map<String, Object>> registrationList = (List<Map<String, Object>>) tableData.get("registrationList");
if (CollectionUtils.isEmpty(registrationList)) {
throw new BadRequest("使用登记证不能为空!");
}
//根据使用登记证查询设备
List<Long> registrationIdList = registrationList.stream()
.map(objectMap -> objectMap.get("sequenceNbr"))
.filter(Objects::nonNull)
.map(Object::toString)
.filter(this::canConvertToLong)
.map(Long::parseLong)
.collect(Collectors.toList());
List<String> registrationNoList = registrationList.stream()
.map(objectMap -> objectMap.get("useRegistrationCode"))
.filter(Objects::nonNull)
.map(Object::toString)
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(registrationIdList)) {
throw new BadRequest("使用登记证不能为空");
}
//根据使用登记证查询设备
List<Long> registrationIdList = registrationList.stream()
.map(objectMap -> objectMap.get("sequenceNbr"))
.filter(Objects::nonNull)
.map(Object::toString)
.filter(this::canConvertToLong)
.map(Long::parseLong)
.collect(Collectors.toList());
List<String> registrationNoList = registrationList.stream()
.map(objectMap -> objectMap.get("useRegistrationCode"))
.filter(Objects::nonNull)
.map(Object::toString)
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(registrationIdList)) {
throw new BadRequest("使用登记证不能为空");
}
if ("1".equals(submitType)) {
this.repeatUsedEquipCheck(registrationIdList, reginParams.getCompany().getCompanyCode());
}
List<JSONObject> deviceList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(deviceList)) {
throw new BadRequest("使用登记证下无设备");
}
//查询证下的设备
List<JSONObject> deviceList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(deviceList)) {
throw new BadRequest("使用登记证下无设备");
}
String fullAddress = "";
String province = (String) tableData.get("transferProvince");
String city = (String) tableData.get("transferCity");
String county = (String) tableData.get("transferCounty");
String street = (String) tableData.get("transferStreet");
String address = (String) tableData.get("transferAddress");
//区内移装,需判断是否为同一地市,如果不是同一地市,返回异常
if ("0".equals(tableData.get("transferType"))) {
deviceList.forEach(device -> {
String deviceCity = Arrays.stream(((String) device.get("USE_PLACE")).split("/"))
.skip(1)
.findFirst()
.orElseThrow(() -> new BadRequest("没有查询到地市信息"));
String fullAddress = "";
String province = (String) tableData.get("transferProvince");
String city = (String) tableData.get("transferCity");
String county = (String) tableData.get("transferCounty");
String street = (String) tableData.get("transferStreet");
String address = (String) tableData.get("transferAddress");
//区内移装,需判断是否为同一地市,如果不是同一地市,返回异常
if ("0".equals(tableData.get("transferType"))) {
deviceList.forEach(device -> {
String deviceCity = Arrays.stream(((String) device.get("USE_PLACE")).split("/"))
.skip(1)
.findFirst()
.orElseThrow(() -> new BadRequest("没有查询到地市信息"));
if (!city.split("_")[1].equals(deviceCity)) {
throw new BadRequest("区内移装只能选择与设备地址中相同地市进行移装!");
}
});
}
if (!city.split("_")[1].equals(deviceCity)) {
throw new BadRequest("区内移装只能选择与设备地址中相同地市进行移装!");
}
});
}
CompanyBo company = reginParams.getCompany();
String sequenceNbr = (String) map.get("sequenceNbr");
String receiveOrgCode = (String) tableData.get("receiveOrgCode");
String receiveOrgName = "";
CompanyBo company = reginParams.getCompany();
String sequenceNbr = (String) map.get("sequenceNbr");
String receiveOrgCode = (String) tableData.get("receiveOrgCode");
String receiveOrgName = "";
//移装变更数据
JgChangeRegistrationTransfer oldTransfer = new JgChangeRegistrationTransfer();
//移装变更数据
JgChangeRegistrationTransfer oldTransfer = new JgChangeRegistrationTransfer();
if (!ValidationUtil.isEmpty(receiveOrgCode)) {
String[] receiveOrgCodeList = receiveOrgCode.split("_");
if (receiveOrgCodeList.length > 1) {
receiveOrgCode = receiveOrgCodeList[0];
receiveOrgName = receiveOrgCodeList[1];
}
}
if (!ValidationUtil.isEmpty(receiveOrgCode)) {
String[] receiveOrgCodeList = receiveOrgCode.split("_");
if (receiveOrgCodeList.length > 1) {
receiveOrgCode = receiveOrgCodeList[0];
receiveOrgName = receiveOrgCodeList[1];
//有sequenceNbr代表修改数据
if (!ValidationUtil.isEmpty(sequenceNbr)) {
//查询移装变更记录
oldTransfer = this.getById(sequenceNbr);
// 删除以前设备关联关系
LambdaQueryWrapper<JgChangeRegistrationTransferEq> lambda = new QueryWrapper<JgChangeRegistrationTransferEq>().lambda();
lambda.eq(JgChangeRegistrationTransferEq::getEquipTransferId, sequenceNbr);
jgChangeRegistrationTransferEqService.getBaseMapper().delete(lambda);
jgRegistrationHistoryService.getBaseMapper().delete(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, oldTransfer.getApplyNo()));
} else {
//查询申请单号
ResponseModel<List<String>> result = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.getCode.get(String.valueOf(tableData.get("businessCode"))), 1);
if (!result.getResult().isEmpty()) {
//申请编号
oldTransfer.setApplyNo(result.getResult().get(0));
} else {
throw new BadRequest("申请单编号生成失败,请稍后重试!");
}
}
}
//有sequenceNbr代表修改数据
if (!ValidationUtil.isEmpty(sequenceNbr)) {
//查询移装变更记录
oldTransfer = this.getById(sequenceNbr);
// 删除以前设备关联关系
LambdaQueryWrapper<JgChangeRegistrationTransferEq> lambda = new QueryWrapper<JgChangeRegistrationTransferEq>().lambda();
lambda.eq(JgChangeRegistrationTransferEq::getEquipTransferId, sequenceNbr);
jgChangeRegistrationTransferEqService.getBaseMapper().delete(lambda);
jgRegistrationHistoryService.getBaseMapper().delete(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, oldTransfer.getApplyNo()));
} else {
//查询申请单号
ResponseModel<List<String>> result = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.getCode.get(String.valueOf(tableData.get("businessCode"))), 1);
if (!result.getResult().isEmpty()) {
//申请编号
oldTransfer.setApplyNo(result.getResult().get(0));
//登记类别
oldTransfer.setRegType("移装登记");
//注册登记日期
oldTransfer.setRegDate(new Date());
//使用机构
oldTransfer.setUseUnitCreditCode(company.getCompanyCode());
oldTransfer.setUseUnitName(company.getCompanyName());
//录入单位统一信用代码
oldTransfer.setInputUnitNo(company.getCompanyCode());
// 创建人ID
oldTransfer.setCreateUserId(reginParams.getUserModel().getUserId());
//登记机构代码
//登记机构公司代码
if (!ValidationUtil.isEmpty(receiveOrgCode)) {
oldTransfer.setReceiveOrgCode(receiveOrgCode);
oldTransfer.setReceiveCompanyCode(receiveOrgCode);
} else {
throw new BadRequest("申请单编号生成失败,请稍后重试!");
oldTransfer.setReceiveOrgCode("610000");
oldTransfer.setReceiveCompanyCode("610000");
}
}
//登记机构
if (!ValidationUtil.isEmpty(receiveOrgName)) {
oldTransfer.setReceiveOrgName(receiveOrgName);
}
//办理状态
oldTransfer.setAuditStatus(WorkFlowStatusEnum.TRANSFER_SUBMIT.getPass());
oldTransfer.setStatus(WorkFlowStatusEnum.TRANSFER_SUBMIT.getPass());
// 统计使用
CompanyBo companyBo = commonServiceImpl.getOneCompany(oldTransfer.getReceiveCompanyCode());
oldTransfer.setReceiveCompanyOrgCode(companyBo.getOrgCode());
oldTransfer.setUseRegistrationCode(String.join(",", registrationNoList));
//登记类别
oldTransfer.setRegType("移装登记");
//注册登记日期
oldTransfer.setRegDate(new Date());
//使用机构
oldTransfer.setUseUnitCreditCode(company.getCompanyCode());
oldTransfer.setUseUnitName(company.getCompanyName());
//录入单位统一信用代码
oldTransfer.setInputUnitNo(company.getCompanyCode());
// 创建人ID
oldTransfer.setCreateUserId(reginParams.getUserModel().getUserId());
//登记机构代码
//登记机构公司代码
if (!ValidationUtil.isEmpty(receiveOrgCode)) {
oldTransfer.setReceiveOrgCode(receiveOrgCode);
oldTransfer.setReceiveCompanyCode(receiveOrgCode);
} else {
oldTransfer.setReceiveOrgCode("610000");
oldTransfer.setReceiveCompanyCode("610000");
}
//登记机构
if (!ValidationUtil.isEmpty(receiveOrgName)) {
oldTransfer.setReceiveOrgName(receiveOrgName);
}
//办理状态
oldTransfer.setAuditStatus(WorkFlowStatusEnum.TRANSFER_SUBMIT.getPass());
oldTransfer.setStatus(WorkFlowStatusEnum.TRANSFER_SUBMIT.getPass());
// 统计使用
CompanyBo companyBo = commonServiceImpl.getOneCompany(oldTransfer.getReceiveCompanyCode());
oldTransfer.setReceiveCompanyOrgCode(companyBo.getOrgCode());
oldTransfer.setUseRegistrationCode(String.join(",", registrationNoList));
// 分割省市区街道字段
if (!ObjectUtils.isEmpty(province)) {
String[] provinceList = province.split("_");
if (provinceList.length > 1) {
fullAddress += provinceList[1];
// 分割省市区街道字段
if (!ObjectUtils.isEmpty(province)) {
String[] provinceList = province.split("_");
if (provinceList.length > 1) {
fullAddress += provinceList[1];
}
}
}
if (!ObjectUtils.isEmpty(city)) {
String[] cityList = city.split("_");
if (cityList.length > 1) {
fullAddress += cityList[1];
if (!ObjectUtils.isEmpty(city)) {
String[] cityList = city.split("_");
if (cityList.length > 1) {
fullAddress += cityList[1];
}
}
}
if (!ObjectUtils.isEmpty(county)) {
String[] countyList = county.split("_");
if (countyList.length > 1) {
fullAddress += countyList[1];
if (!ObjectUtils.isEmpty(county)) {
String[] countyList = county.split("_");
if (countyList.length > 1) {
fullAddress += countyList[1];
}
}
}
if (!ObjectUtils.isEmpty(street)) {
String[] streetList = street.split("_");
if (streetList.length > 1) {
fullAddress += streetList[1];
if (!ObjectUtils.isEmpty(street)) {
String[] streetList = street.split("_");
if (streetList.length > 1) {
fullAddress += streetList[1];
}
}
}
if (!ObjectUtils.isEmpty(address)) {
fullAddress += address;
}
//设备移装详细地址
oldTransfer.setFullAddress(fullAddress);
oldTransfer.setTransferType((String) tableData.get("transferType"));
if (!ObjectUtils.isEmpty(address)) {
fullAddress += address;
}
//设备移装详细地址
oldTransfer.setFullAddress(fullAddress);
oldTransfer.setTransferType((String) tableData.get("transferType"));
//保存【移装变更登记】基本信息
if (!ValidationUtil.isEmpty(oldTransfer)) {
this.saveOrUpdate(oldTransfer);
}
//保存【移装变更登记】基本信息
if (!ValidationUtil.isEmpty(oldTransfer)) {
this.saveOrUpdate(oldTransfer);
}
JgChangeRegistrationTransfer finalOldTransfer = oldTransfer;
List<JgChangeRegistrationTransferEq> oldTransferEqList = new ArrayList<>(Collections.emptyList());
deviceList.forEach(device -> {
JgChangeRegistrationTransferEq equip = new JgChangeRegistrationTransferEq();
equip.setEquipTransferId(sequenceNbr);
equip.setEquId((String) device.get("RECORD"));
equip.setEquList((String) device.get("EQU_LIST"));
equip.setEquCategory((String) device.get("EQU_CATEGORY"));
equip.setEquDefine((String) device.get("EQU_DEFINE"));
equip.setDeviceInfo(JSONObject.toJSONString(device));
oldTransferEqList.add(equip);
});
jgChangeRegistrationTransferEqService.saveBatch(oldTransferEqList);
JgRegistrationHistory oldHistory = new JgRegistrationHistory();
oldHistory.setUseRegistrationCode(finalOldTransfer.getUseRegistrationCode());
oldHistory.setRegistrationClass("移装变更登记");
oldHistory.setChangeData(JSONObject.toJSONString(tableData));
oldHistory.setCurrentDocumentId(finalOldTransfer.getApplyNo());
oldHistory.setStatus("new");
jgRegistrationHistoryService.saveOrUpdateHistoryData(oldHistory);
//发起流程
if ("1".equals(submitType)) {
String instanceId = "";
if (!ValidationUtil.isEmpty(oldTransfer.getSequenceNbr()) && !ValidationUtil.isEmpty(oldTransfer.getInstanceId())) {
this.flowExecute(oldTransfer.getSequenceNbr(), oldTransfer.getInstanceId(), "0", "", String.valueOf(map.get("nextTaskId")));
JgChangeRegistrationTransfer finalOldTransfer = oldTransfer;
List<JgChangeRegistrationTransferEq> oldTransferEqList = new ArrayList<>(Collections.emptyList());
deviceList.forEach(device -> {
JgChangeRegistrationTransferEq equip = new JgChangeRegistrationTransferEq();
equip.setEquipTransferId(String.valueOf(finalOldTransfer.getSequenceNbr()));
equip.setEquId((String) device.get("SEQUENCE_NBR"));
equip.setEquList((String) device.get("EQU_LIST_CODE"));
equip.setEquCategory((String) device.get("EQU_CATEGORY_CODE"));
equip.setEquDefine((String) device.get("EQU_DEFINE_CODE"));
equip.setDeviceInfo(JSONObject.toJSONString(device));
equip.setUseRegistrationCode((String) device.get("USE_ORG_CODE"));
oldTransferEqList.add(equip);
});
jgChangeRegistrationTransferEqService.saveBatch(oldTransferEqList);
JgRegistrationHistory oldHistory = new JgRegistrationHistory();
oldHistory.setUseRegistrationCode(finalOldTransfer.getUseRegistrationCode());
oldHistory.setRegistrationClass("移装变更登记");
oldHistory.setChangeData(JSONObject.toJSONString(tableData));
oldHistory.setCurrentDocumentId(finalOldTransfer.getApplyNo());
oldHistory.setStatus("new");
jgRegistrationHistoryService.saveOrUpdateHistoryData(oldHistory);
//发起流程
if ("1".equals(submitType)) {
String instanceId = "";
if (!ValidationUtil.isEmpty(oldTransfer.getSequenceNbr()) && !ValidationUtil.isEmpty(oldTransfer.getInstanceId())) {
this.flowExecute(oldTransfer.getSequenceNbr(), oldTransfer.getInstanceId(), "0", "", String.valueOf(map.get("nextTaskId")));
} else {
// 如果是新启动的流程开启自动访问
String equipListName = Optional.ofNullable(tableData.get("equListDesc")).orElse("无").toString();
oldTransfer.setAuditStatus(WorkFlowStatusEnum.TRANSFER_RECEIVE.getPass());
oldTransfer.setStatus(WorkFlowStatusEnum.TRANSFER_RECEIVE.getPass());
oldTransfer.setEquipListName(equipListName);
oldTransfer.setCreateUserId(reginParams.getUserModel().getUserId());
oldTransfer.setCreateUserName(reginParams.getUserModel().getRealName());
oldTransfer.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
//启动流程
WorkflowResultDto workflowResult = this.startWorkFlow(oldTransfer.getReceiveCompanyCode());
this.updateExecuteIds(instanceId, oldTransfer, "startWorkflow", workflowResult);
//删除旧的代办
commonService.deleteTasksByRelationId(oldTransfer.getSequenceNbr().toString());
//生成代办
this.createToDoTask(Collections.singletonList(workflowResult), oldTransfer, submitType);
}
} else {
// 如果是新启动的流程开启自动访问
String equipListName = Optional.ofNullable(tableData.get("equListDesc")).orElse("无").toString();
oldTransfer.setAuditStatus(WorkFlowStatusEnum.TRANSFER_RECEIVE.getPass());
oldTransfer.setStatus(WorkFlowStatusEnum.TRANSFER_RECEIVE.getPass());
oldTransfer.setEquipListName(equipListName);
oldTransfer.setCreateUserId(reginParams.getUserModel().getUserId());
oldTransfer.setCreateUserName(reginParams.getUserModel().getRealName());
oldTransfer.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
//启动流程
WorkflowResultDto workflowResult = this.startWorkFlow(oldTransfer.getReceiveCompanyCode());
this.updateExecuteIds(instanceId, oldTransfer, "startWorkflow", workflowResult);
//删除旧的代办
commonService.deleteTasksByRelationId(oldTransfer.getSequenceNbr().toString());
//生成代办
this.createToDoTask(Collections.singletonList(workflowResult), oldTransfer, submitType);
List<TaskModelDto> modelDtoList = new ArrayList<>();
TaskModelDto dto = new TaskModelDto();
dto.setModel(oldTransfer);
dto.setTaskContent(this.getSummaryInfo(oldTransfer));
dto.setTaskCode(oldTransfer.getApplyNo());
dto.setTaskType(BusinessTypeEnum.JG_CHANGE_REGISTRATION.getCode());
dto.setRelationId(oldTransfer.getSequenceNbr() + "");
modelDtoList.add(dto);
commonService.buildTaskModel(modelDtoList);
}
} else {
List<TaskModelDto> modelDtoList = new ArrayList<>();
TaskModelDto dto = new TaskModelDto();
dto.setModel(oldTransfer);
dto.setTaskContent(this.getSummaryInfo(oldTransfer));
dto.setTaskCode(oldTransfer.getApplyNo());
dto.setTaskType(BusinessTypeEnum.JG_CHANGE_REGISTRATION.getCode());
dto.setRelationId(oldTransfer.getSequenceNbr() + "");
modelDtoList.add(dto);
commonService.buildTaskModel(modelDtoList);
}
JgChangeRegistrationTransferDto resultDto = new JgChangeRegistrationTransferDto();
Bean.copyExistPropertis(oldTransfer, resultDto);
//组装返回信息,添加设备信息的展示
resultDto.setEquCategory((String) tableData.get("equCategoryDesc"));
resultDto.setProductName((String) tableData.get("productName"));
resultDto.setAllAddress(oldTransfer.getFullAddress());
resultDto.setEquCode((String) tableData.get("equCode"));
resultDto.setInnerCode((String) tableData.get("useInnerCode"));
return Collections.singletonList(resultDto);
JgChangeRegistrationTransferDto resultDto = new JgChangeRegistrationTransferDto();
Bean.copyExistPropertis(oldTransfer, resultDto);
//组装返回信息,添加设备信息的展示
resultDto.setEquCategory((String) tableData.get("equCategoryDesc"));
resultDto.setProductName((String) tableData.get("productName"));
resultDto.setAllAddress(oldTransfer.getFullAddress());
resultDto.setEquCode((String) tableData.get("equCode"));
resultDto.setInnerCode((String) tableData.get("useInnerCode"));
return Collections.singletonList(resultDto);
} catch (BadRequest | LocalBadRequest e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw e;
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
}
/**
......@@ -375,6 +403,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
* @return
*/
@GlobalTransactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
public List<JgChangeRegistrationTransferDto> updateTransfer(String submitType, JSONObject map, ReginParams reginParams) {
return this.createTransfer(submitType, map, reginParams);
}
......@@ -403,7 +432,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
if(!isLocked){
if (!isLocked) {
throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
}
// 流程执行时,状态及权限校验
......@@ -431,10 +460,11 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
workflowResult = commonService.buildWorkFlowInfo(Collections.singletonList(complete)).get(0);
// 更新下一步执行人
this.updateExecuteIds(instanceId, transfer, operate, workflowResult);
delRepeatUseEquipData(transfer);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if(lock.isHeldByCurrentThread()){
if (lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
......@@ -453,7 +483,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
if(!isLocked){
if (!isLocked) {
throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
}
// 撤回校验
......@@ -496,10 +526,11 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
// redis流程实时数据更新
commonServiceImpl.saveExecuteFlowData2Redis(instanceId, this.buildInstanceRuntimeData(jgTransfer));
delRepeatUseEquipData(jgTransfer);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if(lock.isHeldByCurrentThread()){
if (lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
......@@ -528,7 +559,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
for (Long sequenceNbr : sequenceNbrs) {
JgChangeRegistrationTransfer registrationTransfer = this.baseMapper.selectById(sequenceNbr);
// 删除代办 + 中止流程
commonService.deleteTaskModel(String.valueOf(sequenceNbr),registrationTransfer.getInstanceId());
commonService.deleteTaskModel(String.valueOf(sequenceNbr), registrationTransfer.getInstanceId());
// 删除单子
this.baseMapper.deleteById(sequenceNbr);
// 删除单子对应eq
......@@ -546,6 +577,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
/**
* 根据移装变更记录sequenceNbr查询详情
*
* @param sequenceNbr 变更记录sequenceNbr
* @return
*/
......@@ -556,31 +588,32 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
//移装变更详情
JgChangeRegistrationTransfer transfer = this.getById(sequenceNbr);
//查询设备详情
String equipId = jgChangeRegistrationTransferEqMapper.getEquipIdByEquipTransferId(sequenceNbr);
//String equipId = jgChangeRegistrationTransferEqMapper.getEquipIdByEquipTransferId(sequenceNbr);
if (ValidationUtil.equals(FlowStatusEnum.TO_BE_FINISHED.getName(), transfer.getStatus())) {
// 执行完成时查询历史表
JgRegistrationHistory historyData = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, transfer.getApplyNo()));
if (!ValidationUtil.isEmpty(historyData)) {
Map<String,Object> newPosition = JSON.parseObject(historyData.getChangeData(),Map.class);
Map<String, Object> newPosition = JSON.parseObject(historyData.getChangeData(), Map.class);
resultDataMap.putAll(newPosition);
if (!ValidationUtil.isEmpty(transfer)) {
Map<String, Object> transferToMap = Bean.BeantoMap(transfer);
transferToMap.put("receiveCompanyCode", transfer.getReceiveCompanyCode() + "_" + transfer.getReceiveOrgName());
resultDataMap.putAll(transferToMap);
}
}
} else {
// 非执行完成状态显示最新设备信息
Map<String, Object> equipDetailMap = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(equipId);
resultDataMap.putAll(equipDetailMap);
//Map<String, Object> equipDetailMap = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(equipId);
//resultDataMap.putAll(equipDetailMap);
if (!ValidationUtil.isEmpty(transfer)) {
Map<String, Object> transferToMap = Bean.BeantoMap(transfer);
resultDataMap.putAll(transferToMap);
}
JgRegistrationHistory historyData = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, transfer.getApplyNo()));
Map<String,Object> changeData = JSON.parseObject(historyData.getChangeData(),Map.class);
Map<String, Object> changeData = JSON.parseObject(historyData.getChangeData(), Map.class);
// 省市区街道字段等业务字段
resultDataMap.put("transferProvince", changeData.get("transferProvince"));
resultDataMap.put("transferCity", changeData.get("transferCity"));
......@@ -595,15 +628,15 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
resultDataMap.put("transferSafetyManager", changeData.get("transferSafetyManager"));
resultDataMap.put("transferPhone", changeData.get("transferPhone"));
resultDataMap.put("transferUseInfo", changeData.get("transferUseInfo"));
resultDataMap.put("useInnerCode", equipDetailMap.get("equCode"));
//resultDataMap.put("useInnerCode", equipDetailMap.get("equCode"));
resultDataMap.put("receiveCompanyCode", transfer.getReceiveCompanyCode() + "_" + transfer.getReceiveOrgName());
resultDataMap.put("registrationList", changeData.get("registrationList"));
}
String transferSafetyManager = Optional.ofNullable(resultDataMap.get("transferSafetyManager")).orElse("").toString();
if(StringUtil.isNotEmpty(transferSafetyManager)){
if (StringUtil.isNotEmpty(transferSafetyManager)) {
String[] transferSafetyManagerList = transferSafetyManager.split("_");
if(transferSafetyManagerList.length>1){
resultDataMap.put("transferSafetyManagerName",transferSafetyManagerList[1]);
if (transferSafetyManagerList.length > 1) {
resultDataMap.put("transferSafetyManagerName", transferSafetyManagerList[1]);
}
}
if (!resultDataMap.isEmpty()) {
......@@ -612,6 +645,34 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
return pageDataMap;
}
private void repeatUsedEquipCheck(List<Long> equipList, String companyCode) {
equipList.forEach(equipMap -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.registrationRepeatUsedCheck(String.valueOf(equipMap), companyCode));
}
/**
* 删除 redis校验重复引用设备的数据
*/
private void delRepeatUseEquipData(JgChangeRegistrationTransfer transfer) {
if (NOT_FLOWING_STATE.contains(transfer.getAuditStatus())) {
JgRegistrationHistory historyData = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, transfer.getApplyNo()));
JSONObject historyJson = JSON.parseObject(historyData.getChangeData());
List<Map<String, Object>> registrationList = (List<Map<String, Object>>) historyJson.get("registrationList");
List<String> ids = registrationList.stream().map(v -> JSON.parseObject(v.toString()).getString("sequenceNbr")).collect(Collectors.toList());
ids.forEach(id -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.delDataForCheckEquipRepeatUsed(Collections.singletonList(id), transfer.getUseUnitCreditCode())
);
}
}
private void rollBackForDelRedisData() {
FlowingEquipRedisContext.getContext().forEach(
e -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.delDataForCheckWithKey(e.getData(), e.getRedisKey()));
}
/**
* 分页查询
*
......@@ -622,10 +683,10 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
* @return
*/
@Override
public Page<Map<String, Object>> queryListForPage(Page<Map<String, Object>> page,String sort, JgChangeRegistrationTransferDto params, String companyTypeCode, String companyType) {
public Page<Map<String, Object>> queryListForPage(Page<Map<String, Object>> page, String sort, JgChangeRegistrationTransferDto params, String companyTypeCode, String companyType) {
SortVo sortMap = commonService.sortFieldConversion(sort);
Page<Map<String, Object>> listPage = this.baseMapper.getListPage(page,sortMap, params, companyTypeCode, RequestContext.getExeUserId());
listPage.getRecords().forEach(x-> x.put("companyType",companyType));
Page<Map<String, Object>> listPage = this.baseMapper.getListPage(page, sortMap, params, companyTypeCode, RequestContext.getExeUserId());
listPage.getRecords().forEach(x -> x.put("companyType", companyType));
return listPage;
}
......@@ -715,7 +776,8 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
//流程执行完成后,更新设备使用信息
JgRegistrationHistory historyData = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, jgChangeRegistrationTransfer.getApplyNo()));
this.updateByFlowEnd(jgChangeRegistrationTransfer.getSequenceNbr().toString(), jgChangeRegistrationTransfer.getSupervisoryCode(), historyData);
this.updateByFlowEnd(jgChangeRegistrationTransfer.getSequenceNbr().toString(), historyData);
HashMap<String, Object> map = new HashMap<>();
map.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
map.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
......@@ -723,10 +785,9 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
map.put("flowStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
map.put("relationId", jgChangeRegistrationTransfer.getInstanceId());
map.put("model", jgChangeRegistrationTransfer);
commonService.updateTaskModel(map);
TaskV2Model taskV2Model = commonService.updateTaskModel(map);
//新增使用登记证和设备变更记录
this.saveChangeRecord(jgChangeRegistrationTransfer);
this.saveChangeRecord(jgChangeRegistrationTransfer, taskV2Model);
}
// redis流程实时数据更新
......@@ -734,20 +795,57 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
this.getBaseMapper().updateById(jgChangeRegistrationTransfer);
}
public void saveChangeRecord(JgChangeRegistrationTransfer transfer) {
private Map<String, String> createSupervisoryCode(JgRegistrationHistory historyData) {
Map<String, Object> changeData = JSON.parseObject(historyData.getChangeData(), Map.class);
List<JSONObject> registrationList = (List<JSONObject>) changeData.get("registrationList");
String equCategoryCode = Optional.ofNullable(registrationList)
.flatMap(list -> list.stream()
.findFirst()
.map(json -> json.getString("equCategoryCode")))
.orElse("");
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")) ? "null" : "1";
ImmutableMap<String, Object> map = ImmutableMap.<String, Object>builder()
.put("cityCode", cityCode)
.put("countyCode", countyCode)
.put("equCategory", equCategoryCode)
.put("isXiXian", isXiXian)
.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("code96333", Optional.ofNullable(result)
.map(r -> (String) r.get("code96333"))
.orElse(""))
.build();
}
public void saveChangeRecord(JgChangeRegistrationTransfer transfer, TaskV2Model taskV2Model) {
List<JgChangeRegistrationTransferEq> eqList = jgChangeRegistrationTransferEqService.lambdaQuery().eq(JgChangeRegistrationTransferEq::getEquipTransferId, transfer.getSequenceNbr()).list();
JgRegistrationHistory historyData = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, transfer.getApplyNo()));
List<JgCertificateChangeRecord> changeRecordList = new ArrayList<>();
List<JgCertificateChangeRecordEq> changeRecordEqList = new ArrayList<>();
JSONArray historyJson = JSON.parseArray(historyData.getChangeData());
for (Object object : historyJson) {
JgCertificateChangeRecord changeRecord = new JgCertificateChangeRecord();
JSONObject historyJson = JSON.parseObject(historyData.getChangeData());
List<Map<String, Object>> registrationList = (List<Map<String, Object>>) historyJson.get("registrationList");
registrationList.forEach(registration -> {
long nextId = sequence.nextId();
JSONObject jsonObject = JSON.parseObject(object.toString());
String registrationCode = jsonObject.getString("useRegistrationCode");
String certificateNo = jsonObject.getString("certificateNo");
String equCategoryCode = jsonObject.getString("equCategoryCode");
JgCertificateChangeRecord changeRecord = new JgCertificateChangeRecord();
String registrationCode = (String) registration.get("useRegistrationCode");
String certificateNo = (String) registration.get("certificateNo");
String equCategoryCode = (String) registration.get("equCategoryCode");
changeRecord.setApplyNo(transfer.getApplyNo());
changeRecord.setReceiveOrgName(transfer.getReceiveOrgName());
changeRecord.setAuditPassDate(transfer.getAuditPassDate());
......@@ -762,15 +860,19 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
changeRecord.setEquCategory(equCategoryCode);
changeRecord.setCreateDate(new Date());
changeRecord.setSequenceNbr(nextId);
changeRecord.setRoutePath(taskV2Model.getRoutePath());
changeRecordList.add(changeRecord);
for (JgChangeRegistrationTransferEq transferEq : eqList) {
JSONObject deviceJson = JSON.parseObject(transferEq.getDeviceInfo());
JgCertificateChangeRecordEq changeRecordEq = new JgCertificateChangeRecordEq();
changeRecordEq.setChangeRecordId(String.valueOf(nextId));
changeRecordEq.setEquId(deviceJson.getString("SEQUENCE_NBR"));
changeRecordEqList.add(changeRecordEq);
if (!StringUtils.isEmpty(transferEq.getUseRegistrationCode()) && !StringUtils.isEmpty(registrationCode) &&
transferEq.getUseRegistrationCode().equals(registrationCode)) {
JSONObject deviceJson = JSON.parseObject(transferEq.getDeviceInfo());
JgCertificateChangeRecordEq changeRecordEq = new JgCertificateChangeRecordEq();
changeRecordEq.setChangeRecordId(String.valueOf(nextId));
changeRecordEq.setEquId(deviceJson.getString("SEQUENCE_NBR"));
changeRecordEqList.add(changeRecordEq);
}
}
}
});
if (!changeRecordList.isEmpty()) {
certificateChangeRecordService.saveBatch(changeRecordList);
}
......@@ -782,16 +884,15 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
private String buildRecordContent(JgChangeRegistrationTransfer obj) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
return obj.getCreateUserName() + "办理了【移装变更登记】,单号【"
+ obj.getApplyNo() + "】,移装后地址为"+ obj.getFullAddress() + ",申请日期" + simpleDateFormat.format(obj.getCreateDate());
+ obj.getApplyNo() + "】,移装后地址为" + obj.getFullAddress() + ",申请日期" + simpleDateFormat.format(obj.getCreateDate());
}
/**
* 流程结束后需要更新的数据
*
* @param sequenceNbr 移装变更单Id
* @param supervisoryCode 监管码
* @param sequenceNbr 移装变更单Id
*/
public void updateByFlowEnd(String sequenceNbr, String supervisoryCode, JgRegistrationHistory historyData) {
public void updateByFlowEnd(String sequenceNbr, JgRegistrationHistory historyData) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
JgChangeRegistrationTransfer transfer = this.getBaseMapper().selectById(sequenceNbr);
LambdaQueryWrapper<JgChangeRegistrationTransferEq> lambda = new QueryWrapper<JgChangeRegistrationTransferEq>().lambda();
......@@ -802,17 +903,21 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
if (!CollectionUtils.isEmpty(transferEqList)) {
AtomicReference<String> useRegistrationCode = new AtomicReference<>("");
AtomicBoolean isUpdateRegistrationCode = new AtomicBoolean(false);
transferEqList.forEach(device->{
transferEqList.forEach(device -> {
String supervisoryCode = "", code96333 = "";
//如果是区内移装,判断是否为韩城,杨凌,需要变更证号,否则不变证号
if ("1".equals(transfer.getTransferType())) {
Map<String, String> supervisoryCodeMap = this.createSupervisoryCode(historyData);
supervisoryCode = supervisoryCodeMap.get("superviseCode");
code96333 = supervisoryCodeMap.get("code96333");
useRegistrationCode.set(commonServiceImpl.generateRegistrationCode(device.getEquId(), supervisoryCode, transfer.getReceiveCompanyCode()));
useRegistrationCodeList.add(String.valueOf(useRegistrationCode));
isUpdateRegistrationCode.set(true);
}
//替换历史数据表和设备使用表
this.replacementHistoryData(device.getEquId(), transfer.getApplyNo(), historyData);
this.replacementHistoryData(device.getEquId(), transfer, historyData, supervisoryCode, code96333);
//更新使用注册登记证编号及ES中的信息
this.updateRegisterInfoAndEsData(device.getEquId(), historyData, useRegistrationCode.get(), isUpdateRegistrationCode);
this.updateRegisterInfoAndEsData(device.getEquId(), historyData, useRegistrationCode.get(), supervisoryCode, code96333, isUpdateRegistrationCode);
//修改各类告知列表,置为废弃
this.updateInvalidStatusByHistory(device.getEquId(), device.getEquipTransferId());
//修改证管理表数据
......@@ -834,15 +939,16 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
}
private void updateUseRegistrationManage(JgChangeRegistrationTransfer transfer, JgRegistrationHistory historyData, String useRegistrationCode, boolean isUpdateRegistrationCode) {
JSONArray historyJson = JSON.parseArray(historyData.getChangeData());
List<String> ids = historyJson.stream().map(v -> JSON.parseObject(v.toString()).getString("sequenceNbr")).collect(Collectors.toList());
JSONObject historyJson = JSON.parseObject(historyData.getChangeData());
List<Map<String, Object>> registrationList = (List<Map<String, Object>>) historyJson.get("registrationList");
List<String> ids = registrationList.stream().map(v -> JSON.parseObject(v.toString()).getString("sequenceNbr")).collect(Collectors.toList());
List<JgUseRegistrationManage> list = useRegistrationManageService.lambdaQuery().in(BaseEntity::getSequenceNbr, ids).list();
for (JgUseRegistrationManage registrationManage : list) {
registrationManage.setReceiveOrgName(transfer.getReceiveOrgName());
registrationManage.setReceiveCompanyCode(transfer.getReceiveOrgCode());
registrationManage.setAuditPassDate(transfer.getAuditPassDate());
registrationManage.setEquUseAddress(transfer.getFullAddress());
if (isUpdateRegistrationCode){
if (isUpdateRegistrationCode) {
registrationManage.setUseRegistrationCode(useRegistrationCode);
}
}
......@@ -852,15 +958,15 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
/**
* 修改历史数据表和设备使用表
*
* @param record 设备Id
* @param applyNo 申请记录编号
* @param newData 设备移装的新数据
* @param record 设备Id
* @param newData 设备移装的新数据
*/
public void replacementHistoryData(String record, String applyNo, JgRegistrationHistory newData) {
public void replacementHistoryData(String record, JgChangeRegistrationTransfer transfer, JgRegistrationHistory newData, String supervisoryCode, String code96333) {
if (!ValidationUtil.isEmpty(record) && !ValidationUtil.isEmpty(applyNo)) {
if (!ValidationUtil.isEmpty(record) && !ValidationUtil.isEmpty(transfer.getApplyNo())) {
//查询设备旧数据
IdxBizJgUseInfo useInfo = useInfoService.getOneData(record);
IdxBizJgOtherInfo otherInfo = otherInfoService.getOneData(record);
// 更新设备移装位置使用信息
if (!ValidationUtil.isEmpty(newData)) {
......@@ -925,42 +1031,44 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
if (!ObjectUtils.isEmpty(longitudeLatitude)) {
useInfo.setLongitudeLatitude(longitudeLatitude);
}
if(!ObjectUtils.isEmpty(usePlace)){
if (!ObjectUtils.isEmpty(usePlace)) {
useInfo.setUsePlace(usePlace);
}
if(!ObjectUtils.isEmpty(isXixian)){
if (!ObjectUtils.isEmpty(isXixian)) {
useInfo.setIsNotXiXian(isXixian);
}
if(!ObjectUtils.isEmpty(safetyManager)){
if (!ObjectUtils.isEmpty(safetyManager)) {
String[] safetyManagerList = safetyManager.split("_");
if (safetyManagerList.length>1){
if (safetyManagerList.length > 1) {
useInfo.setSafetyManagerId(safetyManagerList[0]);
useInfo.setSafetyManager(safetyManagerList[1]);
}
}
if(!ObjectUtils.isEmpty(phone)){
if (!ObjectUtils.isEmpty(phone)) {
useInfo.setPhone(phone);
}
if(!ObjectUtils.isEmpty(transferUseInfo)){
if (!ObjectUtils.isEmpty(transferUseInfo)) {
String[] useInfoList = transferUseInfo.split("_");
if(useInfoList.length>1){
if (useInfoList.length > 1) {
useInfo.setEstateUnitCreditCode(useInfoList[0]);
useInfo.setEstateUnitName(useInfoList[1]);
}
}
IdxBizJgSupervisionInfo idxBizJgSupervisionInfo = new IdxBizJgSupervisionInfo();
if(!ObjectUtils.isEmpty(supervisionUnit)){
if (!ObjectUtils.isEmpty(supervisionUnit)) {
String[] supervisionUnitList = supervisionUnit.split("_");
if(supervisionUnitList.length>1){
if (supervisionUnitList.length > 1) {
idxBizJgSupervisionInfo.setOrgBranchCode(supervisionUnitList[0]);
idxBizJgSupervisionInfo.setOrgBranchName(supervisionUnitList[1]);
LambdaQueryWrapper<IdxBizJgSupervisionInfo> eq = new QueryWrapper<IdxBizJgSupervisionInfo>().lambda().eq(IdxBizJgSupervisionInfo::getRecord,record);
LambdaQueryWrapper<IdxBizJgSupervisionInfo> eq = new QueryWrapper<IdxBizJgSupervisionInfo>().lambda().eq(IdxBizJgSupervisionInfo::getRecord, record);
idxBizJgSupervisionInfoMapper.update(idxBizJgSupervisionInfo, eq);
}
}
useInfoService.saveOrUpdateData(useInfo);
otherInfo.setSupervisoryCode(supervisoryCode);
otherInfo.setCode96333(code96333);
otherInfoService.saveOrUpdateData(otherInfo);
}
}
}
......@@ -991,9 +1099,9 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
* @param useRegistrationCode 使用注册登记证编号
* @param isUpdateRegistrationCode 是否更新使用登记证编号
*/
public void updateRegisterInfoAndEsData(String equId, JgRegistrationHistory newData, String useRegistrationCode, AtomicBoolean isUpdateRegistrationCode) {
public void updateRegisterInfoAndEsData(String equId, JgRegistrationHistory newData, String useRegistrationCode, String supervisoryCode, String code96333, AtomicBoolean isUpdateRegistrationCode) {
//更新使用注册登记证编号
if (isUpdateRegistrationCode.get()){
if (isUpdateRegistrationCode.get()) {
idxBizJgRegisterInfoMapper.updateUseOrgCodeByEquip(equId, useRegistrationCode);
}
//获取移装新位置,更新ES
......@@ -1024,7 +1132,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
if (!ObjectUtils.isEmpty(county)) {
String[] countyList = county.split("_");
if (countyList.length > 1) {
newUsePlace += countyList[1]+ "/";
newUsePlace += countyList[1] + "/";
}
}
if (!ObjectUtils.isEmpty(street)) {
......@@ -1047,8 +1155,10 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
map1.put("USE_PLACE", newUsePlace);
map1.put("ADDRESS", newAddress);
map1.put("LONGITUDE_LATITUDE", newLongitudeLatitude);
if (isUpdateRegistrationCode.get()){
if (isUpdateRegistrationCode.get()) {
map1.put("USE_ORG_CODE", useRegistrationCode);
map1.put("SUPERVISORY_CODE", supervisoryCode);
map1.put("CODE96333", code96333);
}
resultMap.put(equId, map1);
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
......@@ -1215,7 +1325,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
if ("0".equals(printType)) {
//调用生成使用登记证
commonService.generateCertificateReport(exportParamsMap, response);
}else{
} else {
commonService.generatePdfPrint(exportParamsMap, response);
}
}
......@@ -1290,8 +1400,8 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
* @deprecated 动态获取
*/
public String getSummaryInfo(JgChangeRegistrationTransfer transfer) {
String result = "来自%s【%s】的业务办理,【申请单号:%s】";
return String.format(result, Optional.ofNullable(transfer.getEquipListName()).orElse("无"), Optional.ofNullable(transfer.getSupervisoryCode()).orElse("无"), Optional.ofNullable(transfer.getApplyNo()).orElse("无"));
String result = "发起了【移装变更登记】业务申请,【申请单号:%s】";
return String.format(result, Optional.ofNullable(transfer.getApplyNo()).orElse("无"));
}
public String getNextUserOrgCode(String operate, JgChangeRegistrationTransfer contract) {
......@@ -1322,35 +1432,35 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
}
}
public Map<String, Object> getDetailFieldCamelCase( String record) {
public Map<String, Object> getDetailFieldCamelCase(String record) {
Map<String, Object> result = new HashMap<>();
result = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(record);
//移装变更-省份回显
result.put("transferProvince",result.get("province"));
result.put("transferProvince", result.get("province"));
//移装变更-市回显
result.put("transferCity",result.get("city"));
result.put("transferCity", result.get("city"));
//移装变更-区回显
result.put("transferCounty",result.get("county"));
result.put("transferCounty", result.get("county"));
//移装变更-街道回显
result.put("transferStreet",result.get("factoryUseSiteStreet")+"_"+result.get("streetName"));
result.put("transferStreet", result.get("factoryUseSiteStreet") + "_" + result.get("streetName"));
//移装变更-移装场所
result.put("transferUsePlace",result.get("usePlace"));
result.put("transferUsePlace", result.get("usePlace"));
//移装变更-详细地址
result.put("transferAddress",result.get("useAddress"));
result.put("transferAddress", result.get("useAddress"));
//移装变更-经纬度
result.put("transferLongitudeLatitude",result.get("longitudeLatitude"));
result.put("transferLongitudeLatitude", result.get("longitudeLatitude"));
//移装变更-属地监管部门
result.put("orgBranchCode",result.get("orgBranchCode")+"_"+result.get("orgBranchName"));
result.put("orgBranchCode", result.get("orgBranchCode") + "_" + result.get("orgBranchName"));
//移装变更-所属经营单位
result.put("transferIsXixian",result.get("isNotXiXian"));
result.put("transferIsXixian", result.get("isNotXiXian"));
//移装变更-安全管理员
result.put("transferSafetyManager",result.get("safetyManagerId")+"_"+result.get("safetyManager"));
result.put("transferSafetyManager", result.get("safetyManagerId") + "_" + result.get("safetyManager"));
//移装变更-安全管理员姓名
result.put("transferSafetyManagerName",result.get("safetyManager"));
result.put("transferSafetyManagerName", result.get("safetyManager"));
//移装变更-电话
result.put("transferPhone",result.get("phone"));
result.put("transferPhone", result.get("phone"));
//移装变更-产权单位
result.put("transferUseInfo",result.get("estateUnitCreditCode")+"_"+result.get("estateUnitName"));
result.put("transferUseInfo", result.get("estateUnitCreditCode") + "_" + result.get("estateUnitName"));
return result;
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgChangeRegistrationTransferMapper;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author Administrator
*/
@Component
@Slf4j
public class JgChangeRegistrationTransferUsedCheckImpl extends BaseEquipUsedCheckService {
private final RedissonClient redissonClient;
private final String bizType = "changeRegistrationTransfer";
private final JgChangeRegistrationTransferMapper mapper;
public JgChangeRegistrationTransferUsedCheckImpl(RedissonClient redissonClient, JgChangeRegistrationTransferMapper mapper) {
this.redissonClient = redissonClient;
this.mapper = mapper;
}
@Override
public RedissonClient getRedisClient() {
return redissonClient;
}
@Override
public String getApplyBizType() {
return bizType;
}
public void init() {
// 获取设备数据并处理
Map<String, Set<String>> resultMap = mapper.queryForFlowingEquipList().stream()
.filter(Objects::nonNull)
.flatMap(changeData -> {
JSONObject changeDataJson = JSON.parseObject(changeData);
return changeDataJson.getJSONArray("registrationList").stream()
.filter(item -> item instanceof JSONObject)
.map(item -> (JSONObject) item)
.collect(Collectors.groupingBy(
reg -> reg.getString("useUnitCreditCode"),
Collectors.mapping(reg -> reg.getString("sequenceNbr"), Collectors.toSet())
)).entrySet().stream();
})
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(existing, replacement) -> {
existing.addAll(replacement);
return existing;
}
));
// 将结果存储到 Redis
resultMap.forEach((companyCode, records) -> {
RBucket<Set<String>> rBucket = redissonClient.getBucket(getFlowingEquipRedisKey(companyCode, bizType));
rBucket.set(records);
});
}
}
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