Commit 0aedf6ad authored by suhuiguang's avatar suhuiguang

1.检验检测新功能开发:报检规则、计划排期

parent 0eb549d0
package com.yeejoin.amos.boot.module.jyjc.api.entity;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.yeejoin.amos.boot.module.jyjc.api.model.InspectionPlanModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
......@@ -16,7 +19,7 @@ import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tz_jyjc_inspection_application")
@TableName(value = "tz_jyjc_inspection_application", autoResultMap = true)
public class JyjcInspectionApplication extends BaseEntity {
private static final long serialVersionUID = 1L;
......@@ -204,4 +207,8 @@ public class JyjcInspectionApplication extends BaseEntity {
*/
@TableField(value = "docking_unit_code")
private String dockingUnitCode;
@TableField(value = "plan_data", typeHandler = JacksonTypeHandler.class)
private JSONObject planData;
}
package com.yeejoin.amos.boot.module.jyjc.api.model;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* @author Administrator
*/
@Data
public class InspectionPlanModel implements Serializable {
/**
* 计划检验检测日期
*/
String planInspectionDate;
/**
* 检验检测地点
*/
String address;
/**
* 检验检测人员-子表单
*/
List<Map<String, Object>> inspectionPerson;
/**
* 检验检测机构单位编码
*/
private String inspectionUnitCode;
/**
* 人员类型
*/
private String personType;
}
package com.yeejoin.amos.boot.module.jyjc.api.service;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import java.util.List;
/**
* 接口类
*
......@@ -9,4 +13,5 @@ package com.yeejoin.amos.boot.module.jyjc.api.service;
*/
public interface IJyjcOpeningApplicationService {
List<TzBaseEnterpriseInfoDto> getUnitListByRecord(String record);
}
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yeejoin.amos.boot.module.jyjc.api.enums.LicenceTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.OpenBizTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.TopicEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.rule.InspectionEquipInfo;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.CommonserviceImpl;
......@@ -12,19 +13,17 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseUnitLicence;
import com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseUnitLicenceMapper;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper;
import com.yeejoin.amos.component.rule.config.RuleConfig;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.time.LocalDate;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
......@@ -40,6 +39,10 @@ public class RuleActionHandler {
private final TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
private final CommonserviceImpl commonserviceImpl;
private final UseInfoMapper useInfoMapper;
/**
* 特殊独立的区县
*/
private static final String[] EXCLUSION_CITY_REGIONS = {"610403", "610581"};
public RuleActionHandler(EmqKeeper emqKeeper, TzBaseUnitLicenceMapper baseUnitLicenceMapper,
......@@ -53,17 +56,19 @@ public class RuleActionHandler {
}
/**
* 规则回调方法
* @param bizObj 请求变量参数
* @param itemCode 核对项目编码,多个用逗号分割
* 规则回调方法
*
* @param bizObj 请求变量参数
* @param itemCode 核对项目编码,多个用逗号分割
* @param isMatchArea 是否进行属地过滤(检验检测机构的开通区域包含设备归属地市),true-过滤,false-不过滤
*/
public void filterInspectionOrgAction(Object bizObj, String itemCode, Boolean isMatchArea) {
InspectionEquipInfo inspectionEquipInfo = (InspectionEquipInfo) bizObj;
try {
//获取单位许可信息
// 1.获取所有的符合资质条件的单位许可信息
List<TzBaseUnitLicence> unitLicenceList = getBaseUnitLicenceList(itemCode);
List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoList = getInspectionUnitList(unitLicenceList, isMatchArea, inspectionEquipInfo.getRecord());
// 2.匹配过滤机构信息,默认检验机构(目前检测没配置规则,后续检测也需要配置规则时,需要规则那回调方法新增参数,区分检验还是检测)
List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoList = getInspectionUnitList(unitLicenceList, isMatchArea, inspectionEquipInfo.getRecord(), OpenBizTypeEnum.JY.getCode());
publishMqttMessage(inspectionEquipInfo.getComponentKey(), tzBaseEnterpriseInfoList);
} catch (MqttException e) {
......@@ -79,34 +84,42 @@ public class RuleActionHandler {
.ge(TzBaseUnitLicence::getExpiryDate, LocalDate.now()));
}
private List<TzBaseEnterpriseInfoDto> getInspectionUnitList(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, String record) {
if (ValidationUtil.isEmpty(unitLicenceList)) {
log.info("按照资质未匹配到对应的单位,返回全部单位");
return commonserviceImpl.getInspectionUnitList();
}
//是否进行属地过滤
String city = isMatchArea ? Optional.ofNullable(useInfoMapper.selectOne(
Wrappers.<UseInfo>lambdaQuery().select(UseInfo::getCity)
.eq(UseInfo::getRecord, record))).map(UseInfo::getCity).orElse(null) : "";
public List<TzBaseEnterpriseInfoDto> getInspectionUnitList(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, String record, String openBizType) {
// 是否进行属地过滤
String areaCode = isMatchArea ? this.getArea(record) : "";
// 所有符合单位的code
List<String> unitCodes = unitLicenceList.stream()
.map(TzBaseUnitLicence::getUnitCode)
.collect(Collectors.toList());
List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(unitCodes, city);
if(matchEnterpriseInfos.isEmpty()){
log.info("按照资质匹配到对应的单位、按照地市未匹配到单位,将返回全部单位");
// 按照资质 + areaCode,进行设备单位的筛选
List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(unitCodes, areaCode, openBizType);
if (matchEnterpriseInfos.isEmpty()) {
log.info("按照资质、区域未匹配到对应的单位、按照地市未匹配到单位,将返回全部单位");
return commonserviceImpl.getInspectionUnitList();
}
return matchEnterpriseInfos;
}
private String getArea(String record) {
UseInfo equipUseInfo = useInfoMapper.selectOne(Wrappers.<UseInfo>lambdaQuery().select(UseInfo::getCity).eq(UseInfo::getRecord, record));
if (equipUseInfo == null) {
return "";
}
// 特殊地区特殊处理,目前有韩城、杨凌,原因行政区划上是有层级的,但是业务办理时,他们与所在地市是同级别的
if (StringUtils.isEmpty(equipUseInfo.getCity()) || StringUtils.isEmpty(equipUseInfo.getCounty())) {
return "";
}
if (Arrays.asList(EXCLUSION_CITY_REGIONS).contains(equipUseInfo.getCounty())) {
return equipUseInfo.getCounty();
}
return equipUseInfo.getCity();
}
private void publishMqttMessage(String componentKey, Object message) throws MqttException {
log.info("报检规则推送到web主题:{}:,消息内容为:{}", String.format(TopicEnum.INSPECTION_LIST_PUSH.getTopic(), componentKey), JSON.toJSONString(message));
try {
emqKeeper.getMqttClient().publish(String.format(TopicEnum.INSPECTION_LIST_PUSH.getTopic(), componentKey),
JSON.toJSONString(message).getBytes(), RuleConfig.DEFAULT_QOS, false);
JSON.toJSONString(message).getBytes(), RuleConfig.DEFAULT_QOS, false);
} catch (MqttException e) {
log.error("Error publishing MQTT message: {}", e.getMessage());
throw e;
......
......@@ -12,6 +12,7 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
......@@ -157,4 +158,13 @@ public class CommonController extends BaseController {
Object result = taskModelService.transfer(map);
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{unitCode}/user-list")
@ApiOperation(httpMethod = "GET", value = "查询指定公司、指定人员类型的人员列表", notes = "查询指定公司、指定人员类型的人员列表")
public ResponseModel<List<TzsUserInfo>> getBizUserInfosByUnitCode(@ApiParam(value = "公司编码") @PathVariable String unitCode,
@ApiParam(value = "人员类型", allowableValues = "jy,jc") @RequestParam String personType) {
return ResponseHelper.buildResponse(commonserviceImpl.getUserListByUnitCodeAndPost(unitCode, personType));
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.controller;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jyjc.api.model.InspectionPlanModel;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.InspectionPlanServiceImpl;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
/**
* 检验检测计划控制期
*
* @author Administrator
*/
@RestController
@RequestMapping(value = "/inspection/plan")
public class InspectionPlanController {
@Autowired
InspectionPlanServiceImpl inspectionPlanService;
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/{applicationSeq}/save")
@ApiOperation(httpMethod = "GET", value = "计划排期保存", notes = "计划排期保存")
public ResponseModel<InspectionPlanModel> savePlanData(@PathVariable String applicationSeq,
@RequestBody InspectionPlanModel model) {
return ResponseHelper.buildResponse(inspectionPlanService.savePlanData(applicationSeq, model));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{applicationSeq}/detail")
@ApiOperation(httpMethod = "GET", value = "计划排期详情", notes = "计划排期详情")
public ResponseModel<JSONObject> savePlanData(@PathVariable String applicationSeq) {
return ResponseHelper.buildResponse(inspectionPlanService.getDetail(applicationSeq));
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
......@@ -12,8 +10,6 @@ import com.yeejoin.amos.boot.module.common.biz.utils.CommonResponseUtil;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplication;
import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionApplicationEquipModel;
import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionApplicationModel;
import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionResultModel;
import com.yeejoin.amos.boot.module.jyjc.biz.config.BaseException;
import com.yeejoin.amos.boot.module.jyjc.biz.event.InspectionApplicationPushEvent;
import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.EventPublisher;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionApplicationServiceImpl;
......@@ -23,12 +19,14 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author system_generator
......@@ -42,12 +40,12 @@ public class JyjcInspectionApplicationController extends BaseController {
@Autowired
JyjcInspectionApplicationServiceImpl jyjcInspectionApplicationServiceImpl;
// 业务通用发起——基本信息
private static final String basic = "basic";
// 业务通用发起——设备信息
private static final String equipPageInfo = "equipPageInfo";
// 业务通用发起——技术参数-
private static final String filePageData = "filePageData";
// 业务通用发起——基本信息
private static final String basic = "basic";
// 业务通用发起——设备信息
private static final String equipPageInfo = "equipPageInfo";
// 业务通用发起——技术参数-
private static final String filePageData = "filePageData";
@Autowired
EventPublisher eventPublisher;
......@@ -58,35 +56,35 @@ public class JyjcInspectionApplicationController extends BaseController {
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<List<JyjcInspectionApplicationModel>> save(@RequestBody JSONObject model) {
if (model.containsKey(basic)) {
JSONObject finallyJson = new JSONObject();
Map<String, Object> basicObj = (Map<String, Object>) model.get(basic);
Map<String, Object> equipPageInfoObj = (Map<String, Object>) model.get(equipPageInfo);
Map<String, Object> filePageDataObj = (Map<String, Object>) model.get(filePageData);
finallyJson.putAll(model);
finallyJson.putAll(basicObj);
finallyJson.putAll(equipPageInfoObj);
finallyJson.putAll(filePageDataObj);
model = finallyJson;
}
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<List<JyjcInspectionApplicationModel>> save(@RequestBody JSONObject model) {
if (model.containsKey(basic)) {
JSONObject finallyJson = new JSONObject();
Map<String, Object> basicObj = (Map<String, Object>) model.get(basic);
Map<String, Object> equipPageInfoObj = (Map<String, Object>) model.get(equipPageInfo);
Map<String, Object> filePageDataObj = (Map<String, Object>) model.get(filePageData);
finallyJson.putAll(model);
finallyJson.putAll(basicObj);
finallyJson.putAll(equipPageInfoObj);
finallyJson.putAll(filePageDataObj);
model = finallyJson;
}
// operationType: 1-暂存
ReginParams selectedOrgInfo = getSelectedOrgInfo();
model.put("applicationUnitCode",selectedOrgInfo.getCompany().getCompanyCode());
ReginParams selectedOrgInfo = getSelectedOrgInfo();
model.put("applicationUnitCode", selectedOrgInfo.getCompany().getCompanyCode());
if (model.get("operationType").toString().equals("2") || model.get("operationType").toString().equals("0")){
if (model.get("operationType").toString().equals("2") || model.get("operationType").toString().equals("0")) {
if(null == model.get("equip") ||model.getJSONArray("equip").size() < 1 ){
return CommonResponseUtil.failure("未选择报检设备时不可提交");
}
}
return ResponseHelper.buildResponse(Collections.singletonList(jyjcInspectionApplicationServiceImpl.save(model)));
if (null == model.get("equip") || model.getJSONArray("equip").size() < 1) {
return CommonResponseUtil.failure("未选择报检设备时不可提交");
}
}
return ResponseHelper.buildResponse(Collections.singletonList(jyjcInspectionApplicationServiceImpl.save(model)));
}
/**
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
......@@ -167,7 +165,7 @@ public class JyjcInspectionApplicationController extends BaseController {
@GetMapping(value = "/pageByCompany")
@ApiOperation(httpMethod = "GET", value = "分页查询(报检单位)", notes = "分页查询(报检单位)")
public ResponseModel<Page<JyjcInspectionApplicationModel>> queryForPageByCompany(@RequestParam(value = "current") int current,
@RequestParam (value = "size") int size,
@RequestParam(value = "size") int size,
@RequestParam(required = false) String applicationNo,
@RequestParam(required = false) String inspectionClassify,
@RequestParam(required = false) String applicationUnitCode,
......@@ -297,8 +295,8 @@ public class JyjcInspectionApplicationController extends BaseController {
@GetMapping(value = "/data-push")
public void pushTest(
@RequestParam("id") Long id) {
JyjcInspectionApplicationModel model= jyjcInspectionApplicationServiceImpl.queryBySeq(id);
InspectionApplicationPushEvent event = new InspectionApplicationPushEvent(this,model);
JyjcInspectionApplicationModel model = jyjcInspectionApplicationServiceImpl.queryBySeq(id);
InspectionApplicationPushEvent event = new InspectionApplicationPushEvent(this, model);
eventPublisher.publish(event);
}
}
......@@ -290,4 +290,13 @@ public class JyjcOpeningApplicationController extends BaseController {
}
}
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/unit/list")
@ApiOperation(httpMethod = "GET", value = "查询指定设备所在地的检测机构", notes = "查询指定设备所在地的检测机构")
public ResponseModel<List<TzBaseEnterpriseInfoDto>> getUnitListByRecord(@RequestParam String record) {
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.getUnitListByRecord(record));
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.listener;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jyjc.api.enums.EquipCategoryEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.JYJCTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.TopicEnum;
import com.yeejoin.amos.boot.module.jyjc.api.model.InspectionEquipInfoModel;
import com.yeejoin.amos.boot.module.jyjc.biz.listener.message.BizMessage;
import com.yeejoin.amos.boot.module.jyjc.biz.rule.InspectionEquipInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper;
import com.yeejoin.amos.component.robot.AmosRequestContext;
import com.yeejoin.amos.component.rule.RuleTrigger;
import lombok.extern.slf4j.Slf4j;
......@@ -24,7 +22,6 @@ import org.typroject.tyboot.core.foundation.context.RequestContext;
import javax.annotation.PostConstruct;
import java.nio.charset.StandardCharsets;
import java.util.Objects;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
......@@ -51,22 +48,6 @@ public class InspectionOrgRefreshListener extends EmqxListener {
private AmosRequestContext amosRequestContext;
@Autowired
private RegistrationInfoMapper registrationInfoMapper;
@Autowired
private EquipTechParamBoilerMapper equipTechParamBoilerMapper;
@Autowired
private EquipTechParamVesselMapper equipTechParamVesselMapper;
@Autowired
private EquipTechParamElevatorMapper equipTechParamElevatorMapper;
@Autowired
private EquipTechParamLiftingMapper equipTechParamLiftingMapper;
@Autowired
private EquipTechParamVehicleMapper equipTechParamVehicleMapper;
@Autowired
private EquipTechParamRidesMapper equipTechParamRidesMapper;
@Autowired
private EquipTechParamPipelineMapper equipTechParamPipelineMapper;
@Autowired
private EquipTechParamRopewayMapper equipTechParamRopewayMapper;
@Value("${spring.application.name}")
private String applicationName;
......@@ -99,8 +80,8 @@ public class InspectionOrgRefreshListener extends EmqxListener {
try {
BizMessage bizMessage = BLOCKING_QUEUE.take();
// 解决前端组件在属性变化时重复发送两次问题
if(!redisUtils.hasKey(bizMessage.getTopic())){
redisUtils.set(bizMessage.getTopic(),true, repeatTime);
if (!redisUtils.hasKey(bizMessage.getTopic())) {
redisUtils.set(bizMessage.getTopic(), true, repeatTime);
processBizMessage(bizMessage);
} else {
log.warn("消息在{}秒内重复,", repeatTime);
......@@ -117,16 +98,16 @@ public class InspectionOrgRefreshListener extends EmqxListener {
InspectionEquipInfoModel equipInfoModel = parseObject(new String(payload, StandardCharsets.UTF_8), InspectionEquipInfoModel.class);
RegistrationInfo registrationInfo = fetchRegistrationInfo(equipInfoModel.getRecord());
InspectionEquipInfo inspectionEquipInfo = new InspectionEquipInfo();
if (registrationInfo != null) {
inspectionEquipInfo.setEquCategory(registrationInfo.getEquCategory());
inspectionEquipInfo.setEquList(registrationInfo.getEquList());
inspectionEquipInfo.setEquDefine(registrationInfo.getEquDefine());
inspectionEquipInfo.setComponentKey(bizMessage.getTopic().split("/")[0]);
inspectionEquipInfo.setInspectionType(equipInfoModel.getInspectionType());
inspectionEquipInfo.setRecord(equipInfoModel.getRecord());
populateEquipInfoWithTechParams(inspectionEquipInfo, registrationInfo);
if (registrationInfo == null) {
log.warn("未找到设备,报检规则匹配流程结束!");
return;
}
inspectionEquipInfo.setEquCategory(registrationInfo.getEquCategory());
inspectionEquipInfo.setEquList(registrationInfo.getEquList());
inspectionEquipInfo.setEquDefine(registrationInfo.getEquDefine());
inspectionEquipInfo.setComponentKey(bizMessage.getTopic().split("/")[0]);
inspectionEquipInfo.setInspectionType(equipInfoModel.getInspectionType());
inspectionEquipInfo.setRecord(equipInfoModel.getRecord());
inspectionEquipInfo.setBizType(getCategoryByType(JYJCTypeEnum.of(inspectionEquipInfo.getInspectionType())));
touchRule(inspectionEquipInfo);
}
......@@ -138,38 +119,6 @@ public class InspectionOrgRefreshListener extends EmqxListener {
.eq(RegistrationInfo::getRecord, record));
}
private void populateEquipInfoWithTechParams(InspectionEquipInfo inspectionEquipInfo, RegistrationInfo registrationInfo) {
EquipCategoryEnum productType = EquipCategoryEnum.of(Integer.parseInt(registrationInfo.getEquList()));
switch (Objects.requireNonNull(productType)) {
case IDX_BIZ_JG_TECH_PARAMS_BOILER:
inspectionEquipInfo.setTechParams(BeanUtil.beanToMap(equipTechParamBoilerMapper.getBoilerByDefaultValue(registrationInfo.getRecord())));
break;
case IDX_BIZ_JG_TECH_PARAMS_VESSEL:
inspectionEquipInfo.setTechParams(BeanUtil.beanToMap(equipTechParamVesselMapper.getVesselByDefaultValue(registrationInfo.getRecord())));
break;
case IDX_BIZ_JG_TECH_PARAMS_ELEVATOR:
inspectionEquipInfo.setTechParams(BeanUtil.beanToMap(equipTechParamElevatorMapper.getElevatorByDefaultValue(registrationInfo.getRecord())));
break;
case IDX_BIZ_JG_TECH_PARAMS_LIFTING:
inspectionEquipInfo.setTechParams(BeanUtil.beanToMap(equipTechParamLiftingMapper.getLiftingByDefaultValue(registrationInfo.getRecord())));
break;
case IDX_BIZ_JG_TECH_PARAMS_VEHICLE:
inspectionEquipInfo.setTechParams(BeanUtil.beanToMap(equipTechParamVehicleMapper.getVehicleByDefaultValue(registrationInfo.getRecord())));
break;
case IDX_BIZ_JG_TECH_PARAMS_RIDES:
inspectionEquipInfo.setTechParams(BeanUtil.beanToMap(equipTechParamRidesMapper.getRidesByDefaultValue(registrationInfo.getRecord())));
break;
case IDX_BIZ_JG_TECH_PARAMS_PIPELINE:
inspectionEquipInfo.setTechParams(BeanUtil.beanToMap(equipTechParamPipelineMapper.getPipelineByDefaultValue(registrationInfo.getRecord())));
break;
case IDX_BIZ_JG_TECH_PARAMS_ROPEWAY:
inspectionEquipInfo.setTechParams(BeanUtil.beanToMap(equipTechParamRopewayMapper.getRopewayByDefaultValue(registrationInfo.getRecord())));
break;
default:
break;
}
}
private void touchRule(InspectionEquipInfo inspectionEquipInfo) {
if (log.isInfoEnabled()) {
log.info("发送规则的消息对象:{}", toJSONString(inspectionEquipInfo));
......
......@@ -2,12 +2,16 @@ package com.yeejoin.amos.boot.module.jyjc.biz.service.impl;
import cn.hutool.core.util.StrUtil;
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.CollectionUtils;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jyjc.api.enums.OpenBizTypeEnum;
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.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
......@@ -43,6 +47,13 @@ public class CommonserviceImpl {
@Value("${jyjc.user-post:6616}")
private String jyjcBizUserPost;
@Value("${jy.user-post:66151}")
private String jyUserPost;
@Value("${jc.user-post:66152}")
private String jcUserPost;
@Autowired
RedisUtils redisUtils;
@Autowired
......@@ -73,6 +84,24 @@ public class CommonserviceImpl {
return userInfos;
}
public List<TzsUserInfo> getUserListByUnitCodeAndPost(String unitCode, String personType) {
LambdaQueryWrapper<TzsUserInfo> userInfoQueryWrapper = new LambdaQueryWrapper<>();
userInfoQueryWrapper.eq(TzsUserInfo::getUnitCode, unitCode);
this.castPersonType2Post(userInfoQueryWrapper,personType);
userInfoQueryWrapper.eq(BaseEntity::getIsDelete,false);
userInfoQueryWrapper.select(TzsUserInfo::getPost, TzsUserInfo::getPhone, TzsUserInfo::getName, TzsUserInfo::getInnerPersonCode,BaseEntity::getSequenceNbr);
return userInfoMapper.selectList(userInfoQueryWrapper);
}
private void castPersonType2Post(LambdaQueryWrapper<TzsUserInfo> userInfoQueryWrapper, String personType) {
if(personType.equals(OpenBizTypeEnum.JY.getCode())){
userInfoQueryWrapper.like(TzsUserInfo::getPost, jyUserPost);
}
if(personType.equals(OpenBizTypeEnum.JC.getCode())){
userInfoQueryWrapper.like(TzsUserInfo::getPost, jcUserPost);
}
}
public List<TzsUserInfo> getBizUserInfosByUnitCode(String unitCode) {
QueryWrapper userInfoQueryWrapper = new QueryWrapper<>();
userInfoQueryWrapper.eq("unit_code", unitCode);
......
package com.yeejoin.amos.boot.module.jyjc.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplication;
import com.yeejoin.amos.boot.module.jyjc.api.model.InspectionPlanModel;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
/**
* @author Administrator
*/
@Service
public class InspectionPlanServiceImpl {
private JyjcInspectionApplicationServiceImpl inspectionApplicationService;
public InspectionPlanServiceImpl(JyjcInspectionApplicationServiceImpl inspectionApplicationService) {
this.inspectionApplicationService = inspectionApplicationService;
}
public InspectionPlanModel savePlanData(String applicationSeq, InspectionPlanModel model) {
LambdaUpdateWrapper<JyjcInspectionApplication> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(JyjcInspectionApplication::getPlanData, JSONObject.toJSONString(model));
updateWrapper.eq(BaseEntity::getSequenceNbr, applicationSeq);
inspectionApplicationService.update(updateWrapper);
return model;
}
public JSONObject getDetail(String applicationSeq) {
JyjcInspectionApplication inspectionApplication = inspectionApplicationService.getById(applicationSeq);
// 初始时查询设备地址关联设备表
return inspectionApplication.getPlanData();
}
}
......@@ -45,7 +45,6 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.io.IOException;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
......
......@@ -27,6 +27,7 @@ import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcBaseMapper;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcOpeningApplicationMapper;
import com.yeejoin.amos.boot.module.jyjc.api.model.*;
import com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcOpeningApplicationService;
import com.yeejoin.amos.boot.module.jyjc.biz.action.RuleActionHandler;
import com.yeejoin.amos.boot.module.jyjc.biz.config.BaseException;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jyjc.biz.service.TaskModelServiceImpl;
......@@ -125,6 +126,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
@Autowired
DataDictionaryMapper dataDictionaryMapper;
@Autowired
RuleActionHandler ruleActionHandler;
private static Map<String, DictionarieValueModel> permissionLevelMap;
private static List<DictionarieValueModel> permissionItemList;
......@@ -466,7 +470,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}
}).collect(Collectors.toList());
if (isNeedFilter) {
tzsUserInfoVos = tzsUserInfoVos.stream().filter(u -> u.getPost().contains(jyjcOpeningApplicationModel.getOpenBizType())).collect(Collectors.toList());
tzsUserInfoVos = tzsUserInfoVos.stream().filter(u -> u.getStrPost().contains(jyjcOpeningApplicationModel.getOpenBizType())).collect(Collectors.toList());
jyjcOpeningApplicationModel.setUserInfos(tzsUserInfoVos);
} else {
jyjcOpeningApplicationModel.setUserInfos(tzsUserInfoVos);
......@@ -713,4 +717,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}
}
@Override
public List<TzBaseEnterpriseInfoDto> getUnitListByRecord(String record) {
return ruleActionHandler.getInspectionUnitList(new ArrayList<>(),true,record, OpenBizTypeEnum.JC.getCode());
}
}
\ No newline at end of file
......@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.ymt.api.dto.EquEnterDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import org.springframework.data.repository.query.Param;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -53,7 +53,7 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI
*/
List<TzBaseEnterpriseInfoDto> getInspectionUnitList(@Param("unitType") String unitType);
List<TzBaseEnterpriseInfoDto> getInspectionUnitListByCode(List<String> codes, @Param("city") String city);
List<TzBaseEnterpriseInfoDto> getInspectionUnitListByCode(@Param("list") List<String> codes, @Param("city") String city, @Param("openBizType") String openBizType);
/**
* 根据ID查找企业详情信息
......
......@@ -179,14 +179,15 @@
FROM
tz_base_enterprise_info info
INNER JOIN tz_jyjc_opening_application tjoa ON info.use_code = tjoa.unit_code
AND status = '6616'
AND tjoa.status = '6616'
and tjoa.open_biz_type = #{openBizType}
<if test="list !=null and list.size()>0">
AND use_code in
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test=" city != null and city != ''">
<if test="city != null and city != ''">
and detection_region like concat('%',#{city},'%')
</if>
group by info.use_code
......
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