Commit d9e3898f authored by hekaiwen's avatar hekaiwen

Merge remote-tracking branch 'origin/develop_tzs_bugfix' into develop_tzs_register_sxs

parents 28091be6 1b2003ac
......@@ -15,7 +15,6 @@
<dependency>
<groupId>com.yeejoin</groupId>
<artifactId>amos-component-security</artifactId>
<version>1.10.8-TZS</version>
</dependency>
<dependency>
<groupId>org.typroject</groupId>
......
......@@ -97,11 +97,11 @@ public class ControllerAop {
urls.add("/tcm/flc-unit-info/region/tree");
urls.add("/tcm/reg-unit-info/management-unit/tree");
urls.add("/tcm/reg-unit-info/unit-type/list");
urls.add("^/tcm/flc-unit-info/hasExistPhone/[0-9]+$");
urls.add("^/tcm/flc-unit-info/sendTelCode/[0-9]+$");
urls.add("^/tcm/reg-unit-info/[A-Za-z0-9]+/check$");
urls.add("^/tcm/flc-unit-info/verifyTelCode/[A-Za-z0-9]+/[A-Za-z0-9]+");
urls.add("^/tcm/flc-unit-info/hasExistUser/[A-Za-z0-9_-]+");
urls.add("/tcm/flc-unit-info/hasExistPhone/[0-9]+$");
urls.add("/tcm/flc-unit-info/sendTelCode/[0-9]+$");
urls.add("/tcm/reg-unit-info/[A-Za-z0-9]+/check$");
urls.add("/tcm/flc-unit-info/verifyTelCode/[A-Za-z0-9]+/[A-Za-z0-9]+");
urls.add("/tcm/flc-unit-info/hasExistUser/.+");
urls.add("/tcm/reg-unit-info/save");
urls.add("/tcm/reg-unit-info/child-list");
urls.add("/tcm/reg-unit-info/management-unit/tree");
......
package com.yeejoin.amos.boot.biz.common.utils;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import org.springframework.stereotype.Component;
@Component
public class SnowflakeIdUtil {
public Long nextId() {
return IdWorker.getId();
}
}
......@@ -2,7 +2,6 @@ package com.yeejoin.amos.boot.biz.config;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.interceptors.PermissionInterceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
......@@ -25,11 +24,6 @@ public class MyBatisPlusConfig {
return globalConfig;
}
@Bean
public Sequence sequence() {
return new Sequence();
}
/**
* pageHelper插件支持
*
......
......@@ -6,6 +6,7 @@ import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* ${table.comment!}
......
......@@ -19,7 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import ${package.Xml}.${entity}Model;
import ${package.Xml}.${entity};
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
......@@ -55,9 +55,9 @@ public class ${table.controllerName} {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<${entity}Model> save(@RequestBody ${entity}Model model) {
model = ${table.serviceImplName ?uncap_first}.createWithModel(model);
return ResponseHelper.buildResponse(model);
public ResponseModel<${entity}> save(@RequestBody ${entity} ) {
entity = ${table.serviceImplName ?uncap_first}.createWithModel(entity);
return ResponseHelper.buildResponse(entity);
}
/**
......@@ -69,9 +69,9 @@ public class ${table.controllerName} {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<${entity}Model> updateBySequenceNbr${entity}(@RequestBody ${entity}Model model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(${table.serviceImplName ?uncap_first}.updateWithModel(model));
public ResponseModel<${entity}> updateBySequenceNbr${entity}(@RequestBody ${entity} entity,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
entity.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(${table.serviceImplName ?uncap_first}.updateWithModel(entity));
}
/**
......@@ -96,7 +96,7 @@ public class ${table.controllerName} {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<${entity}Model> selectOne(@PathVariable Long sequenceNbr) {
public ResponseModel<${entity}> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(${table.serviceImplName ?uncap_first}.queryBySeq(sequenceNbr));
}
......@@ -110,9 +110,9 @@ public class ${table.controllerName} {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "分页查询", notes = "分页查询")
public ResponseModel<Page<${entity}Model>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
public ResponseModel<Page<${entity}>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size) {
Page<${entity}Model> page = new Page<${entity}Model>();
Page<${entity}> page = new Page<${entity}>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(${table.serviceImplName ?uncap_first}.queryFor${entity}Page(page));
......@@ -126,7 +126,7 @@ public class ${table.controllerName} {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<${entity}Model>> selectForList() {
public ResponseModel<List<${entity}>> selectForList() {
return ResponseHelper.buildResponse(${table.serviceImplName ?uncap_first}.queryFor${entity}List());
}
}
......
......@@ -3,7 +3,7 @@ package ${package.ServiceImpl};
import ${package.Entity}.${entity};
import ${package.Mapper}.${table.mapperName};
import ${package.Service}.${table.serviceName};
import ${package.Xml}.${entity}Model;
import ${package.Xml}.${entity};
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -16,18 +16,18 @@ import java.util.List;
* @date ${date}
*/
@Service
public class ${table.serviceImplName} extends BaseService<${entity}Model,${entity},${table.mapperName}> implements ${table.serviceName} {
public class ${table.serviceImplName} extends BaseService<${entity},${entity},${table.mapperName}> implements ${table.serviceName} {
/**
* 分页查询
*/
public Page<${entity}Model> queryFor${entity}Page(Page<${entity}Model> page) {
public Page<${entity}> queryFor${entity}Page(Page<${entity}> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<${entity}Model> queryFor${entity}List() {
public List<${entity}> queryFor${entity}List() {
return this.queryForList("" , false);
}
}
\ No newline at end of file
......@@ -181,7 +181,6 @@
<dependency>
<groupId>com.yeejoin</groupId>
<artifactId>amos-component-security</artifactId>
<version>${amos.version}</version>
</dependency>
</dependencies>
<build>
......
package com.yeejoin.amos.api.openapi.controller;
import com.yeejoin.amos.api.common.restful.utils.ResponseHelper;
import com.yeejoin.amos.api.common.restful.utils.ResponseModel;
import com.yeejoin.amos.api.openapi.face.service.OpenapiBizTokenService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
......@@ -10,15 +16,9 @@ import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import com.yeejoin.amos.api.common.restful.utils.ResponseHelper;
import com.yeejoin.amos.api.common.restful.utils.ResponseModel;
import com.yeejoin.amos.api.openapi.face.service.OpenapiBizTokenService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.validation.constraints.NotBlank;
/**
*
* <pre>
* 企业数据对接票据管理
* </pre>
......@@ -29,8 +29,8 @@ import io.swagger.annotations.ApiOperation;
@RestController
@RequestMapping(value = "/bizToken")
@Api(tags = "bizToken-企业数据对接票据管理")
public class OpenapiBizTokenController
{
@Validated
public class OpenapiBizTokenController {
private static final Logger logger = LogManager.getLogger(OpenapiBizTokenController.class);
@Autowired
......@@ -39,24 +39,11 @@ public class OpenapiBizTokenController
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(value = "申请登录令牌")
@GetMapping(value = "/applyToken")
public ResponseModel<String> applyToken (
@RequestParam String appId) throws Exception
{
logger.info("appId信息:",appId);
public ResponseModel<String> applyToken(
@NotBlank(message = "appId不能为空") @RequestParam String appId) {
logger.info("appId信息:{}", appId);
String appToken = openapiBizTokenService.getByAppId(appId);
logger.info("appToken信息:",appToken);
logger.info("appToken信息:{}", appToken);
return ResponseHelper.buildResponse(appToken);
}
// @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
// @ApiOperation(value = "获取APPID")
// @GetMapping(value = "/getAppId")
// public ResponseModel<String> getAppId (
// @RequestParam String companyCode) throws Exception
// {
// String appId = DesUtil.encode(companyCode, Constant.SECRETKEY);
// logger.info("appId信息:",appId);
// return ResponseHelper.buildResponse(appId);
// }
//
}
......@@ -97,4 +97,17 @@ public class AlertUseUnitStatistics extends BaseEntity {
@TableField("address")
private String address;
/**
* 有效期
*/
private String expiryDate;
/**
* 设备分类代码
*/
private String equipmentClassificationCode;
/**
* 设备分类
*/
private String equipmentClassification;
}
......@@ -17,10 +17,12 @@
) as mainName,
use.USE_UNIT_NAME as useName,
use.USE_UNIT_CREDIT_CODE as unitCode,
ul.expiry_date as expiryDate,
(SELECT supervise_org_name from tz_base_enterprise_info where use_unit_code = use.USE_UNIT_CREDIT_CODE) as supervisoryUnitName,
(SELECT supervise_org_code from tz_base_enterprise_info where use_unit_code = use.USE_UNIT_CREDIT_CODE) as supervisoryUnitOrgCode
from tz_alert_called tac
LEFT JOIN idx_biz_jg_use_info use on tac.equipment_id = use.RECORD
left join tz_base_unit_licence ul ON use.USE_UNIT_CREDIT_CODE = ul.unit_code
WHERE tac.alarm_type_code != '962'
and tac.equipment_id is not null
and use.ADDRESS is not null
......@@ -40,7 +42,14 @@
SELECT count(1) from tz_alert_called where alarm_type_code = '960' and equipment_id = #{equipmentId} and call_time between #{startDate} and #{endDate}
and father_alert is null
) as trappedNum,
(
SELECT equipment_classification_code from tz_alert_called where alarm_type_code = '960' and equipment_id = #{equipmentId} and call_time between #{startDate} and #{endDate}
and father_alert is null group by equipment_id limit 1
) as equipmentClassificationCode,
(
SELECT equipment_classification from tz_alert_called where alarm_type_code = '960' and equipment_id = #{equipmentId} and call_time between #{startDate} and #{endDate}
and father_alert is null group by equipment_id limit 1
) as equipmentClassification,
(
SELECT count(1) from tz_alert_called where alarm_type_code = '961' and equipment_id = #{equipmentId} and call_time between #{startDate} and #{endDate}
and father_alert is null
......
......@@ -18,6 +18,11 @@ public class DPFilterParamForDetailDto {
private String cityCode;
/**
* 机构
*/
private String orgCode;
/**
* 业务类型
*/
private String businessType;
......@@ -107,5 +112,62 @@ public class DPFilterParamForDetailDto {
* 业务状态
*/
private String status;
/**
* 工单编号
*/
private String workOrderNumber;
/**
* 接警人
*/
private String recUserName;
/**
* 求援人
*/
private String emergencyPerson;
/**
* 求援开始事件
*/
private String emergencyStartTime;
/**
* 求援结束事件
*/
private String emergencyEndTime;
/**
* 求援电话
*/
private String emergencyCall;
/**
* 电梯识别码
*/
private String deviceId;
/**
* 警情状态
*/
private String alertStatus;
/**
* 处置环节
*/
private String alertStage;
/**
* 检测结果
*/
private String inspectionConclusion;
/**
* 发起单位
*/
private String applicationUnitName;
/**
* 接受单位
*/
private String inspectionUnitName;
}
......@@ -95,4 +95,17 @@ public class AlertUseUnitStatistics extends BaseEntity {
@TableField("address")
private String address;
/**
* 有效期
*/
private String expiryDate;
/**
* 设备分类代码
*/
private String equipmentClassificationCode;
/**
* 设备分类
*/
private String equipmentClassification;
}
package com.yeejoin.amos.boot.module.common.api.enums;
import java.util.*;
/**
* 警情枚举类
*/
public enum AlertCallEnum {
//警情类型
KRJY("960","困人救援","JQLX", false),
GZWX("961","故障维修","JQLX", false),
TSZX("962","投诉咨询","JQLX", false),
//警情来源类型
DHBJ("963","电话报警","JQLYLX", true),
WLJR("1014","物联接入","JQLYLX", true),
YDDSB("1015","移动端上报","JQLYLX", true),
//处置环节
YJJ("860", "已接警", "CZHJ", true),
YPQ("861", "已派遣", "CZHJ", true),
YDS("862", "已到达", "CZHJ", true),
WBYDD("863", "维保已到达", "CZHJ", true),
JYWC("864", "救援完成", "CZHJ", true),
JYHF("865", "救援回访", "CZHJ", true),
WXWC("866", "维修完成", "CZHJ", true),
BXRYFK("867", "报修人已反馈", "CZHJ", true),
WBYCZ("868", "维保已处置", "CZHJ", true),
TSRYFK("869", "投诉人已反馈", "CZHJ", true),
WJA("0", "未结案", "WCZT", true),
YJA("1", "已结案", "WCZT", true),
;
private AlertCallEnum(String code, String name, String type,Boolean isSearch){
this.code=code;
this.name=name;
this.type=type;
this.isSearch=isSearch;
}
private String code;
private String name;
private String type;
private Boolean isSearch;
public String getCode() {
return code;
}
public String getName() {
return name;
}
public String getType() {
return type;
}
public Boolean getSearch() {
return isSearch;
}
public static List<HashMap<String,Object>> getTypeEnumList() {
List<HashMap<String, Object>> list = new ArrayList<>();
for (AlertCallEnum testEnum : EnumSet.allOf(AlertCallEnum.class)) {
if(!testEnum.getSearch()) {
HashMap<String, Object> map = new HashMap<>();
map.put("title", testEnum.name);
map.put("value", testEnum.code);
list.add(map);
}
}
return list;
}
public static Map<String,List<Map<String,Object>>> getSearchEnumList() {
Map<String,List<Map<String,Object>>> searchMap = new HashMap<>();
for (AlertCallEnum testEnum : EnumSet.allOf(AlertCallEnum.class)) {
if(testEnum.getSearch()) {
// 检查 searchMap 中是否存在 testEnum.type 对应的值
List existingList = searchMap.get(testEnum.type);
// 如果不存在,则创建一个新的 ArrayList
if (existingList == null) {
existingList = new ArrayList<>();
searchMap.put(testEnum.type, existingList);
}
// 创建一个 map 并添加到 list 中
HashMap<String, Object> map = new HashMap<>();
map.put("title", testEnum.name);
map.put("value", testEnum.code);
existingList.add(map);
}
}
return searchMap;
}
}
package com.yeejoin.amos.boot.module.common.api.enums;
import java.util.*;
/**
* 警情枚举类
*/
public enum JYJCResultEnum {
//警情类型
KRJY("960","困人救援","JQLX", false),
GZWX("961","故障维修","JQLX", false),
TSZX("962","投诉咨询","JQLX", false),
//检测结果
HG("6040","合格","YYJG", true),
BHG("6041","不合格","YYJG", true),
FJHG("6042","复检合格","YYJG", true),
FJBHG("6043","复检不合格","YYJG", true),
QT("6044","其他","YYJG", true),
ZGHHG("6045","整改后合格","YYJG", true),
FY("6046","符合","YYJG", true),
BFH("6047","不符合","YYJG", true),
FHYQ("6048","符合要求","YYJG", true),
JBFHYQ("6049","基本符合要求","YYJG", true),
BFHYQ("6050","不符合要求","YYJG", true),
YXSY("6051","允许使用","YYJG", true),
JYSY("6052","降压使用","YYJG", true),
JXHYSYPJ("6053","进行合于使用评价","YYJG", true),
;
private JYJCResultEnum(String code, String name, String type, Boolean isSearch){
this.code=code;
this.name=name;
this.type=type;
this.isSearch=isSearch;
}
private String code;
private String name;
private String type;
private Boolean isSearch;
public String getCode() {
return code;
}
public String getName() {
return name;
}
public String getType() {
return type;
}
public Boolean getSearch() {
return isSearch;
}
public static List<HashMap<String,Object>> getTypeEnumList() {
List<HashMap<String, Object>> list = new ArrayList<>();
for (JYJCResultEnum testEnum : EnumSet.allOf(JYJCResultEnum.class)) {
if(!testEnum.getSearch()) {
HashMap<String, Object> map = new HashMap<>();
map.put("title", testEnum.name);
map.put("value", testEnum.code);
list.add(map);
}
}
return list;
}
public static Map<String,List<Map<String,Object>>> getSearchEnumList() {
Map<String,List<Map<String,Object>>> searchMap = new HashMap<>();
for (JYJCResultEnum testEnum : EnumSet.allOf(JYJCResultEnum.class)) {
if(testEnum.getSearch()) {
// 检查 searchMap 中是否存在 testEnum.type 对应的值
List existingList = searchMap.get(testEnum.type);
// 如果不存在,则创建一个新的 ArrayList
if (existingList == null) {
existingList = new ArrayList<>();
searchMap.put(testEnum.type, existingList);
}
// 创建一个 map 并添加到 list 中
HashMap<String, Object> map = new HashMap<>();
map.put("title", testEnum.name);
map.put("value", testEnum.code);
existingList.add(map);
}
}
return searchMap;
}
}
......@@ -31,7 +31,7 @@ import org.typroject.tyboot.core.foundation.utils.Bean;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto;
......@@ -66,7 +66,7 @@ public class DutyCommonServiceImpl implements IDutyCommonService {
DutyPersonShiftServiceImpl dutyPersonShiftService;
@Autowired
Sequence sequence;
SnowflakeIdUtil sequence;
@Autowired
HttpServletRequest request;
......
......@@ -2,7 +2,7 @@ package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.module.common.api.dto.DynamicFormInstanceDto;
......@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
public class DynamicFormInstanceServiceImpl extends BaseService<DynamicFormInstanceDto, DynamicFormInstance, DynamicFormInstanceMapper> implements IDynamicFormInstanceService {
@Autowired
Sequence sequence;
SnowflakeIdUtil sequence;
@Autowired
DynamicFormColumnServiceImpl dynamicFormColumnService;
......
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.common.api.dto.FirefightersContractDto;
import com.yeejoin.amos.boot.module.common.api.entity.FirefightersContract;
......@@ -36,7 +36,7 @@ public class FirefightersContractServiceImpl extends BaseService<FirefightersCon
@Autowired
SourceFileServiceImpl sourceFileService;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
......
......@@ -27,7 +27,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
......@@ -75,7 +75,7 @@ public class KeySiteServiceImpl extends BaseService<KeySiteDto, KeySite, KeySite
EquipFeignClient equipFeignClient;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
@Value("${auth-key-key-site:key_site_info}")
private String authKey;
......
......@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
......@@ -65,7 +65,7 @@ public class MaintenanceCompanyServiceImpl
DynamicFormColumnServiceImpl dynamicFormColumnServiceImpl;
@Autowired
Sequence sequence;
SnowflakeIdUtil sequence;
@Autowired
MaintenanceCompanyMapper maintenanceCompanyMapper;
......
......@@ -2,7 +2,7 @@ package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
......@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
public class SourceFileServiceImpl extends BaseService<SourceFileDto, SourceFile, SourceFileMapper> implements ISourceFileService {
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
/**
* 分页查询
......
......@@ -4,7 +4,7 @@ package com.yeejoin.amos.boot.module.cylinder.biz.event.listener;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.cylinder.api.dto.CylinderQuestionInfoDto;
import com.yeejoin.amos.boot.module.cylinder.api.entity.CylinderQuestionInfo;
import com.yeejoin.amos.boot.module.cylinder.biz.event.CylinderQuestionCreateEvent;
......@@ -40,11 +40,11 @@ public class CylinderQuestionCreateEventListener implements ApplicationListener<
private CylinderQuestionInfoServiceImpl cylinderQuestionInfoService;
private Sequence sequence;
private SnowflakeIdUtil sequence;
public CylinderQuestionCreateEventListener(CylinderInfoServiceImpl cylinderInfoService,
CylinderQuestionInfoServiceImpl cylinderQuestionInfoService,
Sequence sequence) {
SnowflakeIdUtil sequence) {
this.cylinderInfoService = cylinderInfoService;
this.cylinderQuestionInfoService = cylinderQuestionInfoService;
this.sequence = sequence;
......
......@@ -5,7 +5,7 @@ import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.cylinder.api.dto.CylinderFillingRecordStatisticsUnitDayDto;
import com.yeejoin.amos.boot.module.cylinder.api.entity.CylinderFillingRecordStatisticsUnitDay;
import com.yeejoin.amos.boot.module.cylinder.biz.event.CylinderStatisticsUnitDayInsertOrUpdateEvent;
......@@ -46,12 +46,12 @@ public class CylinderStatisticsUnitDayInsertOrUpdateEventListener implements App
private ReentrantLock reentrantLock = new ReentrantLock();
private Sequence sequence;
private SnowflakeIdUtil sequence;
private CylinderFillingRecordStatisticsUnitDayServiceImpl statisticsUnitDayService;
public CylinderStatisticsUnitDayInsertOrUpdateEventListener(CylinderFillingRecordStatisticsUnitDayServiceImpl statisticsUnitDayService,
Sequence sequence) {
SnowflakeIdUtil sequence) {
this.statisticsUnitDayService = statisticsUnitDayService;
this.sequence = sequence;
}
......
......@@ -160,5 +160,7 @@ public class JgChangeRegistrationTransferDto extends BaseDto {
@ApiModelProperty(value = " 转办后执行人的Id逗号分割")
private String transferToUserIds;
@ApiModelProperty (value = "其他附件")
private String otherAccessories;
}
package com.yeejoin.amos.boot.module.jg.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 设备保险信息
*
* @author LiuLin
* @date 2024-10-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "JgEquipInsuranceDto", description = "设备保险信息")
public class JgEquipInsuranceDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "设备id")
private String equId;
@ApiModelProperty(value = "承保单位名称")
private String underWriteName;
@ApiModelProperty(value = "承保单位统一信用代码")
private String underWriteCreditCode;
@ApiModelProperty(value = "保险服务单位")
private String insuranceServiceUnitName;
@ApiModelProperty(value = "保险服务单位统一社会信用代码")
private String insuranceServiceUnitCode;
@ApiModelProperty(value = "理赔电话")
private String claimTelephone;
@ApiModelProperty(value = "保险单号")
private String insuranceNumber;
@ApiModelProperty(value = "保险截止日期")
private Date insuranceExpirationDate;
@ApiModelProperty(value = "设备种类")
private String equList;
@ApiModelProperty(value = "设备类别")
private String equCategory;
@ApiModelProperty(value = "设备品种")
private String equDefine;
@ApiModelProperty(value = "登记机关")
private String receiveOrgName;
@ApiModelProperty(value = "使用单位")
private String useUnitName;
@ApiModelProperty(value = "单位内编号")
private String useInnerCode;
@ApiModelProperty(value = "出厂编号")
private String factoryNum;
@ApiModelProperty(value = "使用登记证编号")
private String useRegistrationCode;
}
......@@ -261,4 +261,10 @@ public class JgChangeRegistrationTransfer extends BaseEntity {
*/
@TableField("transfer_type")
private String transferType;
/**
* 其他附件
*/
@TableField(value = "other_accessories")
private String otherAccessories;
}
package com.yeejoin.amos.boot.module.jg.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 设备保险信息
*
* @author LiuLin
* @date 2024-10-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tzs_jg_equip_insurance")
public class JgEquipInsurance extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 设备id
*/
@TableField("equ_id")
private String equId;
/**
* 承保单位名称
*/
@TableField("under_write_name")
private String underWriteName;
/**
* 承保单位统一信用代码
*/
@TableField("under_write_credit_code")
private String underWriteCreditCode;
/**
* 保险服务单位
*/
@TableField("insurance_service_unit_name")
private String insuranceServiceUnitName;
/**
* 保险服务单位统一社会信用代码
*/
@TableField("insurance_service_unit_code")
private String insuranceServiceUnitCode;
/**
* 理赔电话
*/
@TableField("claim_telephone")
private String claimTelephone;
/**
* 保险单号
*/
@TableField("insurance_number")
private String insuranceNumber;
/**
* 保险截止日期
*/
@TableField("insurance_expiration_date")
private Date insuranceExpirationDate;
/**
* 设备种类
*/
@TableField("equ_list")
private String equList;
/**
* 设备类别
*/
@TableField("equ_category")
private String equCategory;
/**
* 设备品种
*/
@TableField("equ_define")
private String equDefine;
}
......@@ -123,7 +123,7 @@ public interface CommonMapper extends BaseMapper<EquipmentCategory> {
*/
Integer checkFactoryNumUnique(@Param("factoryNum") String factoryNum,
@Param("sequenceNbr") String sequenceNbr,
@Param("useUnitCreditCode") String useUnitCreditCode);
@Param("produceUnitCreditCode") String produceUnitCreditCode);
/**
* 使用登记证编号全库唯一校验
......
package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.JgEquipInsuranceDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgEquipInsurance;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* Mapper 接口
*
* @author LiuLin
* @date 2024-10-17
*/
public interface JgEquipInsuranceMapper extends BaseMapper<JgEquipInsurance> {
Page<JgEquipInsuranceDto> getListPage(@Param("page") Page<JgEquipInsurance> page,
@Param("sort") SortVo sortMap,
@Param("dto") JgEquipInsuranceDto dto);
JgEquipInsuranceDto getDetailById(@Param("sequenceNbr") Long sequenceNbr);
@MapKey("orgCode")
List<Map<String, Object>> getEquipInsuranceTotal(@Param("orgCode") String orgCode);
}
......@@ -23,9 +23,10 @@ public interface IJgChangeRegistrationUnitService {
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @param selectedOrgInfo
* @return 安装告知
*/
Map<String, Map<String, Object>> queryBySequenceNbr(Long sequenceNbr);
Map<String, Map<String, Object>> queryBySequenceNbr(Long sequenceNbr, ReginParams selectedOrgInfo);
/**
* 更新安装告知
......
package com.yeejoin.amos.boot.module.jg.api.service;
/**
* 接口类
*
* @author LiuLin
* @date 2024-10-17
*/
public interface IJgEquipInsuranceService {}
......@@ -263,4 +263,10 @@ public class JgVehicleInformationVo implements Serializable {
private String oRegDate;
private CompanyBo companyInfo;
@ApiModelProperty(value = "主体类型")
private String companyType;
@ApiModelProperty(value = "是否有权限")
private Boolean havingPermission;
}
......@@ -797,13 +797,13 @@
count(1)
FROM
"idx_biz_jg_factory_info" ibjfi
JOIN idx_biz_jg_register_info ibjri ON ibjfi."RECORD" = ibjri."RECORD"
LEFT JOIN idx_biz_jg_use_info ibjui ON ibjri."RECORD" = ibjui."RECORD"
WHERE
ibjri."EQU_LIST" = '2000'
LEFT JOIN idx_biz_jg_register_info ibjri ON ibjfi."RECORD" = ibjri."RECORD"
LEFT JOIN idx_biz_jg_other_info joi ON joi."RECORD" = ibjfi."RECORD"
WHERE ibjri."EQU_LIST" = '2000'
AND ibjri."EQU_CATEGORY" = '2300'
AND ibjfi."FACTORY_NUM" = #{factoryNum}
AND ibjui."USE_UNIT_CREDIT_CODE" = #{useUnitCreditCode}
AND ibjfi."PRODUCE_UNIT_CREDIT_CODE" = #{produceUnitCreditCode}
AND joi.CLAIM_STATUS = '已认领'
</select>
<select id="useRegistrationCertificateAccountUnique" resultType="java.lang.Integer">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.jg.api.mapper.JgEquipInsuranceMapper">
<sql id="page-list">
select
tjei.sequence_nbr as sequenceNbr,
tjei.equ_id as equId,
tjei.under_write_name as underWriteName,
tjei.under_write_credit_code as underWriteCreditCode,
tjei.insurance_service_unit_name as insuranceServiceUnitName,
tjei.insurance_service_unit_code as insuranceServiceUnitCode,
tjei.claim_telephone as claimTelephone,
tjei.insurance_number as insuranceNumber,
tjei.insurance_expiration_date as insuranceExpirationDate,
date_format(tjei.rec_date,'%Y-%m-%d') as recDate,
ibjsi.ORG_BRANCH_NAME as receiveOrgName,
jri.USE_ORG_CODE as useRegistrationCode,
ibjui.USE_UNIT_NAME as useUnitName,
ibjui.USE_INNER_CODE as useInnerCode,
ibjfi.FACTORY_NUM as factoryNum,
GROUP_CONCAT(DISTINCT (SELECT name from tz_equipment_category where code = jri.EQU_LIST)) AS equList,
GROUP_CONCAT(DISTINCT (SELECT name from tz_equipment_category where code = jri.EQU_CATEGORY)) as equCategory,
GROUP_CONCAT(DISTINCT (SELECT name from tz_equipment_category where code = jri.EQU_DEFINE)) as equDefine
from
tzs_jg_equip_insurance tjei
LEFT JOIN idx_biz_jg_register_info jri on tjei.equ_id = jri.RECORD
LEFT JOIN idx_biz_jg_use_info ibjui on tjei.equ_id = ibjui.RECORD
LEFT JOIN idx_biz_jg_factory_info ibjfi on tjei.equ_id = ibjfi.RECORD
LEFT JOIN idx_biz_jg_supervision_info ibjsi ON tjei.equ_id = ibjsi.RECORD
</sql>
<select id="getListPage" resultType="com.yeejoin.amos.boot.module.jg.api.dto.JgEquipInsuranceDto">
<include refid="page-list"/>
<where>
tjei.is_delete = 0
<if test="dto.factoryNum != null and dto.factoryNum != ''">
AND ibjfi.FACTORY_NUM = #{dto.factoryNum}
</if>
<if test="dto.useInnerCode != null and dto.useInnerCode != ''">
AND ibjui.USE_INNER_CODE = #{dto.useInnerCode}
</if>
<if test="dto.underWriteName != null and dto.underWriteName != ''">
AND tjei.under_write_name like concat('%',#{dto.underWriteName},'%')
</if>
<if test="dto.insuranceNumber != null and dto.insuranceNumber != ''">
AND tjei.insurance_number like concat('%',#{dto.insuranceNumber},'%')
</if>
<if test="dto.useRegistrationCode != null and dto.useRegistrationCode != ''">
AND jri.USE_ORG_CODE like concat('%',#{dto.useRegistrationCode},'%')
</if>
GROUP BY tjei.equ_id
</where>
order by
<if test="sort != null">
tjei.${sort.field} ${sort.sortType},
</if>
tjei.rec_date DESC
</select>
<select id="getDetailById" resultType="com.yeejoin.amos.boot.module.jg.api.dto.JgEquipInsuranceDto">
<include refid="page-list"/>
where tjei.sequence_nbr = #{sequenceNbr} and tjei.is_delete = 0
</select>
<select id="getEquipInsuranceTotal" resultType="map">
SELECT
COALESCE(SUM(CASE WHEN jri.EQU_LIST = '3000' THEN 1 ELSE 0 END), 0) AS elevatorInsuranceCount,
COALESCE(SUM(CASE WHEN jri.EQU_CATEGORY = '2300' THEN 1 ELSE 0 END), 0) AS cylinderInsuranceCount
FROM
tzs_jg_equip_insurance tjei
LEFT JOIN idx_biz_jg_supervision_info ibjsi ON tjei.equ_id = ibjsi.RECORD
LEFT JOIN idx_biz_jg_register_info jri ON tjei.equ_id = jri.RECORD
WHERE
tjei.is_delete = 0
AND ibjsi.ORG_BRANCH_CODE LIKE CONCAT(#{orgCode}, '%');
</select>
</mapper>
......@@ -6,7 +6,8 @@
where sequence_nbr = #{id}
</update>
<sql id="page-list">
select ur.sequence_nbr as sequenceNbr,
select
ur.sequence_nbr as sequenceNbr,
ur.audit_status as auditStatus,
date_format(ur.reg_date,'%Y-%m-%d') as regDate,
ur.use_unit_name as useUnitName,
......@@ -17,7 +18,6 @@
ur.apply_no as applyNo,
ur.next_execute_ids as nextExecuteIds,
ur.promoter,
GROUP_CONCAT(DISTINCT other.supervisory_code) as supervisoryCode,
ur.use_registration_code as useRegistrationCode,
date_format(ur.audit_pass_date,'%Y-%m-%d') as auditPassDate,
date_format(ur.create_date,'%Y-%m-%d') as createDate,
......@@ -28,6 +28,9 @@
ur.rec_date as recDate,
ur.manage_type as manageType,
ur.reg_type as regType,
ur.use_address as fullAddress,
ur.cancel_reason as cancelReason,
GROUP_CONCAT(DISTINCT other.supervisory_code) as supervisoryCode,
GROUP_CONCAT(DISTINCT other.CODE96333) AS code96333,
GROUP_CONCAT(DISTINCT (SELECT name from tz_equipment_category where code = jri.EQU_CATEGORY)) as equCategory,
GROUP_CONCAT(DISTINCT (SELECT name from tz_equipment_category where code = jri.EQU_DEFINE)) as equDefine,
......@@ -37,16 +40,12 @@
GROUP_CONCAT(DISTINCT jri.EQU_CODE) AS equCode,
GROUP_CONCAT(DISTINCT jri.EQU_LIST) AS equList,
GROUP_CONCAT(DISTINCT (SELECT name from tz_equipment_category where code = jri.EQU_LIST)) AS equListName,
GROUP_CONCAT(DISTINCT use.USE_INNER_CODE) AS innerCode,
GROUP_CONCAT(DISTINCT re.equ_id) AS equipId,
concat(use."PROVINCE_NAME", '', use."CITY_NAME", '', use."COUNTY_NAME", '', use."STREET_NAME") as fullAddress,
use."ADDRESS" as detailedAddress,
ibjsi.ORG_BRANCH_NAME as orgBranchName,
ur.cancel_reason as cancelReason
from tzs_jg_use_registration ur
GROUP_CONCAT(DISTINCT ibjsi.ORG_BRANCH_NAME) AS orgBranchName
from
tzs_jg_use_registration ur
LEFT JOIN tzs_jg_use_registration_eq re on ur.sequence_nbr = re.equip_transfer_id
LEFT JOIN idx_biz_jg_register_info jri on re.equ_id = jri.RECORD
LEFT JOIN idx_biz_jg_use_info use on re.equ_id = use.RECORD
LEFT JOIN idx_biz_jg_other_info other on re.equ_id = other.RECORD
LEFT JOIN idx_biz_jg_supervision_info ibjsi on re.equ_id = ibjsi.RECORD
</sql>
......@@ -135,6 +134,8 @@
</foreach>
</if>
</where>
GROUP BY
re.equip_transfer_id
order by
ur.create_date DESC, ur.apply_no DESC
</select>
......@@ -383,7 +384,8 @@
</select>
<select id="getMaintenanceDetail" resultType="java.util.Map">
SELECT tjmc."maintenance_unit_name" as maintenanceUnitName,
SELECT
tjmc."maintenance_unit_name" as maintenanceUnitName,
tjmc."use_unit_name" as maintenanceUseUnitName,
tjmc."maintenance_manager_name" as maintenanceManagerName,
tjmc."maintenance_manager_phone" as maintenanceManagerPhone,
......@@ -392,11 +394,14 @@
tjmc."maintenance_manager_two_name" as maintenanceManagerTwoName,
tjmc."maintenance_manager_two_phone" as maintenanceManagerTwoPhone,
tjmc."maintenance_contract" as maintenanceContract,
tjmc."other_accessories" as maintOtherAccessories
FROM "tzs_jg_maintenance_contract_eq" as tjmce
LEFT JOIN "tzs_jg_maintenance_contract" as tjmc
ON tjmce."equip_transfer_id" = tjmc."sequence_nbr"
WHERE tjmce."equ_id" = #{id}
tjmc."other_accessories" as maintOtherAccessories,
tjmc."inform_start" as informStart,
tjmc."inform_end" as informEnd
FROM
"tzs_jg_maintenance_contract_eq" as tjmce
LEFT JOIN "tzs_jg_maintenance_contract" as tjmc ON tjmce."equip_transfer_id" = tjmc."sequence_nbr"
WHERE
tjmce."equ_id" = #{id}
AND tjmc."status" = '已完成'
ORDER BY tjmce."rec_date" desc
LIMIT 1
......
......@@ -18,6 +18,7 @@ import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService;
import com.yeejoin.amos.boot.module.jg.biz.service.IPdfService;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgRegistrationHistoryServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.utils.CodeUtil;
import com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.feign.systemctl.Systemctl;
......@@ -150,12 +151,21 @@ public class CommonController extends BaseController {
String companyType = selectedOrgInfo.getCompany().getCompanyType();
if ("个人主体".equals(companyType)) {
String[] code = selectedOrgInfo.getCompany().getCompanyCode().split("_");
map.put("useUnitCreditCode", code.length > 1 ? code[1] : code[0]);
String useUnitCode = code.length > 1 ? code[1] : code[0];
map.put("useUnitCreditCode", useUnitCode);
String[] companyName = selectedOrgInfo.getCompany().getCompanyName().split("_");
map.put("useUnitName", companyName.length > 1 ? companyName[1] : companyName[0]);
map.put("address", commonService.getEnterpriseInfo(useUnitCode).get("address"));
// 冗余兼容其他业务
map.put("useUnitAddress", map.get("address"));
map.put("companyType", "person");
} else {
map.put("useUnitCreditCode", selectedOrgInfo.getCompany().getCompanyCode());
map.put("useUnitName", selectedOrgInfo.getCompany().getCompanyName());
map.put("address", commonService.getEnterpriseInfo(selectedOrgInfo.getCompany().getCompanyCode()).get("address"));
// 冗余兼容其他业务
map.put("useUnitAddress", map.get("address"));
map.put("companyType", "company");
}
return ResponseHelper.buildResponse(map);
}
......@@ -182,7 +192,7 @@ public class CommonController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/equipmentClassification")
@ApiOperation(httpMethod = "GET", value = "设备分类", notes = "1,设备种类 2,设备类别 3,设备品种")
public ResponseModel<List<EquipmentCategory>> equipmentClassification(@RequestParam(value = "type") String type) {
public ResponseModel<List<EquipmentCategoryDto>> equipmentClassification(@RequestParam(value = "type") String type) {
return ResponseHelper.buildResponse(commonService.equipmentClassification(type));
}
......
......@@ -117,7 +117,7 @@ public class JgChangeRegistrationUnitController extends BaseController {
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个单位变更", notes = "根据sequenceNbr查询单个单位变更")
public ResponseModel<Map<String,
Map<String, Object>>> selectOne(@RequestParam("sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(jgChangeRegistrationUnitServiceImpl.queryBySequenceNbr(sequenceNbr));
return ResponseHelper.buildResponse(jgChangeRegistrationUnitServiceImpl.queryBySequenceNbr(sequenceNbr, getSelectedOrgInfo()));
}
......@@ -202,4 +202,20 @@ public class JgChangeRegistrationUnitController extends BaseController {
jgChangeRegistrationUnitServiceImpl.exportUseRegistrationCertificate(sequenceNbr, response, printType);
}
/**
* bug24304脏数据处理(单位变更登记一勾选过多,部分变更设备失败,现在将变更失败的设备变更过去)
*
* @param applyNos 单位变更的申请编号
* @return result
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/bug24304")
@ApiOperation(httpMethod = "GET", value = "bug24304脏数据处理(单位变更登记一勾选过多,部分变更设备失败,现在将变更失败的设备变更过去)",
notes = "bug24304脏数据处理(单位变更登记一勾选过多,部分变更设备失败,现在将变更失败的设备变更过去")
public ResponseModel<String> bug24304(@RequestParam(value = "applyNos")
@ApiParam(value = "单位变更的申请编号,多个用逗号分隔") String applyNos) {
jgChangeRegistrationUnitServiceImpl.bug24304Handle(applyNos);
return ResponseHelper.buildResponse("申请单号:" + applyNos + "数据修改成功");
}
}
......@@ -162,7 +162,7 @@ public class JgChangeVehicleRegistrationUnitController extends BaseController {
@GetMapping(value = "/details")
@ApiOperation(httpMethod = "GET", value = "获取详情", notes = "获取详情")
public ResponseModel<Map<String, Object>> getDetails(@RequestParam(value = "sequenceNbr") String sequenceNbr) {
return ResponseHelper.buildResponse(jgChangeVehicleRegistrationUnitServiceImpl.getDetails(sequenceNbr));
return ResponseHelper.buildResponse(jgChangeVehicleRegistrationUnitServiceImpl.getDetails(sequenceNbr, getSelectedOrgInfo()));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
......
package com.yeejoin.amos.boot.module.jg.biz.controller;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.api.dto.JgEquipInsuranceDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgEquipInsurance;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgEquipInsuranceServiceImpl;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
import java.util.Map;
/**
* 设备保险信息控制类
* @author LiuLin
* @date 2024-10-17
*/
@RestController
@Api(tags = "Api")
@RequestMapping(value = "/jg-equip-insurance")
public class JgEquipInsuranceController extends BaseController {
@Autowired
JgEquipInsuranceServiceImpl jgEquipInsuranceServiceImpl;
/**
* 新增
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<Object> save(@RequestBody JSONObject map) {
return ResponseHelper.buildResponse(jgEquipInsuranceServiceImpl.save(map));
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/update")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<JgEquipInsurance> updateBySequenceNbrJgEquipInsurance(@RequestBody JgEquipInsurance entity,
@RequestParam(value = "sequenceNbr") Long sequenceNbr) {
entity.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(jgEquipInsuranceServiceImpl.updateWithModel(entity));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/delete")
@ApiOperation(httpMethod = "POST", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(@RequestParam(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(jgEquipInsuranceServiceImpl.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getDetail")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<JgEquipInsuranceDto> getDetail(@RequestParam Long sequenceNbr) {
return ResponseHelper.buildResponse(jgEquipInsuranceServiceImpl.getDetail(sequenceNbr));
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "分页查询", notes = "分页查询")
public ResponseModel<Page<JgEquipInsuranceDto>> queryForPage(@RequestParam(value = "sort", required = false) String sort,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size,
JgEquipInsuranceDto dto){
Page<JgEquipInsurance> page = new Page<>(current, size);
return ResponseHelper.buildResponse(jgEquipInsuranceServiceImpl.queryForJgEquipInsurancePage(page, sort, dto));
}
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<JgEquipInsurance>> selectForList() {
return ResponseHelper.buildResponse(jgEquipInsuranceServiceImpl.queryForJgEquipInsuranceList());
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "市级为维度,责任保险统计")
@GetMapping(value = "/countLiabilityInsuranceStatisticsByCity")
public ResponseModel<Map<String, Object>> countLiabilityInsuranceStatisticsByCity() {
return ResponseHelper.buildResponse(jgEquipInsuranceServiceImpl.countLiabilityInsuranceStatisticsByCity());
}
}
......@@ -112,7 +112,10 @@ public class JgUseRegistrationController extends BaseController {
dto.setReceiveCompanyCode(info.getCompany().getCompanyCode());
}
Page<Map<String, Object>> list = jgUseRegistrationServiceImpl.getList(dto, sort, page, dto.getRoleIds());
list.getRecords().forEach(x -> x.put("companyType", info.getCompany().getCompanyType()));
list.getRecords().forEach(x -> {
x.put("companyType", info.getCompany().getCompanyType());
x.put("regTypeDesc", "1".equals(x.get("regType")) ? "历史登记" : "新增登记");
});
return ResponseHelper.buildResponse(list);
}
......
......@@ -144,7 +144,10 @@ public class JgVehicleInformationController extends BaseController {
dto.setDataType(BaseController.COMPANY_TYPE_SUPERVISION);
}
Page<Map<String, Object>> list = jgVehicleInformationServiceImpl.getPageList(dto,sort, page, dto.getRoleIds());
list.getRecords().forEach(x -> x.put("companyType", info.getCompany().getCompanyType()));
list.getRecords().forEach(x -> {
x.put("companyType", info.getCompany().getCompanyType());
x.put("regTypeDesc", "1".equals(x.get("regType")) ? "历史登记" : "新增登记");
});
return ResponseHelper.buildResponse(list);
}
......@@ -171,7 +174,7 @@ public class JgVehicleInformationController extends BaseController {
@GetMapping(value = "/details")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个车用气瓶控制类", notes = "根据sequenceNbr查询单个车用气瓶控制类")
public ResponseModel<JgVehicleInformationVo> selectOne(@RequestParam("sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(jgVehicleInformationServiceImpl.queryBySequenceNbr(sequenceNbr));
return ResponseHelper.buildResponse(jgVehicleInformationServiceImpl.queryBySequenceNbr(sequenceNbr, getSelectedOrgInfo()));
}
/**
......
......@@ -9,6 +9,7 @@ import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.module.jg.api.dto.InstanceRuntimeData;
import com.yeejoin.amos.boot.module.jg.api.dto.UseFlagParamDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage;
import com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory;
import javax.servlet.http.HttpServletResponse;
......@@ -184,7 +185,7 @@ public interface ICommonService {
* @param type 1,设备种类 2,设备类别 3,设备品种
* @return
*/
List<EquipmentCategory> equipmentClassification(String type);
List<EquipmentCategoryDto> equipmentClassification(String type);
/**
* 套打使用标志生成
......
......@@ -12,5 +12,10 @@ public interface IIdxBizJgMaintenanceRecordInfoService {
boolean saveOrUpdateData(IdxBizJgMaintenanceRecordInfo maintenanceRecordInfo);
/**
* 按照创建日期倒叙排列,查询最新的一条维保信息
* @param record 设备唯一标识
* @return 查询最新的一条维保信息
*/
IdxBizJgMaintenanceRecordInfo queryNewestDetailByRecord(String record);
}
......@@ -47,6 +47,7 @@ import com.yeejoin.amos.boot.module.jg.biz.utils.FileExporter;
import com.yeejoin.amos.boot.module.jg.biz.utils.ImageUtils;
import com.yeejoin.amos.boot.module.jg.biz.utils.JsonUtils;
import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils;
import com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.EquipTechParamPipeline;
import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory;
import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo;
......@@ -1968,9 +1969,9 @@ public class CommonServiceImpl implements ICommonService {
* .c@return
*/
@Override
public List<EquipmentCategory> equipmentClassification(String type) {
List<EquipmentCategory> categoryList = equipmentCategoryMapper.selectList(new QueryWrapper<>());
List<EquipmentCategory> result = Collections.emptyList();
public List<EquipmentCategoryDto> equipmentClassification(String type) {
List<EquipmentCategoryDto> categoryList = equipmentCategoryMapper.selectClassifyNoStart7();
List<EquipmentCategoryDto> result = Collections.emptyList();
switch (type) {
case "1":
result = categoryList.stream().filter(category -> Pattern.compile("^[^\\D0]*000$").matcher(category.getCode()).matches()).collect(Collectors.toList());
......
......@@ -25,16 +25,19 @@ public class IdxBizJgMaintenanceRecordInfoServiceImpl extends BaseService<IdxBiz
return this.saveOrUpdate(maintenanceRecordInfo);
}
//查询最新的记录
/**
* 查询最新的维保记录
*/
@Override
public IdxBizJgMaintenanceRecordInfo queryNewestDetailByRecord(String record) {
IdxBizJgMaintenanceRecordInfo result = new IdxBizJgMaintenanceRecordInfo();
QueryWrapper<IdxBizJgMaintenanceRecordInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(IdxBizJgMaintenanceRecordInfo::getRecord,record).orderByDesc(IdxBizJgMaintenanceRecordInfo::getInformEnd);
List<IdxBizJgMaintenanceRecordInfo> maintenanceRecordInfoList = list(queryWrapper);
if(!ValidationUtil.isEmpty(maintenanceRecordInfoList)){
BeanUtils.copyProperties(maintenanceRecordInfoList.get(0),result);
queryWrapper.lambda().eq(IdxBizJgMaintenanceRecordInfo::getRecord,record).orderByDesc(IdxBizJgMaintenanceRecordInfo::getRecDate).last("limit 1");
IdxBizJgMaintenanceRecordInfo init = new IdxBizJgMaintenanceRecordInfo();
IdxBizJgMaintenanceRecordInfo last = getOne(queryWrapper);
if(last != null){
init = last;
}
return result;
return init;
}
......
......@@ -13,7 +13,7 @@ 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.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.base.Joiner;
......@@ -266,7 +266,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
@Autowired
private JgCertificateChangeRecordServiceImpl certificateChangeRecordService;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
@Autowired
private JgCertificateChangeRecordEqServiceImpl certificateChangeRecordEqService;
@Autowired
......@@ -461,9 +461,9 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
}
}
private void checkFactoryNumUnique(String factoryNum, String useUnitCreditCode, StringBuilder result) {
private void checkFactoryNumUnique(String factoryNum, String produceUnitCreditCode, StringBuilder result) {
// 车用气瓶业务里面的 出厂编号/产品编码 校验唯一性(产品编号在车用气瓶范围内全局唯一)
if (commonMapper.checkFactoryNumUnique(factoryNum, null, useUnitCreditCode) > 0) {
if (commonMapper.checkFactoryNumUnique(factoryNum, null, produceUnitCreditCode) > 0) {
result.append("出厂编号/产品编码在该企业中已存在!");
}
}
......@@ -1526,8 +1526,18 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
.mustNot(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his"));
}
} else if (ValidationUtil.equals(queryType, "WB")) {
// 对于xWB类型查询,排除jg_his
dBuilder.mustNot(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his"));
// 既要控制电梯-历史设备新增后,只能走历史平台登记,不能走维保备案-新设备登记
// 又要控制电梯历史设备在历史登记完成后。可以做维保备案
// 历史设备且做过历史登记
BoolQueryBuilder hisBuilder = QueryBuilders.boolQuery();
hisBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his"));
hisBuilder.must(QueryBuilders.termQuery("EQU_STATE", EquimentEnum.ZAIYONG.getCode()));
dBuilder.should(hisBuilder);
// 或新设备
BoolQueryBuilder jgBuilder = QueryBuilders.boolQuery();
jgBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg"));
jgBuilder.mustNot(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his"));
dBuilder.should(jgBuilder);
} else {
// 查所有,前缀 jg
dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg"));
......@@ -2317,14 +2327,12 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
IdxBizJgConstructionInfo constructionInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgConstructionInfo.class);
// 注册登记信息
IdxBizJgRegisterInfo registerInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgRegisterInfo.class);
// 维保备案
IdxBizJgMaintenanceRecordInfo maintenanceRecordInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgMaintenanceRecordInfo.class);
// 监督管理
IdxBizJgSupervisionInfo supervisionInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgSupervisionInfo.class);
// 其他信息
IdxBizJgOtherInfo otherInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgOtherInfo.class);
// 检验检测 【新增时】 固定式压力容器(2100)和 气瓶(2300)可以添加检验检测信息
if ("add".equals(submitType)) {
if ("add".equals(submitType) || isCopy) {
if (CylinderTypeEnum.CYLINDER.getCode().equals(equCategory) || "2100".equals(equCategory)) {
IdxBizJgInspectionDetectionInfo inspectionDetectionInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgInspectionDetectionInfo.class);
List<Map<String, Object>> inspectionAndTestingInstitutions = commonService.getUnitListByType("inspection", "gasCylindersForCars");
......@@ -2443,12 +2451,6 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
registerInfo.setUseOrgCode(isCopy ? "" : registerInfo.getUseOrgCode());
this.saveOrUpdate(registerInfo);
// 维保备案
maintenanceRecordInfo.setRecord(record);
maintenanceRecordInfo.setRecDate(date);
maintenanceRecordInfo.setSequenceNbr(OPERATESAVE.equals(operateType) ? null : String.valueOf(equipmentInfoForm.get("MAINTENANCERECORDINFO_SEQ")));
iIdxBizJgMaintenanceRecordInfoService.saveOrUpdateData(maintenanceRecordInfo);
// 监督管理
supervisionInfo.setRecord(record);
supervisionInfo.setRecDate(date);
......@@ -2864,60 +2866,9 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
}
if ("his".equals(equipInfoDto.getDataSource())) {
String useRegistrationCode = equipInfoDto.getUseOrgCode();
//使用登记证编号判断是否使用未来系统生成编号
String key = useRegistrationCode.length() >= 5 ? useRegistrationCode.substring(0, 5) : useRegistrationCode;
List<String> prefixes = Collections.unmodifiableList(Arrays.asList("容", "锅", "管", "瓶", "梯", "起", "索", "游", "车"));
//容15鲁G00302(12)
if (useRegistrationCode.length() == 14 && prefixes.stream().anyMatch(key::startsWith)) {
// 如果 prefix 不等于 "瓶31" 或 "瓶32" 则继续执行逻辑
ValueOperations<String, String> valueOps = redisTemplate.opsForValue();
String currentSequenceStr = valueOps.get(key);
String extractedValue = useRegistrationCode.substring(5, 10);
String extractedYearStr = useRegistrationCode.substring(useRegistrationCode.indexOf('(') + 1, useRegistrationCode.indexOf(')'));
int currentYearLastTwoDigits = LocalDate.now().getYear() % 100;
// 提取年份
int extractedYear = Integer.parseInt(extractedYearStr);
if (currentYearLastTwoDigits == extractedYear) {
if (redisUtils.hasKey(useRegistrationCode.substring(0, 5))) {
String prefix = useRegistrationCode.substring(0, 3);
if (Stream.of("瓶31", "瓶32").noneMatch(prefix::equals) && currentSequenceStr != null) {
try {
if (Character.isLetter(extractedValue.charAt(0))) {
// 提取字母部分并比较
char extractedLetter = extractedValue.charAt(0);
int extractedNumber = Integer.parseInt(extractedValue.substring(1)); // 提取数字部分
// 提取 Redis 中的字母和数字部分
char redisLetter = currentSequenceStr.charAt(0);
//redis中不是字母开头,输入的是字母开头
if (!Character.isLetter(redisLetter)) {
throw new BadRequest("登记证编号不能使用系统还未生成编号!");
}
int redisNumber = Integer.parseInt(currentSequenceStr.substring(1));
// 比较字母和数字
if ((extractedLetter > redisLetter || (extractedLetter == redisLetter && extractedNumber > redisNumber))) {
throw new BadRequest("登记证编号不能使用系统还未生成编号!");
}
} else {
// 如果首字符不是字母,直接进行字符串比较
if (extractedValue.compareTo(currentSequenceStr) > 0) {
throw new BadRequest("登记证编号不能使用系统还未生成编号!");
}
this.checkUseRegistrationCode(equipInfoDto.getUseOrgCode(), "cylinder");
}
} catch (NumberFormatException e) {
throw new BadRequest("数据格式错误");
}
}
} else {
throw new BadRequest("登记证编号不能使用系统还未生成编号!");
}
}
}
}
String record = UUID.randomUUID().toString();
jgRelationEquip.setEquId(record);
jgRelationEquip.setSequenceNbr(sequence.nextId());
......@@ -3181,6 +3132,72 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
return String.format("导入完成,成功导入: %d 条数据!", useInfoList.size());
}
/**
* 使用登记证编号判断是否使用未来系统生成编号
* @param useRegistrationCode 使用登记证编号
* @param regType 历史登记类别(台套set,车用vehicle,气瓶Cylinder)
*/
public void checkUseRegistrationCode(String useRegistrationCode, String regType) {
// 使用登记证编号判断是否使用未来系统生成编号
String key = useRegistrationCode.length() >= 5 ? useRegistrationCode.substring(0, 5) : useRegistrationCode;
List<String> prefixes = Collections.unmodifiableList(Arrays.asList("容", "锅", "管", "瓶", "梯", "起", "索", "游", "车"));
if (useRegistrationCode.length() == 14 && prefixes.stream().anyMatch(key::startsWith)) {
// 如果 prefix 不等于 "瓶31" 或 "瓶32" 则继续执行逻辑
ValueOperations<String, String> valueOps = redisTemplate.opsForValue();
String currentSequenceStr = valueOps.get(key);
String extractedValue = useRegistrationCode.substring(5, 10);
String extractedYearStr = useRegistrationCode.substring(useRegistrationCode.indexOf('(') + 1, useRegistrationCode.indexOf(')'));
int currentYearLastTwoDigits = LocalDate.now().getYear() % 100;
// 提取年份
int extractedYear = Integer.parseInt(extractedYearStr);
if (currentYearLastTwoDigits == extractedYear) {
if (redisUtils.hasKey(useRegistrationCode.substring(0, 5))) {
String prefix = useRegistrationCode.substring(0, 3);
// 检查regType是否为Cylinder,如果是,才执行"瓶31" 和 "瓶32" 的条件判断
if (!"cylinder".equals(regType) || Stream.of("瓶31", "瓶32").noneMatch(prefix::equals)) {
if (currentSequenceStr != null) {
try {
if (Character.isLetter(extractedValue.charAt(0))) {
// 提取字母部分并比较
char extractedLetter = extractedValue.charAt(0);
int extractedNumber = Integer.parseInt(extractedValue.substring(1)); // 提取数字部分
// 提取 Redis 中的字母和数字部分
char redisLetter = currentSequenceStr.charAt(0);
// redis中不是字母开头,输入的是字母开头
if (!Character.isLetter(redisLetter)) {
throw new BadRequest("登记证编号不能使用系统还未生成编号!");
}
int redisNumber = Integer.parseInt(currentSequenceStr.substring(1));
// 比较字母和数字
if ((extractedLetter > redisLetter || (extractedLetter == redisLetter && extractedNumber > redisNumber))) {
throw new BadRequest("登记证编号不能使用系统还未生成编号!");
}
} else {
// 如果首字符不是字母,直接进行字符串比较
if (extractedValue.compareTo(currentSequenceStr) > 0) {
throw new BadRequest("登记证编号不能使用系统还未生成编号!");
}
}
} catch (NumberFormatException e) {
throw new BadRequest("数据格式错误");
}
}
}
} else {
throw new BadRequest("登记证编号不能使用系统还未生成编号!");
}
} else if (currentYearLastTwoDigits <= extractedYear){
throw new BadRequest("登记证编号不能使用超出当年年份编号!");
}
}
}
public void updateHistory(JSONObject map, String currentDocumentId) {
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
LambdaQueryWrapper<JgRegistrationHistory> lambda = new QueryWrapper<JgRegistrationHistory>().lambda();
......@@ -3361,7 +3378,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
result.append("出厂编号/产品编码不能重复;");
}
checkNotBlank(data.getCylinderCategory(), "气瓶分类不能为空;", result);
checkFactoryNumUnique(data.getFactoryNum(), company.getCompanyCode(), result);
checkFactoryNumUnique(data.getFactoryNum(), data.getProduceUnitCreditCode(), result);
} else {
checkFactoryNumUniquenessForVehicleCylinder(data.getFactoryNum(), result);
}
......
......@@ -6,7 +6,7 @@ import com.alibaba.fastjson.JSON;
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.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
......@@ -149,7 +149,7 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
private JgCertificateChangeRecordEqServiceImpl jgCertificateChangeRecordEqService;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
/***
* @deprecated 根据查询调教获取分页对象
......
......@@ -5,7 +5,7 @@ import com.alibaba.fastjson.JSON;
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.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.ImmutableMap;
......@@ -129,7 +129,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
@Autowired
private JgUseRegistrationManageServiceImpl registrationManageService;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
@Autowired
private JgCertificateChangeRecordServiceImpl certificateChangeRecordService;
@Autowired
......@@ -325,6 +325,9 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
//设备移装详细地址
oldTransfer.setFullAddress(fullAddress);
oldTransfer.setTransferType((String) tableData.get("transferType"));
if (!ObjectUtils.isEmpty(tableData.get("otherAccessories"))) {
oldTransfer.setOtherAccessories(JSONObject.toJSONString(tableData.get("otherAccessories")));
}
//保存【移装变更登记】基本信息
if (!ValidationUtil.isEmpty(oldTransfer)) {
......@@ -649,6 +652,9 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
resultDataMap.put("receiveCompanyCode", transfer.getReceiveCompanyCode() + "_" + transfer.getReceiveOrgName());
resultDataMap.put("registrationList", newRegistrationList);
}
if (!ObjectUtils.isEmpty(resultDataMap.get("otherAccessories"))) {
resultDataMap.put("otherAccessories", JSONObject.parse(resultDataMap.get("otherAccessories").toString()));
}
String transferSafetyManager = Optional.ofNullable(resultDataMap.get("transferSafetyManager")).orElse("").toString();
if (StringUtil.isNotEmpty(transferSafetyManager)) {
String[] transferSafetyManagerList = transferSafetyManager.split("_");
......
......@@ -6,7 +6,7 @@ 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.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
......@@ -24,8 +24,8 @@ import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationUnitServ
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService;
import com.yeejoin.amos.boot.module.jg.biz.feign.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService;
import com.yeejoin.amos.boot.module.jg.biz.service.ICompensateFlowDataOfRedis;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
......@@ -145,7 +145,7 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
JgRegistrationHistoryServiceImpl registrationHistoryService;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
@Autowired
JgCertificateChangeRecordServiceImpl certificateChangeRecordService;
......@@ -163,10 +163,11 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
* 根据sequenceNbr查询:1、查询单位变更信息,2、查询使用登记证列表
*
* @param sequenceNbr 主键
* @param selectedOrgInfo
* @return 单位变更
*/
@Override
public Map<String, Map<String, Object>> queryBySequenceNbr(Long sequenceNbr) {
public Map<String, Map<String, Object>> queryBySequenceNbr(Long sequenceNbr, ReginParams selectedOrgInfo) {
// 单位变更信息
JgChangeRegistrationUnit notice = JgChangeRegistrationUnitMapper.selectById(sequenceNbr);
if (Objects.isNull(notice)) {
......@@ -174,7 +175,13 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
}
this.doCompensate(notice);
Map<String, Object> changeInfo = BeanUtil.beanToMap(notice, false, true);
//回填新单位地址,台套办理的使用登记证打印时 需要,用来校验必输
if (!ObjectUtils.isEmpty(notice.getNewUseUnitCreditCode())) {
TzBaseEnterpriseInfo useCodeResult = tzBaseEnterpriseInfoMapper.selectOne(new LambdaQueryWrapper<TzBaseEnterpriseInfo>().eq(TzBaseEnterpriseInfo::getUseUnitCode, notice.getNewUseUnitCreditCode()));
if (useCodeResult != null) {
changeInfo.put("address",useCodeResult.getAddress());
}
}
//组装下拉数据
if (!ValidationUtil.isEmpty(notice.getReceiveOrgCode()) && !ValidationUtil.isEmpty(notice.getReceiveOrgName())) {
changeInfo.put("receiveOrgCode", notice.getReceiveOrgCode() + "_" + notice.getReceiveOrgName());
......@@ -194,6 +201,13 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
.eq(JgRegistrationHistory::getCurrentDocumentId, notice.getApplyNo())
.eq(JgRegistrationHistory::getIsDelete, false));
changeInfo.put("registrationList", JSON.parse(historyServiceOne.getChangeData()));
changeInfo.put("havingPermission", notice.getNextExecuteUserIds() != null && notice.getNextExecuteUserIds().contains(RequestContext.getExeUserId()));
String companyType = selectedOrgInfo.getCompany().getCompanyType();
if ("个人主体".equals(companyType)) {
changeInfo.put("companyType", "person");
} else {
changeInfo.put("companyType", "company");
}
return new HashMap<String, Map<String, Object>>() {{
// this.put("changeRegisInfo", fillEquipInfoWithRuntimeOrHistoryData(notice, changeInfo));
this.put("changeRegisInfo", changeInfo);
......@@ -314,6 +328,7 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
notice.setNextExecutorIds(String.join(",", roleListNext));
notice.setStatus(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
notice.setNextExecuteUserIds(nextUserIds);
setNewUnitInfo(reginParams, notice);
JgChangeRegistrationUnitMapper.updateById(notice);
commonServiceImpl.deleteTasksByRelationId(notice.getSequenceNbr() + "");
createTaskModel(notice, taskname, "1", nextUserIds);
......@@ -361,12 +376,14 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
bean.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getPass());
executeOneStep(bean, taskName1, nextUserIds, op);
bean.setNextExecuteUserIds(nextUserIds);
setNewUnitInfo(reginParams, bean);
JgChangeRegistrationUnitMapper.updateById(bean);
commonServiceImpl.saveExecuteFlowData2Redis(bean.getInstanceId(), buildInstanceRuntimeData(bean));
}
} else {
JgChangeRegistrationUnit bean = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(noticeDto, bean);
setNewUnitInfo(reginParams, bean);
JgChangeRegistrationUnitMapper.updateById(bean);
}
List<JgChangeRegistrationUnitEq> jgRelationEquipList = new ArrayList<>();
......@@ -409,6 +426,14 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
return noticeDto;
}
private void setNewUnitInfo(ReginParams reginParams, JgChangeRegistrationUnit notice) {
notice.setNewUseUnitName(CompanyTypeEnum.INDIVIDUAL.getName().equals(reginParams.getCompany().getCompanyType()) ?
reginParams.getCompany().getCompanyName().split("_")[1] : reginParams.getCompany().getCompanyName());
notice.setNewUseUnitCreditCode(CompanyTypeEnum.INDIVIDUAL.getName().equals(reginParams.getCompany().getCompanyType()) ?
reginParams.getCompany().getCompanyCode().split("_")[1] :
reginParams.getCompany().getCompanyCode());
}
/**
* 分页查询
......@@ -613,10 +638,6 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
model.setPromoter(reginParams.getUserModel().getUserId());
model.setStatus(taskName[0]);
}
model.setNewUseUnitName(reginParams.getCompany().getCompanyName());
model.setNewUseUnitCreditCode(CompanyTypeEnum.INDIVIDUAL.getName().equals(reginParams.getCompany().getCompanyType()) ?
reginParams.getCompany().getCompanyCode().split("_")[1] :
reginParams.getCompany().getCompanyCode());
if (!CollectionUtils.isEmpty(nextExecutorUserIds)) {
model.setNextExecuteUserIds(nextExecutorUserIds.get(0));
}
......@@ -636,6 +657,7 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
model.setEquList(registrationList.get(0).get("equList").toString());
JgChangeRegistrationUnit registrationUnit = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(model, registrationUnit);
setNewUnitInfo(reginParams, registrationUnit);
JgChangeRegistrationUnitMapper.insert(registrationUnit);
List<TaskModelDto> modelDtos = new ArrayList<>();
......@@ -765,15 +787,6 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
}
}
String newUseUnitId = model.getNewUseUnitCreditCode();
if (!ObjectUtils.isEmpty(newUseUnitId)) {
String[] newUseUnitList = newUseUnitId.split("_");
if (newUseUnitList.length > 1) {
model.setNewUseUnitCreditCode(newUseUnitList[0]);
model.setNewUseUnitName(newUseUnitList[1]);
}
}
String receiveOrgCode = model.getReceiveOrgCode();
if (!ObjectUtils.isEmpty(receiveOrgCode)) {
String[] receiveOrgCodeList = receiveOrgCode.split("_");
......@@ -1339,4 +1352,107 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
commonServiceImpl.saveExecuteFlowData2Redis(jgChangeRegistrationUnit.getInstanceId(), this.buildInstanceRuntimeData(jgChangeRegistrationUnit));
}
/**
* bug24304脏数据处理(单位变更登记一勾选过多,部分变更设备失败,现在将变更失败的设备变更过去)
*/
public void bug24304Handle(String applyNos) {
/* // 查询单位变更登记的历史数据
List<JgRegistrationHistory> historyList = jgRegistrationHistoryMapper.selectList(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getRegistrationClass, "单位变更登记"));
// 过滤出异常数据
List<JgRegistrationHistory> targetHistory = historyList
.stream()
.filter(item -> {
try {
return JSONArray.parseArray(item.getChangeData()).size() > 10;
} catch (Exception ex) {
return false;
}
})
.collect(Collectors.toList()); */
List<String> applyNoList = Arrays.asList(applyNos.split(","));
applyNoList.forEach(applyNo ->{
// 查询单位变更登记的历史数据
JgRegistrationHistory history = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getRegistrationClass, "单位变更登记")
.eq(JgRegistrationHistory::getCurrentDocumentId,applyNo));
// 查询变更数据
JgChangeRegistrationUnit registrationUnit = this.baseMapper.selectOne(new LambdaQueryWrapper<JgChangeRegistrationUnit>()
.eq(JgChangeRegistrationUnit::getApplyNo, history.getCurrentDocumentId()));
// 查询已经入库的设备id
List<String> inEqTableEquId = jgChangeRegistrationUnitEqMapper.selectList(new LambdaQueryWrapper<JgChangeRegistrationUnitEq>()
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, registrationUnit.getSequenceNbr()))
.stream()
.map(JgChangeRegistrationUnitEq::getEquId)
.collect(Collectors.toList());
// 查询单子下的所有使用登记证的seq
List<Long> certificateSeq = JSONArray.parseArray(history.getChangeData()).stream().map(item -> Long.valueOf((String) JSONObject.parseObject(JSONObject.toJSONString(item)).get("sequenceNbr"))).collect(Collectors.toList());
// 使用登记证下的所有设备
List<JSONObject> equJSONList = registrationManageService.queryEquByCertificateSeqList(certificateSeq);
// 过滤出未入库的设备
List<JSONObject> toBeProcessedEq = equJSONList.stream().filter(item -> !inEqTableEquId.contains(item.getString("SEQUENCE_NBR"))).collect(Collectors.toList());
// 将未入库设备 保存到eq表
this.bug24304HandleSaveLackEqu(toBeProcessedEq, registrationUnit);
// 将未入库设备 更新es和otherInfo表的使用单位信息
this.bug24304HandleUpdateLackEquForES(toBeProcessedEq, registrationUnit);
this.bug24304HandleUpdateLackEquForUseInfo(toBeProcessedEq, registrationUnit);
});
// for (JgRegistrationHistory history : targetHistory) {
// }
}
/**
* 保存漏掉的设备
*/
public void bug24304HandleSaveLackEqu(List<JSONObject> deviceList, JgChangeRegistrationUnit registrationUnit) {
List<JgChangeRegistrationUnitEq> jgRelationEquipList = new ArrayList<>();
deviceList.forEach(device -> {
JgChangeRegistrationUnitEq unitEq = new JgChangeRegistrationUnitEq();
if (device.containsKey("USE_ORG_CODE")) {
unitEq.setRegistrationCertificate(device.getString("USE_ORG_CODE"));//使用登记证主键
}
if (device.containsKey("SEQUENCE_NBR")) {
unitEq.setEquId(device.getString("SEQUENCE_NBR"));//设备主键
}
unitEq.setUnitChangeRegistrationId(registrationUnit.getSequenceNbr().toString());//单位变更业务主键
unitEq.setDeviceInfo(JSONObject.toJSONString(device));//设备信息json
jgRelationEquipList.add(unitEq);
});
registrationUnitEqService.saveBatch(jgRelationEquipList);
}
/**
* 修改es漏掉的设备
*/
public void bug24304HandleUpdateLackEquForES(List<JSONObject> deviceList, JgChangeRegistrationUnit registration) {
deviceList.forEach(device -> {
Map<String, Map<String, Object>> resultMap = new HashMap<>();
Map<String, Object> map1 = new HashMap<>();
String[] companyCode = registration.getNewUseUnitCreditCode().split("_");
map1.put("USE_UNIT_CREDIT_CODE", companyCode.length > 1 ? companyCode[1] : registration.getNewUseUnitCreditCode());
map1.put("USE_UNIT_NAME", registration.getNewUseUnitName());
map1.put("REC_DATE", registration.getCreateDate());
resultMap.put(device.getString("SEQUENCE_NBR"), map1);
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
});
}
/**
* 修改使用信息表中漏掉的设备
*/
public void bug24304HandleUpdateLackEquForUseInfo(List<JSONObject> deviceList, JgChangeRegistrationUnit registration) {
deviceList.forEach(device -> {
LambdaQueryWrapper<UseInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(UseInfo::getRecord, device.getString("SEQUENCE_NBR"));
UseInfo useInfo = useInfoMapper.selectOne(queryWrapper);
if (ObjectUtils.isNotEmpty(useInfo)) {
useInfo.setUseUnitName(registration.getNewUseUnitName());
useInfo.setUseUnitCreditCode(registration.getNewUseUnitCreditCode());
useInfoMapper.updateById(useInfo);
}
});
}
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ 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.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
......@@ -27,9 +28,11 @@ import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService;
import com.yeejoin.amos.boot.module.jg.biz.service.ICompensateFlowDataOfRedis;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgOtherInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgOtherInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgUseInfoMapper;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
......@@ -89,8 +92,6 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
@Autowired
private JgUseRegistrationManageServiceImpl jgUseRegistrationManageService;
@Autowired
private JgVehicleInformationServiceImpl jgVehicleInformationService;
@Autowired
private JgChangeVehicleRegistrationUnitEqServiceImpl jgChangeVehicleRegistrationUnitEqService;
@Autowired
private RedissonClient redissonClient;
......@@ -103,6 +104,9 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
@Autowired
private IdxBizJgOtherInfoMapper otherInfoMapper;
@Autowired
private IdxBizJgUseInfoMapper jgUseInfoMapper;
private volatile Map<String, Object> fillingMediumMap;
......@@ -443,6 +447,8 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
HashMap<String, Object> param = new HashMap<>();
param.put("USE_UNIT_NAME", jgChangeVehicleRegistrationUnit.getNewUseUnitName());
param.put("USE_UNIT_CREDIT_CODE", jgChangeVehicleRegistrationUnit.getNewUseUnitCreditCode());
// 更新车用气瓶变更登记后,修改气瓶的单位内部编号为车牌号 bug23732
param.put("USE_INNER_CODE", jgChangeVehicleRegistrationUnit.getNewCarNumber());
if (!ObjectUtils.isEmpty(useRegistCode)) {
param.put("USE_ORG_CODE", useRegistCode);
LambdaQueryWrapper<IdxBizJgOtherInfo> eq = new QueryWrapper<IdxBizJgOtherInfo>().lambda().eq(IdxBizJgOtherInfo::getRecord, item);
......@@ -523,6 +529,8 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
if ("1".equals(jgChangeVehicleRegistrationUnit.getChangeType()) && !ObjectUtils.isEmpty(collect)) {
updateEsData(collect, jgChangeVehicleRegistrationUnit, null);
}
// 更新车用气瓶变更登记后,修改气瓶的单位内部编号为车牌号 bug23732
updateCarNumIntoUseInnerCode(jgChangeVehicleRegistrationUnit, collect);
// 修改证管理信息
manage.setUseUnitName(jgChangeVehicleRegistrationUnit.getNewUseUnitName());
manage.setUseUnitCreditCode(jgChangeVehicleRegistrationUnit.getNewUseUnitCreditCode());
......@@ -551,6 +559,13 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
}
private void updateCarNumIntoUseInnerCode(JgChangeVehicleRegistrationUnit jgChangeVehicleRegistrationUnit, List<String> collect) {
LambdaUpdateWrapper<IdxBizJgUseInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(IdxBizJgUseInfo::getRecord, collect);
updateWrapper.set(IdxBizJgUseInfo::getUseInnerCode, jgChangeVehicleRegistrationUnit.getNewCarNumber());
jgUseInfoMapper.update(null, updateWrapper);
}
/**
* 生成监管码
*/
......@@ -772,7 +787,7 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
return Boolean.TRUE;
}
public Map<String, Object> getDetails(String sequenceNbr) {
public Map<String, Object> getDetails(String sequenceNbr, ReginParams selectedOrgInfo) {
JgChangeVehicleRegistrationUnit registrationUnit = this.getById(sequenceNbr);
this.doCompensate(registrationUnit);
JgRegistrationHistory history = jgRegistrationHistoryService.lambdaQuery()
......@@ -791,6 +806,13 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
} else {
object.put("newCarNumber", registrationUnit.getCarNumber());
}
String companyType = selectedOrgInfo.getCompany().getCompanyType();
if ("个人主体".equals(companyType)) {
object.put("companyType", "person");
} else {
object.put("companyType", "company");
}
object.put("havingPermission", registrationUnit.getNextExecuteUserIds() != null && registrationUnit.getNextExecuteUserIds().contains(RequestContext.getExeUserId()));
return object;
} else {
return new HashMap<>();
......
......@@ -3,7 +3,7 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl;
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.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
......@@ -107,7 +107,7 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
private JgRegistrationHistoryMapper jgRegistrationHistoryMapper;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
@Autowired
private IdxBizJgInspectionDetectionInfoServiceImpl jgInspectionDetectionInfoService;
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.dto.JgEquipInsuranceDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgEquipInsurance;
import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgEquipInsuranceMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgEquipInsuranceService;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import io.swagger.annotations.ApiParam;
import org.apache.commons.collections.CollectionUtils;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.filter.Filters;
import org.elasticsearch.search.aggregations.bucket.filter.FiltersAggregator;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestParam;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 服务实现类
*
* @author LiuLin
* @date 2024-10-17
*/
@Service
public class JgEquipInsuranceServiceImpl extends BaseService<JgEquipInsurance,JgEquipInsurance,JgEquipInsuranceMapper> implements IJgEquipInsuranceService {
@Autowired
private RedisUtils redisUtils;
@Autowired
private CommonServiceImpl commonServiceImpl;
private static final String SECOND = "second";
private static final String DEVICE_LIST = "deviceList";
private static final String INDEX_NAME = "idx_biz_view_jg_all";
public static final String REGION_CODE = "regionCode";
public static final String REGION_NAME = "regionName";
public static final String ELEVATOR = "elevator";
public static final String CYLINDER = "cylinder";
public static final String ELEVATOR_INSURANCE_COUNT = "elevatorInsuranceCount";
public static final String CYLINDER_INSURANCE_COUNT = "cylinderInsuranceCount";
public static final String ELEVATOR_INSURANCE_RATE = "elevatorInsuranceRate";
public static final String CYLINDER_INSURANCE_RATE = "cylinderInsuranceRate";
private static final Map<String, String> regionCodeOrgCodeMap = new ConcurrentHashMap<>();
@Autowired
RestHighLevelClient restHighLevelClient;
@Autowired
CommonMapper commonMapper;
/**
* 分页查询
*/
public Page<JgEquipInsuranceDto> queryForJgEquipInsurancePage(Page<JgEquipInsurance> page,
@ApiParam(value = "排序字段") @RequestParam(value = "sort", required = false) String sort,
JgEquipInsuranceDto dto) {
SortVo sortMap = commonServiceImpl.sortFieldConversion(sort);
return this.baseMapper.getListPage(page, sortMap, dto);
}
/**
* 列表查询 示例
*/
public List<JgEquipInsurance> queryForJgEquipInsuranceList() {
return this.queryForList("" , false);
}
@Transactional(rollbackFor = Exception.class)
public Object save(JSONObject map) {
// 从 Redis 中获取 ReginParams 对象
ReginParams reginParams = JSONObject.parseObject(
redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(),
ReginParams.class
);
// 解析 secondMap 和设备保险信息
JSONObject secondMap = map.getJSONObject("second");
JgEquipInsurance equipInsurance = map.getObject(SECOND, JgEquipInsurance.class);
// 获取设备列表并进行校验
List<Map> deviceList = secondMap.getJSONArray(DEVICE_LIST).toJavaList(Map.class);
if (CollectionUtils.isEmpty(deviceList)) {
throw new BadRequest("请选择设备信息!");
}
// 使用流创建新的保险对象列表并保存
return this.saveBatch(
deviceList.stream()
.map(x -> {
JgEquipInsurance newInsurance = new JgEquipInsurance();
BeanUtils.copyProperties(equipInsurance, newInsurance);
newInsurance.setEquId(String.valueOf(x.get("record")));
newInsurance.setEquList(String.valueOf(x.get("EQU_LIST_CODE")));
newInsurance.setEquCategory(String.valueOf(x.get("EQU_CATEGORY_CODE")));
newInsurance.setEquDefine(String.valueOf(x.get("EQU_DEFINE_CODE")));
newInsurance.setRecUserId(reginParams.getUserModel().getUserId());
newInsurance.setRecUserName(reginParams.getUserModel().getUserName());
newInsurance.setRecDate(new Date());
newInsurance.setIsDelete(false);
return newInsurance;
})
.collect(Collectors.toList())
);
}
public JgEquipInsuranceDto getDetail(Long sequenceNbr) {
return this.getBaseMapper().getDetailById(sequenceNbr);
}
public Map<String, Object> countLiabilityInsuranceStatisticsByCity() {
List<RegionModel> regionModelList = Systemctl.regionClient.queryByLevel("2").getResult();
List<Map<String, Object>> esQueryResults = processAsync(regionModelList, this::esQuery);
return assemblingHistogramData(esQueryResults);
}
// 公共方法,用于异步处理逻辑
private List<Map<String, Object>> processAsync(List<RegionModel> regionModelList, Function<RegionModel, Map<String, Object>> function) {
return regionModelList.stream()
.map(regionModel -> CompletableFuture.supplyAsync(() -> function.apply(regionModel)))
.collect(Collectors.toList())
.stream()
.map(CompletableFuture::join)
.collect(Collectors.toList());
}
public String getAndSetOrgCode(String cityCode) {
String orgCode = regionCodeOrgCodeMap.get(cityCode);
if (orgCode == null) {
orgCode = commonMapper.getOrgCodeByCompanyCode(cityCode);
if (orgCode != null) {
regionCodeOrgCodeMap.put(cityCode, orgCode);
}
}
return orgCode;
}
private Map<String, Object> esQuery(RegionModel regionModel) {
SearchRequest searchRequest = new SearchRequest(INDEX_NAME);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
String orgCode = this.getAndSetOrgCode(String.valueOf(regionModel.getRegionCode()));
boolQueryBuilder.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*"));
// 有监管码
boolQueryBuilder.must(QueryBuilders.existsQuery("SUPERVISORY_CODE"));
boolQueryBuilder.mustNot(QueryBuilders.termQuery("SUPERVISORY_CODE","null"));
searchSourceBuilder.query(boolQueryBuilder);
searchSourceBuilder.aggregation(
AggregationBuilders.filters("equipmentCount",
new FiltersAggregator.KeyedFilter("电梯",
QueryBuilders.termQuery("EQU_LIST_CODE", "3000")
),
new FiltersAggregator.KeyedFilter("气瓶",
QueryBuilders.termQuery("EQU_CATEGORY_CODE", "2300")
)
)
);
searchRequest.source(searchSourceBuilder);
try {
// 执行搜索请求
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
// 获取所有聚合结果
Filters aggregation = searchResponse.getAggregations().get("equipmentCount");
List<Map<String, Object>> equipInsuranceMap = this.baseMapper.getEquipInsuranceTotal(orgCode);
return getStringObjectMap(regionModel, aggregation, equipInsuranceMap);
} catch (IOException e) {
e.printStackTrace();
}
return Collections.emptyMap();
}
private static Map<String, Object> getStringObjectMap(RegionModel regionModel, Filters aggregation, List<Map<String, Object>> equipInsuranceMap) {
long elevatorCount = 0;
long cylinderCount = 0;
BigDecimal elevatorInsuranceRate;
BigDecimal cylinderInsuranceRate;
// 遍历 bucket 获取电梯和气瓶的总数
for (Filters.Bucket bucket : aggregation.getBuckets()) {
String key = bucket.getKeyAsString();
long docCount = bucket.getDocCount();
if ("电梯".equals(key)) {
elevatorCount = docCount;
} else if ("气瓶".equals(key)) {
cylinderCount = docCount;
}
}
// 将Long类型的值转换为BigDecimal
BigDecimal cylinderInsuranceCount = BigDecimal.valueOf((Long) equipInsuranceMap.get(0).get(CYLINDER_INSURANCE_COUNT));
BigDecimal elevatorInsuranceCount = BigDecimal.valueOf((Long) equipInsuranceMap.get(0).get(ELEVATOR_INSURANCE_COUNT));
// 计算保险覆盖率,避免除以零的情况
elevatorInsuranceRate = elevatorCount == 0 ? BigDecimal.ZERO :
elevatorInsuranceCount.divide(BigDecimal.valueOf(elevatorCount), 2, RoundingMode.HALF_UP);
cylinderInsuranceRate = cylinderCount == 0 ? BigDecimal.ZERO :
cylinderInsuranceCount.divide(BigDecimal.valueOf(cylinderCount), 2, RoundingMode.HALF_UP);
// 构建结果Map
Map<String, Object> resultMap = new HashMap<>();
resultMap.put(REGION_CODE, regionModel.getRegionCode());
resultMap.put(REGION_NAME, regionModel.getRegionName());
resultMap.put(ELEVATOR, elevatorCount);
resultMap.put(CYLINDER, cylinderCount);
resultMap.put(ELEVATOR_INSURANCE_RATE, elevatorInsuranceRate);
resultMap.put(CYLINDER_INSURANCE_RATE, cylinderInsuranceRate);
return resultMap;
}
private static Map<String, Object> assemblingHistogramData(List<Map<String, Object>> esQueryResults) {
// 组装数据
Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> barSeriesData = new ArrayList<>();
List<Map<String, Object>> lineSeriesData = new ArrayList<>();
List<String> axisData = new ArrayList<>();
List<String> cylinderDataList = new ArrayList<>();
List<String> elevatorDataList = new ArrayList<>();
List<String> cylinderDataListRate = new ArrayList<>();
List<String> elevatorDataListRate = new ArrayList<>();
esQueryResults.forEach(x -> {
axisData.add(String.valueOf(x.get(REGION_NAME)));
cylinderDataList.add(String.valueOf(x.get(CYLINDER)));
elevatorDataList.add(String.valueOf(x.get(ELEVATOR)));
elevatorDataListRate.add(String.valueOf(x.get(ELEVATOR_INSURANCE_RATE)));
cylinderDataListRate.add(String.valueOf(x.get(CYLINDER_INSURANCE_RATE)));
});
HashMap<String, Object> temMap1 = new HashMap<>();
temMap1.put("data", elevatorDataList);
temMap1.put("name", "电梯");
temMap1.put("type", "bar");
HashMap<String, Object> temMap2 = new HashMap<>();
temMap2.put("data", cylinderDataList);
temMap2.put("name", "气瓶");
temMap2.put("type", "bar");
HashMap<String, Object> temMap3 = new HashMap<>();
temMap3.put("data", elevatorDataListRate);
temMap3.put("name", "电梯覆盖率");
temMap3.put("type", "line");
HashMap<String, Object> temMap4 = new HashMap<>();
temMap4.put("data", cylinderDataListRate);
temMap4.put("name", "气瓶覆盖率");
temMap4.put("type", "line");
barSeriesData.add(temMap1);
barSeriesData.add(temMap2);
lineSeriesData.add(temMap3);
lineSeriesData.add(temMap4);
result.put("axisData", axisData);
result.put("barSeriesData", barSeriesData);
result.put("lineSeriesData", lineSeriesData);
return result;
}
}
\ No newline at end of file
......@@ -7,7 +7,7 @@ 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.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.util.StringUtil;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
......@@ -161,7 +161,7 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
@Autowired
JgCertificateChangeRecordEqServiceImpl certificateChangeRecordEqService;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
@Autowired
private JgInstallationNoticeMapper jgInstallationNoticeMapper;
@Autowired
......
......@@ -5,7 +5,7 @@ import com.alibaba.fastjson.JSON;
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.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
......@@ -114,7 +114,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
ESEquipmentCategory esEquipmentCategory;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
@Autowired
SupervisoryCodeInfoMapper supervisoryCodeInfoMapper;
......
......@@ -697,11 +697,13 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
LambdaQueryWrapper<JgMaintenanceContractEq> lambda = new QueryWrapper<JgMaintenanceContractEq>().lambda();
lambda.eq(JgMaintenanceContractEq::getEquipTransferId, id);
List<JgMaintenanceContractEq> list = jgMaintenanceContractEqService.getBaseMapper().selectList(lambda);
ArrayList<IdxBizJgMaintenanceRecordInfo> data = new ArrayList<>();
List<IdxBizJgMaintenanceRecordInfo> maintenanceRecordInfoList = new ArrayList<>();
// 循环设备
list.forEach(item -> {
IdxBizJgMaintenanceRecordInfo info = idxBizJgMaintenanceRecordInfoService.queryNewestDetailByRecord(item.getEquId());
if (!ObjectUtils.isEmpty(info)) {
IdxBizJgMaintenanceRecordInfo info = new IdxBizJgMaintenanceRecordInfo();
info.setRecord(item.getEquId());
info.setRecDate(new Date());
info.setRecUserId(RequestContext.getExeUserId());
info.setMeUnitName(ObjectUtils.isEmpty(jgMaintenanceContract.getMaintenanceUnitName()) ? null : jgMaintenanceContract.getMaintenanceUnitName());
info.setMeUnitCreditCode(ObjectUtils.isEmpty(jgMaintenanceContract.getMaintenanceUnitCode()) ? null : jgMaintenanceContract.getMaintenanceUnitCode());
info.setMeMaster(ObjectUtils.isEmpty(jgMaintenanceContract.getMaintenanceManagerOneName()) ? null : jgMaintenanceContract.getMaintenanceManagerOneName());
......@@ -713,11 +715,10 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
info.setInformStart(ObjectUtils.isEmpty(jgMaintenanceContract.getInformStart()) ? null : jgMaintenanceContract.getInformStart());
info.setInformEnd(ObjectUtils.isEmpty(jgMaintenanceContract.getInformEnd()) ? null : jgMaintenanceContract.getInformEnd());
info.setRepairInform(ObjectUtils.isEmpty(jgMaintenanceContract.getMaintenanceContract()) ? null : jgMaintenanceContract.getMaintenanceContract());
data.add(info);
}
maintenanceRecordInfoList.add(info);
});
idxBizJgMaintenanceRecordInfoService.updateBatchById(data);
emqKeeper.getMqttClient().publish(SafetyProblemTypeEnum.WBBA.getTopic(), JSON.toJSONBytes(data), 2, false);
idxBizJgMaintenanceRecordInfoService.saveBatch(maintenanceRecordInfoList);
emqKeeper.getMqttClient().publish(SafetyProblemTypeEnum.WBBA.getTopic(), JSON.toJSONBytes(maintenanceRecordInfoList), 2, false);
}
......
......@@ -6,7 +6,7 @@ import com.alibaba.fastjson.JSON;
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.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.util.StringUtil;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
......@@ -112,7 +112,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
@Autowired
RedisUtils redisUtils;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
@Autowired
IIdxBizJgRegisterInfoService idxBizJgRegisterInfoService;
@Autowired
......
......@@ -7,7 +7,7 @@ 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.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
......@@ -123,7 +123,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
private JgCertificateChangeRecordEqServiceImpl jgCertificateChangeRecordEqServiceImpl;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
/**
* 移装移装注销/报废注销判断
......
......@@ -21,14 +21,20 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentCategoryEnum;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.elasticsearch.action.search.ClearScrollRequest;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchScrollRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.core.TimeValue;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.TermsQueryBuilder;
import org.elasticsearch.search.Scroll;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -43,6 +49,7 @@ import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
......@@ -50,7 +57,9 @@ import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.stream.Collectors;
import static com.alibaba.fastjson.JSON.parseArray;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl.getAuditPassedDate;
......@@ -112,6 +121,9 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
@Autowired
private RedisTemplate<String, String> redisTemplate;
private static final long SCROLL_TIMEOUT = 180000;
private static final int SIZE = 1000;
/**
* 将已经通过使用登记审批的证信息录入到 jg-use-registration-manage 表中
......@@ -341,29 +353,87 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
if (ValidationUtil.isEmpty(jgUseRegistrationManageList)) {
return new ArrayList<>();
}
List<JSONObject> result = new ArrayList<>();
// List<JSONObject> result = new ArrayList<>();
Set<String> useOrgCodes = jgUseRegistrationManageList.stream().map(JgUseRegistrationManage::getUseRegistrationCode).collect(Collectors.toSet());
// es中通过查询【使用登记证编号】所有设备
SearchRequest request = new SearchRequest("idx_biz_view_jg_all");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.trackTotalHits(true);
// SearchRequest request = new SearchRequest("idx_biz_view_jg_all");
// SearchSourceBuilder builder = new SearchSourceBuilder();
// builder.trackTotalHits(true);
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
TermsQueryBuilder termsQuery = QueryBuilders.termsQuery("USE_ORG_CODE", useOrgCodes);
boolQuery.must(termsQuery);
builder.query(boolQuery);
request.source(builder);
// builder.query(boolQuery);
// builder.size(useOrgCodes.size());
// request.source(builder);
List<JSONObject> result = Collections.emptyList();
try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
for (SearchHit hit : response.getHits().getHits()) {
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(hit);
JSONObject dto2 = jsonObject.getJSONObject("sourceAsMap");
result.add(dto2);
result = searchResponse("idx_biz_view_jg_all", boolQuery, hit -> JSONObject.parseObject(hit.getSourceAsString(), JSONObject.class));
}catch (Exception ex){
ex.printStackTrace();
}
// try {
// SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
// for (SearchHit hit : response.getHits().getHits()) {
// JSONObject jsonObject = (JSONObject) JSONObject.toJSON(hit);
// JSONObject dto2 = jsonObject.getJSONObject("sourceAsMap");
// result.add(dto2);
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
return result;
}
} catch (Exception e) {
e.printStackTrace();
/**
* 构建SearchResponse
*
* @param indices 索引
* @param query queryBuilder
* @param fun 返回函数
* @param <T> 返回类型
* @return List, 可以使用fun转换为T结果
* @throws Exception e
*/
public <T> List<T> searchResponse(String indices, QueryBuilder query, Function<SearchHit, T> fun) throws Exception {
SearchRequest request = new SearchRequest(indices);
Scroll scroll = new Scroll(TimeValue.timeValueMillis(SCROLL_TIMEOUT));
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(query);
sourceBuilder.size(SIZE);
request.scroll(scroll);
request.source(sourceBuilder);
List<String> scrollIdList = new ArrayList<>();
List<T> result = new ArrayList<>();
SearchResponse searchResponse = restHighLevelClient.search(request, RequestOptions.DEFAULT);
String scrollId = searchResponse.getScrollId();
SearchHit[] hits = searchResponse.getHits().getHits();
scrollIdList.add(scrollId);
try {
while (ArrayUtils.isNotEmpty(hits)) {
for (SearchHit hit : hits) {
result.add(fun.apply(hit));
}
if (hits.length < SIZE) {
break;
}
SearchScrollRequest searchScrollRequest = new SearchScrollRequest(scrollId);
searchScrollRequest.scroll(scroll);
SearchResponse searchScrollResponse = restHighLevelClient.scroll(searchScrollRequest, RequestOptions.DEFAULT);
scrollId = searchScrollResponse.getScrollId();
hits = searchScrollResponse.getHits().getHits();
scrollIdList.add(scrollId);
}
} finally {
ClearScrollRequest clearScrollRequest = new ClearScrollRequest();
clearScrollRequest.setScrollIds(scrollIdList);
restHighLevelClient.clearScroll(clearScrollRequest, RequestOptions.DEFAULT);
}
return result;
}
......@@ -600,13 +670,13 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
return useFlagParamDto;
}
public void setInspectField(String record, UseFlagParamDto useFlagParamDto) {
private void setInspectField(String record, UseFlagParamDto useFlagParamDto) {
Map<String, Object> inspectDetail = jgUseRegistrationMapper.getInspectDetail(record, null);
useFlagParamDto.setInspectionUnitName(inspectDetail.get("inspectOrgName") == null ? "" : inspectDetail.get("inspectOrgName").toString());
useFlagParamDto.setNextInspectionDate(inspectDetail.get("nextInspectDate") == null ? null : (Date) inspectDetail.get("nextInspectDate"));
}
public void setMainInfoField(String record, UseFlagParamDto useFlagParamDto) {
private void setMainInfoField(String record, UseFlagParamDto useFlagParamDto) {
IdxBizJgMaintenanceRecordInfo idxBizJgMaintenanceRecordInfo = idxBizJgMaintenanceRecordInfoService.queryNewestDetailByRecord(record);
useFlagParamDto.setEmergencyTel(this.buildEmergencyTel(idxBizJgMaintenanceRecordInfo));
......
......@@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
......@@ -180,7 +180,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
@Autowired
private RedissonClient redissonClient;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
@Autowired
private JgUseRegistrationEqServiceImpl jgUseRegistrationEqService;
@Autowired
......@@ -1706,6 +1706,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
if (!ObjectUtils.isEmpty(sequenceNbr)) {
JgUseRegistration jgUseRegistration = this.getBaseMapper().selectById(sequenceNbr);
this.doCompensate(jgUseRegistration);
LambdaQueryWrapper<JgRegistrationHistory> lambda = new QueryWrapper<JgRegistrationHistory>().lambda();
lambda.eq(JgRegistrationHistory::getCurrentDocumentId, sequenceNbr);
lambda.eq(JgRegistrationHistory::getIsDelete, false);
......@@ -1749,6 +1750,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
}
}
jsonObject.put("useRegistrationCode", jgUseRegistration.getUseRegistrationCode());
// 转化 附件 字段
commonServiceImpl.convertStringToJsonobject(jsonObject, jsonFields);
return jsonObject;
......@@ -2349,13 +2351,13 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
return useFlagParamDto;
}
public void setInspectField(IdxBizJgRegisterInfo registerInfo, UseFlagParamDto useFlagParamDto) {
private void setInspectField(IdxBizJgRegisterInfo registerInfo, UseFlagParamDto useFlagParamDto) {
Map<String, Object> inspectDetail = this.baseMapper.getInspectDetail(registerInfo.getRecord(), null);
useFlagParamDto.setInspectionUnitName(inspectDetail.get("inspectOrgName") == null ? "" : inspectDetail.get("inspectOrgName").toString());
useFlagParamDto.setNextInspectionDate(inspectDetail.get("nextInspectDate") == null ? null : (Date) inspectDetail.get("nextInspectDate"));
}
public void setMainInfoField(IdxBizJgRegisterInfo registerInfo, UseFlagParamDto useFlagParamDto) {
private void setMainInfoField(IdxBizJgRegisterInfo registerInfo, UseFlagParamDto useFlagParamDto) {
IdxBizJgMaintenanceRecordInfo idxBizJgMaintenanceRecordInfo = idxBizJgMaintenanceRecordInfoService.queryNewestDetailByRecord(registerInfo.getRecord());
useFlagParamDto.setEmergencyTel(this.buildEmergencyTel(idxBizJgMaintenanceRecordInfo));
......@@ -2535,10 +2537,6 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
private void clearMainInfo(String record) {
maintenanceRecordInfoMapper.delete(new LambdaQueryWrapper<IdxBizJgMaintenanceRecordInfo>().eq(IdxBizJgMaintenanceRecordInfo::getRecord, record));
IdxBizJgMaintenanceRecordInfo maintenanceRecordInfo = new IdxBizJgMaintenanceRecordInfo();
maintenanceRecordInfo.setRecord(record);
maintenanceRecordInfo.setRecDate(new Date());
maintenanceRecordInfoMapper.insert(maintenanceRecordInfo);
}
private void clearConstructionInfo(String record) {
......@@ -2588,6 +2586,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
private void invalidUseRegistrationCertificate(JgUseRegistration jgUseRegistration) {
Integer count = jgUseRegistrationMapper.selectCount(new LambdaQueryWrapper<JgUseRegistration>()
.eq(JgUseRegistration::getUseRegistrationCode, jgUseRegistration.getUseRegistrationCode())
.ne(JgUseRegistration::getStatus, "已作废")
.eq(JgUseRegistration::getIsDelete, false));
// 一证对应多条使用登记单时,不作废证
if (count > 1) {
......@@ -2827,6 +2826,8 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
if (used){
throw new BadRequest("使用登记证编号已存在!");
}
//使用登记证编号判断是否使用未来系统生成编号
idxBizJgRegisterInfoService.checkUseRegistrationCode(useRegistrationCode, "set");
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
CompanyBo company = reginParams.getCompany();
......@@ -3070,7 +3071,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
this.historyEquUpdateInstallInfo(map);
// 设备维保信息更新,只有电梯
if ("3000".equals(map.get("equList"))){
if ("3000".equals(map.get("equList")) || "3000".equals(map.get("equListCode"))){
this.historyEquUpdateMaintenanceInfo(map);
}
......@@ -3096,10 +3097,11 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
* 历史设备登记-》更新维保信息
*/
private void historyEquUpdateMaintenanceInfo(JSONObject map) {
SimpleDateFormat format = new SimpleDateFormat();
IdxBizJgMaintenanceRecordInfo info = idxBizJgMaintenanceRecordInfoService.queryNewestDetailByRecord(String.valueOf(map.get("equipId")));
if (!ValidationUtil.isEmpty(info.getSequenceNbr())) {
IdxBizJgMaintenanceRecordInfo info = new IdxBizJgMaintenanceRecordInfo();
info.setRecord(String.valueOf(map.get("equipId")));
String meUnitName = String.valueOf(map.get("meUnitName"));
info.setRecDate(new Date());
info.setRecUserId(RequestContext.getExeUserId());
info.setMeUnitName(!ValidationUtil.isEmpty(meUnitName) && meUnitName.contains("_") ? meUnitName.split("_")[1] : null);
info.setMeUnitCreditCode(!ValidationUtil.isEmpty(meUnitName) && meUnitName.contains("_") ? meUnitName.split("_")[0] : null);
info.setMeMaster(ValidationUtil.isEmpty(map.get("maintenanceManagerOneName")) ? null : String.valueOf(map.get("maintenanceManagerOneName")));
......@@ -3109,15 +3111,14 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
info.setMeMaster1Phone(ValidationUtil.isEmpty(map.get("maintenanceManagerTwoPhone")) ? null : String.valueOf(map.get("maintenanceManagerTwoPhone")));
info.setMeMaster1Id(ValidationUtil.isEmpty(map.get("maintenanceManagerTwoID")) ? null : String.valueOf(map.get("maintenanceManagerTwoID")));
try {
info.setInformStart(ValidationUtil.isEmpty(map.get("informStart")) ? null : format.parse(String.valueOf(map.get("informStart"))));
info.setInformEnd(ValidationUtil.isEmpty(map.get("informEnd")) ? null : format.parse(String.valueOf(map.get("informEnd"))));
info.setInformStart(ValidationUtil.isEmpty(map.get("informStart")) ? null : DateUtil.parse(String.valueOf(map.get("informStart"))));
info.setInformEnd(ValidationUtil.isEmpty(map.get("informEnd")) ? null : DateUtil.parse(String.valueOf(map.get("informEnd"))));
} catch (Exception exception) {
exception.printStackTrace();
log.info("date转化失败");
}
info.setRepairInform(ValidationUtil.isEmpty(map.get("maintenanceContract")) ? null : JSONObject.toJSONString(map.get("maintenanceContract")));
idxBizJgMaintenanceRecordInfoService.getBaseMapper().updateById(info);
}
idxBizJgMaintenanceRecordInfoService.save(info);
}
/**
......
......@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
......@@ -123,7 +123,7 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
@Autowired
private RedisUtils redisUtils;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
@Autowired
private JgVehicleInformationEqMapper jgVehicleInformationEqMapper;
@Autowired
......@@ -573,9 +573,10 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
* 查看详情
*
* @param sequenceNbr sequenceNbr
* @param selectedOrgInfo
* @return JgVehicleInformationModel
*/
public JgVehicleInformationVo queryBySequenceNbr(Long sequenceNbr) {
public JgVehicleInformationVo queryBySequenceNbr(Long sequenceNbr, ReginParams selectedOrgInfo) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())) + "", ReginParams.class);
JgVehicleInformationVo vo = new JgVehicleInformationVo();
JgVehicleInformationDto dto = this.baseMapper.queryBySequenceNbr(sequenceNbr);
......@@ -680,6 +681,13 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
vo.setOldUseRegistrationTable(JSONArray.parseArray(useInfo.getOldUseRegistrationTable()));
vo.setOldUseRegistrationCertificate(JSONArray.parseArray(useInfo.getOldUseRegistrationCertificate()));
}
String companyType = selectedOrgInfo.getCompany().getCompanyType();
if ("个人主体".equals(companyType)) {
vo.setCompanyType("person");
} else {
vo.setCompanyType("company");
}
vo.setHavingPermission(dto.getNextExecuteUserIds() != null && dto.getNextExecuteUserIds().contains(RequestContext.getExeUserId()));
return vo;
}
......@@ -1406,7 +1414,9 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
*/
private void invalidUseRegistrationCertificate(JgVehicleInformation jgVehicleInformation) {
Integer count = this.baseMapper.selectCount(new LambdaQueryWrapper<JgVehicleInformation>()
.eq(JgVehicleInformation::getUseRegistrationCode, jgVehicleInformation.getUseRegistrationCode()));
.eq(JgVehicleInformation::getUseRegistrationCode, jgVehicleInformation.getUseRegistrationCode())
.ne(JgVehicleInformation::getStatus, "已作废")
.eq(JgVehicleInformation::getIsDelete, false));
// 一证对应多条使用登记单时,不作废证
if (count > 1) {
return;
......@@ -1597,9 +1607,6 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
}
private void generateRegistrationManage(JgVehicleInformation jgVehicleInformation, IdxBizJgRegisterInfo registerInfo) {
// 使用单位信息
Map<String, Object> enterpriseInfo = commonService.getEnterpriseInfo(jgVehicleInformation.getUseUnitCreditCode());
//
Map<String, String> equType = new HashMap<>();
equType.put("equList", this.baseMapper.getEquCategoryNameByCode(registerInfo.getEquList()));
equType.put("equListCode", registerInfo.getEquList());
......@@ -1629,7 +1636,7 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
jgUseRegistrationManage.setCreateDate(jgVehicleInformation.getRecDate());
jgUseRegistrationManage.setEquUseAddress("");
jgUseRegistrationManage.setManageType("unit");
jgUseRegistrationManage.setUseUnitAddress(!ValidationUtil.isEmpty(enterpriseInfo) ? (String) enterpriseInfo.get("address") : "");
jgUseRegistrationManage.setUseUnitAddress(jgVehicleInformation.getUseUnitAddress());
jgUseRegistrationManage.setUseRegistrationCode(jgVehicleInformation.getUseRegistrationCode());
jgUseRegistrationManage.setUseUnitCreditCode(jgVehicleInformation.getUseUnitCreditCode());
jgUseRegistrationManage.setReceiveCompanyCode(jgVehicleInformation.getReceiveCompanyCode());
......@@ -1745,6 +1752,8 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
if (used){
throw new BadRequest("使用登记证编号已存在!");
}
//使用登记证编号判断是否使用未来系统生成编号
idxBizJgRegisterInfoService.checkUseRegistrationCode(useRegistrationCode1,"vehicle");
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())) + "", ReginParams.class);
JgVehicleInformationDto vehicleInfoDto = JSON.parseObject(JSON.toJSONString(map), JgVehicleInformationDto.class);
......
package com.yeejoin.amos.boot.module.jyjc.api.enums;
import com.yeejoin.amos.boot.module.common.api.enums.AlertCallEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -48,4 +48,15 @@ public enum JYJCTypeEnum {
}
return Arrays.stream(JYJCTypeEnum.values()).filter(e -> e.getBizType().equals(bizType)).collect(Collectors.toList());
}
public static List<HashMap<String,Object>> getTypeEnumList() {
List<HashMap<String, Object>> list = new ArrayList<>();
for (JYJCTypeEnum testEnum : EnumSet.allOf(JYJCTypeEnum.class)) {
HashMap<String, Object> map = new HashMap<>();
map.put("title", testEnum.getName());
map.put("value", testEnum.getCode());
list.add(map);
}
return list;
}
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.dto.CountDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplication;
import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionApplicationEquipDto;
import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionApplicationEquipModel;
......@@ -96,6 +97,16 @@ public interface JyjcInspectionApplicationMapper extends BaseMapper<JyjcInspecti
Page<Map<String, Object>> getInspectDetailList(@Param("page") Page<Map<String, Object>> page, @Param("orgCode") String orgCode, @Param("dto") DPFilterParamDto filterParamDto, @Param("businessType") String businessType);
Page<Map<String, Object>> getInspectBusinessList(@Param("page") Page<Map<String, Object>> page, @Param("orgCode") String orgCode, @Param("dto") DPFilterParamDto filterParamDto, @Param("businessType") String businessType);
Long queryQualifiedCount(@Param("orgCode") String orgCode, @Param("dpFilterParamDto") DPFilterParamDto dpFilterParamDto);
Page<Map<String, Object>> queryAllList( @Param("page") Page page,@Param("orgCode") String orgCode, @Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
Long queryAllFlowingAndFinishedCountForDetail(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
Long queryAllPendingAndFinishedCountForDetail(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
Long queryAllFinishedCountForDetail(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
}
......@@ -469,4 +469,147 @@
group by tjia.sequence_nbr
order by tjia.application_date desc
</select>
<select id="queryQualifiedCount" resultType="java.lang.Long">
SELECT
count(1)
FROM
tz_jyjc_inspection_application a,
tz_base_enterprise_info b,
tz_jyjc_inspection_result r
where
a.inspection_unit_code= b.use_unit_code
and a.application_no = r.application_no
and (inspection_conclusion = '6040' or inspection_conclusion = '6042' or inspection_conclusion = '6045' or inspection_conclusion = '6046' or inspection_conclusion = '6048'
or inspection_conclusion = '6049' or inspection_conclusion = '6051' or inspection_conclusion = '6052')
and ((b.supervise_org_code != '50' and b.supervise_org_code LIKE CONCAT (#{orgCode}, '%')) or (b.supervise_org_code = '50' and b.office_region LIKE CONCAT ('%', #{dpFilterParamDto.cityCode}, '%')))
and a.status = '6616'
and EXISTS (select 1 from tz_jyjc_inspection_result r where r.result_status='2' and a.application_no = r.application_no)
and date_ge(CAST(a.accept_date as date),#{dpFilterParamDto.beginDate}) and date_le(CAST(a.accept_date as date),#{dpFilterParamDto.endDate})
</select>
<select id="queryAllList" resultType="java.util.Map">
SELECT
a.application_no as applicationNo,
a.application_unit_name as applicationUnitName,
a.inspection_unit_name as inspectionUnitName,
a.application_date as createDate,
a.accept_date as handleDate,
ir.inspection_conclusion as inspectionConclusion,
d.inspection_conclusion_name as inspectionConclusionName
FROM
"tz_jyjc_inspection_application" a
inner join tz_base_enterprise_info b on a.inspection_unit_code = b.use_unit_code
left join tz_jyjc_inspection_result ir on a.application_no = ir.application_no
left join cb_data_dictionary d on ir.inspection_conclusion = d.code
where
((b.supervise_org_code != '50' and b.supervise_org_code LIKE CONCAT (#{orgCode}, '%')) or (b.supervise_org_code = '50' and b.office_region LIKE CONCAT ('%', #{dpFilterParamForDetailDto.cityCode}, '%')))
and a.status != '6610' and a.status != '6615'
<if test="dpFilterParamForDetailDto.inspectionConclusion != null and dpFilterParamForDetailDto.inspectionConclusion != ''">
and ir.inspection_conclusion =#{dpFilterParamForDetailDto.inspectionConclusion}
</if>
<if test="dpFilterParamForDetailDto.applicationUnitName != null and dpFilterParamForDetailDto.applicationUnitName != ''">
and a.application_unit_name like CONCAT('%',#{dpFilterParamForDetailDto.applicationUnitName},'%')
</if>
<if test="dpFilterParamForDetailDto.inspectionUnitName != null and dpFilterParamForDetailDto.inspectionUnitName != ''">
and a.inspection_unit_name like CONCAT('%',#{dpFilterParamForDetailDto.inspectionUnitName},'%')
</if>
<if test="dpFilterParamForDetailDto.timeSearchOne.beginDate != null and dpFilterParamForDetailDto.timeSearchOne.beginDate != ''">
and date_ge(CAST(a.application_date as date),#{dpFilterParamForDetailDto.timeSearchOne.beginDate})
</if>
<if test="dpFilterParamForDetailDto.timeSearchOne.endDate != null and dpFilterParamForDetailDto.timeSearchOne.endDate != ''">
and date_le(CAST(a.application_date as date),#{dpFilterParamForDetailDto.timeSearchOne.endDate})
</if>
<if test="dpFilterParamForDetailDto.businessType != null and dpFilterParamForDetailDto.businessType != '' and dpFilterParamForDetailDto.businessType != '0' ">
and a.inspection_type = #{dpFilterParamForDetailDto.businessType}
</if>
</select>
<select id="queryAllFlowingAndFinishedCountForDetail" resultType="java.lang.Long">
SELECT
count(1)
FROM
"tz_jyjc_inspection_application" a
inner join tz_base_enterprise_info b on a.inspection_unit_code = b.use_unit_code
left join tz_jyjc_inspection_result ir on a.application_no = ir.application_no
where
((b.supervise_org_code != '50' and b.supervise_org_code LIKE CONCAT (#{dpFilterParamForDetailDto.orgCode}, '%')) or (b.supervise_org_code = '50' and b.office_region LIKE CONCAT ('%', #{dpFilterParamForDetailDto.cityCode}, '%')))
and a.status != '6610' and a.status != '6615'
<if test="dpFilterParamForDetailDto.inspectionConclusion != null and dpFilterParamForDetailDto.inspectionConclusion != ''">
and ir.inspection_conclusion =#{dpFilterParamForDetailDto.inspectionConclusion}
</if>
<if test="dpFilterParamForDetailDto.applicationUnitName != null and dpFilterParamForDetailDto.applicationUnitName != ''">
and a.application_unit_name like CONCAT('%',#{dpFilterParamForDetailDto.applicationUnitName},'%')
</if>
<if test="dpFilterParamForDetailDto.inspectionUnitName != null and dpFilterParamForDetailDto.inspectionUnitName != ''">
and a.inspection_unit_name like CONCAT('%',#{dpFilterParamForDetailDto.inspectionUnitName},'%')
</if>
<if test="dpFilterParamForDetailDto.timeSearchOne.beginDate != null and dpFilterParamForDetailDto.timeSearchOne.beginDate != ''">
and date_ge(CAST(a.application_date as date),#{dpFilterParamForDetailDto.timeSearchOne.beginDate})
</if>
<if test="dpFilterParamForDetailDto.timeSearchOne.endDate != null and dpFilterParamForDetailDto.timeSearchOne.endDate != ''">
and date_le(CAST(a.application_date as date),#{dpFilterParamForDetailDto.timeSearchOne.endDate})
</if>
<if test="dpFilterParamForDetailDto.businessType != null and dpFilterParamForDetailDto.businessType != '' and dpFilterParamForDetailDto.businessType != '0' ">
and a.inspection_type = #{dpFilterParamForDetailDto.businessType}
</if>
</select>
<select id="queryAllPendingAndFinishedCountForDetail" resultType="java.lang.Long">
SELECT
count(1)
FROM
"tz_jyjc_inspection_application" a
inner join tz_base_enterprise_info b on a.inspection_unit_code = b.use_unit_code
left join tz_jyjc_inspection_result ir on a.application_no = ir.application_no
where
((b.supervise_org_code != '50' and b.supervise_org_code LIKE CONCAT (#{dpFilterParamForDetailDto.orgCode}, '%')) or (b.supervise_org_code = '50' and b.office_region LIKE CONCAT ('%', #{dpFilterParamForDetailDto.cityCode}, '%')))
and a.status = '6616'
and EXISTS (select 1 from tz_jyjc_inspection_result r where ( r.result_status='1' or r.result_status='2') and a.application_no = r.application_no)
<if test="dpFilterParamForDetailDto.inspectionConclusion != null and dpFilterParamForDetailDto.inspectionConclusion != ''">
and ir.inspection_conclusion =#{dpFilterParamForDetailDto.inspectionConclusion}
</if>
<if test="dpFilterParamForDetailDto.applicationUnitName != null and dpFilterParamForDetailDto.applicationUnitName != ''">
and a.application_unit_name like CONCAT('%',#{dpFilterParamForDetailDto.applicationUnitName},'%')
</if>
<if test="dpFilterParamForDetailDto.inspectionUnitName != null and dpFilterParamForDetailDto.inspectionUnitName != ''">
and a.inspection_unit_name like CONCAT('%',#{dpFilterParamForDetailDto.inspectionUnitName},'%')
</if>
<if test="dpFilterParamForDetailDto.timeSearchOne.beginDate != null and dpFilterParamForDetailDto.timeSearchOne.beginDate != ''">
and date_ge(CAST(a.application_date as date),#{dpFilterParamForDetailDto.timeSearchOne.beginDate})
</if>
<if test="dpFilterParamForDetailDto.timeSearchOne.endDate != null and dpFilterParamForDetailDto.timeSearchOne.endDate != ''">
and date_le(CAST(a.application_date as date),#{dpFilterParamForDetailDto.timeSearchOne.endDate})
</if>
<if test="dpFilterParamForDetailDto.businessType != null and dpFilterParamForDetailDto.businessType != '' and dpFilterParamForDetailDto.businessType != '0' ">
and a.inspection_type = #{dpFilterParamForDetailDto.businessType}
</if>
</select>
<select id="queryAllFinishedCountForDetail" resultType="java.lang.Long">
SELECT
count(1)
FROM
"tz_jyjc_inspection_application" a
inner join tz_base_enterprise_info b on a.inspection_unit_code = b.use_unit_code
left join tz_jyjc_inspection_result ir on a.application_no = ir.application_no
where
((b.supervise_org_code != '50' and b.supervise_org_code LIKE CONCAT (#{dpFilterParamForDetailDto.orgCode}, '%')) or (b.supervise_org_code = '50' and b.office_region LIKE CONCAT ('%', #{dpFilterParamForDetailDto.cityCode}, '%')))
and a.status = '6616'
and EXISTS (select 1 from tz_jyjc_inspection_result r where r.result_status='2' and a.application_no = r.application_no)
<if test="dpFilterParamForDetailDto.inspectionConclusion != null and dpFilterParamForDetailDto.inspectionConclusion != ''">
and ir.inspection_conclusion =#{dpFilterParamForDetailDto.inspectionConclusion}
</if>
<if test="dpFilterParamForDetailDto.applicationUnitName != null and dpFilterParamForDetailDto.applicationUnitName != ''">
and a.application_unit_name like CONCAT('%',#{dpFilterParamForDetailDto.applicationUnitName},'%')
</if>
<if test="dpFilterParamForDetailDto.inspectionUnitName != null and dpFilterParamForDetailDto.inspectionUnitName != ''">
and a.inspection_unit_name like CONCAT('%',#{dpFilterParamForDetailDto.inspectionUnitName},'%')
</if>
<if test="dpFilterParamForDetailDto.timeSearchOne.beginDate != null and dpFilterParamForDetailDto.timeSearchOne.beginDate != ''">
and date_ge(CAST(a.application_date as date),#{dpFilterParamForDetailDto.timeSearchOne.beginDate})
</if>
<if test="dpFilterParamForDetailDto.timeSearchOne.endDate != null and dpFilterParamForDetailDto.timeSearchOne.endDate != ''">
and date_le(CAST(a.application_date as date),#{dpFilterParamForDetailDto.timeSearchOne.endDate})
</if>
<if test="dpFilterParamForDetailDto.businessType != null and dpFilterParamForDetailDto.businessType != '' and dpFilterParamForDetailDto.businessType != '0' ">
and a.inspection_type = #{dpFilterParamForDetailDto.businessType}
</if>
</select>
</mapper>
package com.yeejoin.amos.boot.module.jyjc.biz.event.listener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationNoAcceptLog;
import com.yeejoin.amos.boot.module.jyjc.api.enums.JYJCTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.RequestTypeEnum;
......@@ -43,7 +43,7 @@ import static com.yeejoin.amos.boot.module.jyjc.api.enums.CategoryEnum.getCatego
@Slf4j
public class EnableRuleDataPreparationListener implements ApplicationListener<InspectionOrgRefreshEvent> {
private Sequence sequence;
private SnowflakeIdUtil sequence;
private RegistrationInfoMapper registrationInfoMapper;
......@@ -63,7 +63,7 @@ public class EnableRuleDataPreparationListener implements ApplicationListener<In
private int threadNumber;
public EnableRuleDataPreparationListener(Sequence sequence,
public EnableRuleDataPreparationListener(SnowflakeIdUtil sequence,
RegistrationInfoMapper registrationInfoMapper,
RuleCommonServiceImpl ruleCommonService,
InspectionRuleEnableConfig inspectionRuleEnableConfig, InspectionApplicationPushEventListener applicationPushEventListener,
......
......@@ -5,8 +5,8 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.entity.TzsBaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationEquip;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationPushLog;
import com.yeejoin.amos.boot.module.jyjc.api.enums.EquipCategoryEnum;
......@@ -95,7 +95,7 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
KafkaProducer kafkaProducer;
@Autowired
Sequence sequence;
SnowflakeIdUtil sequence;
/**
......@@ -248,7 +248,7 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
}
private void castStr2JsonField(Map<String, Object> echParamMap) {
if(echParamMap != null){
if (echParamMap != null) {
echParamMap.forEach((k, v) -> {
if (JyjcConstant.TECH_PARAM_JSON_FIELDS.contains(k) && v != null) {
echParamMap.put(k, JSON.parse(v.toString()));
......
......@@ -2,7 +2,7 @@ package com.yeejoin.amos.boot.module.jyjc.biz.event.listener;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionResult;
import com.yeejoin.amos.boot.module.jyjc.biz.event.InspectionDetectionSaveToDbEvent;
import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.BizEmqPublisher;
......@@ -40,7 +40,7 @@ public class InspectionDetectionSaveToDbEventListener implements ApplicationList
CommonServiceImpl commonService;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
@Autowired
InspectionDetectionInfoMapper inspectionDetectionInfoMapper;
......
......@@ -41,9 +41,9 @@ public class TouchRuleEventListener implements ApplicationListener<TouchRuleEven
private void touchRuleWithApi(InspectionEquipInfo inspectionEquipInfo) {
try {
RequestContext.setToken(amosRequestContext.getToken());
RequestContext.setAppKey(amosRequestContext.getAppKey());
RequestContext.setProduct(amosRequestContext.getProduct());
RequestContext.setToken(amosRequestContext.getToken());
HashMap<String, byte[]> factMap = new HashMap<>();
List<Object> factList = new ArrayList<>();
factList.add(inspectionEquipInfo);
......
......@@ -8,7 +8,7 @@ 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.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
......@@ -101,7 +101,7 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
InspectionDetectionInfoMapper inspectionDetectionInfoMapper;
@Autowired
private Sequence sequence;
private SnowflakeIdUtil sequence;
@Autowired
TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
......
......@@ -17,15 +17,8 @@ feign.client.config.default.read-timeout=30000
## eureka properties:
eureka.client.registry-fetch-interval-seconds=5
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url-path=/actuator/health
eureka.instance.lease-expiration-duration-in-seconds=10
eureka.instance.lease-renewal-interval-in-seconds=5
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url-path=/actuator/info
eureka.instance.metadata-map.management.api-docs=http://localhost:${server.port}${server.servlet.context-path}/doc.html
knife4j.production=false
knife4j.enable=true
......
......@@ -120,6 +120,52 @@ public class JYJCDPStatisticsController {
return ResponseHelper.buildResponse(statisticsService.endRate(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-近30日业务办理量/办结率统计下钻图表", notes = "大屏-检验检测-近30日业务办理量/办结率统计下钻图表")
@PostMapping(value = "/endRateDetail")
public ResponseModel<Map<String, Object>> endRateDetail(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.endRateDetail(dpFilterParamForDetailDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-近30日业务办理量/办结率统计下钻列表", notes = "大屏-检验检测-近30日业务办理量/办结率统计下钻列表")
@PostMapping(value = "/endRateList")
public ResponseModel<Page<Map<String, Object>>> endRateList(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result,
@RequestParam(value = "current", defaultValue = "1") Integer current,
@RequestParam(value = "size", defaultValue = "20") Integer size) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
Page<Map<String, Object>> page = new Page<>(current,size);
return ResponseHelper.buildResponse(statisticsService.endRateList(dpFilterParamForDetailDto,page));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-近30日业务办理量/办结率统计下钻类型", notes = "大屏-检验检测-近30日业务办理量/办结率统计下钻类型")
@PostMapping(value = "/endRateType")
public ResponseModel<List<Map<String, Object>>> endRateType(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.endRateType(dpFilterParamForDetailDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-近30日业务办理量/办结率统计下钻筛选类型", notes = "大屏-检验检测-近30日业务办理量/办结率统计下钻筛选类型")
@PostMapping(value = "/endRateSearch")
public ResponseModel<Map<String,List<Map<String,Object>>>> endRateSearch(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.endRateSearch(dpFilterParamForDetailDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-按机构进行检验时效统计Top10排名", notes = "大屏-检验检测-按机构进行检验时效统计Top10排名")
......
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.common.api.entity.AlertUseUnitStatistics;
......@@ -111,6 +112,42 @@ public class YJDPStatisticsController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-即时警情下钻列表", notes = "大屏-应急-即时警情下钻列表")
@PostMapping(value = "/instantAlertList")
public ResponseModel<Page<Map<String,Object>>> instantAlertList(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result,
@RequestParam(value = "current", defaultValue = "1") Integer current,
@RequestParam(value = "size", defaultValue = "20") Integer size) throws Exception {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
Page<Map<String, Object>> page = new Page<>(current,size);
return ResponseHelper.buildResponse(statisticsService.instantAlertList(dpFilterParamForDetailDto,page));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-即时警情下钻列表类型", notes = "大屏-应急-即时警情下钻列表类型")
@PostMapping(value = "/getAlertCallType")
public ResponseModel<List<Map<String, Object>>> getAlertCallType(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.getAlertCallType(dpFilterParamForDetailDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-即时警情下钻列表筛选", notes = "大屏-应急-即时警情下钻列表筛选")
@PostMapping(value = "/getAlertCallSearch")
public ResponseModel<Map<String,List<Map<String,Object>>>> getAlertCallSearch(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.getAlertCallSearch(dpFilterParamForDetailDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-月度困人故障高发使用单位(默认上月度)", notes = "大屏-应急-月度困人故障高发使用单位")
@PostMapping(value = "/trappedUserHighCompanyCount")
public ResponseModel<List<AlertUseUnitStatisticsDto>> trappedUserHighCompanyCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
......@@ -240,7 +277,7 @@ public class YJDPStatisticsController {
@ApiOperation(value = "月度困人故障高发使用单位-右上角更多-地市月度应急事件高发使用单位-柱状图",
notes = "月度困人故障高发使用单位-右上角更多-地市月度应急事件高发使用单位-柱状图")
@PostMapping("/alertUnitBarChart/dp")
public ResponseModel<JSONObject> alertUnitBarChartForDP(@Validated @RequestBody DPFilterParamForDetailDto detailDto) {
public ResponseModel<JSONObject> alertUnitBarChartForDP(@Validated @RequestBody DPFilterParamForDetailDto detailDto) throws Exception {
return statisticsService.alertUnitBarChartForDP(detailDto);
}
......@@ -249,8 +286,8 @@ public class YJDPStatisticsController {
notes = "月度困人故障高发使用单位-右上角更多-地市月度应急事件高发使用单位-表格")
@PostMapping("/alertUseUnitTable/dp")
public ResponseModel<IPage<AlertUseUnitStatistics>> alertUseUnitTableForDP(@Validated @RequestBody DPFilterParamForDetailDto detailDto,
@RequestParam(value = "current") Integer current,
@RequestParam(value = "size") Integer size) {
@RequestParam(value = "current", defaultValue = "1") Integer current,
@RequestParam(value = "size", defaultValue = "20") Integer size) throws Exception {
detailDto.setCurrent(current);
detailDto.setSize(size);
return statisticsService.alertUseUnitTableForDP(detailDto);
......
......@@ -472,7 +472,7 @@ public class CylinderDPStatisticsServiceImpl {
Long count = null == orgCode ? null : cylinderStatisticsMapper.countEnterpriseUsed(orgCode);
if (totalNum != null && count != null && totalNum > 0 ) {
BigDecimal percent = (new BigDecimal(count.doubleValue() * 100).divide(new BigDecimal(totalNum.doubleValue()), 2, RoundingMode.HALF_UP));
BigDecimal percent = (new BigDecimal(count.doubleValue()).divide(new BigDecimal(totalNum.doubleValue()), 2, RoundingMode.HALF_UP));
result.put("stationRate", Double.valueOf(percent.toString()));
} else {
result.put("stationRate", 0.0);
......
......@@ -10,7 +10,9 @@ import com.yeejoin.amos.boot.biz.common.dto.JyjcInspectionApplicationDto;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.common.api.enums.AlertCallEnum;
import com.yeejoin.amos.boot.module.common.api.enums.JYJCBusinessTypeEnum;
import com.yeejoin.amos.boot.module.common.api.enums.JYJCResultEnum;
import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectTimeCountDto;
import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectionTimelinesDto;
import com.yeejoin.amos.boot.module.jyjc.api.dto.PublicityInspectOrgInfoDto;
......@@ -43,6 +45,7 @@ import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
......@@ -828,12 +831,18 @@ public class JYJCDPStatisticsServiceImpl {
//检验完成
Long finshCount = inspectionApplicationMapper.queryAllFinishedCount(orgCode, dpFilterParamDto);
ydata.add(finshCount);
//检验合格数量
Long qualifiedCount = inspectionApplicationMapper.queryQualifiedCount(orgCode, dpFilterParamDto);
// 计算比率
double completionRate = 0.0;
if (pendingCount != 0 && finshCount != 0) {
completionRate = (double) finshCount / pendingCount;
}
double qualifiedRate = 0.0;
if (finshCount != 0 && qualifiedCount != 0) {
qualifiedRate = (double) qualifiedCount / finshCount;
}
String[] xdata = {
"报检",
"受理",
......@@ -843,10 +852,108 @@ public class JYJCDPStatisticsServiceImpl {
// 格式化比率
DecimalFormat df = new DecimalFormat("#,##0.00");
String formattedCompletionRate = df.format(completionRate);
String formattedQualifiedRate = df.format(qualifiedRate);
result.put("xdata",xdata);
result.put("ydata",ydata);
result.put("completionRate",formattedCompletionRate);
result.put("qualifiedRate",formattedQualifiedRate);
return result;
}
public Map<String,Object> endRateDetail(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamForDetailDto.getCityCode());
List<Map<String,Object>> result = regionModels.parallelStream().map(r -> {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamForDetailDto.getCityCode());
DPFilterParamForDetailDto filterParamDto = new DPFilterParamForDetailDto();
BeanUtils.copyProperties(dpFilterParamForDetailDto, filterParamDto);
filterParamDto.setCityCode(r.getRegionCode()+"");
filterParamDto.setOrgCode(orgCode);
Map<String, Object> itemResult = endRateForDetail(filterParamDto);
itemResult.put("xdata",r.getRegionName());
return itemResult;
}).collect(Collectors.toList());
Map<String,Object> returnMap = new HashMap<>();
List<Map<String,Object>> legendData = new ArrayList<>();
for(int i = 0;i<2; i++){
Map<String,Object> map = new HashMap<>();
if(i == 0){
map.put("dataKey","allCount");
map.put("value","总数");
map.put("chartType","bar");
}else{
map.put("dataKey","completionRate");
map.put("value","完结率");
map.put("chartType","line");
}
legendData.add(map);
}
returnMap.put("legendData",legendData);
List xdata = new ArrayList();
List allCount = new ArrayList();
List completionRate = new ArrayList();
for(int i = 0;i<result.size();i++){
xdata.add(result.get(i).get("xdata"));
allCount.add(result.get(i).get("allCount"));
completionRate.add(result.get(i).get("completionRate"));
}
returnMap.put("xdata",xdata);
returnMap.put("finishedNum",allCount);
returnMap.put("percentData",completionRate);
return returnMap;
}
private Map<String, Object> endRateForDetail(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
Map<String,Object> result = new HashMap<>();
//报检数量
Long allCount = inspectionApplicationMapper.queryAllFlowingAndFinishedCountForDetail(dpFilterParamForDetailDto);
//受理数量
Long pendingCount = inspectionApplicationMapper.queryAllPendingAndFinishedCountForDetail(dpFilterParamForDetailDto);
//检验完成
Long finshCount = inspectionApplicationMapper.queryAllFinishedCountForDetail(dpFilterParamForDetailDto);
// 计算比率
double completionRate = 0.0;
if (pendingCount != 0 && finshCount != 0) {
completionRate = (double) finshCount / pendingCount;
}
// 格式化比率
DecimalFormat df = new DecimalFormat("#,##0.00");
String formattedCompletionRate = df.format(completionRate);
result.put("allCount",allCount);
result.put("completionRate",formattedCompletionRate);
return result;
}
public Page<Map<String,Object>> endRateList(DPFilterParamForDetailDto dpFilterParamForDetailDto,Page page){
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamForDetailDto.getCityCode());
if(orgCode == null){
return null;
}
//报检数量
Page<Map<String,Object>> result = inspectionApplicationMapper.queryAllList(page,orgCode, dpFilterParamForDetailDto);
return result;
}
public Map<String,List<Map<String,Object>>> endRateSearch(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
Map<String,List<Map<String,Object>>> enumMap = JYJCResultEnum.getSearchEnumList();
return enumMap;
}
public List<Map<String, Object>> endRateType(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<HashMap<String, Object>> enumList = JYJCTypeEnum.getTypeEnumList();
List<Map<String,Object>> result = new ArrayList<>();
Map<String,Object> map = new HashMap<>();
map.put("title","业务类型");
map.put("value","0");
map.put("children",enumList);
result.add(map);
return result;
}
......
......@@ -15,6 +15,8 @@ import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDateDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.common.api.entity.AlertRescueStatistics;
import com.yeejoin.amos.boot.module.common.api.entity.AlertUseUnitStatistics;
import com.yeejoin.amos.boot.module.common.api.enums.AlertCallEnum;
import com.yeejoin.amos.boot.module.common.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.statistics.api.dto.AlertUseUnitStatisticsDto;
import com.yeejoin.amos.boot.module.statistics.api.mapper.AlertRescueStatisticsMapper;
import com.yeejoin.amos.boot.module.statistics.api.mapper.AlertStatisticsMapper;
......@@ -215,6 +217,28 @@ public class YJDPStatisticsServiceImpl {
return alertCalledMapper.getAlertPaperInfoList(regionCodes, false);
}
public Page<Map<String,Object>> instantAlertList(DPFilterParamForDetailDto dpFilterParamForDetailDto,Page page) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamForDetailDto.getCityCode());
dpFilterParamForDetailDto.setOrgCode(orgCode);
return alertCalledMapper.getInstantAlertPage(page,dpFilterParamForDetailDto);
}
public List<Map<String, Object>> getAlertCallType(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<HashMap<String, Object>> enumList = AlertCallEnum.getTypeEnumList();
List<Map<String,Object>> result = new ArrayList<>();
Map<String,Object> map = new HashMap<>();
map.put("title","警情类型");
map.put("value","0");
map.put("children",enumList);
result.add(map);
return result;
}
public Map<String,List<Map<String,Object>>> getAlertCallSearch(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
Map<String,List<Map<String,Object>>> enumMap = AlertCallEnum.getSearchEnumList();
return enumMap;
}
public JSONObject trappedUserCount(DPFilterParamDto dpFilterParamDto) throws Exception {
JSONObject jsonObject = new JSONObject();
jsonObject.put("xdata", Arrays.asList("30分钟内到达次数", "超过30分钟到次数", "一级救援次数", "二级救援次数", "三级救援次数"));
......@@ -547,7 +571,7 @@ public class YJDPStatisticsServiceImpl {
return ResponseHelper.buildResponse(mapPage);
}
public ResponseModel<JSONObject> alertUnitBarChartForDP(DPFilterParamForDetailDto detailDto){
public ResponseModel<JSONObject> alertUnitBarChartForDP(DPFilterParamForDetailDto detailDto) throws Exception {
JSONObject res = new JSONObject();
JSONArray legendData = new JSONArray();
legendData.add(new JSONObject()
......@@ -560,6 +584,7 @@ public class YJDPStatisticsServiceImpl {
.map(RegionModel::getRegionName)
.filter(regionName -> !"西咸新区".equals(regionName))
.collect(Collectors.toList());
String date = DateUtil.formatDate(DateTimeUtil.addMonths(new Date(), -1), "yyyy-MM");
List<? extends Number> alertUnitTotal = regionList.stream()
.map(region -> {
String orgCode = stCommonService.getAndSetOrgCode(String.valueOf(region.getRegionCode()));
......@@ -568,6 +593,7 @@ public class YJDPStatisticsServiceImpl {
}
return alertUseUnitStatisticsMapper.selectCount(new QueryWrapper<AlertUseUnitStatistics>().lambda()
.likeRight(AlertUseUnitStatistics::getSupervisoryUnitOrgCode, orgCode)
.eq(AlertUseUnitStatistics::getStatisticsDate,date)
.isNotNull(AlertUseUnitStatistics::getUseUnitCode));
}).collect(Collectors.toList());
res.put("legendData", legendData);
......@@ -576,7 +602,7 @@ public class YJDPStatisticsServiceImpl {
return ResponseHelper.buildResponse(res);
}
public ResponseModel<IPage<AlertUseUnitStatistics>> alertUseUnitTableForDP(DPFilterParamForDetailDto detailDto){
public ResponseModel<IPage<AlertUseUnitStatistics>> alertUseUnitTableForDP(DPFilterParamForDetailDto detailDto) throws Exception{
Page<AlertUseUnitStatistics> page = new Page<>();
page.setCurrent(detailDto.getCurrent());
page.setSize(detailDto.getSize());
......@@ -603,7 +629,8 @@ public class YJDPStatisticsServiceImpl {
}else {
lambda.likeRight(AlertUseUnitStatistics::getSupervisoryUnitOrgCode, orgCode);
}
String date = DateUtil.formatDate(DateTimeUtil.addMonths(new Date(), -1), "yyyy-MM");
lambda.ge(AlertUseUnitStatistics::getStatisticsDate, date);
// 使用单位
if (!ValidationUtil.isEmpty(detailDto.getCompanyName())){
lambda.like(AlertUseUnitStatistics::getUseUnit, detailDto.getCompanyName().trim());
......@@ -612,6 +639,19 @@ public class YJDPStatisticsServiceImpl {
if (!ValidationUtil.isEmpty(detailDto.getMaintenanceCompanyName())){
lambda.like(AlertUseUnitStatistics::getMaintenanceUnit, detailDto.getMaintenanceCompanyName().trim());
}
// 开始时间
if (!ValidationUtil.isEmpty(detailDto.getTimeSearchOne().getBeginDate())){
lambda.ge(AlertUseUnitStatistics::getStartDate, detailDto.getTimeSearchOne().getBeginDate());
}
// 结束时间
if (!ValidationUtil.isEmpty(detailDto.getTimeSearchOne().getEndDate())){
lambda.le(AlertUseUnitStatistics::getEndDate, detailDto.getTimeSearchOne().getEndDate());
}
// 设备类型
if (!ValidationUtil.isEmpty(detailDto.getEquListCode())){
lambda.le(AlertUseUnitStatistics::getEquipmentClassificationCode, detailDto.getEquListCode());
}
IPage<AlertUseUnitStatistics> alertUseUnitStatistics = alertUseUnitStatisticsMapper.selectPage(page, lambda);
return ResponseHelper.buildResponse(alertUseUnitStatistics);
}
......@@ -651,4 +691,7 @@ public class YJDPStatisticsServiceImpl {
}
return list;
}
}
package com.yeejoin.amos.boot.module.tcm.api.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.List;
/**
......@@ -29,11 +27,9 @@ public class BasePersonRegisterDto extends BaseDto {
@ApiModelProperty(value = "真实姓名")
private String realName;
@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty(value = "有效期开始")
private Date expirationDateStart;
private String expirationDateStart;
@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty(value = "有效期结束")
private String expirationDateEnd;
......@@ -41,7 +37,6 @@ public class BasePersonRegisterDto extends BaseDto {
private String expirationDateType;
@ApiModelProperty(value = "单位名称")
private String name;
......@@ -85,8 +80,6 @@ public class BasePersonRegisterDto extends BaseDto {
@ApiModelProperty(value = "管理员身份证号")
private String adminIdNumber;
// @ApiModelProperty(value = "个人基本信息")
// private TzsBaseIndividualityDto baseIndividualityDto;
@ApiModelProperty(value = "平台公司id,平台创建公司后更新")
private String amosCompanySeq;
......@@ -94,4 +87,7 @@ public class BasePersonRegisterDto extends BaseDto {
@ApiModelProperty(value = "平台用户id,平台创建用户后更新")
private String adminUserId;
@ApiModelProperty(value = "住所")
private String address;
}
......@@ -25,14 +25,6 @@ public interface IRegUnitInfoService {
*/
RegUnitInfoDto registerUnit(RegUnitInfoDto model);
/**
* 单位校验
* @param unitCode 单位唯一编号
* @return RegUnitInfoDto
*/
RegUnitInfoDto unitCheck(String unitCode, String companyName,String registerType, String cardType);
/**
* 单位类型列表字典
* @return List<DataDictionary>
......@@ -84,4 +76,28 @@ public interface IRegUnitInfoService {
List<DataDictionary> getDictionaryListByType(String type) throws Exception;
List<DataDictionary> getXkItemList(String type);
/**
* 企业类型单位注册检验
* @param unitCode 单位code
* @param isNationwide 是否省外
* @return RegUnitInfoDto
*/
RegUnitInfoDto regBeforeCheckForEnterprises(String unitCode, Boolean isNationwide);
/**
* 事业单位类型注册检验
* @param unitCode 单位code
* @param isNationwide 是否省外
* @return RegUnitInfoDto
*/
RegUnitInfoDto regBeforeCheckForCause(String unitCode, Boolean isNationwide);
/**
* 个人类型注册检验
* @param unitCode 单位code
* @param cardType 证件类型
* @return RegUnitInfoDto
*/
RegUnitInfoDto regBeforeCheckForPerson(String unitCode, String cardType);
}
package com.yeejoin.amos.boot.module.tcm.biz.config;
import lombok.extern.slf4j.Slf4j;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@Slf4j
public class RedissonManager {
/**
* 集群环境使用-节点信息
*/
@Value("${spring.redis.cluster.nodes:default}")
private String clusterNodes;
/**
* 公共-密码
*/
@Value("${spring.redis.password}")
private String password;
/**
* 单机环境使用
*/
@Value("${spring.redis.host:default}")
private String host;
/**
* 单机环境使用
*/
@Value("${spring.redis.port:default}")
private String port;
/**
* 单机环境使用
*/
@Value("${spring.redis.database:0}")
private int database;
@Bean
@ConditionalOnProperty(name = "spring.redis.mode", havingValue = "cluster")
public RedissonClient redissonClient() {
// 集群环境使用
Config config = new Config();
config.useClusterServers()
.addNodeAddress(clusterNodes.split(","))
.setPassword(password);
return Redisson.create(config);
}
@Bean
@ConditionalOnProperty(name = "spring.redis.mode", havingValue = "singleton", matchIfMissing = true)
public RedissonClient redissonSingletonClient() {
// 单机环境使用
Config config = new Config();
config.useSingleServer().setAddress(host + ":" + port).setPassword(password).setDatabase(database);
return Redisson.create(config);
}
}
......@@ -305,7 +305,7 @@ public class ThreeSystemsServiceImpl extends BaseService<ThreeSystemsDto, ThreeS
}
nowDayThreeSystemsDto.setRecDate(new Date());
nowDayThreeSystemsDto.setRecUserId(amosRequestContext.getUserId());
// nowDayThreeSystemsDto.setRecUserId(amosRequestContext.getUserId());
nowDayThreeSystemsDto.setRecUserName(amosRequestContext.getUserName());
nowDayThreeSystemsDto.setIsDelete(false);
......
......@@ -46,19 +46,24 @@ import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils;
import org.redisson.api.RLock;
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.exception.BaseException;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.exception.instance.TooManyRequests;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
import java.util.stream.Collectors;
......@@ -80,7 +85,7 @@ public class TzBaseEnterpriseInfoServiceImpl
/**
* 企业管理员变更缓存key前缀
*/
private final String adminChange = "ADMIN_CHANGE_";
private final static String adminChange = "ADMIN_CHANGE_";
@Autowired
RedisUtil redisUtil;
@Autowired
......@@ -114,12 +119,15 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired
private TzsUserInfoServiceImpl userInfoService;
private static Map<String ,String> JYJC_CERT_MAP = new HashMap<>();
@Autowired
private RedissonClient redissonClient;
private static final Map<String ,String> JYJC_CERT_MAP = new HashMap<>();
/**
* 公司类型下的资质类型map:key为登录人的公司类型、value为包含的资质枚举
*/
private static Map<String ,String> COMPANY_TYPE_CERT_TYPE_MAP = new HashMap<>();
private static final Map<String ,String> COMPANY_TYPE_CERT_TYPE_MAP = new HashMap<>();
// 数据来源cb_data_dictionary type='UNIT_TYPE_NEW'
static {
COMPANY_TYPE_CERT_TYPE_MAP.put("使用单位", "1232");
......@@ -886,11 +894,19 @@ public class TzBaseEnterpriseInfoServiceImpl
@Override
public Map<String, Object> adminInfoUpdate(Map<String, Object> map) {
// 按照用户进行加锁,解决用户重复提交导致的身份信息重复问题
String userId = RequestContext.getExeUserId();
RLock lock = redissonClient.getLock(this.buildUserUpdateLockKey(userId));
Map<String, Object> resultMap = new HashMap<>();
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
if (!isLocked) {
throw new TooManyRequests("信息正在保存中,请稍后重试!");
}
//每一个企业只有一个管理员,所以当前登录用户即管理员用户
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
//自己不能修改自己 所以需要设置为机器人
platformTokenService.setRequestContext();
Map<String, Object> resultMap = new HashMap<>();
RegUnitInfo regUnitInfo = new RegUnitInfo();
String unitCode = String.valueOf(map.get("unitCode"));
regUnitInfo.setAdminName(String.valueOf(map.get("adminName")));
......@@ -899,18 +915,28 @@ public class TzBaseEnterpriseInfoServiceImpl
regUnitInfo.setAdminTel(String.valueOf(map.get("adminTel")));
me.setMobile(regUnitInfo.getAdminTel());
me.setRealName(String.valueOf(map.get("adminName")));
try {
Privilege.agencyUserClient.update(me, me.getUserId());
regUnitInfoService.update(regUnitInfo, new LambdaQueryWrapper<RegUnitInfo>().eq(RegUnitInfo::getUnitCode, unitCode));
} catch (Exception e) {
log.error(e.getMessage(),e);
throw new BadRequest(e.getMessage());
}
resultMap.put("success", regUnitInfo);
redisUtil.del(adminChange + map.get("adminTel"));
} catch (InterruptedException e) {
log.error("tryLock获取锁失败:",e);
throw new BadRequest("系统繁忙,请稍后重试!");
} catch (TooManyRequests e) {
log.error(e.getMessage(),e);
throw e;
} finally {
if (lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
return resultMap;
}
private String buildUserUpdateLockKey(String userId) {
return String.format("TCM_USER_UPDATE_LOCK_KEY:%s", userId);
}
public void setSpeUseUnitState(int state,SpeUseUnit speUseUnit){
speUseUnit.setSyncState(state);
speUseUnitService.updateById(speUseUnit);
......
......@@ -75,6 +75,7 @@ public class TzsBaseIndividualityServiceImpl extends BaseService<TzsBaseIndividu
companyInfo.setCompanyName(dto.getCredentialsNum() + "_" + dto.getRealName());
companyInfo.setCompanyCode(dto.getUnitCode());
companyInfo.setCompanyType(unitType);
companyInfo.setAddress(dto.getAddress());
try {
FeignClientResult<CompanyModel> companyResult = Privilege.companyClient.create(companyInfo);
if (companyResult == null || companyResult.getResult() == null) {
......
......@@ -14,6 +14,7 @@ import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -110,18 +111,40 @@ public class RegUnitInfoController extends BaseController {
return ResponseHelper.buildResponse(iRegUnitInfoService.adminInfo(unitCode));
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/enterprises/{unitCode}/check")
@ApiOperation(httpMethod = "GET", value = "企业单位注册校验", notes = "企业单位注册校验")
public ResponseModel<RegUnitInfoDto> regBeforeCheckForEnterprises(@PathVariable String unitCode,
@ApiParam(value = "是否省外") @RequestParam Boolean isNationwide) {
if (ValidationUtil.isEmpty(unitCode)) {
throw new BadRequest("注册编码不能为空");
}
try {
RegUnitInfoDto regUnitInfoDto = iRegUnitInfoService.regBeforeCheckForEnterprises(unitCode, isNationwide);
return ResponseHelper.buildResponse(regUnitInfoDto);
} catch (Exception e) {
ResponseModel<RegUnitInfoDto> response = new ResponseModel<>();
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
response.setResult(null);
response.setDevMessage(e.getMessage());
response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
response.setTraceId(RequestContext.getTraceId());
response.setPath(request.getServletPath());
return response;
}
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/{unitCode}/check")
@ApiOperation(httpMethod = "GET", value = "单位注册校验", notes = "单位注册校验")
public ResponseModel<RegUnitInfoDto> unitCheck(@PathVariable String unitCode,
@RequestParam(required = false) String registerType,
@RequestParam(required = false) String cardType,
@RequestParam(required = false) String companyName) {
@GetMapping(value = "/cause/{unitCode}/check")
@ApiOperation(httpMethod = "GET", value = "事业单位注册校验", notes = "事业单位注册校验")
public ResponseModel<RegUnitInfoDto> regBeforeCheckForCause(@PathVariable String unitCode,
@ApiParam(value = "是否省外") @RequestParam Boolean isNationwide) {
if (ValidationUtil.isEmpty(unitCode)) {
throw new BadRequest("注册编码不能为空");
}
try {
RegUnitInfoDto regUnitInfoDto = iRegUnitInfoService.unitCheck(unitCode, companyName,registerType,cardType);
RegUnitInfoDto regUnitInfoDto = iRegUnitInfoService.regBeforeCheckForCause(unitCode, isNationwide);
return ResponseHelper.buildResponse(regUnitInfoDto);
} catch (Exception e) {
ResponseModel<RegUnitInfoDto> response = new ResponseModel<>();
......@@ -136,6 +159,30 @@ public class RegUnitInfoController extends BaseController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/person/{unitCode}/check")
@ApiOperation(httpMethod = "GET", value = "个人注册校验", notes = "个人注册校验")
public ResponseModel<RegUnitInfoDto> regBeforeCheckForPerson(@PathVariable String unitCode,
@RequestParam(required = false) String cardType) {
if (ValidationUtil.isEmpty(unitCode)) {
throw new BadRequest("注册编码不能为空");
}
try {
RegUnitInfoDto regUnitInfoDto = iRegUnitInfoService.regBeforeCheckForPerson(unitCode, cardType);
return ResponseHelper.buildResponse(regUnitInfoDto);
} catch (Exception e) {
ResponseModel<RegUnitInfoDto> response = new ResponseModel<>();
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
response.setResult(null);
response.setDevMessage(e.getMessage());
response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
response.setTraceId(RequestContext.getTraceId());
response.setPath(request.getServletPath());
return response;
}
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/unit-type/list")
@ApiOperation(httpMethod = "GET", value = "单位类型列表", notes = "单位类型列表")
public ResponseModel<List<DataDictionary>> unitTypeList() {
......
......@@ -10,7 +10,7 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
import com.yeejoin.amos.boot.module.common.biz.service.impl.OrgUsrServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.utils.CommonResponseUtil;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.TzsAuthServiceImpl;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.tcm.biz.utils.BeanDtoVoUtils;
import com.yeejoin.amos.boot.module.tcm.flc.api.dto.UnitInfoApproveDto;
import com.yeejoin.amos.boot.module.tcm.flc.api.dto.UnitInfoDto;
......@@ -30,13 +30,7 @@ import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
......@@ -45,12 +39,7 @@ 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 java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.*;
/**
* 企业信息表
......@@ -84,7 +73,7 @@ public class UnitInfoController extends BaseController {
@Autowired
private TzsAuthServiceImpl tzsAuthServiceImpl;
private StartPlatformTokenService platformTokenService;
@Autowired
OrgUsrServiceImpl iOrgUsrService;
......@@ -100,7 +89,7 @@ public class UnitInfoController extends BaseController {
@TycloudOperation(ApiLevel = UserType.ANONYMOUS, needAuth = false)
@GetMapping(value = "/region/tree")
@ApiOperation(httpMethod = "GET", value = "获取组织机构树", notes = "获取组织机构树")
public ResponseModel<Collection<RegionModel>> getRegionTree(@RequestParam(value = "parentId",required = false) Long parentId) {
public ResponseModel<Collection<RegionModel>> getRegionTree(@RequestParam(value = "parentId", required = false) Long parentId) {
return ResponseHelper.buildResponse(unitInfoServiceImpl.getRegionTree(parentId, null));
}
......@@ -118,12 +107,11 @@ public class UnitInfoController extends BaseController {
/**
* 获取全国行政区划树
*
*/
@TycloudOperation(ApiLevel = UserType.ANONYMOUS, needAuth = false)
@GetMapping(value = "/national/region/tree")
@ApiOperation(httpMethod = "GET", value = "获取全国行政区划树", notes = "获取全国行政区划树")
public ResponseModel<Collection<RegionModel>> getNationalRegionTree(@RequestParam(value = "parentId",required = false) Long parentId, @RequestParam(value = "isNationwide",required = false) String isNationwide) {
public ResponseModel<Collection<RegionModel>> getNationalRegionTree(@RequestParam(value = "parentId", required = false) Long parentId, @RequestParam(value = "isNationwide", required = false) String isNationwide) {
return ResponseHelper.buildResponse(unitInfoServiceImpl.getRegionTree(parentId, isNationwide));
}
......@@ -140,9 +128,9 @@ public class UnitInfoController extends BaseController {
result = Privilege.companyClient.companyTreeWithoutAuth().getResult();
// 隐藏company 数据
Iterator<CompanyModel> it = result.iterator();
while(it.hasNext()) {
while (it.hasNext()) {
CompanyModel temp = it.next();
if("emergencyCenter".equals(temp.getLevel()) || "company".equals(temp.getLevel())) {
if ("emergencyCenter".equals(temp.getLevel()) || "company".equals(temp.getLevel())) {
it.remove();
} else {
this.dealCompanyTree(temp);
......@@ -152,7 +140,6 @@ public class UnitInfoController extends BaseController {
}
/**
* 企业信息图片上传 无token
*
......@@ -161,18 +148,18 @@ public class UnitInfoController extends BaseController {
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@PostMapping(value = "/uploadFile")
@ApiOperation(httpMethod = "POST", value = "企业信息图片上传 无token", notes = "企业信息图片上传 无token")
public ResponseModel<String> uploadFile(@ApiParam(value = "文件", required = true)@RequestParam MultipartFile file) {
if (ValidationUtil.isEmpty(file)){
public ResponseModel<String> uploadFile(@ApiParam(value = "文件", required = true) @RequestParam MultipartFile file) {
if (ValidationUtil.isEmpty(file)) {
throw new BadRequest("参数校验失败.");
}
tzsAuthServiceImpl.setRequestContext();
platformTokenService.setRequestContext();
FeignClientResult<Map<String, String>> date = Systemctl.fileStorageClient.updateCommonFile(file);
String urlString="";
String urlString = "";
if (date != null) {
Map<String, String> map = date.getResult();
Iterator<String> it = map.keySet().iterator();
while (it.hasNext()) {
urlString=it.next();
urlString = it.next();
}
}
return ResponseHelper.buildResponse(urlString);
......@@ -186,11 +173,11 @@ public class UnitInfoController extends BaseController {
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@GetMapping(value = "/hasExistUnit/{organizationCode}")
@ApiOperation(httpMethod = "GET", value = "判断组织机构是否存在", notes = "判断组织机构是否存在")
public ResponseModel<Boolean> hasExistUnit( @PathVariable(value = "organizationCode") String organizationCode) {
public ResponseModel<Boolean> hasExistUnit(@PathVariable(value = "organizationCode") String organizationCode) {
Boolean flag = false;
UnitInfo temp = unitInfoServiceImpl.getOne(new LambdaQueryWrapper<UnitInfo>().eq(UnitInfo::getIsDelete,false).eq(UnitInfo::getOrganizationCode,organizationCode).eq(UnitInfo::getUnitStatus,"1").
or().eq(UnitInfo::getIsChange,true).eq(UnitInfo::getOrganizationCode,organizationCode));
if(temp != null) {
UnitInfo temp = unitInfoServiceImpl.getOne(new LambdaQueryWrapper<UnitInfo>().eq(UnitInfo::getIsDelete, false).eq(UnitInfo::getOrganizationCode, organizationCode).eq(UnitInfo::getUnitStatus, "1").
or().eq(UnitInfo::getIsChange, true).eq(UnitInfo::getOrganizationCode, organizationCode));
if (temp != null) {
flag = true;
}
return ResponseHelper.buildResponse(flag);
......@@ -204,17 +191,16 @@ public class UnitInfoController extends BaseController {
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@GetMapping(value = "/hasExistUnit/{unitId}/{organizationCode}")
@ApiOperation(httpMethod = "GET", value = "判断组织机构是否存在-更新", notes = "判断组织机构是否存在-更新")
public ResponseModel<Boolean> hasExistUnitWithId( @PathVariable(value = "unitId") Long unitId,@PathVariable(value = "organizationCode") String organizationCode) {
public ResponseModel<Boolean> hasExistUnitWithId(@PathVariable(value = "unitId") Long unitId, @PathVariable(value = "organizationCode") String organizationCode) {
Boolean flag = false;
UnitInfo temp = unitInfoServiceImpl.getOne(new LambdaQueryWrapper<UnitInfo>().eq(UnitInfo::getIsDelete,false).eq(UnitInfo::getOrganizationCode,organizationCode).ne(UnitInfo::getSequenceNbr,unitId).eq(UnitInfo::getUnitStatus,"1").or().eq(UnitInfo::getIsChange,true));
if(temp != null) {
UnitInfo temp = unitInfoServiceImpl.getOne(new LambdaQueryWrapper<UnitInfo>().eq(UnitInfo::getIsDelete, false).eq(UnitInfo::getOrganizationCode, organizationCode).ne(UnitInfo::getSequenceNbr, unitId).eq(UnitInfo::getUnitStatus, "1").or().eq(UnitInfo::getIsChange, true));
if (temp != null) {
flag = true;
}
return ResponseHelper.buildResponse(flag);
}
/**
* 判断用户是否存在
*
......@@ -223,10 +209,10 @@ public class UnitInfoController extends BaseController {
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@GetMapping(value = "/hasExistUser/{userName}")
@ApiOperation(httpMethod = "GET", value = "判断用户是否存在", notes = "判断用户是否存在")
public ResponseModel<Boolean> hasExistUser( @PathVariable(value = "userName") String userName) {
public ResponseModel<Boolean> hasExistUser(@PathVariable(value = "userName") String userName) {
Boolean flag = false;
AgencyUserModel user = Privilege.agencyUserClient.queryByUserName(userName).getResult();
if(user != null ) {
if (user != null) {
flag = true;
}
return ResponseHelper.buildResponse(flag);
......@@ -240,7 +226,7 @@ public class UnitInfoController extends BaseController {
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@GetMapping(value = "/sendTelCode/{tel}")
@ApiOperation(httpMethod = "GET", value = "发送手机号验证码", notes = "发送手机号验证码")
public ResponseModel<Boolean> sendTelCode( @PathVariable(value = "tel") String tel,
public ResponseModel<Boolean> sendTelCode(@PathVariable(value = "tel") String tel,
@RequestParam(value = "type", required = false) String type) {
if (ValidationUtil.isEmpty(tel)) {
throw new BadRequest("参数校验失败.");
......@@ -248,8 +234,8 @@ public class UnitInfoController extends BaseController {
Boolean flag = false;
HashMap<String, String> params = new HashMap<>();
String code = this.getRandomCode();
params.put("code",code);
params.put("mobile",tel);
params.put("code", code);
params.put("mobile", tel);
params.put("smsCode", smsTempCode);
try {
Systemctl.smsClient.sendCommonSms(params).getResult();
......@@ -259,7 +245,7 @@ public class UnitInfoController extends BaseController {
}
String Key = ObjectUtils.isEmpty(type) ? RedisKey.FLC_USER_TEL : adminChange;
// code 保存到缓存中
redisUtils.set(Key + tel, code,time);
redisUtils.set(Key + tel, code, time);
return ResponseHelper.buildResponse(flag);
}
......@@ -279,9 +265,9 @@ public class UnitInfoController extends BaseController {
throw new BadRequest("参数校验失败.");
}
String Key = ObjectUtils.isEmpty(type) ? RedisKey.FLC_USER_TEL : adminChange;
if(redisUtils.hasKey(Key + tel)) {
if (redisUtils.hasKey(Key + tel)) {
String redisCode = redisUtils.get(Key + tel).toString();
if(code.equals(redisCode)) {
if (code.equals(redisCode)) {
flag = true;
}
}
......@@ -293,7 +279,6 @@ public class UnitInfoController extends BaseController {
}
/**
* 新增企业信息表
*
......@@ -315,9 +300,9 @@ public class UnitInfoController extends BaseController {
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个企业信息表", notes = "根据sequenceNbr查询单个企业信息表")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个企业信息表", notes = "根据sequenceNbr查询单个企业信息表")
public ResponseModel<UnitInfoDto> selectOne(@PathVariable Long sequenceNbr) {
if (ValidationUtil.isEmpty(sequenceNbr) ) {
if (ValidationUtil.isEmpty(sequenceNbr)) {
throw new BadRequest("参数校验失败.");
}
return ResponseHelper.buildResponse(unitInfoServiceImpl.getUnitDtoById(sequenceNbr));
......@@ -348,7 +333,7 @@ public class UnitInfoController extends BaseController {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = unitInfoServiceImpl.page(pageBean, unitInfoQueryWrapper);
int num= unitInfoServiceImpl.count(unitInfoQueryWrapper);
int num = unitInfoServiceImpl.count(unitInfoQueryWrapper);
pageBean.setTotal(num);
IPage<UnitInfoDto> unitInfoVoIPage = BeanDtoVoUtils.unitInfoIPageDto(page);
return ResponseHelper.buildResponse(unitInfoVoIPage);
......@@ -372,67 +357,66 @@ public class UnitInfoController extends BaseController {
return ResponseHelper.buildResponse(ValidationUtil.isEmpty(orgName) ? null : unitInfoDto);
}
private QueryWrapper<UnitInfo> setQueryWrapper(QueryWrapper<UnitInfo> queryWrapper, UnitInfoDto unitInfoDto,String sort) {
private QueryWrapper<UnitInfo> setQueryWrapper(QueryWrapper<UnitInfo> queryWrapper, UnitInfoDto unitInfoDto, String sort) {
queryWrapper.eq("is_delete", false);
if(sort!=null) { // 排序失效
String[] date= sort.split(",");
if(date[1].equals("ascend")) {
if (sort != null) { // 排序失效
String[] date = sort.split(",");
if (date[1].equals("ascend")) {
queryWrapper.orderByAsc(RedisKey.humpToLine(date[0]));
}else {
} else {
queryWrapper.orderByDesc(RedisKey.humpToLine(date[0]));
}
}else {
} else {
queryWrapper.orderByDesc("submit_time");
}
if (!ValidationUtil.isEmpty(unitInfoDto.getIsChange())) { // 分类 注册 / 信息变更 0 注册 1 变更
queryWrapper.eq("is_change",unitInfoDto.getIsChange());
queryWrapper.eq("is_change", unitInfoDto.getIsChange());
}
if(!ValidationUtil.isEmpty(unitInfoDto.getSubmitTimeStart())) { // 提交时间
queryWrapper.ge("submit_time",unitInfoDto.getSubmitTimeStart());
if (!ValidationUtil.isEmpty(unitInfoDto.getSubmitTimeStart())) { // 提交时间
queryWrapper.ge("submit_time", unitInfoDto.getSubmitTimeStart());
}
if(!ValidationUtil.isEmpty(unitInfoDto.getSubmitTimeEnd())) { // 提交时间
queryWrapper.le("submit_time",unitInfoDto.getSubmitTimeEnd());
if (!ValidationUtil.isEmpty(unitInfoDto.getSubmitTimeEnd())) { // 提交时间
queryWrapper.le("submit_time", unitInfoDto.getSubmitTimeEnd());
}
if(!ValidationUtil.isEmpty(unitInfoDto.getUnitTypeCode())) { // 单位类型
queryWrapper.like("unit_type_code",unitInfoDto.getUnitTypeCode());
if (!ValidationUtil.isEmpty(unitInfoDto.getUnitTypeCode())) { // 单位类型
queryWrapper.like("unit_type_code", unitInfoDto.getUnitTypeCode());
}
if(!ValidationUtil.isEmpty(unitInfoDto.getOrgName())) { // 单位名称
queryWrapper.like("org_name",unitInfoDto.getOrgName());
if (!ValidationUtil.isEmpty(unitInfoDto.getOrgName())) { // 单位名称
queryWrapper.like("org_name", unitInfoDto.getOrgName());
}
if(!ValidationUtil.isEmpty(unitInfoDto.getOrganizationCode())) { // 组织机构代码/统一信用代码
queryWrapper.like("organization_code",unitInfoDto.getOrganizationCode());
if (!ValidationUtil.isEmpty(unitInfoDto.getOrganizationCode())) { // 组织机构代码/统一信用代码
queryWrapper.like("organization_code", unitInfoDto.getOrganizationCode());
}
if(!ValidationUtil.isEmpty(unitInfoDto.getAdminName())) { // 管理员
queryWrapper.like("admin_name",unitInfoDto.getAdminName());
if (!ValidationUtil.isEmpty(unitInfoDto.getAdminName())) { // 管理员
queryWrapper.like("admin_name", unitInfoDto.getAdminName());
}
if(!ValidationUtil.isEmpty(unitInfoDto.getAdminTel())) { // 管理员电话
queryWrapper.like("admin_tel",unitInfoDto.getAdminTel());
if (!ValidationUtil.isEmpty(unitInfoDto.getAdminTel())) { // 管理员电话
queryWrapper.like("admin_tel", unitInfoDto.getAdminTel());
}
if(!ValidationUtil.isEmpty(unitInfoDto.getUnitStatus())) { // 审核状态
queryWrapper.eq("unit_status",unitInfoDto.getUnitStatus());
if (!ValidationUtil.isEmpty(unitInfoDto.getUnitStatus())) { // 审核状态
queryWrapper.eq("unit_status", unitInfoDto.getUnitStatus());
}
if(!ValidationUtil.isEmpty(unitInfoDto.getLegalPerson())) { // 法人
queryWrapper.like("legal_person",unitInfoDto.getLegalPerson());
if (!ValidationUtil.isEmpty(unitInfoDto.getLegalPerson())) { // 法人
queryWrapper.like("legal_person", unitInfoDto.getLegalPerson());
}
if(!ValidationUtil.isEmpty(unitInfoDto.getLegalPersonTel())) { // 法人电话
queryWrapper.like("legal_person_tel",unitInfoDto.getLegalPersonTel());
if (!ValidationUtil.isEmpty(unitInfoDto.getLegalPersonTel())) { // 法人电话
queryWrapper.like("legal_person_tel", unitInfoDto.getLegalPersonTel());
}
return queryWrapper;
}
private String getRandomCode(){
private String getRandomCode() {
String code = "";
Random random = new Random();
for (int i = 0; i < 6; i++) {
......@@ -467,22 +451,23 @@ public class UnitInfoController extends BaseController {
/**
* 根据当前登录人获取企业信息
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getUserUnit")
@ApiOperation(httpMethod = "GET",value = "根据当前登录人获取企业信息", notes = "根据当前登录人获取企业信息")
@ApiOperation(httpMethod = "GET", value = "根据当前登录人获取企业信息", notes = "根据当前登录人获取企业信息")
public ResponseModel<UnitInfoDto> getUserUnit() {
AgencyUserModel user = Privilege.agencyUserClient.getme().getResult();
List<CompanyModel> companys = user.getCompanys();
UnitInfoDto result = new UnitInfoDto();
for(CompanyModel c : companys) {
OrgUsr temp = iOrgUsrService.getOne(new LambdaQueryWrapper<OrgUsr>().eq(OrgUsr::getIsDelete,false).eq(OrgUsr::getAmosOrgId,c.getSequenceNbr()));
if(temp != null) {
for (CompanyModel c : companys) {
OrgUsr temp = iOrgUsrService.getOne(new LambdaQueryWrapper<OrgUsr>().eq(OrgUsr::getIsDelete, false).eq(OrgUsr::getAmosOrgId, c.getSequenceNbr()));
if (temp != null) {
// 企业信息查看判断是否变更 如果变更信息则返回变更中信息
result = unitInfoServiceImpl.getDtoByOrgId(temp.getSequenceNbr());
if(result.getIsChange() && result.getUnitStatus() == 0) {
if (result.getIsChange() && result.getUnitStatus() == 0) {
result = unitInfoChangeServiceImpl.findLastChangInfo(result.getSequenceNbr());
}
......@@ -517,9 +502,9 @@ public class UnitInfoController extends BaseController {
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/approve/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "查询审批数据", notes = "查询审批数据")
@ApiOperation(httpMethod = "GET", value = "查询审批数据", notes = "查询审批数据")
public ResponseModel<UnitInfoDto> getApproveInfo(@PathVariable Long sequenceNbr) {
if (ValidationUtil.isEmpty(sequenceNbr) ) {
if (ValidationUtil.isEmpty(sequenceNbr)) {
throw new BadRequest("参数校验失败.");
}
return ResponseHelper.buildResponse(unitInfoServiceImpl.getDtoById(sequenceNbr));
......@@ -545,7 +530,7 @@ public class UnitInfoController extends BaseController {
@ApiOperation(httpMethod = "POST", value = "获取使用单位列表", notes = "获取使用单位列表")
public ResponseModel<List<UnitInfoDto>> getUseUnit(@RequestBody UnitInfoDto model) {
List<UnitInfoDto> result = unitInfoServiceImpl.getUseUnit(model.getUnitType(),model.getAddress(),model.getOrgName(),model.getOrganizationCode());
List<UnitInfoDto> result = unitInfoServiceImpl.getUseUnit(model.getUnitType(), model.getAddress(), model.getOrgName(), model.getOrganizationCode());
return ResponseHelper.buildResponse(result);
}
......@@ -561,7 +546,6 @@ public class UnitInfoController extends BaseController {
}
/**
* 列表分页查询
*
......@@ -586,7 +570,7 @@ public class UnitInfoController extends BaseController {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = unitInfoServiceImpl.page(pageBean, unitInfoQueryWrapper);
int num= unitInfoServiceImpl.count(unitInfoQueryWrapper);
int num = unitInfoServiceImpl.count(unitInfoQueryWrapper);
pageBean.setTotal(num);
IPage<UnitInfoDto> unitInfoVoIPage = BeanDtoVoUtils.unitInfoIPageDto(page);
return ResponseHelper.buildResponse(unitInfoVoIPage);
......@@ -600,7 +584,7 @@ public class UnitInfoController extends BaseController {
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@GetMapping(value = "/hasExistPhone/{phone}")
@ApiOperation(httpMethod = "GET", value = "判断用户号码是否存在", notes = "判断用户号码是否存在")
public ResponseModel hasExistPhone( @PathVariable(value = "phone") String phone) {
public ResponseModel hasExistPhone(@PathVariable(value = "phone") String phone) {
try {
return CommonResponseUtil.success(Privilege.agencyUserClient.checkLoginId(phone).getResult());
} catch (Exception e) {
......@@ -623,21 +607,21 @@ public class UnitInfoController extends BaseController {
}
/**
* 根据当前登录人获取企业信息--编辑
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getUserUnitEdit")
@ApiOperation(httpMethod = "GET",value = "根据当前登录人获取企业信息--编辑", notes = "根据当前登录人获取企业信息--编辑")
@ApiOperation(httpMethod = "GET", value = "根据当前登录人获取企业信息--编辑", notes = "根据当前登录人获取企业信息--编辑")
public ResponseModel<UnitInfoDto> getUserUnitEdit() {
AgencyUserModel user = Privilege.agencyUserClient.getme().getResult();
List<CompanyModel> companys = user.getCompanys();
UnitInfoDto result = new UnitInfoDto();
for(CompanyModel c : companys) {
OrgUsr temp = iOrgUsrService.getOne(new LambdaQueryWrapper<OrgUsr>().eq(OrgUsr::getIsDelete,false).eq(OrgUsr::getAmosOrgId,c.getSequenceNbr()));
if(temp != null) {
for (CompanyModel c : companys) {
OrgUsr temp = iOrgUsrService.getOne(new LambdaQueryWrapper<OrgUsr>().eq(OrgUsr::getIsDelete, false).eq(OrgUsr::getAmosOrgId, c.getSequenceNbr()));
if (temp != null) {
// 企业信息查看判断是否变更 如果变更信息则返回变更中信息
result = unitInfoServiceImpl.getDtoByOrgId(temp.getSequenceNbr());
return ResponseHelper.buildResponse(result);
......@@ -654,9 +638,9 @@ public class UnitInfoController extends BaseController {
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getUnitInfo/{uuid}")
@ApiOperation(httpMethod = "GET", value = "根据uuid 获取注册信息", notes = "根据uuid 获取注册信息")
public ResponseModel hasExistUnitWithId( @PathVariable String uuid) {
UnitInfo temp = unitInfoServiceImpl.getOne(new LambdaQueryWrapper<UnitInfo>().eq(UnitInfo::getIsDelete,false).eq(UnitInfo::getCallbackId,uuid).eq(UnitInfo::getUnitStatus,"2"));
if(temp != null) {
public ResponseModel hasExistUnitWithId(@PathVariable String uuid) {
UnitInfo temp = unitInfoServiceImpl.getOne(new LambdaQueryWrapper<UnitInfo>().eq(UnitInfo::getIsDelete, false).eq(UnitInfo::getCallbackId, uuid).eq(UnitInfo::getUnitStatus, "2"));
if (temp != null) {
return CommonResponseUtil.success(temp);
} else {
return CommonResponseUtil.failure("未找到该企业信息单,请确认链接地址或该单据已重新提交");
......@@ -665,14 +649,14 @@ public class UnitInfoController extends BaseController {
private void dealCompanyTree(CompanyModel company) {
if(!"emergencyCenter".equals(company.getLevel()) && !"company".equals(company.getLevel())) {
if (!"emergencyCenter".equals(company.getLevel()) && !"company".equals(company.getLevel())) {
// 判断子节点是否是headquarter
Collection children = company.getChildren();
if (!ValidationUtil.isEmpty(children)) {
Iterator<Map> it = children.iterator();
while(it.hasNext()) {
while (it.hasNext()) {
Map temp = it.next();
if("emergencyCenter".equals(company.getLevel()) || "company".equals(company.getLevel())) {
if ("emergencyCenter".equals(company.getLevel()) || "company".equals(company.getLevel())) {
it.remove();
} else {
this.dealCompanyTree(temp);
......@@ -681,14 +665,15 @@ public class UnitInfoController extends BaseController {
}
}
}
private void dealCompanyTree(Map company) {
// 判断子节点是否是headquarter
Collection children = (Collection) company.get("children");
if (!ValidationUtil.isEmpty(children)) {
Iterator<Map> it = children.iterator();
while(it.hasNext()) {
while (it.hasNext()) {
Map temp = it.next();
if("emergencyCenter".equals(temp.get("level")) || "company".equals(temp.get("level"))) {
if ("emergencyCenter".equals(temp.get("level")) || "company".equals(temp.get("level"))) {
it.remove();
} else {
this.dealCompanyTree(temp);
......
package com.yeejoin.amos.boot.module.tcm.flc.biz.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdcardUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
......@@ -265,9 +266,12 @@ public class RegUnitInfoServiceImpl extends BaseService<RegUnitInfoDto, RegUnitI
} catch (Exception rollbackException) {
logger.error("回滚操作发生异常: {}", rollbackException.getMessage(), rollbackException);
}
assert e instanceof BadRequest;
String err = (((BadRequest) e).getErrorCode().equals("BadRequest")) ? "企业注册失败:" + e.getMessage() : "企业注册失败,请联系管理员!" ;
throw new RuntimeException(err);
if(e instanceof BadRequest){
String err = "企业注册失败:" + e.getMessage();
throw new BadRequest(err);
} else {
throw new BadRequest("企业注册失败,请联系管理员!");
}
}
return model;
}
......@@ -399,6 +403,7 @@ public class RegUnitInfoServiceImpl extends BaseService<RegUnitInfoDto, RegUnitI
if (type.equals(EnterpriseEnums.GR_ZT.getType())) {
baseEnterpriseInfo.setUseUnitCode(regUnitInfo.getUnitCode().split("_")[1]);
baseEnterpriseInfo.setAddress(regUnitInfo.getAddress());
} else {
baseEnterpriseInfo.setOfficeRegion(regUnitInfo.getOfficeRegion());
baseEnterpriseInfo.setOfficeAddress(regUnitInfo.getOfficeAddress());
......@@ -446,115 +451,6 @@ public class RegUnitInfoServiceImpl extends BaseService<RegUnitInfoDto, RegUnitI
}
@Override
public RegUnitInfoDto unitCheck(String unitCode, String companyName, String registerType, String cardType) {
RegUnitInfoDto regUnitInfoDto = new RegUnitInfoDto();
startPlatformTokenService.getToken();
// if (!ValidationUtil.isEmpty(companyName)) {
// FeignClientResult<CompanyModel> result = Privilege.companyClient.queryByCompanyName(companyName);
// if (result.getResult() != null) {
// throw new BadRequest("重复的公司名称");
// }
// }
if ("6600".equals(cardType)) {
boolean b = IdcardUtil.isValidCard(unitCode);
if (!b) {
throw new BadRequest("非法的证件号码");
}
}
if (!ValidationUtil.isEmpty(unitCode)) {
unitCode = ObjectUtils.isEmpty(cardType) ? unitCode : cardType + "_" + unitCode;
FeignClientResult<CompanyModel> result = Privilege.companyClient.queryByCompanyCode(unitCode);
if (result.getResult() != null) {
throw new BadRequest(!ObjectUtils.isEmpty(cardType) ? "重复的证件号码" : "重复的注册编码");
}
}
// 1.校验重复性
// RegUnitInfo regUnitInfo = this
// .getOne(new LambdaQueryWrapper<RegUnitInfo>().eq(RegUnitInfo::getUnitCode, unitCode));
// if (regUnitInfo != null) {
// throw new RuntimeException("该单位已注册,请联系企业管理员!");
// }
// 2.组织返回数据
if (ObjectUtils.isEmpty(registerType)) {
//2.1 工商信息查询
Map<String, Object> resultMap = accessFeignService.getData(unitCode).getResult();
if (resultMap == null) {
throw new BadRequest("工商信息接口查询失败,请稍后再试!");
}
if (ObjectUtils.isEmpty(resultMap)) {
throw new BadRequest("未查询到企业信息,请核对!");
}
if (!ValidationUtil.isEmpty(resultMap)) {
// 2.2 工商信息组装
String area = String.valueOf(resultMap.get("area"));
String city = area.substring(0, area.indexOf("市") + 1);
String district = area.substring(city.length());
if ("高新区".equals(district)) {
district = "雁塔区";
}
regUnitInfoDto.setCity(city);
regUnitInfoDto.setDistrict(district);
regUnitInfoDto.setStree(String.valueOf(resultMap.get("street")));
regUnitInfoDto.setCommunity(String.valueOf(resultMap.get("community")));
regUnitInfoDto.setAddress(String.valueOf(resultMap.get("address")));
regUnitInfoDto.setUnitCode(String.valueOf(resultMap.get("creditCode")));
regUnitInfoDto.setName(String.valueOf(resultMap.get("unitName")));
regUnitInfoDto.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
String industryName = "";
if (ObjectUtils.isNotEmpty(resultMap.get("industryCode"))) {
List<DataDictionary> dictionaries = this.initAllDataDictionaryList();
Optional<DataDictionary> op = dictionaries.stream().filter(d -> d.getCode() != null && d.getType() != null && d.getCode().equals(String.valueOf(resultMap.get("industryCode"))) && "HYXLDM".equals(d.getType())).findFirst();
if (op.isPresent()) {
DataDictionary dataDictionary = op.get();
industryName = dataDictionary.getName();
}
}
String approveDate = String.valueOf(resultMap.get("approval_time"));
approveDate = approveDate.contains("年") ? approveDate.replace("年", "-") : approveDate;
approveDate = approveDate.contains("月") ? approveDate.replace("月", "-") : approveDate;
approveDate = approveDate.contains("日") ? approveDate.replace("日", "-") : approveDate;
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
regUnitIcDto.setUnitCode(regUnitInfoDto.getUnitCode());
try {
regUnitIcDto.setApprovedDate(DateUtils.dateParse(approveDate, "yyyy-MM-dd"));
} catch (ParseException e) {
e.printStackTrace();
}
regUnitIcDto.setUnitName(regUnitInfoDto.getName());
regUnitIcDto.setRegisteredOrgan(String.valueOf(resultMap.get("registration_authority")));
regUnitIcDto.setBusinessState(String.valueOf(resultMap.get("operating_status")));
regUnitIcDto.setProvince("陕西省");
regUnitIcDto.setCity(regUnitInfoDto.getCity());
regUnitIcDto.setDistrict(regUnitInfoDto.getDistrict());
regUnitIcDto.setStree(regUnitInfoDto.getStree());
regUnitIcDto.setCommunity(regUnitInfoDto.getCommunity());
regUnitIcDto.setAddress(regUnitInfoDto.getAddress());
regUnitIcDto.setLegalPerson(regUnitInfoDto.getLegalPerson());
regUnitIcDto.setIndustryName(industryName);
regUnitInfoDto.setRegUnitIc(regUnitIcDto);
} else {
regUnitInfoDto.setRegUnitIc(new RegUnitIcDto());
}
} else if ("6598".equals(registerType)) {
TzsBaseInstitution regUnitMessage = tzsBaseInstitutionMapper.selectOne(new LambdaQueryWrapper<TzsBaseInstitution>().eq(TzsBaseInstitution::getUseCode, unitCode));
TzsBaseInstitutionDto institutionDto = new TzsBaseInstitutionDto();
if (!ObjectUtils.isEmpty(regUnitMessage)) {
BeanUtils.copyProperties(regUnitMessage, institutionDto);
}
regUnitInfoDto.setRegUnitMessage(institutionDto);
}
// 2.3 许可信息组装
List<BaseUnitLicence> unitLicences = baseUnitLicenceService
.list(new LambdaQueryWrapper<BaseUnitLicence>().eq(BaseUnitLicence::getUnitCode, unitCode));
regUnitInfoDto.setUnitLicences(Bean.toModels(unitLicences, BaseUnitLicenceDto.class));
return regUnitInfoDto;
}
@Override
public List<DataDictionary> getUnitTypeList() {
return this.setAndGetUnitTypeList();
}
......@@ -1127,8 +1023,126 @@ public class RegUnitInfoServiceImpl extends BaseService<RegUnitInfoDto, RegUnitI
}
@Override
public RegUnitInfoDto regBeforeCheckForEnterprises(String unitCode, Boolean isNationwide) {
RegUnitInfoDto regUnitInfoDto = new RegUnitInfoDto();
startPlatformTokenService.getToken();
// 1.唯一性检验
checkForReg(unitCode);
// 2.省内注册时,查询工商信息
if (!isNationwide) {
//2.1 工商信息查询
Map<String, Object> resultMap = accessFeignService.getData(unitCode).getResult();
if (resultMap == null) {
throw new BadRequest("工商信息接口查询失败,请稍后再试!");
}
if (ObjectUtils.isEmpty(resultMap)) {
throw new BadRequest("未查询到企业信息,请核对!");
}
if (!ValidationUtil.isEmpty(resultMap)) {
// 2.2 工商信息组装
String area = String.valueOf(resultMap.get("area"));
String city = area.substring(0, area.indexOf("市") + 1);
String district = area.substring(city.length());
if ("高新区".equals(district)) {
district = "雁塔区";
}
regUnitInfoDto.setCity(city);
regUnitInfoDto.setDistrict(district);
regUnitInfoDto.setStree(String.valueOf(resultMap.get("street")));
regUnitInfoDto.setCommunity(String.valueOf(resultMap.get("community")));
regUnitInfoDto.setAddress(String.valueOf(resultMap.get("address")));
regUnitInfoDto.setUnitCode(String.valueOf(resultMap.get("creditCode")));
regUnitInfoDto.setName(String.valueOf(resultMap.get("unitName")));
regUnitInfoDto.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
String industryName = "";
if (ObjectUtils.isNotEmpty(resultMap.get("industryCode"))) {
List<DataDictionary> dictionaries = this.initAllDataDictionaryList();
Optional<DataDictionary> op = dictionaries.stream().filter(d -> d.getCode() != null && d.getType() != null && d.getCode().equals(String.valueOf(resultMap.get("industryCode"))) && "HYXLDM".equals(d.getType())).findFirst();
if (op.isPresent()) {
DataDictionary dataDictionary = op.get();
industryName = dataDictionary.getName();
}
}
String approveDate = String.valueOf(resultMap.get("approval_time"));
approveDate = approveDate.contains("年") ? approveDate.replace("年", "-") : approveDate;
approveDate = approveDate.contains("月") ? approveDate.replace("月", "-") : approveDate;
approveDate = approveDate.contains("日") ? approveDate.replace("日", "-") : approveDate;
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
regUnitIcDto.setUnitCode(regUnitInfoDto.getUnitCode());
regUnitIcDto.setApprovedDate(DateUtil.parse(approveDate, "yyyy-MM-dd"));
regUnitIcDto.setUnitName(regUnitInfoDto.getName());
regUnitIcDto.setRegisteredOrgan(String.valueOf(resultMap.get("registration_authority")));
regUnitIcDto.setBusinessState(String.valueOf(resultMap.get("operating_status")));
regUnitIcDto.setProvince("陕西省");
regUnitIcDto.setCity(regUnitInfoDto.getCity());
regUnitIcDto.setDistrict(regUnitInfoDto.getDistrict());
regUnitIcDto.setStree(regUnitInfoDto.getStree());
regUnitIcDto.setCommunity(regUnitInfoDto.getCommunity());
regUnitIcDto.setAddress(regUnitInfoDto.getAddress());
regUnitIcDto.setLegalPerson(regUnitInfoDto.getLegalPerson());
regUnitIcDto.setIndustryName(industryName);
regUnitInfoDto.setRegUnitIc(regUnitIcDto);
} else {
regUnitInfoDto.setRegUnitIc(new RegUnitIcDto());
}
}
// 3 许可信息组装
List<BaseUnitLicence> unitLicences = baseUnitLicenceService
.list(new LambdaQueryWrapper<BaseUnitLicence>().eq(BaseUnitLicence::getUnitCode, unitCode));
regUnitInfoDto.setUnitLicences(Bean.toModels(unitLicences, BaseUnitLicenceDto.class));
return regUnitInfoDto;
}
@Override
public List<DataDictionary> getXkItemList(String type) {
List<DataDictionary> dictionaries = this.initAllDataDictionaryList();
return dictionaries.stream().parallel().filter(d -> ("XK-" + type).equals(d.getExtend())).collect(Collectors.toList());
}
@Override
public RegUnitInfoDto regBeforeCheckForCause(String unitCode, Boolean isNationwide) {
RegUnitInfoDto regUnitInfoDto = new RegUnitInfoDto();
// 1.唯一性检验
startPlatformTokenService.getToken();
checkForReg(unitCode);
// 2.省内时数据组装
if (!isNationwide) {
TzsBaseInstitution regUnitMessage = tzsBaseInstitutionMapper.selectOne(new LambdaQueryWrapper<TzsBaseInstitution>().eq(TzsBaseInstitution::getUseCode, unitCode));
TzsBaseInstitutionDto institutionDto = new TzsBaseInstitutionDto();
if (!ObjectUtils.isEmpty(regUnitMessage)) {
BeanUtils.copyProperties(regUnitMessage, institutionDto);
}
regUnitInfoDto.setRegUnitMessage(institutionDto);
}
// 3.许可信息组装
List<BaseUnitLicence> unitLicences = baseUnitLicenceService
.list(new LambdaQueryWrapper<BaseUnitLicence>().eq(BaseUnitLicence::getUnitCode, unitCode));
regUnitInfoDto.setUnitLicences(Bean.toModels(unitLicences, BaseUnitLicenceDto.class));
return regUnitInfoDto;
}
private void checkForReg(String unitCode) {
FeignClientResult<CompanyModel> result = Privilege.companyClient.queryByCompanyCode(unitCode);
if (result.getResult() != null) {
throw new BadRequest("重复的注册编码");
}
}
@Override
public RegUnitInfoDto regBeforeCheckForPerson(String unitCode, String cardType) {
RegUnitInfoDto regUnitInfoDto = new RegUnitInfoDto();
startPlatformTokenService.getToken();
if ("6600".equals(cardType)) {
boolean b = IdcardUtil.isValidCard(unitCode);
if (!b) {
throw new BadRequest("非法的证件号码");
}
}
unitCode = cardType + "_" + unitCode;
FeignClientResult<CompanyModel> result = Privilege.companyClient.queryByCompanyCode(unitCode);
if (result.getResult() != null) {
throw new BadRequest("重复的证件号码!");
}
return regUnitInfoDto;
}
}
\ No newline at end of file
......@@ -19,7 +19,7 @@ import com.yeejoin.amos.boot.module.tcm.api.common.BizCommonConstant;
import com.yeejoin.amos.boot.module.tcm.api.dto.WechatMessageDto;
import com.yeejoin.amos.boot.module.tcm.api.entity.WechatRelation;
import com.yeejoin.amos.boot.module.tcm.api.enums.TzsCommonParam;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.TzsAuthServiceImpl;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.WechatRelationServiceImpl;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.WechatServiceImpl;
import com.yeejoin.amos.boot.module.tcm.biz.utils.JsonUtils;
......@@ -73,7 +73,7 @@ public class UnitInfoServiceImpl extends BaseService<UnitInfoDto, UnitInfo, Unit
private Resource stepRegin;
@Autowired
private TzsAuthServiceImpl tzsAuthServiceImpl;
private StartPlatformTokenService platformTokenService;
@Autowired
ISourceFileService ISourceFileService;
......@@ -115,7 +115,7 @@ public class UnitInfoServiceImpl extends BaseService<UnitInfoDto, UnitInfo, Unit
@Transactional
public UnitInfoDto saveUnitInfo(UnitInfoDto model) {
tzsAuthServiceImpl.setRequestContext();
platformTokenService.setRequestContext();
model.setUnitStatus(0);// 设置为待审核状态
model.setSubmitTime(new Date()); // 提交时间
model.setIsChange(false);// 新增状态不是变更状态
......@@ -650,7 +650,7 @@ public class UnitInfoServiceImpl extends BaseService<UnitInfoDto, UnitInfo, Unit
@Override
public Collection<RegionModel> getRegionTree(Long parentId, String isNationwide) {
tzsAuthServiceImpl.setRequestContext();
platformTokenService.setRequestContext();
Collection<RegionModel> result = null;
if(parentId == null) {
result = this.getAllRegionTree(isNationwide);
......
......@@ -169,3 +169,8 @@ tzs.auth.user.photo=/public/common/userPic.png
tzs.WxApp.appId=wx48a1b1915b10d14b
tzs.WxApp.secret=ac4f4a9d3c97676badb70c19a2f37b16
tzs.WxApp.grant-type=authorization_code
# ??????(0<=datacenter-id<=31)
mybatis-plus.global-config.datacenter-id=1
# ??????(0<=worker-id<=31)
mybatis-plus.global-config.worker-id=2
\ No newline at end of file
......@@ -2,7 +2,7 @@ package com.yeejoin.amos.patrol.business.data;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.component.robot.AmosRequestContext;
import com.yeejoin.amos.feign.privilege.Privilege;
......@@ -50,7 +50,7 @@ public class CheckRecordDataConsumer implements Runnable {
private AmosRequestContext requestContext;
private Sequence sequence;
private SnowflakeIdUtil sequence;
private CheckMapper checkMapper;
......@@ -66,7 +66,7 @@ public class CheckRecordDataConsumer implements Runnable {
inputItemDao = applicationContext.getBean(IInputItemDao.class);
planTaskDetailMapper = applicationContext.getBean(PlanTaskDetailMapper.class);
requestContext = applicationContext.getBean(AmosRequestContext.class);
sequence = applicationContext.getBean(Sequence.class);
sequence = applicationContext.getBean(SnowflakeIdUtil.class);
checkMapper = applicationContext.getBean(CheckMapper.class);
checkInputMapper = applicationContext.getBean(CheckInputMapper.class);
}
......@@ -75,8 +75,8 @@ public class CheckRecordDataConsumer implements Runnable {
public void run() {
while (true) {
try {
this.setRequestContext();
CheckRecordDataDto checkRecordDataDto = blockingQueue.take();
this.setRequestContext();
this.save2Db(checkRecordDataDto);
} catch (Exception e) {
log.error("入库失败", e);
......
......@@ -7,7 +7,7 @@ import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
@Configuration
@EnableElasticsearchRepositories(basePackages = {"com.yeejoin.amos.boot.module.common.biz.dao","com.yeejoin.amos.patrol.business.dao.repository"})
@EnableElasticsearchRepositories(basePackages = {"com.yeejoin.amos.boot.module.common.biz.dao","com.yeejoin.amos.patrol.business.dao.repository","com.yeejoin.amos.boot.module.common.api.dao"})
public class ElasticSearchRestTemplateConfig {
......
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.dto.CountDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.AlertCalledQueryDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.AlertCalledRecordDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.AlertPaperInfoDto;
......@@ -139,4 +140,5 @@ public interface AlertCalledMapper extends BaseMapper<AlertCalled> {
*/
List<CountDto> faultCauseRatio(@Param("regionCode") String regionCode);
Page<Map<String, Object>> getInstantAlertPage(@Param("page") Page page,@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
}
......@@ -23,6 +23,10 @@ import java.util.Map;
@Mapper
public interface EquipmentCategoryMapper extends BaseMapper<EquipmentCategory> {
@Select("SELECT * FROM tz_equipment_category WHERE code NOT LIKE '7%' ORDER BY parent_id")
List<EquipmentCategoryDto> selectClassifyNoStart7();
@Select("select * from tz_equipment_category where code in('1000','2000','3000','4000','5000','6000','8000','9000')")
List<EquipmentCategoryDto> selectClassify();
......
......@@ -677,6 +677,63 @@
longValue ASC
LIMIT 5
</select>
<select id="getInstantAlertPage" resultType="java.util.Map">
SELECT
ac.work_order_number AS workOrderNumber,
ac.rec_user_name AS recUserName,
ac.alarm_type AS alarmType,
ac.emergency_person AS emergencyPerson,
ac.call_time AS callTime,
ac.device_id AS deviceId,
ac.address AS address,
concat(ac.city, ac.district) AS area,
ac.alert_source AS alertSource,
ac.alert_stage AS alertStage,
ac.alert_status AS alertStatus
FROM
tz_alert_called ac
LEFT JOIN tz_dispatch_task dt ON ac.sequence_nbr = dt.alert_id
WHERE 1=1
<if test="dpFilterParamForDetailDto.orgCode != null and dpFilterParamForDetailDto.orgCode != '' ">
AND ac.biz_org_code LIKE CONCAT( #{dpFilterParamForDetailDto.orgCode} , '%')
</if>
<if test="dpFilterParamForDetailDto.workOrderNumber != null and dpFilterParamForDetailDto.workOrderNumber != ''">
AND ac.work_order_number LIKE CONCAT('%', #{dpFilterParamForDetailDto.workOrderNumber}, '%')
</if>
<if test="dpFilterParamForDetailDto.recUserName != null and dpFilterParamForDetailDto.recUserName != ''">
AND ac.rec_user_name LIKE CONCAT('%', #{dpFilterParamForDetailDto.recUserName}, '%')
</if>
<if test="dpFilterParamForDetailDto.emergencyPerson != null and dpFilterParamForDetailDto.emergencyPerson != ''">
AND ac.emergency_person = #{dpFilterParamForDetailDto.emergencyPerson}
</if>
<if test="dpFilterParamForDetailDto.emergencyCall != null and dpFilterParamForDetailDto.emergencyCall != ''">
AND ac.emergency_call LIKE CONCAT('%', #{dpFilterParamForDetailDto.emergencyCall}, '%')
</if>
<if test="dpFilterParamForDetailDto.deviceId != null and dpFilterParamForDetailDto.deviceId != ''">
AND ac.device_id = LIKE CONCAT('%', #{dpFilterParamForDetailDto.deviceId}, '%')
</if>
<if test="dpFilterParamForDetailDto.address != null and dpFilterParamForDetailDto.address != ''">
AND ac.address LIKE CONCAT('%', #{dpFilterParamForDetailDto.address}, '%')
</if>
<if test="dpFilterParamForDetailDto.emergencyStartTime != null and dpFilterParamForDetailDto.emergencyStartTime != ''">
AND dt.arrive_time &gt;= #{dpFilterParamForDetailDto.emergencyStartTime}
</if>
<if test="dpFilterParamForDetailDto.emergencyEndTime != null and dpFilterParamForDetailDto.emergencyEndTime != ''">
AND dt.arrive_time &lt;= #{dpFilterParamForDetailDto.emergencyEndTime}
</if>
<if test="dpFilterParamForDetailDto.alertSourceCode != null and dpFilterParamForDetailDto.alertSourceCode != ''">
AND ac.alert_source_code = #{dpFilterParamForDetailDto.alertSourceCode}
</if>
<if test="dpFilterParamForDetailDto.alertStage != null and dpFilterParamForDetailDto.alertStage != ''">
AND ac.alert_stage = #{dpFilterParamForDetailDto.alertStage}
</if>
<if test="dpFilterParamForDetailDto.alertStatus != null and dpFilterParamForDetailDto.alertStatus != ''">
AND ac.alert_status = #{dpFilterParamForDetailDto.alertStatus}
</if>
<if test="dpFilterParamForDetailDto.alertTypeCode != null and dpFilterParamForDetailDto.alertTypeCode != '' and dpFilterParamForDetailDto.alertTypeCode != '0'">
AND ac.alarm_type_code = #{dpFilterParamForDetailDto.alertTypeCode}
</if>
</select>
</mapper>
......@@ -76,7 +76,6 @@
<dependency>
<groupId>com.yeejoin</groupId>
<artifactId>amos-component-security</artifactId>
<version>${amos.version.tzs}</version>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
......
......@@ -251,7 +251,7 @@
<dependency>
<groupId>com.yeejoin</groupId>
<artifactId>amos-feign-workflow</artifactId>
<version>1.10.8</version>
<version>${amos.version}</version>
</dependency>
<dependency>
<groupId>com.yeejoin</groupId>
......
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