Commit 7ff949f8 authored by 韩桐桐's avatar 韩桐桐

fix(jg):三环车用气瓶认领 接口

parent 5cfeee77
...@@ -3,9 +3,7 @@ package com.yeejoin.amos.boot.module.jg.api.entity; ...@@ -3,9 +3,7 @@ package com.yeejoin.amos.boot.module.jg.api.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Builder; import lombok.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Date; import java.util.Date;
...@@ -18,6 +16,9 @@ import java.util.Date; ...@@ -18,6 +16,9 @@ import java.util.Date;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("tzs_jg_certificate_change_record") @TableName("tzs_jg_certificate_change_record")
public class JgCertificateChangeRecord extends BaseEntity { public class JgCertificateChangeRecord extends BaseEntity {
......
...@@ -2,9 +2,8 @@ package com.yeejoin.amos.boot.module.jg.api.entity; ...@@ -2,9 +2,8 @@ package com.yeejoin.amos.boot.module.jg.api.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity; import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** /**
...@@ -16,6 +15,9 @@ import lombok.experimental.Accessors; ...@@ -16,6 +15,9 @@ import lombok.experimental.Accessors;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("tzs_jg_certificate_change_record_eq") @TableName("tzs_jg_certificate_change_record_eq")
public class JgCertificateChangeRecordEq extends BaseEntity { public class JgCertificateChangeRecordEq extends BaseEntity {
......
...@@ -5,8 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName; ...@@ -5,8 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.*;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Date; import java.util.Date;
...@@ -20,6 +19,9 @@ import java.util.Date; ...@@ -20,6 +19,9 @@ import java.util.Date;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("tzs_jg_use_registration_manage") @TableName("tzs_jg_use_registration_manage")
public class JgUseRegistrationManage extends BaseEntity { public class JgUseRegistrationManage extends BaseEntity {
......
...@@ -3,8 +3,7 @@ package com.yeejoin.amos.boot.module.jg.api.entity; ...@@ -3,8 +3,7 @@ package com.yeejoin.amos.boot.module.jg.api.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data; import lombok.*;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Date; import java.util.Date;
...@@ -17,6 +16,9 @@ import java.util.Date; ...@@ -17,6 +16,9 @@ import java.util.Date;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("tzs_jg_vehicle_information") @TableName("tzs_jg_vehicle_information")
public class JgVehicleInformation extends BaseEntity { public class JgVehicleInformation extends BaseEntity {
......
...@@ -3,8 +3,7 @@ package com.yeejoin.amos.boot.module.jg.api.entity; ...@@ -3,8 +3,7 @@ package com.yeejoin.amos.boot.module.jg.api.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data; import lombok.*;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Date; import java.util.Date;
...@@ -17,6 +16,9 @@ import java.util.Date; ...@@ -17,6 +16,9 @@ import java.util.Date;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("tzs_jg_vehicle_information_eq") @TableName("tzs_jg_vehicle_information_eq")
public class JgVehicleInformationEq extends BaseEntity { public class JgVehicleInformationEq extends BaseEntity {
......
...@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.jg.api.service; ...@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.jg.api.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.ShCarDto; import com.yeejoin.amos.boot.module.jg.api.dto.ShCarDto;
import java.util.Map;
/** /**
* 三环系统-车辆信息表接口类 * 三环系统-车辆信息表接口类
* *
...@@ -12,4 +14,6 @@ import com.yeejoin.amos.boot.module.jg.api.dto.ShCarDto; ...@@ -12,4 +14,6 @@ import com.yeejoin.amos.boot.module.jg.api.dto.ShCarDto;
public interface IShCarService { public interface IShCarService {
Page<ShCarDto> queryForShCarPage(Page<ShCarDto> page, ShCarDto dto); Page<ShCarDto> queryForShCarPage(Page<ShCarDto> page, ShCarDto dto);
Boolean claim(Map<String, Object> paramMap);
} }
...@@ -20,16 +20,15 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -20,16 +20,15 @@ import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import java.util.List; import java.util.*;
import java.util.Optional;
/** /**
*
* @author system_generator * @author system_generator
* @date 2024-11-08 * @date 2024-11-08
*/ */
...@@ -46,6 +45,7 @@ public class ShCarController extends BaseController { ...@@ -46,6 +45,7 @@ public class ShCarController extends BaseController {
@Autowired @Autowired
IShCarService iShCarService; IShCarService iShCarService;
/** /**
* 新增 * 新增
* *
...@@ -68,7 +68,7 @@ public class ShCarController extends BaseController { ...@@ -68,7 +68,7 @@ public class ShCarController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}") @PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新") @ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<ShCar> updateBySequenceNbrShCar(@RequestBody ShCar entity,@PathVariable(value = "sequenceNbr") Long sequenceNbr) { public ResponseModel<ShCar> updateBySequenceNbrShCar(@RequestBody ShCar entity, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
// entity.setSequenceNbr(sequenceNbr); // entity.setSequenceNbr(sequenceNbr);
entity.setSequenceNbr(String.valueOf(sequenceNbr)); entity.setSequenceNbr(String.valueOf(sequenceNbr));
return ResponseHelper.buildResponse(shCarServiceImpl.updateWithModel(entity)); return ResponseHelper.buildResponse(shCarServiceImpl.updateWithModel(entity));
...@@ -83,7 +83,7 @@ public class ShCarController extends BaseController { ...@@ -83,7 +83,7 @@ public class ShCarController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}") @DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除") @ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){ public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(shCarServiceImpl.removeById(sequenceNbr)); return ResponseHelper.buildResponse(shCarServiceImpl.removeById(sequenceNbr));
} }
...@@ -95,7 +95,7 @@ public class ShCarController extends BaseController { ...@@ -95,7 +95,7 @@ public class ShCarController extends BaseController {
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}") @GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个") @ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<ShCar> selectOne(@PathVariable Long sequenceNbr) { public ResponseModel<ShCar> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(shCarServiceImpl.queryBySeq(sequenceNbr)); return ResponseHelper.buildResponse(shCarServiceImpl.queryBySeq(sequenceNbr));
} }
...@@ -109,7 +109,7 @@ public class ShCarController extends BaseController { ...@@ -109,7 +109,7 @@ public class ShCarController extends BaseController {
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page") @GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "分页查询", notes = "分页查询") @ApiOperation(httpMethod = "GET", value = "分页查询", notes = "分页查询")
public ResponseModel<Page<ShCarDto>> queryForPage(@RequestParam(value = "current") int current, public ResponseModel<Page<ShCarDto>> queryForPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size, @RequestParam(value = "size") int size,
ShCarDto dto) { ShCarDto dto) {
...@@ -133,7 +133,7 @@ public class ShCarController extends BaseController { ...@@ -133,7 +133,7 @@ public class ShCarController extends BaseController {
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询") @ApiOperation(httpMethod = "GET", value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public ResponseModel<List<ShCar>> selectForList() { public ResponseModel<List<ShCar>> selectForList() {
return ResponseHelper.buildResponse(shCarServiceImpl.queryForShCarList()); return ResponseHelper.buildResponse(shCarServiceImpl.queryForShCarList());
...@@ -145,11 +145,26 @@ public class ShCarController extends BaseController { ...@@ -145,11 +145,26 @@ public class ShCarController extends BaseController {
* @return 结果 * @return 结果
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "数据查询,校验是否是三环系统数据", notes = "数据查询,校验是否是三环系统数据") @ApiOperation(httpMethod = "GET", value = "数据查询,校验是否是三环系统数据", notes = "数据查询,校验是否是三环系统数据")
@GetMapping(value = "/searchForSanHan") @GetMapping(value = "/searchForSanHan")
public ResponseModel<ShCar> searchForSanHan(@RequestParam(value = "sanHuanInputValue") String sanHuanInputValue) { public ResponseModel<ShCar> searchForSanHan(@RequestParam Map<?, ?> map) {
// sanHuanInputValue 可能是 使用登记证号,车牌号,车辆VIN码(车架号) 和 设备代码 // 检查 map 是否为空
ShCar shCar = shCarServiceImpl.getBaseMapper() if (map == null || map.isEmpty()) {
return ResponseHelper.buildResponse(new ShCar()); // 返回空对象
}
ShCar shCar = null;
for (Object value : map.values()) {
String sanHuanInputValue = String.valueOf(value);
// 如果值为空,直接跳过
if (ValidationUtil.isEmpty(sanHuanInputValue)) {
continue;
}
// 查询 ShCar 表
shCar = shCarServiceImpl.getBaseMapper()
.selectList(new LambdaQueryWrapper<ShCar>() .selectList(new LambdaQueryWrapper<ShCar>()
.eq(ShCar::getClaimedFlag, Boolean.FALSE) .eq(ShCar::getClaimedFlag, Boolean.FALSE)
.and(w -> w .and(w -> w
...@@ -159,23 +174,48 @@ public class ShCarController extends BaseController { ...@@ -159,23 +174,48 @@ public class ShCarController extends BaseController {
.or() .or()
.eq(ShCar::getFrameNumber, sanHuanInputValue) .eq(ShCar::getFrameNumber, sanHuanInputValue)
) )
).stream().findFirst().orElse(new ShCar()); ).stream().findFirst().orElse(null);
if (!ValidationUtil.isEmpty(shCar.getSequenceNbr())) { // 如果找到符合条件的 ShCar,直接返回
if (shCar != null && !ValidationUtil.isEmpty(shCar.getSequenceNbr())) {
return ResponseHelper.buildResponse(shCar); return ResponseHelper.buildResponse(shCar);
} }
// 查询 ShCarEqu 表
Optional<ShCarEqu> carEqu = shCarEquServiceImpl.getBaseMapper() Optional<ShCarEqu> carEqu = shCarEquServiceImpl.getBaseMapper()
.selectList(new LambdaQueryWrapper<ShCarEqu>() .selectList(new LambdaQueryWrapper<ShCarEqu>()
.eq(ShCarEqu::getEquCode, sanHuanInputValue)) .eq(ShCarEqu::getEquCode, sanHuanInputValue))
.stream().findFirst(); .stream().findFirst();
shCar = carEqu.map(equ -> shCarServiceImpl.getBaseMapper() // 如果 ShCarEqu 存在,继续查询 ShCar
if (carEqu.isPresent()) {
shCar = shCarServiceImpl.getBaseMapper()
.selectList(new LambdaQueryWrapper<ShCar>() .selectList(new LambdaQueryWrapper<ShCar>()
.eq(ShCar::getClaimedFlag, Boolean.FALSE) .eq(ShCar::getClaimedFlag, Boolean.FALSE)
.eq(ShCar::getSequenceNbr, equ.getCarId()) .eq(ShCar::getSequenceNbr, carEqu.get().getCarId())
).stream().findFirst().orElse(new ShCar())) ).stream().findFirst().orElse(null);
.orElse(shCar);
// 如果找到,直接返回
if (shCar != null && !ValidationUtil.isEmpty(shCar.getSequenceNbr())) {
return ResponseHelper.buildResponse(shCar); return ResponseHelper.buildResponse(shCar);
} }
}
}
// 如果未找到,返回空对象
return ResponseHelper.buildResponse(new ShCar());
}
/**
* 认领三环系统数据
*
* @return result
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "认领三环系统数据", notes = "认领三环系统数据")
@PostMapping(value = "/claim")
public ResponseModel<Boolean> claim(@RequestBody Map<String, Object> paramMap) {
return ResponseHelper.buildResponse(shCarServiceImpl.claim(paramMap));
}
} }
package com.yeejoin.amos.boot.module.jg.biz.service.impl; package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.jg.api.dto.ShCarDto; import com.yeejoin.amos.boot.module.jg.api.dto.ShCarDto;
import com.yeejoin.amos.boot.module.jg.api.entity.ShCar; import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CertificateStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.ShCarMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.ShCarMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IShCarService; import com.yeejoin.amos.boot.module.jg.api.service.IShCarService;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import static com.alibaba.fastjson.JSON.toJSONString;
/** /**
* 三环系统-车辆信息表服务实现类 * 三环系统-车辆信息表服务实现类
...@@ -15,8 +50,51 @@ import java.util.List; ...@@ -15,8 +50,51 @@ import java.util.List;
* @author system_generator * @author system_generator
* @date 2024-11-08 * @date 2024-11-08
*/ */
@Slf4j
@Service @Service
public class ShCarServiceImpl extends BaseService<ShCar,ShCar,ShCarMapper> implements IShCarService { public class ShCarServiceImpl extends BaseService<ShCar, ShCar, ShCarMapper> implements IShCarService {
@Resource
private RedisUtils redisUtils;
@Resource
private SnowflakeIdUtil sequence;
@Resource
private IdxBizJgUseInfoServiceImpl idxBizJgUseInfoService;
@Resource
private IdxBizJgConstructionInfoServiceImpl idxBizJgConstructionInfoService;
@Resource
private IdxBizJgDesignInfoServiceImpl idxBizJgDesignInfoService;
@Resource
private IdxBizJgFactoryInfoServiceImpl idxBizJgFactoryInfoService;
@Resource
private IdxBizJgInspectionDetectionInfoServiceImpl idxBizJgInspectionDetectionInfoService;
@Resource
private IdxBizJgMaintenanceRecordInfoServiceImpl idxBizJgMaintenanceRecordInfoService;
@Resource
private IdxBizJgOtherInfoServiceImpl idxBizJgOtherInfoService;
@Resource
private IdxBizJgRegisterInfoServiceImpl idxBizJgRegisterInfoService;
@Resource
private IdxBizJgSupervisionInfoServiceImpl idxBizJgSupervisionInfoService;
@Resource
private IdxBizJgTechParamsVesselServiceImpl idxBizJgTechParamsVesselService;
@Resource
private ESEquipmentCategory esEquipmentCategory;
@Resource
private TzsServiceFeignClient tzsServiceFeignClient;
@Resource
private JgVehicleInformationServiceImpl vehicleInformationService;
@Resource
private JgVehicleInformationEqServiceImpl vehicleInformationEqService;
@Resource
private JgUseRegistrationManageServiceImpl useRegistrationManageService;
@Resource
private JgCertificateChangeRecordServiceImpl certificateChangeRecordService;
@Resource
private JgCertificateChangeRecordEqServiceImpl certificateChangeRecordEqService;
@Resource
private CommonServiceImpl commonService;
private final ShCarMapper shCarMapper; private final ShCarMapper shCarMapper;
public ShCarServiceImpl(ShCarMapper shCarMapper) { public ShCarServiceImpl(ShCarMapper shCarMapper) {
...@@ -34,11 +112,307 @@ public class ShCarServiceImpl extends BaseService<ShCar,ShCar,ShCarMapper> imple ...@@ -34,11 +112,307 @@ public class ShCarServiceImpl extends BaseService<ShCar,ShCar,ShCarMapper> imple
* 列表查询 示例 * 列表查询 示例
*/ */
public List<ShCar> queryForShCarList() { public List<ShCar> queryForShCarList() {
return this.queryForList("" , false); return this.queryForList("", false);
} }
@Override @Override
public Page<ShCarDto> queryForShCarPage(Page<ShCarDto> page, ShCarDto dto) { public Page<ShCarDto> queryForShCarPage(Page<ShCarDto> page, ShCarDto dto) {
return shCarMapper.queryForshCarPage(page, dto); return shCarMapper.queryForshCarPage(page, dto);
} }
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean claim(Map<String, Object> paramMap) {
// ShCar表的seq
String shCarSequenceNbr = String.valueOf(paramMap.get("sequenceNbr"));
if (ValidationUtil.isEmpty(shCarSequenceNbr)) {
throw new BadRequest("数据异常!");
}
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())) + "", ReginParams.class);
JSONArray equList = JSON.parseArray(JSON.toJSONString(paramMap.get("equList")));
try {
// 1. 生成设备信息 + 保存es
this.claimGenEquInfo(equList, reginParams);
// 2. 生成车用气瓶使用登记证单据( JgVehicleInformation JgVehicleInformationEq )信息
JgVehicleInformation jgVehicleInformation = this.claimGenVehicleInfoAbout(paramMap, equList, reginParams);
// 3. 生成 使用登记证管理表信息(JgUseRegistrationManage )证变更记录表信息 (JgCertificateChangeRecord)证变更记录对应设备表信息 (JgCertificateChangeRecordEq)
this.claimGenCertificateManageAndChange(jgVehicleInformation, equList);
// 4. 修改三环车辆表的认领状态为已认领
ShCar shCar = ShCar.builder().claimedFlag("1").build();
shCar.setSequenceNbr(shCarSequenceNbr);
this.baseMapper.updateById(shCar);
return Boolean.TRUE;
} catch (Exception e) {
log.info("三环系统数据认领失败,使用登记证代码:{}", paramMap.get("USE_REGISTRATION_CODE"));
this.handleClaimFailed(equList);
return Boolean.FALSE;
}
}
/**
* 生成使用登记证管理表信息、证变更记录表信息
*
* @param jgVehicleInformation 车用气瓶使用登记证单据
* @param equList 设备集合
*/
private void claimGenCertificateManageAndChange(JgVehicleInformation jgVehicleInformation, JSONArray equList) {
AgencyUserModel result = Privilege.agencyUserClient.queryByUserId(RequestContext.getExeUserId()).getResult();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
String changeContent = jgVehicleInformation.getUseUnitName() + "的" + result.getRealName() + "办理了【" + BusinessTypeEnum.JG_VEHICLE_GAS_APPLICATION.getName() + "】," + "单号【" + jgVehicleInformation.getApplyNo() + "】,申请日期" + simpleDateFormat.format(new Date());
// 3.1 生成使用登记证管理表信息(JgUseRegistrationManage )
Map<String, String> equType = new HashMap<>();
equType.put("equList", "压力容器");
equType.put("equListCode", "2300");
equType.put("equCategory", "气瓶");
equType.put("equCategoryCode", "2300");
equType.put("equDefine", "特种气瓶");
equType.put("equDefineCode", "23T0");
JgUseRegistrationManage registrationManage = JgUseRegistrationManage.builder()
.equList("压力容器").equListCode("2300")
.equCategory("气瓶").equCategoryCode("2300")
.equDefine("特种气瓶").equDefineCode("23T0")
.useUnitName(jgVehicleInformation.getUseUnitName())
.useUnitCreditCode(jgVehicleInformation.getUseUnitCreditCode())
.applyNo(jgVehicleInformation.getApplyNo())
.receiveCompanyCode(jgVehicleInformation.getReceiveCompanyCode())
.receiveOrgName(jgVehicleInformation.getReceiveOrgName())
.auditPassDate(jgVehicleInformation.getAuditPassDate())
.useRegistrationCode(jgVehicleInformation.getUseRegistrationCode())
.certificateNo(commonService.generateCertificateNo(equType, new Date(), jgVehicleInformation.getReceiveCompanyCode()))
.regType(BusinessTypeEnum.JG_VEHICLE_GAS_APPLICATION.getName())
.certificateStatus(CertificateStatusEnum.YIDENGJI.getName())
.regDate(jgVehicleInformation.getRegDate())
.useUnitAddress(jgVehicleInformation.getUseUnitAddress())
.manageType("unit")
.isScrap("0")
.version(1)
.build();
registrationManage.setIsDelete(Boolean.FALSE);
useRegistrationManageService.save(registrationManage);
// 3.2 证变更记录表信息 (JgCertificateChangeRecord)
// 证变更记录表seq
Long changeRecordSeq = sequence.nextId();
JgCertificateChangeRecord changeRecord = JgCertificateChangeRecord.builder()
.applyNo(jgVehicleInformation.getApplyNo())
.receiveOrgName(jgVehicleInformation.getReceiveOrgName())
.auditPassDate(jgVehicleInformation.getAuditPassDate())
.regType(BusinessTypeEnum.JG_VEHICLE_GAS_APPLICATION.getName())
.regDate(jgVehicleInformation.getRegDate()).changeContent(changeContent)
.useRegistrationCode(jgVehicleInformation.getUseRegistrationCode())
.receiveCompanyCode(jgVehicleInformation.getReceiveCompanyCode())
.certificateNo(registrationManage.getCertificateNo())
.useUnitCreditCode(jgVehicleInformation.getUseUnitCreditCode())
.useUnitName(jgVehicleInformation.getUseUnitName())
.equCategory("2300")
// .routePath(Optional.ofNullable(taskV2Model).map(TaskV2Model::getRoutePath).orElse("")) todo
.build();
changeRecord.setSequenceNbr(changeRecordSeq);
certificateChangeRecordService.save(changeRecord);
// 3.3 证变更记录对应设备表信息 (JgCertificateChangeRecordEq)
ArrayList<JgCertificateChangeRecordEq> changeRecordEqList = new ArrayList<>();
equList.forEach(equ -> changeRecordEqList.add(JgCertificateChangeRecordEq.builder()
.changeRecordId(String.valueOf(changeRecordSeq))
.equId(JSON.parseObject(JSON.toJSONString(equ)).getString("record"))
.productCode(JSON.parseObject(JSON.toJSONString(equ)).getString("factoryNum"))
.build()));
certificateChangeRecordEqService.saveBatch(changeRecordEqList);
}
/**
* 认领流程-生成设备信息
*
* @param equList 设备集合
*/
public void claimGenEquInfo(JSONArray equList, ReginParams reginParams) {
CompanyBo company = reginParams.getCompany();
// 保存设备后 后续业务需要的设备信息
equList.forEach(equObj -> {
Date date = new Date();
// 设备record
String equRecord = UUID.randomUUID().toString();
JSON.parseObject(JSON.toJSONString(equObj)).put("record", equRecord);
// 使用信息
IdxBizJgUseInfo useInfo = JSON.parseObject(JSON.toJSONString(equObj), IdxBizJgUseInfo.class);
useInfo.setRecord(equRecord);
useInfo.setRecDate(date);
useInfo.setDataSource("jg_his_sh");
useInfo.setIsIntoManagement(Boolean.TRUE);
if (CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType())) {
useInfo.setUseUnitName(company.getCompanyName().split("_")[1]);
useInfo.setUseUnitCreditCode(company.getCompanyCode().split("_")[1]);
} else {
useInfo.setUseUnitName(company.getCompanyName());
useInfo.setUseUnitCreditCode(company.getCompanyCode());
}
idxBizJgUseInfoService.save(useInfo);
// 设计信息
IdxBizJgDesignInfo designInfo = JSON.parseObject(JSON.toJSONString(equObj), IdxBizJgDesignInfo.class);
designInfo.setRecord(equRecord);
designInfo.setRecDate(date);
idxBizJgDesignInfoService.save(designInfo);
// 制造信息
IdxBizJgFactoryInfo factoryInfo = JSON.parseObject(JSON.toJSONString(equObj), IdxBizJgFactoryInfo.class);
factoryInfo.setRecDate(date);
factoryInfo.setRecord(equRecord);
idxBizJgFactoryInfoService.save(factoryInfo);
// 施工信息
IdxBizJgConstructionInfo constructionInfo = JSON.parseObject(JSON.toJSONString(equObj), IdxBizJgConstructionInfo.class);
constructionInfo.setRecord(equRecord);
constructionInfo.setRecDate(date);
idxBizJgConstructionInfoService.save(constructionInfo);
// 注册登记信息
IdxBizJgRegisterInfo registerInfo = JSON.parseObject(JSON.toJSONString(equObj), IdxBizJgRegisterInfo.class);
registerInfo.setRecord(equRecord);
registerInfo.setRecDate(date);
registerInfo.setRegisterState(idxBizJgRegisterInfoService.getRegCode());
idxBizJgRegisterInfoService.save(registerInfo);
// 监督管理
IdxBizJgSupervisionInfo supervisionInfo = JSON.parseObject(JSON.toJSONString(equObj), IdxBizJgSupervisionInfo.class);
supervisionInfo.setRecord(equRecord);
supervisionInfo.setRecDate(date);
idxBizJgSupervisionInfoService.save(supervisionInfo);
// 其他信息
IdxBizJgOtherInfo otherInfo = JSON.parseObject(JSON.toJSONString(equObj), IdxBizJgOtherInfo.class);
otherInfo.setRecord(equRecord);
otherInfo.setClaimStatus("已认领");
otherInfo.setRecDate(date);
idxBizJgOtherInfoService.save(otherInfo);
// 压力容器技术参数
IdxBizJgTechParamsVessel vessel = JSON.parseObject(JSON.toJSONString(equObj), IdxBizJgTechParamsVessel.class);
vessel.setRecord(equRecord);
vessel.setRecDate(date);
idxBizJgTechParamsVesselService.saveOrUpdateData(vessel);
// 保存es
idxBizJgRegisterInfoService.checkEsData(equRecord);
});
}
/**
* 生成车用气瓶使用登记证单据
*
* @param paramMap 表单信息
* @param equList 设备集合
* @return 车用气瓶使用登记证单据
*/
public JgVehicleInformation claimGenVehicleInfoAbout(Map<String, Object> paramMap, JSONArray equList, ReginParams reginParams) {
// 车用气瓶登记表seq
Long vehicleInformationSeq = sequence.nextId();
CompanyBo company = reginParams.getCompany();
// 申请编号
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.SYDJ.getCode(), 1);
if (!ObjectUtils.isEmpty(listResponseModel) && listResponseModel.getStatus() != HttpStatus.OK.value()) {
log.error("车用气瓶使用登记申请单单号获取失败!");
throw new BadRequest("车用气瓶使用登记申请单单号获取失败!");
}
String applyNo = listResponseModel.getResult().get(0);
// 2.1 车用气瓶登记单表
JgVehicleInformation vehicleInformation = JSON.parseObject(JSON.toJSONString(paramMap), JgVehicleInformation.class);
vehicleInformation.setSequenceNbr(vehicleInformationSeq);
vehicleInformation.setApplyNo(applyNo);
// 使用单位信息
if (CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType())) {
vehicleInformation.setUseUnitName(company.getCompanyName().split("_")[1]);
vehicleInformation.setUseUnitCreditCode(company.getCompanyCode().split("_")[1]);
} else {
vehicleInformation.setUseUnitName(company.getCompanyName());
vehicleInformation.setUseUnitCreditCode(company.getCompanyCode());
}
// 接收单位信息
if (!StringUtils.isEmpty(vehicleInformation.getReceiveOrgCode())) {
String[] splitReceiveOrgCode = vehicleInformation.getReceiveOrgCode().split("_");
CompanyModel result = Privilege.companyClient.queryByCompanyCode(splitReceiveOrgCode[0]).getResult();
vehicleInformation.setReceiveOrgCode(splitReceiveOrgCode[0]);
vehicleInformation.setReceiveOrgName(splitReceiveOrgCode[1]);
vehicleInformation.setReceiveCompanyCode(result.getCompanyCode());
}
// 检验机构信息
if (!StringUtils.isEmpty(vehicleInformation.getInspectUnitCreditCode())) {
String[] splitInspectUnitCreditCode = vehicleInformation.getInspectUnitCreditCode().split("_");
vehicleInformation.setInspectUnitCreditCode(splitInspectUnitCreditCode[0]);
vehicleInformation.setInspectUnitName(splitInspectUnitCreditCode[1]);
}
// 安装单位信息
if (!StringUtils.isEmpty(vehicleInformation.getInstallUnitCode())) {
String[] splitInstallUnitCode = vehicleInformation.getInstallUnitCode().split("_");
vehicleInformation.setInstallUnitCode(splitInstallUnitCode[0]);
vehicleInformation.setInstallUnitName(splitInstallUnitCode[1]);
}
// 属地监管部门
if (!StringUtils.isEmpty(vehicleInformation.getOrgBranchCode())) {
String[] splitOrgBranchCode = vehicleInformation.getOrgBranchCode().split("_");
vehicleInformation.setOrgBranchCode(splitOrgBranchCode[0]);
vehicleInformation.setOrgBranchName(splitOrgBranchCode[1]);
}
// 安全管理员
Optional.ofNullable(String.valueOf(paramMap.get("safetyManagerId"))).filter(manager -> manager.contains("_")).map(manager -> manager.split("_")).ifPresent(data -> {
vehicleInformation.setSafetyManagerId(data[0]);
vehicleInformation.setSafetyManagerName(data[1]);
});
// 产权单位信息
if (!StringUtils.isEmpty(vehicleInformation.getEstateUnitName())) {
String[] data = String.valueOf(paramMap.get("estateUnitName")).split("_");
vehicleInformation.setEstateUnitCreditCode(data[0]);
vehicleInformation.setEstateUnitName(data[1]);
}
// 其他附件
if (!ObjectUtils.isEmpty(paramMap.get("otherAccessories"))) {
vehicleInformation.setOtherAccessories(JSONObject.toJSONString(paramMap.get("otherAccessories")));
}
vehicleInformation.setCreateUserId(reginParams.getUserModel().getUserId());
vehicleInformation.setRegDate(new Date());
vehicleInformation.setCreateUserName(reginParams.getUserModel().getRealName());
vehicleInformation.setGasNum(equList.size());
BigDecimal totalVolume = equList.stream().map(x -> new BigDecimal(String.valueOf(JSON.parseObject(JSON.toJSONString(x)).get("singleBottleVolume"))))
.reduce(BigDecimal.ZERO, BigDecimal::add);
vehicleInformation.setVolume(totalVolume.toPlainString());
vehicleInformationService.save(vehicleInformation);
// 2.2 车用气瓶登记单关联设备表
List<JgVehicleInformationEq> vehicleInformationEqs = new ArrayList<>();
equList.forEach(equ -> vehicleInformationEqs.add(JgVehicleInformationEq.builder()
.vehicleId(String.valueOf(vehicleInformationSeq))
.equId(JSON.parseObject(JSON.toJSONString(equ)).getString("record"))
.build()));
vehicleInformationEqService.saveBatch(vehicleInformationEqs);
return vehicleInformation;
}
/**
* 认领过程中报错,回滚第一步的es数据
*/
public void handleClaimFailed(JSONArray equList) {
if (!equList.isEmpty()) {
equList.forEach(equ -> {
String record = JSON.parseObject(toJSONString(equ)).getString("record");
Optional<ESEquipmentCategoryDto> data = esEquipmentCategory.findById(record);
if (!ObjectUtils.isEmpty(data)) {
esEquipmentCategory.deleteById(record);
}
});
}
}
} }
\ No newline at end of file
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