shiyunteng
2025-03-25 62f0eb6e3296fa3ef589e48bca06198ed26f9893
设备技术协议
8个文件已添加
385 ■■■■■ 已修改文件
platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/DeviceTechnicalAgreemntQueryDTO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceTechnicalAgreemnt.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DeviceTechnicalAgreementPageVo.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceTechnicalAgreementController.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceTechnicalAgreementMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceTechnicalAgreementService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceTechnicalAgreementServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/resources/mapper/DeviceTechnicalAgreementMapper.xml 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/DeviceTechnicalAgreemntQueryDTO.java
New file
@@ -0,0 +1,11 @@
package com.by4cloud.platformx.device.dto;
import lombok.Data;
@Data
public class DeviceTechnicalAgreemntQueryDTO {
    private String contractName;
    private String deviceName;
}
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceTechnicalAgreemnt.java
New file
@@ -0,0 +1,121 @@
package com.by4cloud.platformx.device.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.by4cloud.platformx.common.data.mybatis.BaseModel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.annotations.Table;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column;
import javax.persistence.Entity;
import java.util.Date;
@Data
@Entity
@TableName("device_technical_agreement")
@javax.persistence.Table(name = "device_technical_agreement")
@Table(appliesTo = "device_technical_agreement", comment = "设备技术协议")
public class DeviceTechnicalAgreemnt extends BaseModel<DeviceTechnicalAgreemnt> {
    /**
     * 甲方
     */
    @Schema(description = "甲方")
    @Column(columnDefinition="VARCHAR(64) comment '甲方'")
    private String partya;
    /**
     * 乙方
     */
    @Schema(description = "乙方")
    @Column(columnDefinition="VARCHAR(64) comment '乙方'")
    private String partyb;
    /**
     * 三方
     */
    @Schema(description = "三方")
    @Column(columnDefinition="VARCHAR(64) comment '三方'")
    private String partyc;
    /**
     * 关联设备
     */
    @Schema(description = "关联设备")
    @Column(columnDefinition="long comment '关联设备'")
    private Long deviceId;
    /**
     * 设备编码
     */
    @Schema(description="设备编码")
    @Column(columnDefinition="VARCHAR(256) comment '设备编码'")
    private String deviceCode;
    /**
     * 设备名称
     */
    @Schema(description="设备名称")
    @Column(columnDefinition="VARCHAR(256) comment '设备名称'")
    private String deviceName;
    /**
     * 规格型号
     */
    @Schema(description="规格型号")
    @Column(columnDefinition="VARCHAR(256) comment '规格型号'")
    private String deviceModels;
    /**
     * 关键参数
     */
    @Schema(description="关键参数")
    @Column(columnDefinition="VARCHAR(256) comment '关键参数'")
    private String keyParameter;
    /**
     * 到货月份
     */
    @Schema(description="到货月份")
    @Column(columnDefinition="Integer comment '到货月份'")
    private Integer arrivalMonth;
    /**
     * 数量
     */
    @Schema(description="数量")
    @Column(columnDefinition="Integer comment '数量'")
    private Integer quantity;
    /**
     * 单位
     */
    @Schema(description="单位")
    @Column(columnDefinition="VARCHAR(256) comment '单位'")
    private String unit;
    /**
     * 条款内容
     */
    @Schema(description="条款内容")
    @Column(columnDefinition="TEXT comment '条款内容'")
    private String termContent;
    /**
     * 签订日期
     */
    @Schema(description="签订日期")
    @Column(columnDefinition="datetime comment '签订日期'")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date signDate;
    /**
     * 关联合同
     */
    @Schema(description="关联合同")
    @Column(columnDefinition="long comment '关联合同'")
    private Long contractId;
}
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DeviceTechnicalAgreementPageVo.java
New file
@@ -0,0 +1,28 @@
package com.by4cloud.platformx.device.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class DeviceTechnicalAgreementPageVo {
    private Long id;
    private String contractName;
    private String partya;
    private String partyb;
    private String partyc;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date signDate;
    private String deviceName;
    private String deviceCode;
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceTechnicalAgreementController.java
New file
@@ -0,0 +1,120 @@
package com.by4cloud.platformx.device.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.by4cloud.platformx.common.core.util.R;
import com.by4cloud.platformx.common.log.annotation.SysLog;
import com.by4cloud.platformx.device.dto.DeviceTechnicalAgreemntQueryDTO;
import com.by4cloud.platformx.device.entity.DeviceTechnicalAgreemnt;
import com.by4cloud.platformx.device.service.DeviceTechnicalAgreementService;
import org.springframework.security.access.prepost.PreAuthorize;
import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import org.springdoc.api.annotations.ParameterObject;
import org.springframework.http.HttpHeaders;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
 * 设备技术协议
 *
 * @author syt
 * @date 2025-03-25 15:48:53
 */
@RestController
@RequiredArgsConstructor
@RequestMapping("/deviceTechnicalAgreement" )
@Tag(description = "deviceTechnicalAgreement" , name = "设备技术协议管理" )
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class DeviceTechnicalAgreementController {
    private final  DeviceTechnicalAgreementService deviceTechnicalAgreementService;
    /**
     * 分页查询
     * @param page 分页对象
     * @param queryDTO 设备技术协议
     * @return
     */
    @Operation(summary = "分页查询" , description = "分页查询" )
    @GetMapping("/page" )
    @PreAuthorize("@pms.hasPermission('device_deviceTechnicalAgreement_view')" )
    public R getDeviceTechnicalAgreementPage(@ParameterObject Page page, @ParameterObject DeviceTechnicalAgreemntQueryDTO queryDTO) {
        return R.ok(deviceTechnicalAgreementService.pageNew(page, queryDTO));
    }
    /**
     * 通过id查询设备技术协议
     * @param id id
     * @return R
     */
    @Operation(summary = "通过id查询" , description = "通过id查询" )
    @GetMapping("/{id}" )
    @PreAuthorize("@pms.hasPermission('device_deviceTechnicalAgreement_view')" )
    public R getById(@PathVariable("id" ) Long id) {
        return R.ok(deviceTechnicalAgreementService.getById(id));
    }
    /**
     * 新增设备技术协议
     * @param deviceTechnicalAgreement 设备技术协议
     * @return R
     */
    @Operation(summary = "新增设备技术协议" , description = "新增设备技术协议" )
    @SysLog("新增设备技术协议" )
    @PostMapping
    @PreAuthorize("@pms.hasPermission('device_deviceTechnicalAgreement_add')" )
    public R save(@RequestBody DeviceTechnicalAgreemnt deviceTechnicalAgreement) {
        return R.ok(deviceTechnicalAgreementService.save(deviceTechnicalAgreement));
    }
    /**
     * 修改设备技术协议
     * @param deviceTechnicalAgreement 设备技术协议
     * @return R
     */
    @Operation(summary = "修改设备技术协议" , description = "修改设备技术协议" )
    @SysLog("修改设备技术协议" )
    @PutMapping
    @PreAuthorize("@pms.hasPermission('device_deviceTechnicalAgreement_edit')" )
    public R updateById(@RequestBody DeviceTechnicalAgreemnt deviceTechnicalAgreement) {
        return R.ok(deviceTechnicalAgreementService.updateById(deviceTechnicalAgreement));
    }
    /**
     * 通过id删除设备技术协议
     * @param ids id列表
     * @return R
     */
    @Operation(summary = "通过id删除设备技术协议" , description = "通过id删除设备技术协议" )
    @SysLog("通过id删除设备技术协议" )
    @DeleteMapping
    @PreAuthorize("@pms.hasPermission('device_deviceTechnicalAgreement_del')" )
    public R removeById(@RequestBody Long[] ids) {
        return R.ok(deviceTechnicalAgreementService.removeBatchByIds(CollUtil.toList(ids)));
    }
    /**
     * 导出excel 表格
     * @param deviceTechnicalAgreement 查询条件
        * @param ids 导出指定ID
     * @return excel 文件流
     */
    @ResponseExcel
    @GetMapping("/export")
    @PreAuthorize("@pms.hasPermission('device_deviceTechnicalAgreement_export')" )
    public List<DeviceTechnicalAgreemnt> export(DeviceTechnicalAgreemnt deviceTechnicalAgreement,Long[] ids) {
        return deviceTechnicalAgreementService.list(Wrappers.lambdaQuery(deviceTechnicalAgreement).in(ArrayUtil.isNotEmpty(ids), DeviceTechnicalAgreemnt::getId, ids));
    }
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceTechnicalAgreementMapper.java
New file
@@ -0,0 +1,17 @@
package com.by4cloud.platformx.device.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
import com.by4cloud.platformx.device.dto.DeviceTechnicalAgreemntQueryDTO;
import com.by4cloud.platformx.device.entity.DeviceTechnicalAgreemnt;
import com.by4cloud.platformx.device.entity.vo.DeviceTechnicalAgreementPageVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface DeviceTechnicalAgreementMapper extends PlatformxBaseMapper<DeviceTechnicalAgreemnt> {
    IPage<DeviceTechnicalAgreementPageVo> page(Page page, @Param("queryDTO") DeviceTechnicalAgreemntQueryDTO queryDTO);
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceTechnicalAgreementService.java
New file
@@ -0,0 +1,12 @@
package com.by4cloud.platformx.device.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.by4cloud.platformx.device.dto.DeviceTechnicalAgreemntQueryDTO;
import com.by4cloud.platformx.device.entity.DeviceTechnicalAgreemnt;
public interface DeviceTechnicalAgreementService extends IService<DeviceTechnicalAgreemnt> {
    IPage pageNew(Page page, DeviceTechnicalAgreemntQueryDTO queryDTO);
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceTechnicalAgreementServiceImpl.java
New file
@@ -0,0 +1,23 @@
package com.by4cloud.platformx.device.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.by4cloud.platformx.device.dto.DeviceTechnicalAgreemntQueryDTO;
import com.by4cloud.platformx.device.entity.DeviceTechnicalAgreemnt;
import com.by4cloud.platformx.device.mapper.DeviceTechnicalAgreementMapper;
import com.by4cloud.platformx.device.service.DeviceTechnicalAgreementService;
import org.springframework.stereotype.Service;
/**
 * 设备技术协议
 *
 * @author syt
 * @date 2025-03-25 15:48:53
 */
@Service
public class DeviceTechnicalAgreementServiceImpl extends ServiceImpl<DeviceTechnicalAgreementMapper, DeviceTechnicalAgreemnt> implements DeviceTechnicalAgreementService {
    @Override
    public IPage pageNew(Page page, DeviceTechnicalAgreemntQueryDTO queryDTO) {
        return baseMapper.page(page,queryDTO);
    }
}
platformx-device-biz/src/main/resources/mapper/DeviceTechnicalAgreementMapper.xml
New file
@@ -0,0 +1,53 @@
<?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.by4cloud.platformx.device.mapper.DeviceTechnicalAgreementMapper">
  <resultMap id="deviceTechnicalAgreementMap" type="com.by4cloud.platformx.device.entity.DeviceTechnicalAgreemnt">
        <id property="id" column="id"/>
        <result property="compId" column="comp_id"/>
        <result property="arrivalMonth" column="arrival_month"/>
        <result property="contractId" column="contract_id"/>
        <result property="deviceCode" column="device_code"/>
        <result property="deviceId" column="device_id"/>
        <result property="deviceModels" column="device_models"/>
        <result property="deviceName" column="device_name"/>
        <result property="keyParameter" column="key_parameter"/>
        <result property="partya" column="partya"/>
        <result property="partyb" column="partyb"/>
        <result property="partyc" column="partyc"/>
        <result property="quantity" column="quantity"/>
        <result property="signDate" column="sign_date"/>
        <result property="termContent" column="term_content"/>
        <result property="unit" column="unit"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="delFlag" column="del_flag"/>
  </resultMap>
    <select id="page" resultType="com.by4cloud.platformx.device.entity.vo.DeviceTechnicalAgreementPageVo">
        select
            dta.id,
            c.name contractName,
            dta.partya ,
            dta.partyb ,
            dta.partyc ,
            dta.sign_date ,
            d.name deviceName,
            d.`number` deviceCode
        from
            device_technical_agreement dta
        join contract c on dta.contract_id = c.id
        join device d on d.id = dta.device_id
        where
            dta.del_flag = '0'
        <if test="queryDTO.contractName != null and queryDTO.contractName !=''">
            and c.name like CONCAT('%', #{queryDTO.contractName}, '%')
        </if>
        <if test="queryDTO.deviceName != null and queryDTO.deviceName !=''">
            and d.name like CONCAT('%', #{queryDTO.deviceName}, '%')
        </if>
    </select>
</mapper>