Commit 0aedf6ad authored by suhuiguang's avatar suhuiguang

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

parent 0eb549d0
package com.yeejoin.amos.boot.module.jyjc.api.entity; 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.TableField;
import com.baomidou.mybatisplus.annotation.TableName; 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.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
...@@ -16,7 +19,7 @@ import java.util.Date; ...@@ -16,7 +19,7 @@ import java.util.Date;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)
@TableName("tz_jyjc_inspection_application") @TableName(value = "tz_jyjc_inspection_application", autoResultMap = true)
public class JyjcInspectionApplication extends BaseEntity { public class JyjcInspectionApplication extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -204,4 +207,8 @@ public class JyjcInspectionApplication extends BaseEntity { ...@@ -204,4 +207,8 @@ public class JyjcInspectionApplication extends BaseEntity {
*/ */
@TableField(value = "docking_unit_code") @TableField(value = "docking_unit_code")
private String dockingUnitCode; 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; 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; ...@@ -9,4 +13,5 @@ package com.yeejoin.amos.boot.module.jyjc.api.service;
*/ */
public interface IJyjcOpeningApplicationService { public interface IJyjcOpeningApplicationService {
List<TzBaseEnterpriseInfoDto> getUnitListByRecord(String record);
} }
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.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.api.enums.TopicEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.rule.InspectionEquipInfo; import com.yeejoin.amos.boot.module.jyjc.biz.rule.InspectionEquipInfo;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.CommonserviceImpl; 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; ...@@ -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.entity.UseInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper; 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.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.boot.module.ymt.api.mapper.UseInfoMapper;
import com.yeejoin.amos.component.rule.config.RuleConfig; import com.yeejoin.amos.component.rule.config.RuleConfig;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqKeeper; import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -40,6 +39,10 @@ public class RuleActionHandler { ...@@ -40,6 +39,10 @@ public class RuleActionHandler {
private final TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper; private final TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
private final CommonserviceImpl commonserviceImpl; private final CommonserviceImpl commonserviceImpl;
private final UseInfoMapper useInfoMapper; private final UseInfoMapper useInfoMapper;
/**
* 特殊独立的区县
*/
private static final String[] EXCLUSION_CITY_REGIONS = {"610403", "610581"};
public RuleActionHandler(EmqKeeper emqKeeper, TzBaseUnitLicenceMapper baseUnitLicenceMapper, public RuleActionHandler(EmqKeeper emqKeeper, TzBaseUnitLicenceMapper baseUnitLicenceMapper,
...@@ -54,6 +57,7 @@ public class RuleActionHandler { ...@@ -54,6 +57,7 @@ public class RuleActionHandler {
/** /**
* 规则回调方法 * 规则回调方法
*
* @param bizObj 请求变量参数 * @param bizObj 请求变量参数
* @param itemCode 核对项目编码,多个用逗号分割 * @param itemCode 核对项目编码,多个用逗号分割
* @param isMatchArea 是否进行属地过滤(检验检测机构的开通区域包含设备归属地市),true-过滤,false-不过滤 * @param isMatchArea 是否进行属地过滤(检验检测机构的开通区域包含设备归属地市),true-过滤,false-不过滤
...@@ -61,9 +65,10 @@ public class RuleActionHandler { ...@@ -61,9 +65,10 @@ public class RuleActionHandler {
public void filterInspectionOrgAction(Object bizObj, String itemCode, Boolean isMatchArea) { public void filterInspectionOrgAction(Object bizObj, String itemCode, Boolean isMatchArea) {
InspectionEquipInfo inspectionEquipInfo = (InspectionEquipInfo) bizObj; InspectionEquipInfo inspectionEquipInfo = (InspectionEquipInfo) bizObj;
try { try {
//获取单位许可信息 // 1.获取所有的符合资质条件的单位许可信息
List<TzBaseUnitLicence> unitLicenceList = getBaseUnitLicenceList(itemCode); 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); publishMqttMessage(inspectionEquipInfo.getComponentKey(), tzBaseEnterpriseInfoList);
} catch (MqttException e) { } catch (MqttException e) {
...@@ -79,29 +84,37 @@ public class RuleActionHandler { ...@@ -79,29 +84,37 @@ public class RuleActionHandler {
.ge(TzBaseUnitLicence::getExpiryDate, LocalDate.now())); .ge(TzBaseUnitLicence::getExpiryDate, LocalDate.now()));
} }
private List<TzBaseEnterpriseInfoDto> getInspectionUnitList(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, String record) { public List<TzBaseEnterpriseInfoDto> getInspectionUnitList(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, String record, String openBizType) {
if (ValidationUtil.isEmpty(unitLicenceList)) { // 是否进行属地过滤
log.info("按照资质未匹配到对应的单位,返回全部单位"); String areaCode = isMatchArea ? this.getArea(record) : "";
return commonserviceImpl.getInspectionUnitList(); // 所有符合单位的code
}
//是否进行属地过滤
String city = isMatchArea ? Optional.ofNullable(useInfoMapper.selectOne(
Wrappers.<UseInfo>lambdaQuery().select(UseInfo::getCity)
.eq(UseInfo::getRecord, record))).map(UseInfo::getCity).orElse(null) : "";
List<String> unitCodes = unitLicenceList.stream() List<String> unitCodes = unitLicenceList.stream()
.map(TzBaseUnitLicence::getUnitCode) .map(TzBaseUnitLicence::getUnitCode)
.collect(Collectors.toList()); .collect(Collectors.toList());
// 按照资质 + areaCode,进行设备单位的筛选
List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(unitCodes, city); List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(unitCodes, areaCode, openBizType);
if(matchEnterpriseInfos.isEmpty()){ if (matchEnterpriseInfos.isEmpty()) {
log.info("按照资质匹配到对应的单位、按照地市未匹配到单位,将返回全部单位"); log.info("按照资质、区域未匹配到对应的单位、按照地市未匹配到单位,将返回全部单位");
return commonserviceImpl.getInspectionUnitList(); return commonserviceImpl.getInspectionUnitList();
} }
return matchEnterpriseInfos; 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 { private void publishMqttMessage(String componentKey, Object message) throws MqttException {
log.info("报检规则推送到web主题:{}:,消息内容为:{}", String.format(TopicEnum.INSPECTION_LIST_PUSH.getTopic(), componentKey), JSON.toJSONString(message)); log.info("报检规则推送到web主题:{}:,消息内容为:{}", String.format(TopicEnum.INSPECTION_LIST_PUSH.getTopic(), componentKey), JSON.toJSONString(message));
try { try {
......
...@@ -12,6 +12,7 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo; ...@@ -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 com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
...@@ -157,4 +158,13 @@ public class CommonController extends BaseController { ...@@ -157,4 +158,13 @@ public class CommonController extends BaseController {
Object result = taskModelService.transfer(map); Object result = taskModelService.transfer(map);
return ResponseHelper.buildResponse(result); 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; package com.yeejoin.amos.boot.module.jyjc.biz.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
...@@ -12,8 +10,6 @@ import com.yeejoin.amos.boot.module.common.biz.utils.CommonResponseUtil; ...@@ -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.entity.JyjcInspectionApplication;
import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionApplicationEquipModel; 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.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.InspectionApplicationPushEvent;
import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.EventPublisher; import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.EventPublisher;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionApplicationServiceImpl; import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionApplicationServiceImpl;
...@@ -23,12 +19,14 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -23,12 +19,14 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; 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.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest; 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 * @author system_generator
...@@ -74,11 +72,11 @@ public class JyjcInspectionApplicationController extends BaseController { ...@@ -74,11 +72,11 @@ public class JyjcInspectionApplicationController extends BaseController {
} }
// operationType: 1-暂存 // operationType: 1-暂存
ReginParams selectedOrgInfo = getSelectedOrgInfo(); ReginParams selectedOrgInfo = getSelectedOrgInfo();
model.put("applicationUnitCode",selectedOrgInfo.getCompany().getCompanyCode()); 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 ){ if (null == model.get("equip") || model.getJSONArray("equip").size() < 1) {
return CommonResponseUtil.failure("未选择报检设备时不可提交"); return CommonResponseUtil.failure("未选择报检设备时不可提交");
} }
} }
...@@ -167,7 +165,7 @@ public class JyjcInspectionApplicationController extends BaseController { ...@@ -167,7 +165,7 @@ public class JyjcInspectionApplicationController extends BaseController {
@GetMapping(value = "/pageByCompany") @GetMapping(value = "/pageByCompany")
@ApiOperation(httpMethod = "GET", value = "分页查询(报检单位)", notes = "分页查询(报检单位)") @ApiOperation(httpMethod = "GET", value = "分页查询(报检单位)", notes = "分页查询(报检单位)")
public ResponseModel<Page<JyjcInspectionApplicationModel>> queryForPageByCompany(@RequestParam(value = "current") int current, 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 applicationNo,
@RequestParam(required = false) String inspectionClassify, @RequestParam(required = false) String inspectionClassify,
@RequestParam(required = false) String applicationUnitCode, @RequestParam(required = false) String applicationUnitCode,
...@@ -297,8 +295,8 @@ public class JyjcInspectionApplicationController extends BaseController { ...@@ -297,8 +295,8 @@ public class JyjcInspectionApplicationController extends BaseController {
@GetMapping(value = "/data-push") @GetMapping(value = "/data-push")
public void pushTest( public void pushTest(
@RequestParam("id") Long id) { @RequestParam("id") Long id) {
JyjcInspectionApplicationModel model= jyjcInspectionApplicationServiceImpl.queryBySeq(id); JyjcInspectionApplicationModel model = jyjcInspectionApplicationServiceImpl.queryBySeq(id);
InspectionApplicationPushEvent event = new InspectionApplicationPushEvent(this,model); InspectionApplicationPushEvent event = new InspectionApplicationPushEvent(this, model);
eventPublisher.publish(event); eventPublisher.publish(event);
} }
} }
...@@ -290,4 +290,13 @@ public class JyjcOpeningApplicationController extends BaseController { ...@@ -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; package com.yeejoin.amos.boot.module.jyjc.biz.listener;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; 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.JYJCTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.TopicEnum; 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.api.model.InspectionEquipInfoModel;
import com.yeejoin.amos.boot.module.jyjc.biz.listener.message.BizMessage; 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.jyjc.biz.rule.InspectionEquipInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo; 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.robot.AmosRequestContext;
import com.yeejoin.amos.component.rule.RuleTrigger; import com.yeejoin.amos.component.rule.RuleTrigger;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -24,7 +22,6 @@ import org.typroject.tyboot.core.foundation.context.RequestContext; ...@@ -24,7 +22,6 @@ import org.typroject.tyboot.core.foundation.context.RequestContext;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.Objects;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
...@@ -51,22 +48,6 @@ public class InspectionOrgRefreshListener extends EmqxListener { ...@@ -51,22 +48,6 @@ public class InspectionOrgRefreshListener extends EmqxListener {
private AmosRequestContext amosRequestContext; private AmosRequestContext amosRequestContext;
@Autowired @Autowired
private RegistrationInfoMapper registrationInfoMapper; 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}") @Value("${spring.application.name}")
private String applicationName; private String applicationName;
...@@ -99,8 +80,8 @@ public class InspectionOrgRefreshListener extends EmqxListener { ...@@ -99,8 +80,8 @@ public class InspectionOrgRefreshListener extends EmqxListener {
try { try {
BizMessage bizMessage = BLOCKING_QUEUE.take(); BizMessage bizMessage = BLOCKING_QUEUE.take();
// 解决前端组件在属性变化时重复发送两次问题 // 解决前端组件在属性变化时重复发送两次问题
if(!redisUtils.hasKey(bizMessage.getTopic())){ if (!redisUtils.hasKey(bizMessage.getTopic())) {
redisUtils.set(bizMessage.getTopic(),true, repeatTime); redisUtils.set(bizMessage.getTopic(), true, repeatTime);
processBizMessage(bizMessage); processBizMessage(bizMessage);
} else { } else {
log.warn("消息在{}秒内重复,", repeatTime); log.warn("消息在{}秒内重复,", repeatTime);
...@@ -117,16 +98,16 @@ public class InspectionOrgRefreshListener extends EmqxListener { ...@@ -117,16 +98,16 @@ public class InspectionOrgRefreshListener extends EmqxListener {
InspectionEquipInfoModel equipInfoModel = parseObject(new String(payload, StandardCharsets.UTF_8), InspectionEquipInfoModel.class); InspectionEquipInfoModel equipInfoModel = parseObject(new String(payload, StandardCharsets.UTF_8), InspectionEquipInfoModel.class);
RegistrationInfo registrationInfo = fetchRegistrationInfo(equipInfoModel.getRecord()); RegistrationInfo registrationInfo = fetchRegistrationInfo(equipInfoModel.getRecord());
InspectionEquipInfo inspectionEquipInfo = new InspectionEquipInfo(); InspectionEquipInfo inspectionEquipInfo = new InspectionEquipInfo();
if (registrationInfo != null) { if (registrationInfo == null) {
log.warn("未找到设备,报检规则匹配流程结束!");
return;
}
inspectionEquipInfo.setEquCategory(registrationInfo.getEquCategory()); inspectionEquipInfo.setEquCategory(registrationInfo.getEquCategory());
inspectionEquipInfo.setEquList(registrationInfo.getEquList()); inspectionEquipInfo.setEquList(registrationInfo.getEquList());
inspectionEquipInfo.setEquDefine(registrationInfo.getEquDefine()); inspectionEquipInfo.setEquDefine(registrationInfo.getEquDefine());
inspectionEquipInfo.setComponentKey(bizMessage.getTopic().split("/")[0]); inspectionEquipInfo.setComponentKey(bizMessage.getTopic().split("/")[0]);
inspectionEquipInfo.setInspectionType(equipInfoModel.getInspectionType()); inspectionEquipInfo.setInspectionType(equipInfoModel.getInspectionType());
inspectionEquipInfo.setRecord(equipInfoModel.getRecord()); inspectionEquipInfo.setRecord(equipInfoModel.getRecord());
populateEquipInfoWithTechParams(inspectionEquipInfo, registrationInfo);
}
inspectionEquipInfo.setBizType(getCategoryByType(JYJCTypeEnum.of(inspectionEquipInfo.getInspectionType()))); inspectionEquipInfo.setBizType(getCategoryByType(JYJCTypeEnum.of(inspectionEquipInfo.getInspectionType())));
touchRule(inspectionEquipInfo); touchRule(inspectionEquipInfo);
} }
...@@ -138,38 +119,6 @@ public class InspectionOrgRefreshListener extends EmqxListener { ...@@ -138,38 +119,6 @@ public class InspectionOrgRefreshListener extends EmqxListener {
.eq(RegistrationInfo::getRecord, record)); .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) { private void touchRule(InspectionEquipInfo inspectionEquipInfo) {
if (log.isInfoEnabled()) { if (log.isInfoEnabled()) {
log.info("发送规则的消息对象:{}", toJSONString(inspectionEquipInfo)); log.info("发送规则的消息对象:{}", toJSONString(inspectionEquipInfo));
......
...@@ -2,12 +2,16 @@ package com.yeejoin.amos.boot.module.jyjc.biz.service.impl; ...@@ -2,12 +2,16 @@ package com.yeejoin.amos.boot.module.jyjc.biz.service.impl;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; 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.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; 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.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; 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.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.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
...@@ -43,6 +47,13 @@ public class CommonserviceImpl { ...@@ -43,6 +47,13 @@ public class CommonserviceImpl {
@Value("${jyjc.user-post:6616}") @Value("${jyjc.user-post:6616}")
private String jyjcBizUserPost; private String jyjcBizUserPost;
@Value("${jy.user-post:66151}")
private String jyUserPost;
@Value("${jc.user-post:66152}")
private String jcUserPost;
@Autowired @Autowired
RedisUtils redisUtils; RedisUtils redisUtils;
@Autowired @Autowired
...@@ -73,6 +84,24 @@ public class CommonserviceImpl { ...@@ -73,6 +84,24 @@ public class CommonserviceImpl {
return userInfos; 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) { public List<TzsUserInfo> getBizUserInfosByUnitCode(String unitCode) {
QueryWrapper userInfoQueryWrapper = new QueryWrapper<>(); QueryWrapper userInfoQueryWrapper = new QueryWrapper<>();
userInfoQueryWrapper.eq("unit_code", unitCode); 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; ...@@ -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.orm.entity.BaseEntity;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.io.IOException;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
......
...@@ -27,6 +27,7 @@ import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcBaseMapper; ...@@ -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.mapper.JyjcOpeningApplicationMapper;
import com.yeejoin.amos.boot.module.jyjc.api.model.*; 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.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.config.BaseException;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.TzsServiceFeignClient; import com.yeejoin.amos.boot.module.jyjc.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jyjc.biz.service.TaskModelServiceImpl; import com.yeejoin.amos.boot.module.jyjc.biz.service.TaskModelServiceImpl;
...@@ -125,6 +126,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -125,6 +126,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
@Autowired @Autowired
DataDictionaryMapper dataDictionaryMapper; DataDictionaryMapper dataDictionaryMapper;
@Autowired
RuleActionHandler ruleActionHandler;
private static Map<String, DictionarieValueModel> permissionLevelMap; private static Map<String, DictionarieValueModel> permissionLevelMap;
private static List<DictionarieValueModel> permissionItemList; private static List<DictionarieValueModel> permissionItemList;
...@@ -466,7 +470,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -466,7 +470,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
} }
}).collect(Collectors.toList()); }).collect(Collectors.toList());
if (isNeedFilter) { 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); jyjcOpeningApplicationModel.setUserInfos(tzsUserInfoVos);
} else { } else {
jyjcOpeningApplicationModel.setUserInfos(tzsUserInfoVos); jyjcOpeningApplicationModel.setUserInfos(tzsUserInfoVos);
...@@ -713,4 +717,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -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; ...@@ -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.EquEnterDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto; import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo; 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; import java.util.List;
...@@ -53,7 +53,7 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI ...@@ -53,7 +53,7 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI
*/ */
List<TzBaseEnterpriseInfoDto> getInspectionUnitList(@Param("unitType") String unitType); 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查找企业详情信息 * 根据ID查找企业详情信息
......
...@@ -179,14 +179,15 @@ ...@@ -179,14 +179,15 @@
FROM FROM
tz_base_enterprise_info info tz_base_enterprise_info info
INNER JOIN tz_jyjc_opening_application tjoa ON info.use_code = tjoa.unit_code 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"> <if test="list !=null and list.size()>0">
AND use_code in AND use_code in
<foreach collection="list" item="item" index="index" open="(" close=")" separator=","> <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test=" city != null and city != ''"> <if test="city != null and city != ''">
and detection_region like concat('%',#{city},'%') and detection_region like concat('%',#{city},'%')
</if> </if>
group by info.use_code 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