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>