Commit cfb3429d authored by suhuiguang's avatar suhuiguang

1.app证扫码扩展逻辑实现

parent 7e58aa67
package com.yeejoin.amos.boot.biz.common.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -112,4 +113,9 @@ public class JgUseRegistrationManageDto extends BaseDto {
@ApiModelProperty(value = "城市名称")
private String cityName;
@ApiModelProperty(value = "登记版本号")
private Integer version;
@ApiModelProperty(value = "注销原因")
private String deregisterReason;
}
package com.yeejoin.amos.boot.module.app.api.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class CertInfoRequestParam {
/**
* 唯一编号
*/
@NotBlank(message = "证唯一标识不能为空!")
private String certSeq;
/**
* 证类型:使用登记证、使用标志
*/
@NotBlank(message = "证类型不能为空!")
private String certType;
/**
* 版本号,默认1
*/
private String version;
}
......@@ -28,10 +28,10 @@ public interface AppCommonMapper {
/**
* 查询车辆基本信息
*
* @param applyNo 申请单号
* @param seq 主键
* @return 车辆基本信息
*/
VehicleInfoForWX queryVehicleBaseInfo(String applyNo);
VehicleInfoForWX queryVehicleBaseInfo(Long seq);
JgUseRegistrationManageDto selectOneCert(String applyNo);
JgUseRegistrationManageDto selectOneCert(String certOrApplyNo);
}
......@@ -90,7 +90,7 @@
FROM
"tzs_jg_use_registration_manage"
where
apply_no=#{applyNo} limit 1
sequence_nbr=#{seq} limit 1
</select>
<select id="selectOneCert" resultType="com.yeejoin.amos.boot.biz.common.dto.JgUseRegistrationManageDto">
SELECT
......@@ -98,8 +98,8 @@
FROM
"tzs_jg_use_registration_manage"
WHERE
apply_no = #{applyNo}
and is_delete = false
is_delete = false
and (apply_no = #{certOrApplyNo} or certificate_no = #{certOrApplyNo})
ORDER BY rec_date desc limit 1
</select>
......
......@@ -13,12 +13,14 @@ 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.TreeParser;
import com.yeejoin.amos.boot.module.app.api.common.MobileLoginParam;
import com.yeejoin.amos.boot.module.app.api.dto.CertInfoRequestParam;
import com.yeejoin.amos.boot.module.app.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.app.api.entity.EquipmentCategory;
import com.yeejoin.amos.boot.module.app.api.entity.PageParam;
import com.yeejoin.amos.boot.module.app.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.app.api.mapper.ViewJgClaimMapper;
import com.yeejoin.amos.boot.module.app.api.service.ITzBaseEnterpriseInfoService;
import com.yeejoin.amos.boot.module.app.biz.service.impl.CertDetailServiceImpl;
import com.yeejoin.amos.boot.module.app.biz.service.impl.EquipmentCategoryServiceImpl;
import com.yeejoin.amos.boot.module.app.biz.service.impl.TzsAppService;
import com.yeejoin.amos.boot.module.app.flc.api.entity.RegUnitInfo;
......@@ -34,11 +36,15 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
......@@ -79,6 +85,9 @@ public class TzsAppController {
@Autowired
EquipmentCategoryServiceImpl equipmentCategoryServiceImpl;
@Autowired
CertDetailServiceImpl certDetailService;
/**
* 小程序获取设备详情
*
......@@ -130,11 +139,14 @@ public class TzsAppController {
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/{certSeq}/certInfo")
@PostMapping(value = "/certInfo")
@ApiOperation(httpMethod = "GET", value = "小程序获取登记证或者使用标志详情", notes = "小程序获取登记证或者使用标志详情")
public ResponseModel<Map> getCertInfoForWX(@PathVariable String certSeq,
@RequestParam(required = false) String certType) {
return ResponseHelper.buildResponse(appService.getCertInfoForWX(certSeq,certType));
public ResponseModel<Map> getCertInfoForWX(@Validated @RequestBody CertInfoRequestParam requestParam, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(certDetailService.getCertInfoForWX(requestParam));
}
......
package com.yeejoin.amos.boot.module.app.biz.service.impl;
import com.yeejoin.amos.boot.biz.common.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.app.api.dto.CertInfoRequestParam;
import com.yeejoin.amos.boot.module.app.api.mapper.AppCommonMapper;
import com.yeejoin.amos.boot.module.app.biz.strategy.SearchDetailStrategyContext;
import com.yeejoin.amos.boot.module.common.api.crypto.AESUtil;
import com.yeejoin.amos.boot.module.common.api.enums.CertificateStatusEnum;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.validation.constraints.NotBlank;
import java.util.Map;
@Service
public class CertDetailServiceImpl {
private final AppCommonMapper commonMapper;
private static final String REG_TYPE_VEHICLE = "车用气瓶登记";
public CertDetailServiceImpl(AppCommonMapper commonMapper) {
this.commonMapper = commonMapper;
}
public Map<String, Object> getCertInfoForWX(CertInfoRequestParam requestParam) {
this.setDefaultVersionForOld(requestParam);
String certOrApplyNo = this.deCodeCertSeq(requestParam.getCertSeq());
String version = this.deCodeByAES(requestParam.getVersion());
String certType = this.deCodeByAES(requestParam.getCertType());
JgUseRegistrationManageDto jgUseRegistrationManage = this.checkParam(certOrApplyNo, version);
return SearchDetailStrategyContext.getHandler(this.getManageType(jgUseRegistrationManage)).hanlder(jgUseRegistrationManage, certType);
}
private void setDefaultVersionForOld(CertInfoRequestParam requestParam) {
if (StringUtils.isBlank(requestParam.getVersion())) {
requestParam.setVersion(AESUtil.encrypt("1"));
}
}
private JgUseRegistrationManageDto checkParam(String certOrApplyNo, String version) {
JgUseRegistrationManageDto jgUseRegistrationManage = commonMapper.selectOneCert(certOrApplyNo);
if (jgUseRegistrationManage == null) {
throw new BadRequest("无此证信息!");
}
// 表创建字段时已经给默认值 1 正常不为null 程序健壮处理
if (jgUseRegistrationManage.getVersion() == null) {
jgUseRegistrationManage.setVersion(1);
}
if (jgUseRegistrationManage.getVersion().toString().equals(version)) {
throw new BadRequest(this.buildErrorInfo(jgUseRegistrationManage));
}
if (CertificateStatusEnum.YIZHUXIAO.getName().equals(jgUseRegistrationManage.getCertificateStatus())) {
throw new BadRequest("此证已注销!");
}
return jgUseRegistrationManage;
}
private String buildErrorInfo(JgUseRegistrationManageDto jgUseRegistrationManage) {
return "该证发生" + jgUseRegistrationManage.getDeregisterReason() + "导致证注销, 请联系监管单位进行换证!";
}
private String deCodeByAES(@NotBlank(message = "证类型不能为空!") String data) {
try {
return AESUtil.decrypt(data);
} catch (Exception e) {
throw new BadRequest("非法的二维码!");
}
}
private String deCodeCertSeq(@NotBlank(message = "证唯一标识不能为空!") String certSeq) {
// 老数据兼容支持
if (certSeq.startsWith("SYDJ") || certSeq.startsWith("YZBG")) {
return certSeq;
}
try {
return AESUtil.decrypt(certSeq);
} catch (Exception e) {
throw new BadRequest("非法的二维码!");
}
}
private String getManageType(JgUseRegistrationManageDto jgUseRegistrationManage) {
// 分3类:单位办理方式[unit](气瓶、压力管道)、台套办理方式[set](7大类,不包含压力管道)、车用气瓶[vehicle](压力容器->气瓶)
String regType = jgUseRegistrationManage.getRegType();
if (REG_TYPE_VEHICLE.equals(regType)) {
return "vehicle";
}
return jgUseRegistrationManage.getManageType() == null ? "set" : jgUseRegistrationManage.getManageType();
}
}
package com.yeejoin.amos.boot.module.app.biz.service.impl;
import com.yeejoin.amos.boot.biz.common.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.app.biz.strategy.ISearchDetailHandler;
import org.springframework.stereotype.Component;
......@@ -14,7 +15,7 @@ public class SetSearchDetailDetailHandlerImpl implements ISearchDetailHandler {
}
@Override
public Map<String, Object> hanlder(String applyNo, String from) {
public Map<String, Object> hanlder(JgUseRegistrationManageDto manageDto, String from) {
return Collections.emptyMap();
}
}
......@@ -10,7 +10,6 @@ import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.dao.mapper.DataDictionaryMapper;
import com.yeejoin.amos.boot.biz.common.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.utils.QRCodeUtil;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
......@@ -23,7 +22,6 @@ import com.yeejoin.amos.boot.module.app.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.app.api.mapper.AppCommonMapper;
import com.yeejoin.amos.boot.module.app.api.mapper.CategoryOtherInfoMapper;
import com.yeejoin.amos.boot.module.app.api.mapper.EquipmentCategoryMapper;
import com.yeejoin.amos.boot.module.app.biz.strategy.SearchDetailStrategyContext;
import com.yeejoin.amos.boot.module.app.biz.utils.HttpUtils;
import com.yeejoin.amos.boot.module.app.biz.utils.JsonUtils;
import com.yeejoin.amos.boot.module.app.biz.utils.RedisUtil;
......@@ -153,13 +151,9 @@ public class TzsAppService {
@Autowired
private RedisUtil redisUtil;
@Autowired
private AppCommonMapper commonMapper;
private static final String REG_TYPE_VEHICLE = "车用气瓶登记";
private static final String STREET = "STREET";
public Map<String, Object> getEquipmentInfo(String record) {
List<DataDictionary> dictionaryList = getDictionary();
List<EquipmentCategory> equipmentCategories = equipmentCategoryMapper.selectList(null);
......@@ -264,21 +258,6 @@ public class TzsAppService {
return map;
}
public Map<String, Object> getCertInfoForWX(String certSeq, String certType) {
return SearchDetailStrategyContext.getHandler(this.getManageType(certSeq)).hanlder(certSeq, certType);
}
private String getManageType(String applyNo) {
// 3类:单位办理方式[unit](气瓶、压力管道)、台套办理方式[set](7大类,不包含压力管道)、车用气瓶[vehicle](压力容器->气瓶)
JgUseRegistrationManageDto jgUseRegistrationManage = commonMapper.selectOneCert(applyNo);
// 使用登记、车用气瓶登记
String regType = jgUseRegistrationManage.getRegType();
if (REG_TYPE_VEHICLE.equals(regType)) {
return "vehicle";
}
return jgUseRegistrationManage.getManageType() == null ? "set" : jgUseRegistrationManage.getManageType();
}
public Map<String, Object> getEquipmentInfoWX(String record) {
List<DataDictionary> dictionaryList = getDictionary();
......
package com.yeejoin.amos.boot.module.app.biz.service.impl;
import com.yeejoin.amos.boot.biz.common.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.app.biz.strategy.ISearchDetailHandler;
import org.springframework.stereotype.Component;
......@@ -14,7 +15,8 @@ public class UnitSearchDetailDetailHandlerImpl implements ISearchDetailHandler {
}
@Override
public Map<String, Object> hanlder(String applyNo, String from) {
public Map<String, Object> hanlder(JgUseRegistrationManageDto manageDto, String from) {
return Collections.emptyMap();
}
}
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.app.biz.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.biz.common.utils.QRCodeUtil;
import com.yeejoin.amos.boot.module.app.api.annotation.Converter;
import com.yeejoin.amos.boot.module.app.api.annotation.FieldDisplayDefine;
......@@ -39,13 +40,14 @@ public class VehicleSearchDetailDetailHandlerImpl implements ISearchDetailHandle
}
@Override
public Map<String, Object> hanlder(String certSeq, String certType) {
return this.getQueryCarCylinderInfo(certSeq);
public Map<String, Object> hanlder(JgUseRegistrationManageDto manageDto, String certType) {
return this.getQueryCarCylinderInfo(manageDto);
}
private Map<String, Object> getQueryCarCylinderInfo(String certSeq) {
VehicleInfoForWX baseInfo = appCommonMapper.queryVehicleBaseInfo(certSeq);
List<CylinderInfoForWX> cylinderInfos = appCommonMapper.queryCylinderIfoOfVehicle(certSeq);
private Map<String, Object> getQueryCarCylinderInfo(JgUseRegistrationManageDto manageDto) {
VehicleInfoForWX baseInfo = appCommonMapper.queryVehicleBaseInfo(manageDto.getSequenceNbr());
// 最好改成查询es record再传入进去
List<CylinderInfoForWX> cylinderInfos = appCommonMapper.queryCylinderIfoOfVehicle(manageDto.getApplyNo());
fillEquDefine(baseInfo, cylinderInfos);
Map<String, Object> result = new LinkedHashMap<>();
JSONArray tabs = new JSONArray();
......
package com.yeejoin.amos.boot.module.app.biz.strategy;
import com.yeejoin.amos.boot.biz.common.dto.JgUseRegistrationManageDto;
import java.util.Map;
public interface ISearchDetailHandler {
......@@ -12,9 +14,11 @@ public interface ISearchDetailHandler {
/**
* 处理处理
* @param applyNo 单号
* @param manageDto 证信息
* @param from 来源
* @return T
*/
Map<String, Object> hanlder(String applyNo, String from);
Map<String, Object> hanlder(JgUseRegistrationManageDto manageDto, String from);
String defaultVersion = "1";
}
package com.yeejoin.amos.boot.module.common.api.crypto;
import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.AES;
import java.nio.charset.StandardCharsets;
public class AESUtil {
private static final String key = "amos-tzs-app-991";
private static final String iv = "amos-tzs-app-9iv";
private final AES aes;
private AESUtil(Mode mode, Padding padding, byte[] key, byte[] iv) {
aes = new AES(mode, padding, key, iv);
}
private static class AESUtilHolder {
private static final AESUtil instance = new AESUtil(Mode.CBC, Padding.PKCS5Padding, key.getBytes(StandardCharsets.UTF_8), iv.getBytes(StandardCharsets.UTF_8));
}
private static AESUtil getInstance() {
return AESUtilHolder.instance;
}
public static String encrypt(String data) {
return getInstance().aes.encryptBase64(data);
}
public static String decrypt(String data) {
return getInstance().aes.decryptStr(data, StandardCharsets.UTF_8);
}
}
package com.yeejoin.amos.boot.module.common.api.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.HashMap;
import java.util.Map;
@AllArgsConstructor
@Getter
public enum CertificateStatusEnum {
/**
* 使用登记证状态
*
*/
YIDENGJI("已登记",0),
YIZHUXIAO("已注销",1);
String name;
Integer code;
public static Map<Integer,String> getName=new HashMap<>();
public static Map<String,Integer> getCode=new HashMap<>();
static {
for (CertificateStatusEnum e : CertificateStatusEnum.values()){
getName.put(e.code, e.name);
getCode.put(e.name, e.code);
}
}
}
......@@ -113,4 +113,10 @@ public class JgUseRegistrationManageDto extends BaseDto {
@ApiModelProperty(value = "城市名称")
private String cityName;
@ApiModelProperty(value = "登记版本号")
private Integer version;
@ApiModelProperty(value = "注销原因")
private String deregisterReason;
}
package com.yeejoin.amos.boot.module.jg.api.dto;
import lombok.Builder;
import lombok.Data;
import java.util.Date;
......@@ -91,7 +90,6 @@ public class UseFlagParamDto {
/**
* 产品编号--车用气瓶专用
*
*/
private String factoryNumber;
......@@ -110,6 +108,12 @@ public class UseFlagParamDto {
/**
* 申请编号
*/
private String applyNo;
private String certificateNo;
/**
* 版本号
*/
private Integer version;
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
......@@ -195,4 +196,17 @@ public class JgUseRegistrationManage extends BaseEntity {
@TableField("filling_medium")
private String fillingMedium;
/**
* 登记版本号(每次业务+1, 作废业务-1)
*/
@TableField("version")
private Integer version = 1;
/**
* 注销原因
*/
@TableField("deregister_reason")
private String deregisterReason;
}
......@@ -538,7 +538,7 @@ public class CommonController extends BaseController {
useFlagParamDto.setFactoryNumber("产品编号");
useFlagParamDto.setCylinderNumOrVolume("12");
useFlagParamDto.setFillingMedium("氮气");
useFlagParamDto.setApplyNo("101");
useFlagParamDto.setCertificateNo("101");
return useFlagParamDto;
}
......
......@@ -26,6 +26,7 @@ import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.api.crypto.AESUtil;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
......@@ -55,7 +56,6 @@ 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.EquipTechParamPipelineMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgSupervisionInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
......@@ -218,8 +218,6 @@ public class CommonServiceImpl implements ICommonService {
@Autowired
private JgUseRegistrationManageMapper jgUseRegistrationManageMapper;
@Autowired
IdxBizJgSupervisionInfoMapper idxBizJgSupervisionInfoMapper;
@Autowired
RedissonClient redissonClient;
@Value("${redis.cache.failure.time}")
private Long redisRegionTimeSecond;
......@@ -251,6 +249,9 @@ public class CommonServiceImpl implements ICommonService {
@Autowired
private JgChangeVehicleRegistrationUnitServiceImpl jgChangeVehicleRegistrationUnitService;
@Value("${qrcode.prefix:https://sxtzsb.sxsei.com:19435/tzs?}")
private String qrcodePrefix;
public static byte[] file2byte(File file) {
try {
FileInputStream in = new FileInputStream(file);
......@@ -536,7 +537,7 @@ public class CommonServiceImpl implements ICommonService {
}
private void setQrCode(UseFlagParamDto useFlagParamDto, Map<String, Object> paramMap) {
String qrCode = ImageUtils.generateQRCode(Optional.ofNullable(useFlagParamDto.getApplyNo()).orElse(""), 180, 180);
String qrCode = ImageUtils.generateQRCode(getEncodeQrCode(useFlagParamDto.getCertificateNo(), "useFlag", useFlagParamDto.getVersion() + ""), 100, 100);
paramMap.put("qrCode", qrCode);
}
......@@ -916,8 +917,8 @@ public class CommonServiceImpl implements ICommonService {
map.put("excelType", Optional.ofNullable(map.get("excelType")).orElse("使用登记").toString()); // 发证日期-日
map.put("tableName", Optional.ofNullable(map.get("tableName")).orElse("特种设备使用登记证").toString()); // 发证日期-日
map.put("carNumber", Optional.ofNullable(map.get("carNumber")).orElse("").toString()); // 车牌号
// 生成二维码,之前为设备监管码,调整为申请单
String qrCode = ImageUtils.generateQRCode(Optional.ofNullable(map.get("applyNo")).orElse("").toString(), 100, 100);
// 生成二维码,之前为设备监管码,调整为证编
String qrCode = ImageUtils.generateQRCode(getEncodeQrCode(Optional.ofNullable(map.get("certificateNo")).orElse("").toString(), "useCert", Optional.ofNullable(map.get("version")).orElse("").toString()), 100, 100);
map.put("supervisoryCode", qrCode); // 监管二维码
// 默认普打
map.put("printingType", PrintingTypeEnum.REGULAR.getCode());
......@@ -945,6 +946,19 @@ public class CommonServiceImpl implements ICommonService {
}
}
private String getEncodeQrCode(String certSeq, String certType, String version) {
String certSeqEncrypt = AESUtil.encrypt(certSeq);
String certTypeEncrypt = AESUtil.encrypt(certType);
String versionEncrypt = AESUtil.encrypt(version);
return qrcodePrefix +
"?certSeq=" +
certSeqEncrypt +
"certType=" +
certTypeEncrypt +
"version=" +
versionEncrypt;
}
/**
* 使用登记证套打生成Word
*
......@@ -965,8 +979,8 @@ public class CommonServiceImpl implements ICommonService {
for (int i = 0; i < keys.length; i++) {
map.put(keys[i], Optional.ofNullable(map.get(keys[i])).orElse(defaultValues[i]).toString());
}
map.put("supervisoryCode", ImageUtils.generateQRCode(Optional.ofNullable(map.get("applyNo")).orElse("").toString(), 100, 100));
String qrCode = ImageUtils.generateQRCode(getEncodeQrCode(Optional.ofNullable(map.get("certificateNo")).orElse("").toString(), "useCert", Optional.ofNullable(map.get("version")).orElse("").toString()), 100, 100);
map.put("supervisoryCode", qrCode);
map.put("printingType", PrintingTypeEnum.OVERPLAY.getCode());
String manageType = Optional.ofNullable(map.get("manageType")).orElse("").toString();
String templateFileName = "use-registration-model.ftl";
......@@ -1004,6 +1018,7 @@ public class CommonServiceImpl implements ICommonService {
* @param response 响应
*/
@Override
@Deprecated
public void generatePdfPrint(Map<String, Object> map, HttpServletResponse response) {
String[] DEFAULT_KEYS = {
"useRegistrationCode", "useUnitName", "fullAddress", "equList", "equipDefine",
......@@ -1019,8 +1034,8 @@ public class CommonServiceImpl implements ICommonService {
Arrays.stream(DEFAULT_KEYS)
.forEach(key -> map.computeIfAbsent(key, k -> ""));
// 生成二维码,之前为设备监管码,调整为申请单
String qrCode = ImageUtils.generateQRCode((String) map.getOrDefault("applyNo", ""), 100, 100);
// 生成二维码,之前为设备监管码,调整为证编
String qrCode = ImageUtils.generateQRCode(getEncodeQrCode(Optional.ofNullable(map.get("certificateNo")).orElse("").toString(), "useCert", Optional.ofNullable(map.get("version")).orElse("").toString()), 100, 100);
map.put("supervisoryCode", qrCode); // 监管二维码 代码优化
this.fillParamValueToPdf(map, response, "templates/use-registration-model.pdf", "套打使用登记证.pdf", 12.0f);
}
......@@ -2044,10 +2059,9 @@ public class CommonServiceImpl implements ICommonService {
setNextDate(useFlagParamDto, paramMap);
setRegName(useFlagParamDto, paramMap);
// 生成二维码,之前为设备监管码,调整为申请单
String qrCode = ImageUtils.generateQRCode(Optional.ofNullable(useFlagParamDto.getApplyNo()).orElse(""), 180, 180);
// 生成二维码,之前为设备监管码,调整为证编
String qrCode = ImageUtils.generateQRCode(getEncodeQrCode(useFlagParamDto.getCertificateNo(), "useFlag", useFlagParamDto.getVersion() + ""), 100, 100);
paramMap.put("supervisoryCode", qrCode);
this.fillParamValueToPdf(paramMap, response, selectPdfTemplate(useFlagParamDto.getEquListCode()), printFileName, 9.0f);
}
......@@ -2165,7 +2179,7 @@ public class CommonServiceImpl implements ICommonService {
LambdaQueryWrapper<JgUseRegistrationManage> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgUseRegistrationManage::getUseUnitCreditCode, useUnitCreditCode)
.eq(JgUseRegistrationManage::getEquDefineCode, equDefineCode)
.eq(JgUseRegistrationManage::getIsDelete,0)
.eq(JgUseRegistrationManage::getIsDelete, 0)
.eq(JgUseRegistrationManage::getCertificateStatus, CertificateStatusEnum.YIDENGJI.getName())
.orderByDesc(JgUseRegistrationManage::getCertificateNo);
return jgUseRegistrationManageMapper.selectList(queryWrapper).stream()
......
......@@ -526,11 +526,8 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
}
JgUseRegistrationManage manage = this.baseMapper.selectById(certificateSeq);
String regType = manage.getRegType();
String useRegistrationCode = manage.getUseRegistrationCode();
String sequenceNbr = null;
String equCategoryCode = manage.getEquCategoryCode();
switch (printType) {
case "certificateNormalPrint":// 使用登记证 普打
case "certificateNestedPrint":// 使用登记证 套打
......@@ -625,7 +622,11 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
exportParamsMap.put("fullAddress", manage.getUseUnitAddress());
}
}
exportParamsMap.put("applyNo", manage.getApplyNo());
// 调整为证编号 全库唯一
exportParamsMap.put("certificateNo", manage.getCertificateNo());
// 与certificateNo一样,冗余字段防止漏调整
exportParamsMap.put("applyNo", manage.getCertificateNo());
exportParamsMap.put("version", manage.getVersion() + "");
exportParamsMap.put("carNumber", manage.getCarNumber());
exportParamsMap.put("equListCode", manage.getEquListCode());
......@@ -666,12 +667,13 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
useFlagParamDto.setUseRegistrationCode(exportParamsMap.get("useRegistrationCode").toString());
useFlagParamDto.setFactoryNumber(exportParamsMap.get("factoryNum").toString());
useFlagParamDto.setCarNumber(manage.getCarNumber());
useFlagParamDto.setApplyNo(manage.getApplyNo());
useFlagParamDto.setCertificateNo(manage.getCertificateNo());
useFlagParamDto.setVersion(manage.getVersion());
// 检验信息字段设置
setInspectField((String) deviceList.get(0).get("SEQUENCE_NBR"), useFlagParamDto);
// 电梯维保信息字段设置
setMainInfoField((String) deviceList.get(0).get("SEQUENCE_NBR"), useFlagParamDto);
// 车用气瓶专用字段 暂无数据源 需车用气瓶功能开发完成后进行
// 车用气瓶专用字段
useFlagParamDto.setCylinderNumOrVolume(manage.getGasNum() + "/" + manage.getVolume());
useFlagParamDto.setFillingMedium(manage.getFillingMedium());
return useFlagParamDto;
......
......@@ -66,10 +66,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionManager;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.event.TransactionalEventListener;
import org.springframework.transaction.reactive.TransactionalOperator;
import org.springframework.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.springframework.util.ObjectUtils;
......@@ -2344,7 +2341,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
useFlagParamDto.setUseRegistrationCode(exportParamsMap.get("useRegistrationCode").toString());
useFlagParamDto.setFactoryNumber(factoryInfo.getFactoryNum());
useFlagParamDto.setCarNumber(registerInfo.getCarNumber());
useFlagParamDto.setApplyNo(useRegistration.getApplyNo());
useFlagParamDto.setCertificateNo(useRegistration.getApplyNo());
// 检验信息字段设置
setInspectField(registerInfo, useFlagParamDto);
// 电梯维保信息字段设置
......
......@@ -1350,7 +1350,7 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
useFlagParamDto.setFactoryNumber(exportParamsMap.get("factoryNum") + "");
useFlagParamDto.setCylinderNumOrVolume(vehicleInformation.getGasNum() + "/" + vehicleInformation.getVolume());
useFlagParamDto.setFillingMedium(vehicleInformation.getFillingMedium());
useFlagParamDto.setApplyNo(vehicleInformation.getApplyNo());
useFlagParamDto.setCertificateNo(vehicleInformation.getApplyNo());
useFlagParamDto.setInspectionUnitName(vehicleInformation.getInspectUnitName());
return useFlagParamDto;
}
......
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