Commit 7af328ce authored by 刘林's avatar 刘林

fix(JG):车用气瓶功能开发

parent 7de27578
package com.yeejoin.amos.boot.module.jg.api.dto;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.List;
/**
*
*
* @author system_generator
* @date 2024-03-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="JgVehicleInformationDto", description="")
public class JgVehicleInformationDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "设备监管码")
private String supervisoryCode;
@ApiModelProperty(value = "使用单位名称")
private String useUnitName;
@ApiModelProperty(value = "申请编号")
private String applyNo;
@ApiModelProperty(value = "办理状态")
private String auditStatus;
@ApiModelProperty(value = "接收机构")
private String receiveOrgName;
@ApiModelProperty(value = "检验单位")
private String inspectUnitName;
@ApiModelProperty(value = "检验结果照片")
private String inspectResultPhoto;
@ApiModelProperty(value = "检验结果")
private String inspectResult;
@ApiModelProperty(value = "终审通过时间")
private Date auditPassDate;
@ApiModelProperty(value = "登记类别")
private String regType;
@ApiModelProperty(value = "注册登记日期")
private Date regDate;
@ApiModelProperty(value = "注册登记人员ID")
private String regPersonId;
@ApiModelProperty(value = "注册登记人员")
private String regPersonName;
@ApiModelProperty(value = "安装单位名称")
private String installUnitName;
@ApiModelProperty(value = "安装单位代码")
private String installUnitCode;
@ApiModelProperty(value = "状态")
private String status;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "创建人ID")
private String createUserId;
@ApiModelProperty(value = "创建人名称")
private String createUserName;
@ApiModelProperty(value = "创建时间")
private Date createDate;
@ApiModelProperty(value = "录入单位ID")
private String inputUnitNo;
@ApiModelProperty(value = "使用登记编号")
private String useRegistrationCode;
@ApiModelProperty(value = "流程实例id")
private String instanceId;
@ApiModelProperty(value = "使用单位统一信用代码")
private String useUnitCreditCode;
@ApiModelProperty(value = "检验机构代码")
private String inspectUnitCreditCode;
@ApiModelProperty(value = "流程状态")
private String instanceStatus;
@ApiModelProperty(value = "接收机构代码")
private String receiveOrgCode;
@ApiModelProperty(value = "接收机构公司代码")
private String receiveCompanyCode;
@ApiModelProperty(value = "下一执行节点ids")
private String nextExecuteIds;
@ApiModelProperty(value = "发起人id用于撤回操作")
private String promoter;
@ApiModelProperty(value = "使用登记证书附件")
private String useRegistrationCertificate;
@ApiModelProperty(value = "工作流下一节点任务id")
private String nextTaskId;
@ApiModelProperty(value = "下一节点可执行人逗号分割")
private String nextExecuteUserIds;
@ApiModelProperty(value = "是否西咸,1是 0否")
private String isXixian;
@ApiModelProperty(value = "使用单位地点")
private String useUnitAddress;
@ApiModelProperty(value = "转办后执行人的Id逗号分割")
private String transferToUserIds;
@ApiModelProperty(value = "其他附件")
private String otherAccessories;
@ApiModelProperty(value = "安装日期")
private Date installationData;
@ApiModelProperty(value = "车辆属性")
private String vehicleAttribute;
@ApiModelProperty(value = "车辆属地")
private String vehicleApanage;
@ApiModelProperty(value = "气瓶数量")
private Integer gasNum;
@ApiModelProperty(value = "号牌号码")
private String carNumber;
@ApiModelProperty(value = "识别代码")
private String identificationCode;
@ApiModelProperty(value = "发动机号")
private String engineNumber;
@ApiModelProperty(value = "车辆品牌型号")
private String carBrandModel;
@ApiModelProperty(value = "车主姓名")
private String ownerName;
@ApiModelProperty(value = "联系电话")
private String contactNumber;
@ApiModelProperty(value = "充装介质")
private String fillingMedium;
@ApiModelProperty(value = "设备品种(特种气瓶)")
private String equipmentVariety;
@ApiModelProperty(value = "容积")
private String volume;
@ApiModelProperty(value = "加装方式")
private String installationMode;
@ApiModelProperty(value = "车辆年审日期")
private Date vehicleReviewDate;
@ApiModelProperty(value = "身份证正面附件")
private String idCardFront;
@ApiModelProperty(value = "身份证背面附件")
private String idCardBack;
@ApiModelProperty(value = "行驶证正面附件")
private String driveLicenseFront;
@ApiModelProperty(value = "行驶证背面附件")
private String driveLicenseBack;
@ApiModelProperty(value = "机动车登记证书附件")
private String vehicleRegistrationCertificate;
@ApiModelProperty(value = "监督检验证书附件")
private String inspectionCertificate;
@ApiModelProperty(value = "备案通知单附件")
private String filingNotice;
private List<String> roleIds;
private String dataType;
private String currentUserId;
@ApiModelProperty(value = "属地监管部门code")
private String orgBranchCode;
@ApiModelProperty(value = "属地监管部门name")
private String orgBranchName;
@ApiModelProperty(value = "下次检验日期")
private Date nextInspectionDate;
}
package com.yeejoin.amos.boot.module.jg.api.dto;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
*
*
* @author system_generator
* @date 2024-03-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="JgVehicleInformationEqDto", description="")
public class JgVehicleInformationEqDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "车辆信息申请id")
private String vehicleId;
@ApiModelProperty(value = "设备id")
private String equId;
@ApiModelProperty(value = "创建时间")
private Date createDate;
@ApiModelProperty(value = "创建人id")
private String createUserId;
@ApiModelProperty(value = "创建人")
private String createUserName;
}
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 system_generator
* @date 2024-03-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tzs_jg_vehicle_information")
public class JgVehicleInformation extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 设备监管码
*/
@TableField("supervisory_code")
private String supervisoryCode;
/**
* 使用单位名称
*/
@TableField("use_unit_name")
private String useUnitName;
/**
* 申请编号
*/
@TableField("apply_no")
private String applyNo;
/**
* 办理状态
*/
@TableField("audit_status")
private String auditStatus;
/**
* 接收机构
*/
@TableField("receive_org_name")
private String receiveOrgName;
/**
* 检验单位
*/
@TableField("inspect_unit_name")
private String inspectUnitName;
/**
* 检验结果照片
*/
@TableField("inspect_result_photo")
private String inspectResultPhoto;
/**
* 检验结果
*/
@TableField("inspect_result")
private String inspectResult;
/**
* 终审通过时间
*/
@TableField("audit_pass_date")
private Date auditPassDate;
/**
* 登记类别
*/
@TableField("reg_type")
private String regType;
/**
* 注册登记日期
*/
@TableField("reg_date")
private Date regDate;
/**
* 注册登记人员ID
*/
@TableField("reg_person_id")
private String regPersonId;
/**
* 注册登记人员
*/
@TableField("reg_person_name")
private String regPersonName;
/**
* 安装单位名称
*/
@TableField("install_unit_name")
private String installUnitName;
/**
* 安装单位代码
*/
@TableField("install_unit_code")
private String installUnitCode;
/**
* 状态
*/
@TableField("status")
private String status;
/**
* 备注
*/
@TableField("remark")
private String remark;
/**
* 创建人ID
*/
@TableField("create_user_id")
private String createUserId;
/**
* 创建人名称
*/
@TableField("create_user_name")
private String createUserName;
/**
* 创建时间
*/
@TableField("create_date")
private Date createDate;
/**
* 录入单位ID
*/
@TableField("input_unit_no")
private String inputUnitNo;
/**
* 使用登记编号
*/
@TableField("use_registration_code")
private String useRegistrationCode;
/**
* 流程实例id
*/
@TableField("instance_id")
private String instanceId;
/**
* 使用单位统一信用代码
*/
@TableField("use_unit_credit_code")
private String useUnitCreditCode;
/**
* 检验机构代码
*/
@TableField("inspect_unit_credit_code")
private String inspectUnitCreditCode;
/**
* 流程状态
*/
@TableField("instance_status")
private String instanceStatus;
/**
* 接收机构代码
*/
@TableField("receive_org_code")
private String receiveOrgCode;
/**
* 接收机构公司代码
*/
@TableField("receive_company_code")
private String receiveCompanyCode;
/**
* 下一执行节点ids
*/
@TableField("next_execute_ids")
private String nextExecuteIds;
/**
* 发起人id用于撤回操作
*/
@TableField("promoter")
private String promoter;
/**
* 使用登记证书附件
*/
@TableField("use_registration_certificate")
private String useRegistrationCertificate;
/**
* 工作流下一节点任务id
*/
@TableField("next_task_id")
private String nextTaskId;
/**
* 下一节点可执行人逗号分割
*/
@TableField("next_execute_user_ids")
private String nextExecuteUserIds;
/**
* 是否西咸,1是 0否
*/
@TableField("is_xixian")
private String isXixian;
/**
* 使用单位地点
*/
@TableField("use_unit_address")
private String useUnitAddress;
/**
* 转办后执行人的Id逗号分割
*/
@TableField("transfer_to_user_ids")
private String transferToUserIds;
/**
* 其他附件
*/
@TableField("other_accessories")
private String otherAccessories;
/**
* 安装日期
*/
@TableField("installation_data")
private Date installationData;
/**
* 车辆属性
*/
@TableField("vehicle_attribute")
private String vehicleAttribute;
/**
* 车辆属地
*/
@TableField("vehicle_apanage")
private String vehicleApanage;
/**
* 气瓶数量
*/
@TableField("gas_num")
private Integer gasNum;
/**
* 号牌号码
*/
@TableField("car_number")
private String carNumber;
/**
* 识别代码
*/
@TableField("identification_code")
private String identificationCode;
/**
* 发动机号
*/
@TableField("engine_number")
private String engineNumber;
/**
* 车辆品牌型号
*/
@TableField("car_brand_model")
private String carBrandModel;
/**
* 车主姓名
*/
@TableField("owner_name")
private String ownerName;
/**
* 联系电话
*/
@TableField("contact_number")
private String contactNumber;
/**
* 充装介质
*/
@TableField("filling_medium")
private String fillingMedium;
/**
* 设备品种(特种气瓶)
*/
@TableField("equipment_variety")
private String equipmentVariety;
/**
* 容积
*/
@TableField("volume")
private String volume;
/**
* 加装方式
*/
@TableField("installation_mode")
private String installationMode;
/**
* 车辆年审日期
*/
@TableField("vehicle_review_date")
private Date vehicleReviewDate;
/**
* 身份证正面附件
*/
@TableField("id_card_front")
private String idCardFront;
/**
* 身份证背面附件
*/
@TableField("id_card_back")
private String idCardBack;
/**
* 行驶证正面附件
*/
@TableField("drive_license_front")
private String driveLicenseFront;
/**
* 行驶证背面附件
*/
@TableField("drive_license_back")
private String driveLicenseBack;
/**
* 机动车登记证书附件
*/
@TableField("vehicle_registration_certificate")
private String vehicleRegistrationCertificate;
/**
* 监督检验证书附件
*/
@TableField("inspection_certificate")
private String inspectionCertificate;
/**
* 备案通知单附件
*/
@TableField("filing_notice")
private String filingNotice;
/**
* 属地监管部门code
*/
@TableField(value = "org_branch_code")
private String orgBranchCode;
/**
* 属地监管部门name
*/
@TableField(value = "org_branch_name")
private String orgBranchName;
/**
* 下次检验日期
*/
@TableField("next_inspection_date")
private Date nextInspectionDate;
}
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 system_generator
* @date 2024-03-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tzs_jg_vehicle_information_eq")
public class JgVehicleInformationEq extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 车辆信息申请id
*/
@TableField("vehicle_id")
private String vehicleId;
/**
* 设备id
*/
@TableField("equ_id")
private String equId;
/**
* 创建时间
*/
@TableField("create_date")
private Date createDate;
/**
* 创建人id
*/
@TableField("create_user_id")
private String createUserId;
/**
* 创建人
*/
@TableField("create_user_name")
private String createUserName;
}
...@@ -44,7 +44,9 @@ public enum BusinessTypeEnum { ...@@ -44,7 +44,9 @@ public enum BusinessTypeEnum {
JY_INSPECTION_APPLICATION_DS("116", "定(首)检验"), JY_INSPECTION_APPLICATION_DS("116", "定(首)检验"),
JY_INSPECTION_APPLICATION_CHECK("117", "检验(含安全阀效验)"); JY_INSPECTION_APPLICATION_CHECK("117", "检验(含安全阀效验)"),
JG_VEHICLE_GAS_APPLICATION("118", "车用气瓶登记");
private final String code; private final String code;
private final String name; private final String name;
......
package com.yeejoin.amos.boot.module.jg.api.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author LiuLin
*
*/
@Getter
@AllArgsConstructor
public enum VehicleApanageEnum {
/**
* 属性机构枚举
*/
XIAN("陕A","XIAN"),
TONG_CHUAN("陕B","TONG_CHUAN"),
BAO_JI("陕C","BAO_JI"),
XIAN_YANG("陕D","XIAN_YANG"),
WEI_NAN("陕E","WEI_NAN"),
YAN_AN("陕J","YAN_AN"),
HAN_ZHONG("陕F","HAN_ZHONG"),
YU_LIN("陕K","YU_LIN"),
AN_KANG("陕G","AN_KANG"),
SHANG_LUO("陕H","SHANG_LUO"),
XI_XIAN("陕U","XI_XIAN"),
YANG_LING("陕V","YANG_LING"),
HAN_CHENG("陕Y","HAN_CHENG");
private final String code;
private final String city;
public static String of(String city){
for(VehicleApanageEnum e : VehicleApanageEnum.values()){
if(e.getCity().equals(city)){
return e.getCode();
}
}
return null;
}
}
package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jg.api.entity.JgVehicleInformationEq;
/**
* Mapper 接口
*
* @author system_generator
* @date 2024-03-18
*/
public interface JgVehicleInformationEqMapper extends BaseMapper<JgVehicleInformationEq> {
}
package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.JgVehicleInformationDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgVehicleInformation;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* Mapper 接口
*
* @author system_generator
* @date 2024-03-18
*/
public interface JgVehicleInformationMapper extends BaseMapper<JgVehicleInformation> {
@MapKey("roleIds")
Page<Map<String, Object>> getListPage(@Param("page")Page<Map<String, Object>> page, @Param("dto") JgVehicleInformationDto dto , @Param("roleIds") List<String> roleIds);
@MapKey("sequenceNbr")
JgVehicleInformationDto queryBySequenceNbr(@Param("sequenceNbr") Long sequenceNbr);
@MapKey("id")
List<Map<String, Object>> selectEquipList(@Param("id")Long id);
}
package com.yeejoin.amos.boot.module.jg.api.service;
/**
* 接口类
*
* @author system_generator
* @date 2024-03-18
*/
public interface IJgVehicleInformationEqService {}
package com.yeejoin.amos.boot.module.jg.api.service;
/**
* 接口类
*
* @author system_generator
* @date 2024-03-18
*/
public interface IJgVehicleInformationService {}
package com.yeejoin.amos.boot.module.jg.api.vo;
import com.alibaba.fastjson.JSONArray;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
*
*
* @author system_generator
* @date 2024-03-18
*/
@Data
@ApiModel(value="JgVehicleInformationVo", description="")
public class JgVehicleInformationVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "设备监管码")
private String supervisoryCode;
@ApiModelProperty(value = "使用单位名称")
private String useUnitName;
@ApiModelProperty(value = "申请编号")
private String applyNo;
@ApiModelProperty(value = "办理状态")
private String auditStatus;
@ApiModelProperty(value = "接收机构")
private String receiveOrgName;
@ApiModelProperty(value = "检验单位")
private String inspectUnitName;
@ApiModelProperty(value = "检验结果照片")
private String inspectResultPhoto;
@ApiModelProperty(value = "检验结果")
private String inspectResult;
@ApiModelProperty(value = "终审通过时间")
private Date auditPassDate;
@ApiModelProperty(value = "登记类别")
private String regType;
@ApiModelProperty(value = "注册登记日期")
private Date regDate;
@ApiModelProperty(value = "注册登记人员ID")
private String regPersonId;
@ApiModelProperty(value = "注册登记人员")
private String regPersonName;
@ApiModelProperty(value = "安装单位名称")
private String installUnitName;
@ApiModelProperty(value = "安装单位代码")
private String installUnitCode;
@ApiModelProperty(value = "状态")
private String status;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "创建人ID")
private String createUserId;
@ApiModelProperty(value = "创建时间")
private Date createDate;
@ApiModelProperty(value = "录入单位ID")
private String inputUnitNo;
@ApiModelProperty(value = "使用登记编号")
private String useRegistrationCode;
@ApiModelProperty(value = "流程实例id")
private String instanceId;
@ApiModelProperty(value = "使用单位统一信用代码")
private String useUnitCreditCode;
@ApiModelProperty(value = "检验机构代码")
private String inspectUnitCreditCode;
@ApiModelProperty(value = "流程状态")
private String instanceStatus;
@ApiModelProperty(value = "接收机构代码")
private String receiveOrgCode;
@ApiModelProperty(value = "接收机构公司代码")
private String receiveCompanyCode;
@ApiModelProperty(value = "下一执行节点ids")
private String nextExecuteIds;
@ApiModelProperty(value = "发起人id用于撤回操作")
private String promoter;
@ApiModelProperty(value = "使用登记证书附件")
private String useRegistrationCertificate;
@ApiModelProperty(value = "下一节点可执行人逗号分割")
private String nextExecuteUserIds;
@ApiModelProperty(value = "是否西咸,1是 0否")
private String isXixian;
@ApiModelProperty(value = "使用单位地点")
private String useUnitAddress;
@ApiModelProperty(value = "转办后执行人的Id逗号分割")
private String transferToUserIds;
@ApiModelProperty(value = "安装日期")
private Date installationData;
@ApiModelProperty(value = "车辆属性")
private String vehicleAttribute;
@ApiModelProperty(value = "车辆属地")
private String vehicleApanage;
@ApiModelProperty(value = "气瓶数量")
private Integer gasNum;
@ApiModelProperty(value = "号牌号码")
private String carNumber;
@ApiModelProperty(value = "识别代码")
private String identificationCode;
@ApiModelProperty(value = "发动机号")
private String engineNumber;
@ApiModelProperty(value = "车辆品牌型号")
private String carBrandModel;
@ApiModelProperty(value = "车主姓名")
private String ownerName;
@ApiModelProperty(value = "联系电话")
private String contactNumber;
@ApiModelProperty(value = "充装介质")
private String fillingMedium;
@ApiModelProperty(value = "设备品种(特种气瓶)")
private String equipmentVariety;
@ApiModelProperty(value = "容积")
private String volume;
@ApiModelProperty(value = "加装方式")
private String installationMode;
@ApiModelProperty(value = "车辆年审日期")
private Date vehicleReviewDate;
@ApiModelProperty(value = "身份证正面附件")
private JSONArray idCardFront;
@ApiModelProperty(value = "身份证背面附件")
private JSONArray idCardBack;
@ApiModelProperty(value = "行驶证正面附件")
private JSONArray driveLicenseFront;
@ApiModelProperty(value = "行驶证背面附件")
private JSONArray driveLicenseBack;
@ApiModelProperty(value = "机动车登记证书附件")
private JSONArray vehicleRegistrationCertificate;
@ApiModelProperty(value = "监督检验证书附件")
private JSONArray inspectionCertificate;
@ApiModelProperty(value = "备案通知单附件")
private JSONArray filingNotice;
private List<String> roleIds;
private String dataType;
private String unitCode;
private String currentUserId;
private List<Map<String, Object>> equipmentLists;
@ApiModelProperty(value = "主键ID")
protected Long sequenceNbr;
@ApiModelProperty(value = "更新时间")
protected Date recDate;
@ApiModelProperty(value = "更新人id")
protected String recUserId;
@ApiModelProperty(value = "更新人")
protected String recUserName;
@ApiModelProperty(value = "是否删除")
private Boolean isDelete = false;
@ApiModelProperty("工作流下一节点任务id")
private String nextTaskId;
@ApiModelProperty(value = "属地监管部门code")
private String orgBranchCode;
@ApiModelProperty(value = "下次检验日期")
private Date nextInspectionDate;
}
<?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.JgVehicleInformationEqMapper">
</mapper>
<?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.JgVehicleInformationMapper">
<select id="getListPage" resultType="java.util.Map">
<include refid="page-list"/>
<where>
tjvi.is_delete = 0
<if test="dto.status != null and dto.status != ''">
and tjvi.status = #{dto.status}
</if>
<if test="dto.applyNo != null and dto.applyNo != ''">
AND tjvi.apply_no LIKE CONCAT('%', #{dto.applyNo}, '%')
</if>
<if test="dto.carNumber != null and dto.carNumber != ''">
and tjvi.car_number like concat('%',#{dto.carNumber},'%')
</if>
<if test="roleIds != null and dto.dataType == 'supervision'">
<foreach collection='roleIds' item='role' open='and (' close=')' separator='or'>
instance_status like concat('%',#{role},'%')
</foreach>
</if>
<if test="dto.dataType == 'supervision' ">
and tjvi.receive_company_code = #{dto.useUnitCreditCode}
AND tjvi.instance_id <![CDATA[<>]]> ''
</if>
<if test="dto.dataType == 'company' ">
and tjvi.use_unit_credit_code = #{dto.useUnitCreditCode}
</if>
</where>
order by apply_no desc
</select>
<sql id="page-list">
select tjvi.sequence_nbr as sequenceNbr,
tjvi.audit_status as auditStatus,
date_format(tjvi.reg_date,'%Y-%m-%d') as regDate,
tjvi.use_unit_name as useUnitName,
tjvi.status,
tjvi.receive_org_name as receiveOrgName,
tjvi.use_unit_address as place,
tjvi.instance_id as instanceId,
tjvi.apply_no as applyNo,
tjvi.next_execute_ids as nextExecuteIds,
tjvi.promoter,
tjvi.supervisory_code as supervisoryCode,
tjvi.use_registration_code as useRegistrationCode,
date_format(tjvi.audit_pass_date,'%Y-%m-%d') as auditPassDate,
tjvi.receive_org_name as receiveOrgName,
tjvi.next_execute_user_ids as nextExecuteUserIds,
tjvi.next_task_id as nextTaskId,
tjvi.create_user_id as createUserId,
tjvi.car_number as carNumber,
tjvi.inspect_unit_name as inspectUnitName,
tjvi.install_unit_name as installUnitName,
date_format(tjvi.installation_data,'%Y-%m-%d') as installationData,
tjvi.vehicle_attribute as vehicleAttribute,
tjvi.gas_num as gasNum,
tjvi.create_date as createDate
from tzs_jg_vehicle_information tjvi
</sql>
<select id="getEquipListPage" resultType="java.util.Map">
SELECT jri.EQU_CODE as equCode,
jri.RECORD as id,
(SELECT name from tz_equipment_category where code = jri.EQU_CATEGORY) as equCategory,
(SELECT name from tz_equipment_category where code = jri.EQU_LIST) as equList,
jfi.FACTORY_NUM as factoryNum,
jui.ADDRESS as address,
jui.USE_INNER_CODE as useInnerCode,
jfi.PRODUCE_UNIT_NAME as produceUnitName
from idx_biz_jg_register_info jri
LEFT JOIN idx_biz_jg_factory_info jfi on jri.RECORD = jfi.RECORD
LEFT JOIN idx_biz_jg_use_info jui on jri.RECORD = jui.RECORD
<where>
<if test="factoryNum != null and factoryNum != ''">
and jfi.FACTORY_NUM like concat('%',#{factoryNum},'%')
</if>
<if test="equList != null and equList != ''">
and jri.EQU_LIST like concat('%',#{equList},'%')
</if>
<if test="equCategory != null and equCategory != ''">
and jri.EQU_CATEGORY like concat('%',#{equCategory},'%')
</if>
</where>
</select>
<select id="getDetail" resultType="java.util.Map">
SELECT
jri.RECORD as equipId,
jri.EQU_CODE as equCode,
jri.EQU_CATEGORY as equCategory,
jri.EQU_LIST as equList,
jri.EQU_DEFINE as equDefine,
jri.PRODUCT_NAME as productName,
jri.EQU_TYPE as equType,
jri.PRODUCT_PHOTO as proDuctPhoto,
jri.BRAND_NAME as brandName,
jri.EQU_PRICE as equPrice,
jfi.FACTORY_NUM as factoryNum,
jfi.PRODUCE_UNIT_NAME as produceUnitName,
date_format(jfi.PRODUCE_DATE,'%Y-%m-%d') as produceDate,
jfi.FACTORY_STANDARD as factoryStandard,
jfi.PRODUCT_QUALITY_YIELD_PROVE as productQualityYieldProve,
jfi.INS_USE_MAINTAIN_EXPLAIN as insUseMaintainExplain,
jfi.IMPORTED as imported,
jfi.PRODUCE_LICENSE_NUM as produceLicenseNum,
jfi.PRODUCE_COUNTRY as produceCountry,
jfi.produce_unit_credit_code as produceUnitCreditCode,
jci.USC_UNIT_NAME as uscUnitName,
jci.USC_UNIT_CREDIT_CODE as uscUnitCreditCode,
jri.OTHER_ACCESSORIES_REG as otherAccessoriesReg,
jfi.OTHER_ACCESSORIES_FACT as otherAccessoriesFact
from idx_biz_jg_register_info jri
LEFT JOIN idx_biz_jg_factory_info jfi on jri.RECORD = jfi.RECORD
LEFT JOIN idx_biz_jg_construction_info jci on jri.RECORD = jci.RECORD
where jri.RECORD = #{id}
</select>
<select id="getInspectDetail" resultType="java.util.Map">
SELECT INSPECT_TYPE as inspectType,
INSPECT_STAFF as inspectStaff,
INSPECT_CONCLUSION as inspectConclusion,
INSPECT_ORG_NAME as inspectOrgName,
INSPECT_DATE as inspectDate,
NEXT_INSPECT_DATE as nextInspectDate,
INSPECT_REPORT as inspectReport,
INSPECT_ORG_CODE as inspectOrgCode
from idx_biz_jg_inspection_detection_info
where RECORD = #{id}
ORDER BY INSPECT_DATE desc LIMIT 1
</select>
<select id="getUseDetail" resultType="java.util.Map">
SELECT USE_UNIT_NAME as useUnitName,
USE_UNIT_CREDIT_CODE as useUnitCreditCode,
USE_PLACE as usePlace,
SAFETY_MANAGER as safetyManager,
SAFETY_MANAGER_CODE as safetyManagerCode,
PHONE as phone,
concat(ESTATE_UNIT_CREDIT_CODE, '_', ESTATE_UNIT_NAME) as estateUnitName,
ADDRESS as address,
PROVINCE as province,
CITY as city,
COUNTY as county,
USE_INNER_CODE as useInnerCode,
LONGITUDE_LATITUDE as longitudeLatitude,
FACTORY_USE_SITE_STREET as factoryUseSiteStreet
FROM "idx_biz_jg_use_info" where RECORD = #{id}
</select>
<select id="getDesDetail" resultType="java.util.Map">
select DESIGN_UNIT_CREDIT_CODE as designUnitCreditCode,
DESIGN_UNIT_NAME as designUnitName,
DESIGN_LICENSE_NUM as designLicenseNum,
DESIGN_USE_DATE as designUseDate,
DESIGN_DATE as designDate,
DRAWING_DO as drawingDo,
APPRAISAL_UNIT as appraisalUnit,
APPRAISAL_DATE as appraisalDate,
DESIGN_DOC as designDoc,
DESIGN_STANDARD as designStandard,
OTHER_ACCESSORIES_DES as otherAccessoriesDes
from idx_biz_jg_design_info
where RECORD = #{id}
</select>
<select id="queryBySequenceNbr" resultType="com.yeejoin.amos.boot.module.jg.api.dto.JgVehicleInformationDto">
select * from tzs_jg_vehicle_information
where is_delete = 0 and sequence_nbr = #{sequenceNbr}
</select>
<select id="selectEquipList" resultType="java.util.Map">
select jui.RECORD as SEQUENCE_NBR,
(SELECT name from tz_equipment_category where code = jri.EQU_LIST) as EQU_LIST,
jfi.PRODUCE_UNIT_NAME,
jui.USE_INNER_CODE,
jfi.FACTORY_NUM,
jui.ADDRESS as ADDRESS,
jui.RECORD record,
jri.EQU_DEFINE,
jri.PRODUCT_NAME,
jri.EQU_CODE,
other.SUPERVISORY_CODE,
(SELECT name from tz_equipment_category where code = jri.EQU_CATEGORY) as EQU_CATEGORY
from tzs_jg_vehicle_information_eq tjvie
LEFT JOIN idx_biz_jg_use_info jui on tjvie.equ_id = jui.RECORD
LEFT JOIN idx_biz_jg_factory_info jfi on tjvie.equ_id = jfi.RECORD
left JOIN idx_biz_jg_register_info jri on tjvie.equ_id = jri.RECORD
LEFT JOIN idx_biz_jg_other_info other on other.RECORD = jui.RECORD
WHERE tjvie.vehicle_id = #{id}
</select>
</mapper>
package com.yeejoin.amos.boot.module.jg.biz.controller;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.module.jg.api.vo.JgVehicleInformationVo;
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 java.util.Arrays;
import java.util.List;
import java.util.Map;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgVehicleInformationServiceImpl;
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 com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.JgVehicleInformationDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import javax.servlet.http.HttpServletResponse;
/**
* 车用气瓶控制类
*
* @author LiuLin
* @date 2024-03-18
*/
@RestController
@Api(tags = "车用气瓶控制类Api")
@RequestMapping(value = "/jg-vehicle-information")
public class JgVehicleInformationController extends BaseController {
@Autowired
JgVehicleInformationServiceImpl jgVehicleInformationServiceImpl;
/**
* 新增(提交)车用气瓶控制类
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增车用气瓶控制类", notes = "新增车用气瓶控制类")
public ResponseModel<Object> saveOrSubmit(@RequestBody JSONObject map, @RequestParam(value = "submit") String submit) {
return ResponseHelper.buildResponse(jgVehicleInformationServiceImpl.save(submit, map));
}
/**
* 执行流程
*
* @param map map
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/flowExecute")
@ApiOperation(httpMethod = "POST", value = "执行流程", notes = "执行流程")
public ResponseModel<Object> flowExecute(@RequestBody JSONObject map) {
jgVehicleInformationServiceImpl.flowExecute(Long.valueOf(String.valueOf(map.get("sequenceNbr"))),
String.valueOf(map.get("instanceId")),
String.valueOf(map.get("operate")),
String.valueOf(map.get("comment")),
String.valueOf(map.get("nextTaskId")));
return ResponseHelper.buildResponse("ok");
}
/**
* 车用气瓶撤回
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/cancel")
@ApiOperation(httpMethod = "POST", value = "车用气瓶撤回", notes = "车用气瓶撤回")
public ResponseModel<Object> cancel(@RequestBody JSONObject map) {
jgVehicleInformationServiceImpl.cancel(String.valueOf(map.get("instanceId")), String.valueOf(map.get("nextTaskId")));
return ResponseHelper.buildResponse("ok");
}
/**
* 批量删除
*
* @param map map
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/deleteBatch")
@ApiOperation(httpMethod = "POST", value = "批量删除", notes = "批量删除")
public ResponseModel<Object> deleteBatch(@RequestBody JSONObject map) {
List<Long> ids = (List<Long>) map.get("ids");
jgVehicleInformationServiceImpl.deleteBatch(ids);
return ResponseHelper.buildResponse("ok");
}
/**
* 根据id进行删除
*
* @param id id
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/deleteMessage")
@ApiOperation(httpMethod = "POST", value = "删除", notes = "删除")
public ResponseModel<Object> deleteMessage(@RequestParam("id") Long id) {
Long[] ids = {id};
jgVehicleInformationServiceImpl.deleteBatch(Arrays.asList(ids));
return ResponseHelper.buildResponse("ok");
}
/**
* 车用气瓶查询列表接口
*
* @param dto dto
* @param current current
* @param size size
* @return Page
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "车用气瓶列表全部数据查询", notes = "车用气瓶列表全部数据查询")
@GetMapping(value = "/getPageList")
public ResponseModel<Page<Map<String, Object>>> getPageList(JgVehicleInformationDto dto,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page<Map<String, Object>> page = new Page<>(current, size);
ReginParams info = getSelectedOrgInfo();
dto.setCurrentUserId(info.getUserModel().getUserId());
dto.setUseUnitCreditCode(info.getCompany().getCompanyCode());
if (info.getCompany().getLevel().equals(BaseController.COMPANY_TYPE_COMPANY)) {
dto.setDataType(BaseController.COMPANY_TYPE_COMPANY);
} else {
dto.setDataType(BaseController.COMPANY_TYPE_SUPERVISION);
}
Page<Map<String, Object>> list = jgVehicleInformationServiceImpl.getPageList(dto, page, dto.getRoleIds());
list.getRecords().forEach(x -> x.put("companyType", info.getCompany().getCompanyType()));
return ResponseHelper.buildResponse(list);
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/delete")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除车用气瓶控制类", notes = "根据sequenceNbr删除车用气瓶控制类")
public ResponseModel<Boolean> deleteBySequenceNbr(@RequestParam("sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(jgVehicleInformationServiceImpl.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr查询详情
*
* @param sequenceNbr 主键
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/details")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个车用气瓶控制类", notes = "根据sequenceNbr查询单个车用气瓶控制类")
public ResponseModel<JgVehicleInformationVo> selectOne(@RequestParam("sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(jgVehicleInformationServiceImpl.queryBySequenceNbr(sequenceNbr));
}
/**
*
* @param response response
* @param sequenceNbr 主键
* @param printType 打印类型
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/export")
@ApiOperation(httpMethod = "GET", value = "导出车用气瓶使用登记证", notes = "导出车用气瓶使用登记证")
public void exportImageZip(HttpServletResponse response, @RequestParam("sequenceNbr") String sequenceNbr,
@RequestParam(value = "printType", defaultValue = "0") String printType) {
jgVehicleInformationServiceImpl.exportVehicleUseRegistrationCertificate(sequenceNbr, response, printType);
}
}
package com.yeejoin.amos.boot.module.jg.biz.controller;
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 java.util.List;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgVehicleInformationEqServiceImpl;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
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 com.yeejoin.amos.boot.module.jg.api.dto.JgVehicleInformationEqDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
/**
*
*
* @author system_generator
* @date 2024-03-18
*/
@RestController
@Api(tags = "车用气瓶控制类Api")
@RequestMapping(value = "/jg-vehicle-information-eq")
public class JgVehicleInformationEqController extends BaseController {
@Autowired
JgVehicleInformationEqServiceImpl jgVehicleInformationEqServiceImpl;
/**
* 新增车用气瓶控制类
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增车用气瓶控制类", notes = "新增车用气瓶控制类")
public ResponseModel<JgVehicleInformationEqDto> save(@RequestBody JgVehicleInformationEqDto model) {
model = jgVehicleInformationEqServiceImpl.createWithModel(model);
return ResponseHelper.buildResponse(model);
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新车用气瓶控制类", notes = "根据sequenceNbr更新车用气瓶控制类")
public ResponseModel<JgVehicleInformationEqDto> updateBySequenceNbrJgVehicleInformationEq(@RequestBody JgVehicleInformationEqDto model, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(jgVehicleInformationEqServiceImpl.updateWithModel(model));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除车用气瓶控制类", notes = "根据sequenceNbr删除车用气瓶控制类")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(jgVehicleInformationEqServiceImpl.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个车用气瓶控制类", notes = "根据sequenceNbr查询单个车用气瓶控制类")
public ResponseModel<JgVehicleInformationEqDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(jgVehicleInformationEqServiceImpl.queryBySeq(sequenceNbr));
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "分页查询车用气瓶控制类", notes = "分页查询车用气瓶控制类")
public ResponseModel<Page<JgVehicleInformationEqDto>> queryForPage(@RequestParam(value = "current") int current, @RequestParam
(value = "size") int size) {
Page<JgVehicleInformationEqDto> page = new Page<JgVehicleInformationEqDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(jgVehicleInformationEqServiceImpl.queryForJgVehicleInformationEqPage(page));
}
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询车用气瓶控制类", notes = "列表全部数据查询车用气瓶控制类")
@GetMapping(value = "/list")
public ResponseModel<List<JgVehicleInformationEqDto>> selectForList() {
return ResponseHelper.buildResponse(jgVehicleInformationEqServiceImpl.queryForJgVehicleInformationEqList());
}
}
...@@ -226,6 +226,8 @@ public class CommonServiceImpl implements ICommonService { ...@@ -226,6 +226,8 @@ public class CommonServiceImpl implements ICommonService {
private IJgMaintainNoticeService iJgMaintainNoticeService; private IJgMaintainNoticeService iJgMaintainNoticeService;
@Autowired @Autowired
private IJgTransferNoticeService jgTransferNoticeService; private IJgTransferNoticeService jgTransferNoticeService;
@Autowired
private JgVehicleInformationServiceImpl jgVehicleInformationService;
@Autowired @Autowired
RedissonClient redissonClient; RedissonClient redissonClient;
...@@ -419,6 +421,7 @@ public class CommonServiceImpl implements ICommonService { ...@@ -419,6 +421,7 @@ public class CommonServiceImpl implements ICommonService {
if (useFlagParamDto.getNextInspectionDate() != null) { if (useFlagParamDto.getNextInspectionDate() != null) {
paramMap.put("year", DateUtil.year(useFlagParamDto.getNextInspectionDate()) + ""); paramMap.put("year", DateUtil.year(useFlagParamDto.getNextInspectionDate()) + "");
paramMap.put("month", DateUtil.month(useFlagParamDto.getNextInspectionDate()) + 1); paramMap.put("month", DateUtil.month(useFlagParamDto.getNextInspectionDate()) + 1);
paramMap.put("nextInspectionTime",paramMap.get("year") +"年" + paramMap.get("month") +"月");
} }
} }
...@@ -924,13 +927,14 @@ public class CommonServiceImpl implements ICommonService { ...@@ -924,13 +927,14 @@ public class CommonServiceImpl implements ICommonService {
JSONObject jsonObject = new JSONObject(provideMap); JSONObject jsonObject = new JSONObject(provideMap);
return jgTransferNoticeService.saveNotice(submitType, jsonObject, reginParams); return jgTransferNoticeService.saveNotice(submitType, jsonObject, reginParams);
} else if (type.equals(ApplicationFormTypeEnum.SYDJ.getBusinessCode())) { } else if (type.equals(ApplicationFormTypeEnum.SYDJ.getBusinessCode())) {
String code = (String) basicObj.get("equDefineCode");
noticeObj.put("receiveOrgCode", !ObjectUtils.isEmpty(basicObj.get("receiveOrgCreditCode")) ? String.valueOf(basicObj.get("receiveOrgCreditCode")) : String.valueOf(basicObj.get("receiveOrgCreditCode1"))); noticeObj.put("receiveOrgCode", !ObjectUtils.isEmpty(basicObj.get("receiveOrgCreditCode")) ? String.valueOf(basicObj.get("receiveOrgCreditCode")) : String.valueOf(basicObj.get("receiveOrgCreditCode1")));
JSONObject jsonObject = new JSONObject(noticeObj); JSONObject jsonObject = new JSONObject(noticeObj);
if (submitType.equals("1")) { if (submitType.equals("1")) {
jsonObject.put("submit", Boolean.TRUE); jsonObject.put("submit", Boolean.TRUE);
} }
return jgUseRegistrationServiceImpl.save(jsonObject); //判断是否为车用气瓶使用登记或者设备使用登记
return code != null && code.equals("23T0") ? jgVehicleInformationService.save(submitType, jsonObject) : jgUseRegistrationServiceImpl.save(jsonObject);
} else if (type.equals(ApplicationFormTypeEnum.GZBG.getBusinessCode())) { } else if (type.equals(ApplicationFormTypeEnum.GZBG.getBusinessCode())) {
// 兼容业务逻辑代码 // 兼容业务逻辑代码
if (submitType.equals("1")) { if (submitType.equals("1")) {
...@@ -1666,7 +1670,7 @@ public class CommonServiceImpl implements ICommonService { ...@@ -1666,7 +1670,7 @@ public class CommonServiceImpl implements ICommonService {
setNextDate(useFlagParamDto, paramMap); setNextDate(useFlagParamDto, paramMap);
setRegName(useFlagParamDto, paramMap); setRegName(useFlagParamDto, paramMap);
// 生成二维码,之前为设备监管码,调整为申请单号 // 生成二维码,之前为设备监管码,调整为申请单号
String qrCode = ImageUtils.generateQRCode(Optional.ofNullable(useFlagParamDto.getApplyNo()).orElse(""), 100, 100); String qrCode = ImageUtils.generateQRCode(Optional.ofNullable(useFlagParamDto.getApplyNo()).orElse(""), 180, 180);
paramMap.put("supervisoryCode", qrCode); paramMap.put("supervisoryCode", qrCode);
this.fillParamValueToPdf(paramMap, response, selectPdfTemplate(useFlagParamDto.getEquListCode()), printFileName); this.fillParamValueToPdf(paramMap, response, selectPdfTemplate(useFlagParamDto.getEquListCode()), printFileName);
...@@ -1686,11 +1690,10 @@ public class CommonServiceImpl implements ICommonService { ...@@ -1686,11 +1690,10 @@ public class CommonServiceImpl implements ICommonService {
switch (equListCode) { switch (equListCode) {
case "3000": case "3000":
return "templates/use-flag-model-elevator.pdf"; return "templates/use-flag-model-elevator.pdf";
case "23T0": case "0000":
return "templates/use-flag-model-vehicle.pdf"; return "templates/use-flag-model-vehicle.pdf";
default: default:
return "templates/use-flag-model-other.pdf"; return "templates/use-flag-model-other.pdf";
} }
} }
} }
\ No newline at end of file
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.yeejoin.amos.boot.module.jg.api.entity.JgVehicleInformationEq;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgVehicleInformationEqMapper;
import com.yeejoin.amos.boot.module.jg.api.dto.JgVehicleInformationEqDto;
import com.yeejoin.amos.boot.module.jg.api.service.IJgVehicleInformationEqService;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
/**
* 服务实现类
*
* @author system_generator
* @date 2024-03-18
*/
@Service
public class JgVehicleInformationEqServiceImpl extends BaseService<JgVehicleInformationEqDto, JgVehicleInformationEq,JgVehicleInformationEqMapper> implements IJgVehicleInformationEqService {
/**
* 分页查询
*/
public Page<JgVehicleInformationEqDto> queryForJgVehicleInformationEqPage(Page<JgVehicleInformationEqDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<JgVehicleInformationEqDto> queryForJgVehicleInformationEqList() {
return this.queryForList("" , false);
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
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.core.conditions.update.UpdateWrapper;
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.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
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.*;
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.VehicleApanageEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgVehicleInformationEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgVehicleInformationMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgVehicleInformationService;
import com.yeejoin.amos.boot.module.jg.api.vo.JgVehicleInformationVo;
import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
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.http.HttpStatus;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
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.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl.getAuditPassedDate;
/**
* 服务实现类
*
* @author system_generator
* @date 2024-03-18
*/
@Service
public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInformationDto, JgVehicleInformation, JgVehicleInformationMapper> implements IJgVehicleInformationService {
public static final String SUBMIT_DATA = "0";
public static final String SUBMIT_TYPE_FLOW = "1";
private static final String DEFINITION_KEY = "vehicleInformation";
@Autowired
private RedissonClient redissonClient;
@Autowired
private CommonServiceImpl commonService;
@Autowired
private ICmWorkflowService workflowService;
@Autowired
private JgRegistrationHistoryServiceImpl jgRegistrationHistoryService;
@Autowired
private CmWorkflowServiceImpl cmWorkflowService;
@Autowired
private RedisUtils redisUtils;
@Autowired
private JgVehicleInformationEqMapper jgVehicleInformationEqMapper;
@Autowired
private IdxBizJgUseInfoServiceImpl idxBizJgUseInfoService;
@Autowired
private IdxBizJgRegisterInfoServiceImpl idxBizJgRegisterInfoService;
@Autowired
private IdxBizJgRegisterInfoMapper idxBizJgRegisterInfoMapper;
@Autowired
private IdxBizJgUseInfoMapper useInfoMapper;
@Autowired
private IdxBizJgSupervisionInfoMapper idxBizJgSupervisionInfoMapper;
@Autowired
private InspectionDetectionInfoMapper inspectionDetectionInfoMapper;
@Autowired
private DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
private TzsServiceFeignClient tzsServiceFeignClient;
@Autowired
private JgVehicleInformationEqServiceImpl jgVehicleInformationEqService;
@Autowired
private IdxBizJgFactoryInfoMapper idxBizJgFactoryInfoMapper;
/**
* 新增(提交)车用气瓶
*
* @param map map
* @return list
*/
@Transactional(rollbackFor = Exception.class)
public List<JgVehicleInformation> save(String submit, JSONObject map) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())) + "", ReginParams.class);
JgVehicleInformationDto vehicleInfoDto = JSON.parseObject(JSON.toJSONString(map), JgVehicleInformationDto.class);
List<Map<String, Object>> equipmentLists = (List<Map<String, Object>>) map.get("equipmentLists");
if (CollectionUtils.isEmpty(equipmentLists)) {
throw new BadRequest("请选择设备");
}
CompanyBo company = reginParams.getCompany();
vehicleInfoDto.setCreateDate(new Date());
vehicleInfoDto.setPromoter(reginParams.getUserModel().getUserId());
// 车牌号码 字段的唯一性校验
LambdaQueryWrapper<JgVehicleInformation> vehicleInfoWrapper = new LambdaQueryWrapper<>();
vehicleInfoWrapper.eq(JgVehicleInformation::getCarNumber, vehicleInfoDto.getCarNumber());
vehicleInfoWrapper.ne(!ValidationUtil.isEmpty(vehicleInfoDto.getSequenceNbr()), JgVehicleInformation::getSequenceNbr, vehicleInfoDto.getSequenceNbr());
Integer count = this.baseMapper.selectCount(vehicleInfoWrapper);
if (count > 0) {
throw new LocalBadRequest("车牌号码已存在,请重新输入!");
}
// 使用单位信息
vehicleInfoDto.setUseUnitName(company.getCompanyName());
vehicleInfoDto.setUseUnitCreditCode(company.getCompanyCode());
List<LinkedHashMap> tree = commonService.getCreatTree();
// 接收单位信息
if (!StringUtils.isEmpty(vehicleInfoDto.getReceiveOrgCode())) {
String[] splitReceiveOrgCode = vehicleInfoDto.getReceiveOrgCode().split("_");
String orgCode = this.recursiveMatching(tree, splitReceiveOrgCode[0]);
vehicleInfoDto.setReceiveOrgCode(orgCode);
vehicleInfoDto.setReceiveCompanyCode(splitReceiveOrgCode[0]);
vehicleInfoDto.setReceiveOrgName(splitReceiveOrgCode[1]);
}
//检验机构信息
if (!StringUtils.isEmpty(vehicleInfoDto.getInspectUnitCreditCode())) {
String[] splitInspectUnitCreditCode = vehicleInfoDto.getInspectUnitCreditCode().split("_");
vehicleInfoDto.setInspectUnitCreditCode(splitInspectUnitCreditCode[0]);
vehicleInfoDto.setInspectUnitName(splitInspectUnitCreditCode[1]);
}
//安装单位信息
if (!StringUtils.isEmpty(vehicleInfoDto.getInstallUnitCode())) {
String[] splitInstallUnitCode = vehicleInfoDto.getInstallUnitCode().split("_");
vehicleInfoDto.setInstallUnitCode(splitInstallUnitCode[0]);
vehicleInfoDto.setInstallUnitName(splitInstallUnitCode[1]);
}
//属地监管部门
if (!StringUtils.isEmpty(vehicleInfoDto.getOrgBranchCode())) {
String[] splitOrgBranchCode = vehicleInfoDto.getOrgBranchCode().split("_");
vehicleInfoDto.setOrgBranchCode(splitOrgBranchCode[0]);
vehicleInfoDto.setOrgBranchName(splitOrgBranchCode[1]);
}
JgVehicleInformation vehicleInformation = new JgVehicleInformation();
BeanUtils.copyProperties(vehicleInfoDto, vehicleInformation);
vehicleInformation.setCreateUserId(reginParams.getUserModel().getUserId());
vehicleInformation.setCreateUserName(reginParams.getUserModel().getRealName());
vehicleInformation.setGasNum(equipmentLists.size());
boolean hasId = StringUtils.isEmpty(vehicleInfoDto.getSequenceNbr());
//新增
if (hasId) {
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);
vehicleInformation.setApplyNo(applyNo);
vehicleInformation.setStatus(SUBMIT_DATA.equals(submit) ? WorkFlowStatusEnum.USE_SUBMIT.getPass() : WorkFlowStatusEnum.USE_RECEIVE.getPass());
this.save(vehicleInformation);
} else {
// 删除以前设备关联关系
this.getBaseMapper().updateById(vehicleInformation);
LambdaQueryWrapper<JgVehicleInformationEq> lambda = new QueryWrapper<JgVehicleInformationEq>().lambda();
lambda.eq(JgVehicleInformationEq::getVehicleId, vehicleInformation.getSequenceNbr());
jgVehicleInformationEqService.getBaseMapper().delete(lambda);
}
// 更新关联气瓶信息
if (!CollectionUtils.isEmpty(equipmentLists)) {
List<JgVehicleInformationEq> equipList = new ArrayList<>();
equipmentLists.forEach(x -> {
JgVehicleInformationEq equip = new JgVehicleInformationEq();
equip.setEquId(String.valueOf(x.get("SEQUENCE_NBR")));
equip.setVehicleId(vehicleInformation.getSequenceNbr() + "");
equipList.add(equip);
});
// 保存关联设备信息
jgVehicleInformationEqService.saveBatch(equipList);
}
// 判断当前是否为提交
if (SUBMIT_TYPE_FLOW.equals(submit)) {
List<String> roleListNext = new ArrayList<>();
List<String> roleListAll = new ArrayList<>();
// 新增提交,没有instanceId需要发起流程
if (StringUtils.isEmpty(vehicleInformation.getInstanceId())) {
// 启动并执行流程
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(DEFINITION_KEY);
dto.setBusinessKey(vehicleInformation.getApplyNo());
dto.setCompleteFirstTask(Boolean.TRUE);
// 下一节点执行人单位(下节点接收机构code)
dto.setNextExecuteUserCompanyCode(vehicleInformation.getReceiveCompanyCode());
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTasks = workflowService.startBatch(actWorkflowBatchDTO);
this.buildRoleList(processTasks, roleListNext, roleListAll);
List<WorkflowResultDto> workflowResultDtoList = commonService.buildWorkFlowInfo(processTasks);
if (!ObjectUtils.isEmpty(workflowResultDtoList) && !ObjectUtils.isEmpty(workflowResultDtoList.get(0))) {
WorkflowResultDto workflowResultDto = workflowResultDtoList.get(0);
this.updateData(vehicleInformation.getSequenceNbr(), "0", workflowResultDto, Boolean.TRUE);
}
} else {
// 执行流程
flowExecute(vehicleInformation.getSequenceNbr(), vehicleInformation.getInstanceId(), "0", "", String.valueOf(map.get("nextTaskId")));
}
} else {
ArrayList<TaskModelDto> list = new ArrayList<>();
TaskModelDto dto = new TaskModelDto();
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(vehicleInformation, taskMessageDto);
taskMessageDto.setEquipId(String.valueOf(map.get("equipId")));
// 数据参数
dto.setModel(taskMessageDto);
// 摘要
dto.setTaskContent("来自车用气瓶" + vehicleInformation.getCarNumber() + "【" + (ObjectUtils.isEmpty(vehicleInformation.getSupervisoryCode()) ? "无" : vehicleInformation.getSupervisoryCode()) + "】的业务办理," + "【申请单号:" + vehicleInformation.getApplyNo() + "】");
// 申请单号
dto.setTaskCode(vehicleInformation.getApplyNo());
// 业务类型
dto.setTaskType(String.valueOf(BusinessTypeEnum.JG_VEHICLE_GAS_APPLICATION.getCode()));
// 业务主键
dto.setRelationId(String.valueOf(vehicleInformation.getSequenceNbr()));
dto.setNextExecuteUser("");
list.add(dto);
commonService.buildTaskModel(list);
}
// 设备数据存历史数据,在流程完成时使用
commonService.saveOrUpdateHistory(BusinessTypeEnum.JG_VEHICLE_GAS_APPLICATION.getName(), JSON.parseArray(JSON.toJSONString(equipmentLists)), null, vehicleInformation.getSequenceNbr() + "");
return Collections.singletonList(vehicleInformation);
}
public void updateHistory(JSONObject map, String equipId, String currentDocumentId, String supervisoryCode) {
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
LambdaQueryWrapper<JgRegistrationHistory> lambda = new QueryWrapper<JgRegistrationHistory>().lambda();
// lambda.eq(JgRegistrationHistory::getEquId, equipId);
lambda.eq(JgRegistrationHistory::getCurrentDocumentId, currentDocumentId);
lambda.eq(JgRegistrationHistory::getRegistrationClass, "车用气瓶登记");
Integer integer = jgRegistrationHistoryService.getBaseMapper().selectCount(lambda);
if (integer > 0) {
jgRegistrationHistory.setChangeData(JSON.toJSONString(map));
jgRegistrationHistoryService.update(jgRegistrationHistory, lambda);
} else {
jgRegistrationHistory.setChangeData(JSON.toJSONString(map));
jgRegistrationHistory.setStatus("new");
jgRegistrationHistory.setRegistrationClass("车用气瓶登记");
jgRegistrationHistory.setSupervisoryCode(supervisoryCode);
jgRegistrationHistory.setEquId(equipId);
jgRegistrationHistory.setCurrentDocumentId(currentDocumentId);
jgRegistrationHistoryService.save(jgRegistrationHistory);
}
}
private void createTaskModel(JgVehicleInformation vehicle, String taskName, String submitType, String nextUserIds) {
if ("1".equals(submitType)) {
TaskModelDto taskModelDto = new TaskModelDto();
taskModelDto.setFlowCreateDate(vehicle.getRegDate());
taskModelDto.setTaskName(taskName);
taskModelDto.setTaskCode(vehicle.getApplyNo());
taskModelDto.setTaskContent(this.buildTaskContent(vehicle));
taskModelDto.setTaskDesc("");
taskModelDto.setTaskType(BusinessTypeEnum.JG_VEHICLE_GAS_APPLICATION.getCode());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_VEHICLE_GAS_APPLICATION.getName());
taskModelDto.setRelationId(vehicle.getInstanceId());
taskModelDto.setExecuteUserIds(nextUserIds);
FlowStatusEnum flowStatusEnum = this.getTaskStatus(submitType);
taskModelDto.setTaskStatus(flowStatusEnum.getCode());
taskModelDto.setTaskStatusLabel(flowStatusEnum.getName());
taskModelDto.setFlowStatus(this.getTaskStatusByName(vehicle.getStatus()));
taskModelDto.setFlowStatusLabel(vehicle.getStatus());
taskModelDto.setStartUserId(vehicle.getCreateUserId());
taskModelDto.setStartUser(vehicle.getRecUserName());
taskModelDto.setFlowCode(vehicle.getNextTaskId());
taskModelDto.setStartUserCompanyName(vehicle.getUseUnitName());
taskModelDto.setNextExecuteUser(vehicle.getNextExecuteIds());
taskModelDto.setStartDate(vehicle.getCreateDate());
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(vehicle, taskMessageDto);
taskModelDto.setModel(taskMessageDto);
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
// redis流程实时数据更新
commonService.saveExecuteFlowData2Redis(vehicle.getInstanceId(), this.buildInstanceRuntimeData(vehicle));
}
}
/**
* 摘要构建
*
* @param dto 业务
* @return 摘要
*/
private String buildTaskContent(JgVehicleInformation dto) {
List<Map<String, Object>> list = this.baseMapper.selectEquipList(dto.getSequenceNbr());
String supervisoryCode = "";
String equList = "";
if (!CollectionUtils.isEmpty(list)) {
Map<String, Object> map = list.get(0);
if (map.containsKey("EQU_LIST")) {
equList = map.get("EQU_LIST") + "";
}
if (map.containsKey("SUPERVISORY_CODE")) {
supervisoryCode = map.get("SUPERVISORY_CODE") + "";
}
}
supervisoryCode = StringUtils.isEmpty(supervisoryCode) ? "无" : supervisoryCode;
String format = String.format("来自%s【%s】等的业务办理,【申请单号:%s】等", equList, supervisoryCode, dto.getApplyNo());
return format;
}
private FlowStatusEnum getTaskStatus(String operate) {
if ("0".equals(operate)) {
return FlowStatusEnum.TO_BE_FINISHED;
} else {
return FlowStatusEnum.REJECTED;
}
}
private Integer getTaskStatusByName(String auditStatus) {
return commonService.getDictionaryCodeByName(auditStatus);
}
/**
* 撤回操作
*
* @param instanceId instanceId
* @param _nextTaskId nextTaskId
*/
@Transactional(rollbackFor = Exception.class)
public void cancel(String instanceId, String _nextTaskId) {
String lockKey = CommonServiceImpl.buildJgExecuteLockKey(instanceId);
RLock lock = redissonClient.getLock(lockKey);
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
if (!isLocked) {
throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
}
// 流程执行时,状态及权限校验
commonService.checkForRevocationFlow(_nextTaskId, instanceId);
LambdaQueryWrapper<JgVehicleInformation> lambda = new QueryWrapper<JgVehicleInformation>().lambda();
lambda.eq(JgVehicleInformation::getInstanceId, instanceId);
List<String> roleListNext = new ArrayList<>();
List<String> roleListAll = new ArrayList<>();
JgVehicleInformation vehicleInfo = this.getOne(lambda);
ProcessTaskDTO processTaskDTO = workflowService.rollBack(instanceId);
String nextTaskId = processTaskDTO.getNextTask().get(0).getId();
this.buildRoleList(Collections.singletonList(processTaskDTO), roleListNext, roleListAll);
// 待调整
String taskCode = processTaskDTO.getNextTask().get(0).getKey();
if (!FlowStatusEnum.TO_BE_FINISHED.getName().equals(taskCode)) {
vehicleInfo.setStatus(Objects.requireNonNull(WorkFlowStatusEnum.getMessage(taskCode)).getRollBack());
}
vehicleInfo.setPromoter(RequestContext.getExeUserId());
vehicleInfo.setNextExecuteIds(String.join(",", roleListNext));
vehicleInfo.setNextTaskId(nextTaskId);
List<WorkflowResultDto> workflowResultDtoList = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
// 更新下一步可执行人
String nextUserIds = workflowResultDtoList.get(0).getNextExecutorUserIds();
vehicleInfo.setNextExecuteUserIds(nextUserIds);
this.updateById(vehicleInfo);
// 删除待办
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(vehicleInfo));
jsonObject.put("nextTaskId", vehicleInfo.getNextTaskId());
jsonObject.put("nextExecuteUser", vehicleInfo.getNextExecuteIds());
jsonObject.put("taskType", BusinessTypeEnum.JG_VEHICLE_GAS_APPLICATION.getCode());
jsonObject.put("flowStatus", this.getTaskCodeByName(vehicleInfo.getStatus()));
jsonObject.put("flowStatusLabel", vehicleInfo.getStatus());
jsonObject.put("maintenanceContract", null);// 不传合同照片附件信息//TODO
commonService.rollbackTask(instanceId, jsonObject);
// redis流程实时数据更新
commonService.saveExecuteFlowData2Redis(instanceId, this.buildInstanceRuntimeData(vehicleInfo));
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
}
public InstanceRuntimeData buildInstanceRuntimeData(JgVehicleInformation jgVehicleInformation) {
return InstanceRuntimeData.builder()
.nextExecuteUserIds(jgVehicleInformation.getNextExecuteUserIds())
.promoter(jgVehicleInformation.getPromoter())
.nextTaskId(jgVehicleInformation.getNextTaskId())
.build();
}
private Integer getTaskCodeByName(String auditStatus) {
return commonService.getDictionaryCodeByName(auditStatus);
}
private void buildRoleList(List<ProcessTaskDTO> processTasks, List<String> roleListNext, List<String> roleListAll) {
processTasks.forEach(p -> {
p.getNextCandidateGroups().values().forEach(e -> {
roleListNext.addAll(e);
roleListAll.addAll(e);
});
roleListAll.addAll(p.getCandidateGroups());
});
}
/**
* 查看详情
*
* @param sequenceNbr sequenceNbr
* @return JgVehicleInformationModel
*/
public JgVehicleInformationVo queryBySequenceNbr(Long sequenceNbr) {
JgVehicleInformationVo vo = new JgVehicleInformationVo();
JgVehicleInformationDto dto = this.baseMapper.queryBySequenceNbr(sequenceNbr);
if (Objects.isNull(dto)) {
return null;
}
BeanUtils.copyProperties(dto, vo);
//接收机构
if (!ValidationUtil.isEmpty(dto.getReceiveOrgCode()) && !ValidationUtil.isEmpty(dto.getReceiveOrgName())) {
vo.setReceiveOrgCode(dto.getReceiveCompanyCode() + "_" + dto.getReceiveOrgName());
}
//检验机构
if (!ValidationUtil.isEmpty(dto.getInspectUnitCreditCode()) && !ValidationUtil.isEmpty(dto.getInspectUnitName())) {
vo.setInspectUnitCreditCode(dto.getInspectUnitCreditCode() + "_" + dto.getInspectUnitName());
}
//安装单位
if (!ValidationUtil.isEmpty(dto.getInstallUnitCode()) && !ValidationUtil.isEmpty(dto.getInstallUnitName())) {
vo.setInstallUnitCode(dto.getInstallUnitCode() + "_" + dto.getInstallUnitName());
}
//所属监管单位
if (!ValidationUtil.isEmpty(dto.getOrgBranchCode()) && !ValidationUtil.isEmpty(dto.getOrgBranchName())) {
vo.setOrgBranchCode(dto.getOrgBranchCode() + "_" + dto.getOrgBranchName());
}
vo.setIdCardFront(ObjectUtils.isEmpty(dto.getIdCardFront()) ? null : JSON.parseArray(dto.getIdCardFront()));
vo.setIdCardBack(ObjectUtils.isEmpty(dto.getIdCardBack()) ? null : JSON.parseArray(dto.getIdCardBack()));
vo.setDriveLicenseFront(ObjectUtils.isEmpty(dto.getDriveLicenseFront()) ? null : JSON.parseArray(dto.getDriveLicenseFront()));
vo.setDriveLicenseBack(ObjectUtils.isEmpty(dto.getDriveLicenseBack()) ? null : JSON.parseArray(dto.getDriveLicenseBack()));
vo.setVehicleRegistrationCertificate(ObjectUtils.isEmpty(dto.getVehicleRegistrationCertificate()) ? null : JSON.parseArray(dto.getVehicleRegistrationCertificate()));
vo.setInspectionCertificate(ObjectUtils.isEmpty(dto.getInspectionCertificate()) ? null : JSON.parseArray(dto.getInspectionCertificate()));
vo.setFilingNotice(ObjectUtils.isEmpty(dto.getFilingNotice()) ? null : JSON.parseArray(dto.getFilingNotice()));
List<Map<String, Object>> list = this.baseMapper.selectEquipList(sequenceNbr);
if (!ObjectUtils.isEmpty(list)) {
vo.setEquipmentLists(list);
}
return vo;
}
/**
* 执行流程
*
* @param sequenceNbr sequenceNbr
* @param instanceId instanceId
* @param operate 操作
* @param comment 意见
* @param nextTaskId nextTaskId
*/
public void flowExecute(Long sequenceNbr, String instanceId, String operate, String comment, String nextTaskId) {
String lockKey = CommonServiceImpl.buildJgExecuteLockKey(instanceId);
RLock lock = redissonClient.getLock(lockKey);
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
//if(isLocked){
// throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
//}
// 流程执行时,状态及权限校验
commonService.checkForExecuteFlow(nextTaskId, instanceId);
JgVehicleInformation jgVehicleInformation = this.getBaseMapper().selectById(sequenceNbr);
// 组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(jgVehicleInformation.getNextTaskId());
dto.setComment(comment);
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", operate);
if (jgVehicleInformation.getStatus().equals(WorkFlowStatusEnum.USE_SUBMIT.getReject()) || jgVehicleInformation.getStatus().equals(WorkFlowStatusEnum.USE_SUBMIT.getRollBack())) {
map.put("approvalStatus", "提交");
}
dto.setVariable(map);
// 接受机构
if ("1".equals(operate) && WorkFlowStatusEnum.USE_RECEIVE.getPass().equals(jgVehicleInformation.getStatus())) {
// 驳回到使用单位
dto.setNextExecuteUserCompanyCode(jgVehicleInformation.getUseUnitCreditCode());
} else {
dto.setNextExecuteUserCompanyCode(jgVehicleInformation.getReceiveCompanyCode());
}
ProcessTaskDTO complete = cmWorkflowService.completeOrReject(jgVehicleInformation.getNextTaskId(), dto, operate);
ArrayList<ProcessTaskDTO> processTaskDTOS = new ArrayList<>();
processTaskDTOS.add(complete);
List<WorkflowResultDto> resultDto = commonService.buildWorkFlowInfo(processTaskDTOS);
if (!ObjectUtils.isEmpty(resultDto) && !ObjectUtils.isEmpty(resultDto.get(0))) {
WorkflowResultDto workflowResultDto = resultDto.get(0);
this.updateData(jgVehicleInformation.getSequenceNbr(), operate, workflowResultDto, Boolean.FALSE);
}
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
}
/**
* 更新数据
*
* @param sequenceNbr sequenceNbr
* @param operate operate
* @param workflowResultDto workflowResultDto
* @param isFirst isFirst
*/
public void updateData(Long sequenceNbr, String operate, WorkflowResultDto workflowResultDto, Boolean isFirst) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())) + "", ReginParams.class);
String role = workflowResultDto.getNextExecutorRoleIds();
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
if (!ObjectUtils.isEmpty(workflowResultDto.getNextTaskCode())) {
taskCode = workflowResultDto.getNextTaskCode();
}
JgVehicleInformation jgVehicleInformation = this.getBaseMapper().selectById(sequenceNbr);
jgVehicleInformation.setNextTaskId(workflowResultDto.getNextTaskId());
jgVehicleInformation.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
commonService.deleteTaskModel(sequenceNbr + "");
if (isFirst) {
jgVehicleInformation.setInstanceStatus(workflowResultDto.getExecutorRoleIds());
jgVehicleInformation.setInstanceId(workflowResultDto.getInstanceId());
}
//非完成
if (!FlowStatusEnum.TO_BE_FINISHED.getName().equals(taskCode)) {
jgVehicleInformation.setNextExecuteIds(role);
jgVehicleInformation.setPromoter(reginParams.getUserModel().getUserId());
if (!ObjectUtils.isEmpty(jgVehicleInformation.getInstanceStatus())) {
jgVehicleInformation.setInstanceStatus(jgVehicleInformation.getInstanceStatus() + "," + role);
} else {
jgVehicleInformation.setInstanceStatus(role);
}
if ("0".equals(operate)) {
// 通过操作
jgVehicleInformation.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getPass());
} else {
// 驳回操作
jgVehicleInformation.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getReject());
jgVehicleInformation.setPromoter("");
}
if (isFirst) {
this.buildTask(jgVehicleInformation, workflowResultDto);
} else {
// 更新代办状态
HashMap<String, Object> params = new HashMap<>();
params.put("relationId", jgVehicleInformation.getInstanceId());
params.put("flowStatus", commonService.getDictionaryCodeByName(jgVehicleInformation.getStatus()));
params.put("flowStatusLabel", jgVehicleInformation.getStatus());
params.put("taskStatus", commonService.getDictionaryCodeByName(jgVehicleInformation.getStatus()));
params.put("taskStatusLabel", jgVehicleInformation.getStatus());
TaskV2Model taskV2Model = commonService.updateTaskModel(params);
// 创建新的代办
if (!ObjectUtils.isEmpty(taskV2Model)) {
TaskModelDto taskModelDto = new TaskModelDto();
BeanUtils.copyProperties(taskV2Model, taskModelDto);
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(jgVehicleInformation, taskMessageDto);
taskModelDto.setModel(taskMessageDto);
taskModelDto.setTaskName(workflowResultDto.getNextTaskName());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
taskModelDto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
taskModelDto.setFlowCode(workflowResultDto.getNextTaskId());
if (WorkFlowStatusEnum.USE_SUBMIT.getCode().equals(taskCode) && "1".equals(operate)) {
taskModelDto.setPageType("edit");
}
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
} else {
workflowResultDto.setInstanceId(jgVehicleInformation.getInstanceId());
buildTask(jgVehicleInformation, workflowResultDto);
}
}
} else {
// 流程结束
jgVehicleInformation.setStatus(taskCode);
jgVehicleInformation.setNextExecuteUserIds("");
// 生成使用登记证编号
String code = this.getCode(jgVehicleInformation.getVehicleApanage());
jgVehicleInformation.setUseRegistrationCode(code);
jgVehicleInformation.setAuditPassDate(new Date());
LambdaQueryWrapper<JgRegistrationHistory> lambdaSelect = new QueryWrapper<JgRegistrationHistory>().lambda();
lambdaSelect.eq(JgRegistrationHistory::getCurrentDocumentId, String.valueOf(sequenceNbr));
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getBaseMapper().selectOne(lambdaSelect);
String jsonData = jgRegistrationHistory.getChangeData();
JSONArray jsonArray = JSONArray.parseArray(jsonData);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject mapData = jsonArray.getJSONObject(i);
// 查询注册信息
LambdaQueryWrapper<IdxBizJgRegisterInfo> queryRegisterWrapper = new QueryWrapper<IdxBizJgRegisterInfo>().lambda();
queryRegisterWrapper.eq(IdxBizJgRegisterInfo::getRecord, String.valueOf(mapData.get("record")));
IdxBizJgRegisterInfo registerInfo = idxBizJgRegisterInfoMapper.selectOne(queryRegisterWrapper);
registerInfo.setUseOrgCode(code);
// 更新注册登记信息表
LambdaUpdateWrapper<IdxBizJgRegisterInfo> updateRegisterWrapper = new UpdateWrapper<IdxBizJgRegisterInfo>().lambda();
updateRegisterWrapper.eq(IdxBizJgRegisterInfo::getRecord, registerInfo.getRecord());
updateRegisterWrapper.set(true, IdxBizJgRegisterInfo::getUseOrgCode, code);
updateRegisterWrapper.set(IdxBizJgRegisterInfo::getRegisterState, this.getRegCode());
idxBizJgRegisterInfoService.update(updateRegisterWrapper);
// 更新设备信息
this.updateEquipMessage(jgVehicleInformation, mapData);
// 使用信息
LambdaQueryWrapper<IdxBizJgUseInfo> lambdaUseInfo = new QueryWrapper<IdxBizJgUseInfo>().lambda();
lambdaUseInfo.eq(IdxBizJgUseInfo::getRecord, String.valueOf(mapData.get("record")));
IdxBizJgUseInfo useInfo = useInfoMapper.selectOne(lambdaUseInfo);
String usePlace = useInfo.getProvinceName() + "/" + useInfo.getCityName() + "/" + useInfo.getCountyName() + useInfo.getStreetName();
// 更新es
updateEsData(usePlace, mapData, jgVehicleInformation);
}
// 更新代办状态
HashMap<String, Object> params = new HashMap<>();
params.put("relationId", jgVehicleInformation.getInstanceId());
params.put("flowStatus", commonService.getDictionaryCodeByName(jgVehicleInformation.getStatus()));
params.put("flowStatusLabel", jgVehicleInformation.getStatus());
params.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
params.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(jgVehicleInformation, taskMessageDto);
params.put("model", taskMessageDto);
commonService.updateTaskModel(params);
}
commonService.saveExecuteFlowData2Redis(jgVehicleInformation.getInstanceId(), this.buildInstanceRuntimeData(jgVehicleInformation));
this.getBaseMapper().updateById(jgVehicleInformation);
}
public void updateEsData(String usePlace, JSONObject dataMap, JgVehicleInformation jgVehicleInformation) {
// 更新es
HashMap<String, Map<String, Object>> objMap = new HashMap<>();
HashMap<String, Object> param = new HashMap<>();
param.put("USE_UNIT_CREDIT_CODE", dataMap.get("useUnitCreditCode"));
param.put("USE_UNIT_NAME", dataMap.get("useUnitName"));
param.put("ADDRESS", dataMap.getOrDefault("address", ""));
param.put("USE_PLACE", usePlace);
param.put("STATUS", "已认领");
param.put("EQU_STATE", 1);
param.put("ORG_BRANCH_CODE", jgVehicleInformation.getOrgBranchCode());
param.put("ORG_BRANCH_NAME", jgVehicleInformation.getOrgBranchName());
param.put("USE_ORG_CODE", jgVehicleInformation.getUseRegistrationCode());
objMap.put((String) dataMap.get("record"), param);
tzsServiceFeignClient.commonUpdateEsDataByIds(objMap);
}
public void buildTask(JgVehicleInformation jgVehicleInformation, WorkflowResultDto workflowResultDto) {
// 代办消息
ArrayList<TaskModelDto> list = new ArrayList<>();
TaskModelDto dto = new TaskModelDto();
dto.setTaskType(String.valueOf(BusinessTypeEnum.JG_VEHICLE_GAS_APPLICATION.getCode()));
dto.setTaskTypeLabel(BusinessTypeEnum.JG_VEHICLE_GAS_APPLICATION.getName());
dto.setFlowCreateDate(jgVehicleInformation.getCreateDate());
dto.setTaskName(workflowResultDto.getNextTaskName());//
dto.setTaskCode(workflowResultDto.getNextTaskCode());
dto.setRelationId(workflowResultDto.getInstanceId());
dto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
dto.setTaskStatus(commonService.getDictionaryCodeByName(WorkFlowStatusEnum.getMessage(workflowResultDto.getNextTaskCode()).getPass()));
dto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
dto.setFlowStatus(commonService.getDictionaryCodeByName(jgVehicleInformation.getStatus()));
dto.setFlowStatusLabel(jgVehicleInformation.getStatus());
dto.setStartUserId(jgVehicleInformation.getCreateUserId());
dto.setStartUser(jgVehicleInformation.getRecUserName());
dto.setStartUserCompanyName(jgVehicleInformation.getUseUnitName());
dto.setStartDate(new Date());
jgVehicleInformation.setInstanceId(workflowResultDto.getInstanceId());
// 设备信息
jgVehicleInformation.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(jgVehicleInformation, taskMessageDto);
dto.setModel(taskMessageDto);
dto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
dto.setTaskContent("来自车用气瓶【" + jgVehicleInformation.getCarNumber() + "】的登记业务办理," + "【申请单号:" + jgVehicleInformation.getApplyNo() + "】");
dto.setFlowCode(jgVehicleInformation.getNextTaskId());
list.add(dto);
commonService.buildTaskModel(list);
}
/**
* 批量删除
*
* @param ids ids
*/
public void deleteBatch(List<Long> ids) {
JgVehicleInformation jgVehicleInformation = new JgVehicleInformation();
jgVehicleInformation.setIsDelete(true);
LambdaQueryWrapper<JgVehicleInformation> lambda = new QueryWrapper<JgVehicleInformation>().lambda();
lambda.in(JgVehicleInformation::getSequenceNbr, ids);
// 删除暂存的待办
ids.forEach(id -> commonService.deleteTaskModel(String.valueOf(id)));
this.update(jgVehicleInformation, lambda);
}
public Page<Map<String, Object>> getPageList(JgVehicleInformationDto dto, Page<Map<String, Object>> page, List<String> roleIds) {
return this.baseMapper.getListPage(page, dto, roleIds);
}
public void updateEquipMessage(JgVehicleInformation jgVehicleInformation, JSONObject map) {
String useOrgCode = jgVehicleInformation.getUseRegistrationCode();
map.remove("status");
map.remove("instanceId");
map.remove("REC_DATE");
IdxBizJgUseInfo useInfo = new IdxBizJgUseInfo();
BeanUtil.copyProperties(map, useInfo);
if (map.containsKey("isXixian")) {
useInfo.setIsNotXiXian(map.get("isXixian") + "");
}
useInfo.setProvince("610000");
useInfo.setProvinceName("陕西省");
LambdaQueryWrapper<IdxBizJgUseInfo> lambda = new QueryWrapper<IdxBizJgUseInfo>().lambda();
lambda.eq(IdxBizJgUseInfo::getRecord, map.get("record"));
// 修改设备使用状态为在用
useInfo.setEquState(String.valueOf(EquimentEnum.ZAIYONG.getCode()));
// 更新使用信息
useInfoMapper.update(useInfo, lambda);
InspectionDetectionInfo inspectionDetectionInfo = new InspectionDetectionInfo();
BeanUtil.copyProperties(map, inspectionDetectionInfo);
LambdaQueryWrapper<InspectionDetectionInfo> inspectionLambda = new QueryWrapper<InspectionDetectionInfo>().lambda();
inspectionLambda.eq(InspectionDetectionInfo::getRecord, map.get("record"));
// 更新检验检测信息
inspectionDetectionInfo.setInspectReport(jgVehicleInformation.getInspectionCertificate());
inspectionDetectionInfo.setInspectOrgName(jgVehicleInformation.getInspectUnitName());
inspectionDetectionInfo.setInspectOrgCode(jgVehicleInformation.getInspectUnitCreditCode());
inspectionDetectionInfo.setNextInspectDate(jgVehicleInformation.getNextInspectionDate());
inspectionDetectionInfoMapper.update(inspectionDetectionInfo, inspectionLambda);
// 更新设备监管部门
IdxBizJgSupervisionInfo idxBizJgSupervisionInfo = new IdxBizJgSupervisionInfo();
if (map.containsKey("orgBranchCode") && !ObjectUtils.isEmpty(map.get("orgBranchCode"))) {
String[] data = String.valueOf(map.getString("orgBranchCode")).split("_");
List<LinkedHashMap> tree = commonService.getCreatTree();
String orgCode = this.recursiveMatching(tree, data[0]);
idxBizJgSupervisionInfo.setOrgBranchCode(orgCode);
idxBizJgSupervisionInfo.setOrgBranchName(data[1]);
idxBizJgSupervisionInfo.setCompanyOrgBranchCode(data[0]);
LambdaQueryWrapper<IdxBizJgSupervisionInfo> eq = new QueryWrapper<IdxBizJgSupervisionInfo>().lambda().eq(IdxBizJgSupervisionInfo::getRecord, map.get("record"));
idxBizJgSupervisionInfoMapper.update(idxBizJgSupervisionInfo, eq);
}
// 更新设备使用登记证
idxBizJgRegisterInfoMapper.updateUseOrgCodeByEquip(String.valueOf(map.get("record")), useOrgCode);
}
/**
* 递归属地监管部门树匹配监管部门
*
* @param tree 监管树
* @param orgBranchCode 监管部门companyCode
* @return 监管部门orgCode
*/
public String recursiveMatching(List<LinkedHashMap> tree, String orgBranchCode) {
if (tree != null) {
for (LinkedHashMap map : tree) {
if (orgBranchCode.equals(map.get("companyCode"))) {
return (String) map.get("orgCode");
}
if (map.containsKey("children") && map.get("children") instanceof List) {
String result = recursiveMatching((List<LinkedHashMap>) map.get("children"), orgBranchCode);
if (!"".equals(result)) {
return result;
}
}
}
}
return "";
}
/**
* 获取类型为ZC的“已注册”的字典值
*
* @return code
*/
private String getRegCode() {
QueryWrapper<DataDictionary> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("type", "ZC");
queryWrapper.eq("name", "已注册");
queryWrapper.eq("is_delete", false);
List<DataDictionary> list = iDataDictionaryService.list(queryWrapper);
if (!list.isEmpty() && list.get(0) != null) {
DataDictionary dictionary = list.get(0);
return Optional.ofNullable(dictionary).map(DataDictionary::getCode).orElse("");
}
return "";
}
/**
* @param vehicleApa 车辆属地
* @return String
* @deprecated 根据车辆属地生成使用登记证
*/
public String getCode(String vehicleApa) {
StringBuilder useRegistration = new StringBuilder("容3T");
if (!ObjectUtils.isEmpty(vehicleApa)) {
ResponseModel<String> stringResponseModel = tzsServiceFeignClient.useRegistrationCode(useRegistration.append(VehicleApanageEnum.of(vehicleApa)) + "");
return stringResponseModel.getResult();
}
return null;
}
/**
* 打印车用气瓶登记证
*
* @param response response
* @param sequenceNbr 主键
* @param printType 打印类型
*/
public void exportVehicleUseRegistrationCertificate(String sequenceNbr, HttpServletResponse response, String printType) {
Map<String, Object> exportParamsMap = new HashMap<>();
JgVehicleInformation vehicleInformation = this.getById(sequenceNbr);
if (Stream.of(vehicleInformation)
.map(JgVehicleInformation::getReceiveOrgName)
.anyMatch(Objects::isNull) ||
Stream.of(vehicleInformation.getUseRegistrationCode(),
vehicleInformation.getUseUnitName(),
vehicleInformation.getUseUnitAddress())
.anyMatch(Objects::isNull)) {
throw new BadRequest("使用登记证导出失败,请稍后重试或检查数据完整性!");
}
exportParamsMap.put("receiveOrgName", vehicleInformation.getReceiveOrgName());
exportParamsMap.put("useRegistrationCode", vehicleInformation.getUseRegistrationCode());
exportParamsMap.put("useUnitName", vehicleInformation.getUseUnitName());
exportParamsMap.put("fullAddress", vehicleInformation.getUseUnitAddress());
exportParamsMap.put("equDefineCode", "23T0");
getAuditPassedDate(vehicleInformation.getAuditPassDate(), exportParamsMap);
List<JgVehicleInformationEq> vehicleInformationEqList = jgVehicleInformationEqMapper.selectList(new QueryWrapper<JgVehicleInformationEq>().lambda().eq(JgVehicleInformationEq::getVehicleId, sequenceNbr));
if (vehicleInformationEqList.isEmpty()) {
throw new BadRequest("使用登记证导出失败,请稍后重试或检查数据完整性!");
}
IdxBizJgRegisterInfo registerInfo = idxBizJgRegisterInfoService.getOne(new QueryWrapper<IdxBizJgRegisterInfo>().eq("RECORD", vehicleInformationEqList.get(0).getEquId()));
if (registerInfo != null) {
populateEquipmentInformation(registerInfo, exportParamsMap);
}
IdxBizJgUseInfo useInfo = idxBizJgUseInfoService.getOneData(vehicleInformationEqList.get(0).getEquId());
if (useInfo != null && useInfo.getUseInnerCode() != null) {
exportParamsMap.put("useInnerCode", useInfo.getUseInnerCode());
}
List<IdxBizJgFactoryInfo> factoryInfoList = idxBizJgFactoryInfoMapper.selectList(new QueryWrapper<IdxBizJgFactoryInfo>().in("RECORD", vehicleInformationEqList.stream()
.map(JgVehicleInformationEq::getEquId)
.filter(Objects::nonNull)
.collect(Collectors.toList())));
if (!ValidationUtil.isEmpty(factoryInfoList)) {
exportParamsMap.put("factoryNum", factoryInfoList.stream()
.map(IdxBizJgFactoryInfo::getFactoryNum)
.filter(Objects::nonNull)
.collect(Collectors.joining(", ")));
}
exportParamsMap.put("applyNo", vehicleInformation.getApplyNo());
this.generateReport(vehicleInformation, printType, exportParamsMap, response);
}
private void generateReport(JgVehicleInformation vehicleInformation, String printType, Map<String, Object> exportParamsMap, HttpServletResponse response) {
switch (printType) {
case "0":
commonService.generateCertificateReport(exportParamsMap, response);
break;
case "1":
commonService.generatePdfPrint(exportParamsMap, response);
break;
case "2":
commonService.useFlagGenerate(buildUseFlagParam(vehicleInformation, exportParamsMap), response);
break;
case "3":
commonService.fightUseFlagGenerate(buildUseFlagParam(vehicleInformation, exportParamsMap), response);
break;
default:
throw new BadRequest("Invalid print type");
}
}
private void populateEquipmentInformation(IdxBizJgRegisterInfo registerInfo, Map<String, Object> exportParamsMap) {
String equList = registerInfo.getEquList();
String equCategory = registerInfo.getEquCategory();
String equDefine = registerInfo.getEquDefine();
List<EquipmentCategory> categoryList0 = commonService.getEquipmentCategoryList(equList, null);
List<EquipmentCategory> categoryList1 = commonService.getEquipmentCategoryList(equCategory, null);
List<EquipmentCategory> categoryList2 = commonService.getEquipmentCategoryList(equDefine, null);
if (notEmptyAndHasName(categoryList0)) {
exportParamsMap.put("equList", categoryList0.get(0).getName());
}
if (notEmptyAndHasName(categoryList1)) {
exportParamsMap.put("equCategory", categoryList1.get(0).getName());
}
if (notEmptyAndHasName(categoryList2)) {
exportParamsMap.put("equDefine", categoryList2.get(0).getName());
}
if (registerInfo.getEquCode() == null) {
throw new BadRequest("使用登记证导出失败,设备代码为空!");
}
exportParamsMap.put("equCode", registerInfo.getEquCode());
exportParamsMap.put("equListCode", equList);
}
private boolean notEmptyAndHasName(List<EquipmentCategory> categoryList) {
return !categoryList.isEmpty() && categoryList.get(0).getName() != null;
}
private UseFlagParamDto buildUseFlagParam(JgVehicleInformation vehicleInformation, Map<String, Object> exportParamsMap) {
UseFlagParamDto useFlagParamDto = new UseFlagParamDto();
useFlagParamDto.setEquList(exportParamsMap.get("equList") + "");
useFlagParamDto.setEquListCode("0000");
useFlagParamDto.setEquipCode(exportParamsMap.get("equCode") + "");
useFlagParamDto.setEquipDefine(exportParamsMap.get("equDefine") == null ? "" : exportParamsMap.get("equDefine") + "");
useFlagParamDto.setEquipCategory(exportParamsMap.get("equCategory") + "");
useFlagParamDto.setUseUnitName(exportParamsMap.get("useUnitName") + "");
useFlagParamDto.setUseInnerCode(exportParamsMap.get("useInnerCode") + "");
useFlagParamDto.setReceiveOrgName(vehicleInformation.getReceiveOrgName());
useFlagParamDto.setReceiveCompanyCode(vehicleInformation.getReceiveCompanyCode());
useFlagParamDto.setNextInspectionDate(vehicleInformation.getNextInspectionDate());
useFlagParamDto.setUseRegistrationCode(exportParamsMap.get("useRegistrationCode") + "");
useFlagParamDto.setCarNumber(vehicleInformation.getCarNumber());
useFlagParamDto.setFactoryNumber(exportParamsMap.get("factoryNum") + "");
useFlagParamDto.setCylinderNumOrVolume(vehicleInformation.getGasNum() + "/" + vehicleInformation.getVolume());
useFlagParamDto.setFillingMedium(Systemctl.dictionarieClient.value("FILLING_MEDIUM", vehicleInformation.getFillingMedium()).getResult().getDictDataValue());
useFlagParamDto.setApplyNo(vehicleInformation.getApplyNo());
useFlagParamDto.setInspectionUnitName(vehicleInformation.getInspectUnitName());
return useFlagParamDto;
}
}
\ No newline at end of file
...@@ -268,5 +268,23 @@ ...@@ -268,5 +268,23 @@
"pageType": "edit", "pageType": "edit",
"name": "报废注销", "name": "报废注销",
"url": "/mixuap?appId=1742358052905971713&id=1737357871097606146&roleIds={roleIds}&userId={userId}&pageType=edit" "url": "/mixuap?appId=1742358052905971713&id=1737357871097606146&roleIds={roleIds}&userId={userId}&pageType=edit"
},
{
"type": "118",
"pageType": "draft",
"name": "车用气瓶登记",
"url": "/mixuap?appId=1742358052905971713&id=1770004458848153602&roleIds={roleIds}&userId={userId}&pageType=edit"
},
{
"type": "118",
"pageType": "edit",
"name": "车用气瓶登记",
"url": "/mixuap?appId=1742358052905971713&id=1770004458848153602&roleIds={roleIds}&userId={userId}&pageType=edit"
},
{
"type": "118",
"pageType": "look",
"name": "车用气瓶登记",
"url": "/mixuap?appId=1742358052905971713&id=1770004751216308226&roleIds={roleIds}&userId={userId}&pageType=look"
} }
] ]
\ No newline at end of file
...@@ -700,11 +700,7 @@ ...@@ -700,11 +700,7 @@
<w:sz-cs w:val="24"/> <w:sz-cs w:val="24"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/> <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr> </w:rPr>
<#if equDefineCode?? && equDefineCode == '23T0'>
<w:t>${(useUnitAddress)!''}</w:t>
<#else>
<w:t>${(fullAddress)!''}</w:t> <w:t>${(fullAddress)!''}</w:t>
</#if>
</w:r> </w:r>
</w:p> </w:p>
</w:txbxContent> </w:txbxContent>
...@@ -1024,7 +1020,7 @@ ...@@ -1024,7 +1020,7 @@
<w:sz-cs w:val="36"/> <w:sz-cs w:val="36"/>
<w:lang w:val="EN-US" w:fareast="EN-US" w:bidi="AR-SA"/> <w:lang w:val="EN-US" w:fareast="EN-US" w:bidi="AR-SA"/>
</w:rPr> </w:rPr>
<#if equDefineCode?? && equDefineCode == '23T0'> <#if equDefineCode?? && equDefineCode == '23T0' || equDefineCode == '2200'>
<w:t>使用单位地址:</w:t> <w:t>使用单位地址:</w:t>
<#else> <#else>
<w:t>设备使用地点:</w:t> <w:t>设备使用地点:</w:t>
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