Commit ac9e5fbd authored by yangyang's avatar yangyang

feat(改造告知):1.调整接口

parent c95e7480
package com.yeejoin.amos.boot.module.jg.api.dto; package com.yeejoin.amos.boot.module.jg.api.dto;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto; import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springframework.util.StringUtils;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map;
/** /**
* 改造告知 * 改造告知
...@@ -14,122 +20,154 @@ import java.util.Date; ...@@ -14,122 +20,154 @@ import java.util.Date;
* @date 2023-12-19 * @date 2023-12-19
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode (callSuper = true)
@ApiModel(value="JgReformNoticeDto", description="改造告知") @ApiModel (value = "JgReformNoticeDto", description = "改造告知")
public class JgReformNoticeDto extends BaseDto { public class JgReformNoticeDto extends BaseDto {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "申请编号") @ApiModelProperty (value = "申请编号")
private String applyNo; private String applyNo;
@ApiModelProperty(value = "告知日期") @ApiModelProperty (value = "告知日期")
private Date noticeDate; private Date noticeDate;
@ApiModelProperty(value = "告知状态") @ApiModelProperty (value = "告知状态")
private String noticeStatus; private String noticeStatus;
@ApiModelProperty(value = "施工单位统一信用代码") @ApiModelProperty(value = "告知状态描述")
private String noticeStatusDesc;
@ApiModelProperty (value = "施工单位统一信用代码")
private String installUnitCreditCode; private String installUnitCreditCode;
@ApiModelProperty(value = "施工单位名称") @ApiModelProperty (value = "施工单位名称")
private String installUnitName; private String installUnitName;
@ApiModelProperty(value = "设备数量") @ApiModelProperty (value = "设备数量")
private Integer equipNum; private Integer equipNum;
@ApiModelProperty(value = "流程实例id") @ApiModelProperty (value = "流程实例id")
private String instanceId; private String instanceId;
@ApiModelProperty(value = "下步执行角色/人id") @ApiModelProperty (value = "下步执行角色/人id")
private String nextExecutorId; private String nextExecutorId;
@ApiModelProperty(value = "流程执行顺序标识") @ApiModelProperty (value = "流程执行顺序标识")
private String executeSequence; private String executeSequence;
@ApiModelProperty(value = "创建时间") @ApiModelProperty (value = "创建时间")
private Date createDate; private Date createDate;
@ApiModelProperty(value = "创建人id ") @ApiModelProperty (value = "创建人id ")
private String createUserId; private String createUserId;
@ApiModelProperty(value = "创建人") @ApiModelProperty (value = "创建人")
private String createUserName; private String createUserName;
@ApiModelProperty(value = "备注") @ApiModelProperty (value = "备注")
private String remark; private String remark;
@ApiModelProperty(value = "流程状态") @ApiModelProperty (value = "流程状态")
private String instanceStatus; private String instanceStatus;
@ApiModelProperty(value = "受理完成日期") @ApiModelProperty (value = "受理完成日期")
private Date acceptDate; private Date acceptDate;
@ApiModelProperty(value = "施工区域-省") @ApiModelProperty (value = "施工区域-省")
private String province; private String province;
@ApiModelProperty(value = "施工区域-市") @ApiModelProperty (value = "施工区域-市")
private String city; private String city;
@ApiModelProperty(value = "施工区域-区/县") @ApiModelProperty (value = "施工区域-区/县")
private String county; private String county;
@ApiModelProperty(value = "施工区域-街道(镇)") @ApiModelProperty (value = "施工区域-街道(镇)")
private String street; private String street;
@ApiModelProperty(value = "施工设备详细地址") @ApiModelProperty (value = "施工设备详细地址")
private String address; private String address;
@ApiModelProperty(value = "计划施工日期") @ApiModelProperty (value = "计划施工日期")
private Date planDate; private Date planDate;
@ApiModelProperty(value = "接收机构单位代码") @ApiModelProperty (value = "接收机构单位代码")
private String receiveCompanyCode; private String receiveCompanyCode;
@ApiModelProperty(value = "接收机构") @ApiModelProperty (value = "接收机构")
private String receiveOrgName; private String receiveOrgName;
@ApiModelProperty(value = "施工负责人") @ApiModelProperty (value = "施工负责人")
private String constructionManager; private String constructionManager;
@ApiModelProperty(value = "施工负责人id") @ApiModelProperty (value = "施工负责人id")
private String constructionManagerId; private String constructionManagerId;
@ApiModelProperty(value = "施工负责人手机") @ApiModelProperty (value = "施工负责人手机")
private String constructionManagerPhone; private String constructionManagerPhone;
@ApiModelProperty(value = "检验单位统一信用代码") @ApiModelProperty (value = "检验单位统一信用代码")
private String inspectionUnitCreditCode; private String inspectionUnitCreditCode;
@ApiModelProperty(value = "检验单位名称") @ApiModelProperty (value = "检验单位名称")
private String inspectionUnitName; private String inspectionUnitName;
@ApiModelProperty(value = "委托单位统一信用代码") @ApiModelProperty (value = "委托单位统一信用代码")
private String entrustingUnitCreditCode; private String entrustingUnitCreditCode;
@ApiModelProperty(value = "委托单位名称") @ApiModelProperty (value = "委托单位名称")
private String entrustingUnitName; private String entrustingUnitName;
@ApiModelProperty(value = "委托书附件") @ApiModelProperty (value = "委托书附件")
private String powerOfAttorney; private JSONObject powerOfAttorney;
@ApiModelProperty(value = "施工合同附件") @ApiModelProperty (value = "施工合同附件")
private String constructionContract; private JSONObject constructionContract;
@ApiModelProperty(value = "施工合同是否本单位与甲方直接签署") @ApiModelProperty (value = "施工合同是否本单位与甲方直接签署")
private String isSignedWithA; private String isSignedWithA;
@ApiModelProperty(value = "使用单位统一信用代码") @ApiModelProperty (value = "使用单位统一信用代码")
private String useUnitCreditCode; private String useUnitCreditCode;
@ApiModelProperty(value = "使用单位名称") @ApiModelProperty (value = "使用单位名称")
private String useUnitName; private String useUnitName;
@ApiModelProperty(value = "是否已报检") @ApiModelProperty (value = "是否已报检")
private String isInspected; private String isInspected;
@ApiModelProperty(value = "接收机构机构代码") @ApiModelProperty (value = "接收机构机构代码")
private String receiveOrgCode; private String receiveOrgCode;
@ApiModelProperty (value = "是否西咸")
private String isXixian;
/* ---------------- -------------- */
@TableField (exist = false)
@ApiModelProperty (value = "告知设备列表")
private List<Map<String, Object>> deviceList;
//
// @ApiModelProperty (value = "告知单PDF URL")
// private String noticeReportUrl;
@ApiModelProperty (value = "区名字")
private String countyName;
@ApiModelProperty (value = "市名字")
private String cityName;
@ApiModelProperty (value = "省名字")
private String provinceName;
public String getFullAddress() {
return (StringUtils.isEmpty(this.provinceName) ? "" : this.provinceName)
+ (StringUtils.isEmpty(this.cityName) ? "" : this.cityName)
+ (StringUtils.isEmpty(this.countyName) ? "" : this.countyName)
+ (StringUtils.isEmpty(this.address) ? "" : this.address);
}
//
// @ApiModelProperty (value = "设备注册代码")
// private String equRegisterCode;
} }
package com.yeejoin.amos.boot.module.jg.api.entity; package com.yeejoin.amos.boot.module.jg.api.entity;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
...@@ -17,7 +20,7 @@ import java.util.Date; ...@@ -17,7 +20,7 @@ import java.util.Date;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)
@TableName("tzs_jg_reform_notice") @TableName(value = "tzs_jg_reform_notice", autoResultMap = true)
public class JgReformNotice extends BaseEntity { public class JgReformNotice extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -205,14 +208,14 @@ public class JgReformNotice extends BaseEntity { ...@@ -205,14 +208,14 @@ public class JgReformNotice extends BaseEntity {
/** /**
* 委托书附件 * 委托书附件
*/ */
@TableField("power_of_attorney") @TableField(value = "power_of_attorney", typeHandler = FastjsonTypeHandler.class)
private String powerOfAttorney; private JSONObject powerOfAttorney;
/** /**
* 施工合同附件 * 施工合同附件
*/ */
@TableField("construction_contract") @TableField(value = "construction_contract", typeHandler = FastjsonTypeHandler.class)
private String constructionContract; private JSONObject constructionContract;
/** /**
* 施工合同是否本单位与甲方直接签署 * 施工合同是否本单位与甲方直接签署
...@@ -244,4 +247,19 @@ public class JgReformNotice extends BaseEntity { ...@@ -244,4 +247,19 @@ public class JgReformNotice extends BaseEntity {
@TableField("receive_org_code") @TableField("receive_org_code")
private String receiveOrgCode; private String receiveOrgCode;
@TableField("county_name")
private String countyName;
@TableField("city_name")
private String cityName;
@TableField("province_name")
private String provinceName;
/**
* 是否西咸
*/
@TableField("is_xixian")
private String isXixian;
} }
...@@ -9,6 +9,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -9,6 +9,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author system_generator * @author system_generator
* @date 2023-12-19 * @date 2023-12-19
*/ */
public interface JgReformNoticeEqMapper extends BaseMapper<JgReformNoticeEq> { public interface JgReformNoticeEqMapper extends CustomBaseMapper<JgReformNoticeEq> {
} }
package com.yeejoin.amos.boot.module.jg.api.mapper; package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.JgReformNoticeDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgReformNotice; import com.yeejoin.amos.boot.module.jg.api.entity.JgReformNotice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/** /**
* 改造告知 Mapper 接口 * 改造告知 Mapper 接口
...@@ -9,6 +15,22 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -9,6 +15,22 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author system_generator * @author system_generator
* @date 2023-12-19 * @date 2023-12-19
*/ */
public interface JgReformNoticeMapper extends BaseMapper<JgReformNotice> { public interface JgReformNoticeMapper extends CustomBaseMapper<JgReformNotice> {
/**
* 分页查询
*
* @param page 分页对象
* @param model 查询参数
* @param type 类型:enterprise-企业端、supervision-监管端
* @return 改造告知列表
*/
Page<JgReformNotice> queryForPage(Page<JgReformNotice> page, @Param ("param") JgReformNoticeDto model, @Param("type") String type, @Param("orgCode") String orgCode);
/**
* 根据改造告知编号查询设备、设计、制造等信息
*
* @param sequenceNbr 改造告知编号
*/
@MapKey ("sequenceNbr")
List<Map<String, Object>> queryEquipInformation(@Param("sequenceNbr") long sequenceNbr);
} }
package com.yeejoin.amos.boot.module.jg.api.service; package com.yeejoin.amos.boot.module.jg.api.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.module.jg.api.dto.JgReformNoticeDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgReformNotice;
import java.util.Map;
/** /**
* 改造告知接口类 * 改造告知接口类
* *
* @author system_generator * @author system_generator
* @date 2023-12-19 * @date 2023-12-19
*/ */
public interface IJgReformNoticeService { public interface IJgReformNoticeService extends IService<JgReformNotice> {
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return 改造告知
*/
Map<String, Map<String, Object>> queryBySequenceNbr(Long sequenceNbr);
/**
* 更新改造告知
*
* @param noticeDto 改造告知
* @param op 操作类型
*/
JgReformNoticeDto updateInstallationNotice(String submitType, JgReformNoticeDto noticeDto, String op);
/**
* 分页查询
*
* @param page 分页对象
* @param model 查询参数
* @param type 类型:enterprise-企业端、supervision-监管端
* @return 改造告知列表
*/
Page<JgReformNoticeDto> queryForJgReformNoticePage(Page<JgReformNotice> page, JgReformNoticeDto model, String type, ReginParams reginParams);
/**
* 批量删除
*
* @param sequenceNbrs 主键
* @return 是否删除成功
*/
Boolean deleteForBatch(Long[] sequenceNbrs);
/**
* 保存改造告知单
*
* @param model 数据
* @param submitType 保存类型
*/
void saveNotice(String submitType, Map<String, JgReformNoticeDto> model, ReginParams reginParams);
/**
* 打印告知单
*
* @param sequenceNbr 主键
* @return pdf文件路径
*/
String generateInstallationNoticeReport(Long sequenceNbr);
} }
...@@ -2,4 +2,106 @@ ...@@ -2,4 +2,106 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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.JgReformNoticeMapper"> <mapper namespace="com.yeejoin.amos.boot.module.jg.api.mapper.JgReformNoticeMapper">
<select id="queryForPage" resultType="com.yeejoin.amos.boot.module.jg.api.entity.JgReformNotice">
select
isn.sequence_nbr AS sequenceNbr,
isn.apply_no AS applyNo,
isn.notice_date AS noticeDate,
isn.use_unit_name AS useUnitName,
isn.receive_org_name AS receiveOrgName,
isn.address AS address,
isn.notice_status AS noticeStatus,
isn.install_unit_name AS installUnitName,
isn.province_name AS provinceName,
isn.city_name AS cityName,
isn.county_name AS countyName,
isn.instance_id AS instanceId
FROM
tzs_jg_reform_notice isn
<where>
isn.is_delete = false
<if test="param != null ">
<if test="param.applyNo != null and param.applyNo != ''">
AND isn.apply_no LIKE CONCAT('%', #{param.applyNo}, '%')
</if>
<if test="param.receiveOrgName != null and param.receiveOrgName != ''">
AND isn.receive_org_name LIKE CONCAT('%', #{param.receiveOrgName}, '%')
</if>
<if test="param.useUnitName != null and param.useUnitName != ''">
AND isn.use_unit_name LIKE CONCAT('%', #{param.useUnitName}, '%')
</if>
<if test="param.installUnitName != null and param.installUnitName != ''">
AND isn.install_unit_name LIKE CONCAT('%', #{param.installUnitName}, '%')
</if>
<if test="param.noticeStatus != null and param.noticeStatus != ''">
AND isn.notice_status = #{param.noticeStatus}
</if>
</if>
<if test="type == 'supervision'">
AND (isn.notice_status in ('6612', '6613', '6614') or isn.status in('6614') )
</if>
<if test="orgCode != null and orgCode != ''">
AND isn.install_unit_credit_code = #{orgCode}
</if>
</where>
ORDER BY
isn.notice_date DESC
</select>
<select id="queryEquipInformation" resultType="java.util.Map">
select
isn.sequence_nbr AS sequenceNbr,
isn.install_unit_name AS installUnitName,
isn.apply_no AS applyNo,
isn.province_name AS provinceName,
isn.city_name AS cityName,
isn.county_name AS countyName,
isn.address AS address,
isn.use_unit_name AS useUnitName,
ri.equ_list AS equList,
ri.equ_category AS equCategory,
ri.EQU_DEFINE AS equDefine,
ri.product_name AS productName,
ri.brand_name AS brandName,
ri.equ_type AS equType,
ri.equ_price AS equPrice,
ri.product_photo AS productPhoto,
di.design_unit_credit_code AS designUnitCreditCode,
di.design_unit_name AS designUnitName,
di.design_license_num AS designLicenseNum,
di.design_use_date AS designUseDate,
di.design_date AS designDate,
di.drawing_do AS drawingDo,
di.appraisal_unit AS appraisalUnit,
di.appraisal_date AS appraisalDate,
di.design_doc AS designDoc,
di.design_standard AS designStandard,
fi.produce_unit_credit_code AS produceUnitCreditCode,
fi.produce_unit_name AS produceUnitName,
fi.produce_license_num AS produceLicenseNum,
fi.factory_num AS factoryNum,
fi.produce_date AS produceDate,
fi.imported AS imported,
fi.produce_country AS produceCountry,
fi.factory_standard AS factoryStandard,
fi.product_quality_yield_prove AS productQualityYieldProve,
fi.ins_use_maintain_explain AS insUseMaintainExplain,
ui.safety_manager AS safetyManager,
ui.phone AS safetyManagerPhone,
ui.PROVINCE_NAME AS useUnitProvinceName,
ui.CITY_NAME AS useUnitCityName,
ui.COUNTY_NAME AS useUnitCountyName,
ui.ADDRESS AS useUnitAddress
FROM
tzs_jg_reform_notice isn
LEFT JOIN tzs_jg_reform_notice_eq re ON re.equip_transfer_id = isn.sequence_nbr
LEFT JOIN idx_biz_jg_register_info ri ON ri.record = re.equ_id
LEFT JOIN idx_biz_jg_design_info di ON di.record = re.equ_id
LEFT JOIN idx_biz_jg_factory_info fi ON fi.record = re.equ_id
LEFT JOIN idx_biz_jg_inspection_detection_info idi ON idi.record = re.equ_id
LEFT JOIN idx_biz_jg_use_info ui ON ui.record = re.equ_id
WHERE
isn.sequence_nbr = #{sequenceNbr}
LIMIT 1
</select>
</mapper> </mapper>
package com.yeejoin.amos.boot.module.jg.biz.controller;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.yeejoin.amos.boot.module.jg.api.dto.JgReformNoticeDto;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgReformNoticeServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
/**
* 改造告知
*
* @author system_generator
* @date 2023-12-12
*/
@RestController
@Api(tags = "改造告知工作流相关Api")
@RequestMapping(value = "/jg-reform-workflow")
public class JgReformByWorkFlowController {
@Autowired
JgReformNoticeServiceImpl jgReformNoticeService;
/**
* 提交
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/submit")
@ApiOperation(httpMethod = "POST", value = "改造告知提交", notes = "改造告知提交")
public ResponseModel<JgReformNoticeDto> submit(@RequestBody JgReformNoticeDto model, String op) {
// TODO 发起改造告知流程
// jgReformNoticeService.submit(model, op);
return ResponseHelper.buildResponse(model);
}
/**
* 撤销
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/cancel")
@ApiOperation(httpMethod = "POST", value = "改造告知撤销", notes = "改造告知撤销")
public ResponseModel<JgReformNoticeDto> cancel(@RequestBody Map<String, Object> model) {
JgReformNoticeDto installationInfo = BeanUtil.mapToBean(((LinkedHashMap) model.get("installationInfo")), JgReformNoticeDto.class, true);
if (Objects.isNull(installationInfo)) {
throw new IllegalArgumentException("参数installationInfo不能为空");
}
jgReformNoticeService.cancel(installationInfo);
return ResponseHelper.buildResponse(installationInfo);
}
/**
* 受理
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/accept")
@ApiOperation(httpMethod = "POST", value = "改造告知受理", notes = "改造告知受理")
public ResponseModel<JgReformNoticeDto> accept(@RequestBody Map<String, Object> model, String op) {
// TODO 受理改造告知流程
LinkedHashMap model1 = (LinkedHashMap)model.get("model");
LinkedHashMap installationInfo = (LinkedHashMap)model1.get("installationInfo");
JgReformNoticeDto JgReformNoticeDto = JSON.parseObject(JSON.toJSONString(installationInfo), JgReformNoticeDto.class);
jgReformNoticeService.accept(JgReformNoticeDto,op);
return ResponseHelper.buildResponse(null);
}
}
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