From 62f0eb6e3296fa3ef589e48bca06198ed26f9893 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期二, 25 三月 2025 17:32:40 +0800
Subject: [PATCH] 设备技术协议

---
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceTechnicalAgreementServiceImpl.java |   23 +++
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/DeviceTechnicalAgreemntQueryDTO.java              |   11 +
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceTechnicalAgreementController.java    |  120 +++++++++++++++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceTechnicalAgreementMapper.java            |   17 ++
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceTechnicalAgreemnt.java                   |  121 +++++++++++++++++
 platformx-device-biz/src/main/resources/mapper/DeviceTechnicalAgreementMapper.xml                                      |   53 +++++++
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DeviceTechnicalAgreementPageVo.java         |   28 ++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceTechnicalAgreementService.java          |   12 +
 8 files changed, 385 insertions(+), 0 deletions(-)

diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/DeviceTechnicalAgreemntQueryDTO.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/DeviceTechnicalAgreemntQueryDTO.java
new file mode 100644
index 0000000..265c127
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/DeviceTechnicalAgreemntQueryDTO.java
@@ -0,0 +1,11 @@
+package com.by4cloud.platformx.device.dto;
+
+import lombok.Data;
+
+@Data
+public class DeviceTechnicalAgreemntQueryDTO {
+
+	private String contractName;
+
+	private String deviceName;
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceTechnicalAgreemnt.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceTechnicalAgreemnt.java
new file mode 100644
index 0000000..6b2c54a
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceTechnicalAgreemnt.java
@@ -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;
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DeviceTechnicalAgreementPageVo.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DeviceTechnicalAgreementPageVo.java
new file mode 100644
index 0000000..6b371fa
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DeviceTechnicalAgreementPageVo.java
@@ -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;
+}
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceTechnicalAgreementController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceTechnicalAgreementController.java
new file mode 100644
index 0000000..1d8ca5c
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceTechnicalAgreementController.java
@@ -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));
+    }
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceTechnicalAgreementMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceTechnicalAgreementMapper.java
new file mode 100644
index 0000000..a8caed3
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceTechnicalAgreementMapper.java
@@ -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);
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceTechnicalAgreementService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceTechnicalAgreementService.java
new file mode 100644
index 0000000..9e528a2
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceTechnicalAgreementService.java
@@ -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);
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceTechnicalAgreementServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceTechnicalAgreementServiceImpl.java
new file mode 100644
index 0000000..3ac6361
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceTechnicalAgreementServiceImpl.java
@@ -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);
+	}
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/resources/mapper/DeviceTechnicalAgreementMapper.xml b/platformx-device-biz/src/main/resources/mapper/DeviceTechnicalAgreementMapper.xml
new file mode 100644
index 0000000..c7df52c
--- /dev/null
+++ b/platformx-device-biz/src/main/resources/mapper/DeviceTechnicalAgreementMapper.xml
@@ -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>
\ No newline at end of file

--
Gitblit v1.9.1