From 38cbb39d04f607eef513af11231b885c66d9539d Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期四, 18 九月 2025 11:38:40 +0800
Subject: [PATCH] yys  弘也水泥-采购价格管理

---
 src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java                             |    3 
 src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPriceManagementController.java    |   73 ++++++++++++
 src/main/resources/mapper/procurementrecord/ProcurementPriceManagementMapper.xml                  |   16 ++
 src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementPriceManagementServiceImpl.java |   78 +++++++++++++
 src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementPriceManagement.java                    |  122 ++++++++++++++++++++
 src/main/java/com/ruoyi/procurementrecord/service/ProcurementPriceManagementService.java          |   26 ++++
 src/main/resources/application-dhdc.yml                                                           |    4 
 src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementPriceManagementMapper.java            |   23 +++
 src/main/resources/application.yml                                                                |    2 
 src/main/resources/application-cmny.yml                                                           |    2 
 10 files changed, 344 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
index 264f23a..e3538d1 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
@@ -15,6 +15,7 @@
 import com.ruoyi.framework.web.domain.AjaxResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.ArrayUtils;
 import org.ehcache.spi.service.MaintainableService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -101,7 +102,7 @@
     }
 
     @GetMapping("scanDevice")
-    @ApiModelProperty("鑾峰彇璁惧鍙拌处")
+    @ApiOperation("鑾峰彇璁惧鍙拌处")
     @Anonymous
     public AjaxResult scanDevice(Long id) {
         List<DeviceMaintenance> list = deviceMaintenanceMapper.list1(id);
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPriceManagementController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPriceManagementController.java
new file mode 100644
index 0000000..9135b7b
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPriceManagementController.java
@@ -0,0 +1,73 @@
+package com.ruoyi.procurementrecord.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.procurementrecord.pojo.ProcurementPriceManagement;
+import com.ruoyi.procurementrecord.service.ProcurementPriceManagementService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/9/17 15:08
+ */
+@RestController
+@Api(tags = "閲囪喘浠锋牸绠$悊")
+@RequestMapping("/procurementPriceManagement")
+public class ProcurementPriceManagementController extends BaseController {
+
+    @Autowired
+    private ProcurementPriceManagementService procurementPriceManagementService;
+
+    @GetMapping("/listPage")
+    @ApiOperation("閲囪喘浠锋牸绠$悊-鏌ヨ")
+    public AjaxResult listPage(Page page, ProcurementPriceManagement procurementPriceManagement){
+        IPage<ProcurementPriceManagement> result = procurementPriceManagementService.listPage(page, procurementPriceManagement);
+        return AjaxResult.success(result);
+    }
+
+    @PostMapping("/add")
+    @ApiOperation("閲囪喘浠锋牸绠$悊-娣诲姞")
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult add(@RequestBody ProcurementPriceManagement procurementPriceManagement){
+        boolean result = procurementPriceManagementService.save(procurementPriceManagement);
+        return result ? AjaxResult.success() : AjaxResult.error();
+    }
+
+    @PostMapping("/update")
+    @ApiOperation("閲囪喘浠锋牸绠$悊-淇敼")
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult update(@RequestBody ProcurementPriceManagement procurementPriceManagement){
+        boolean result = procurementPriceManagementService.updateById(procurementPriceManagement);
+        return result ? AjaxResult.success() : AjaxResult.error();
+    }
+
+    @DeleteMapping("/del")
+    @ApiOperation("閲囪喘浠锋牸绠$悊-鍒犻櫎")
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult delete(@RequestBody List<Long> ids){
+        if (ids == null || ids.isEmpty()) {
+            return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+        }
+        boolean result = procurementPriceManagementService.removeByIds(ids);
+        return result ? AjaxResult.success() : AjaxResult.error();
+    }
+
+    /**
+     * 瀵煎嚭
+     * @param response
+     */
+    @PostMapping("/export")
+    public void export(HttpServletResponse response) {
+        procurementPriceManagementService.export(response);
+    }
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementPriceManagementMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementPriceManagementMapper.java
new file mode 100644
index 0000000..36b274c
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementPriceManagementMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.procurementrecord.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.procurementrecord.pojo.ProcurementPriceManagement;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author :yys
+ * @date : 2025/9/17 15:05
+ */
+public interface ProcurementPriceManagementMapper extends BaseMapper<ProcurementPriceManagement> {
+
+    /**
+     * 鏌ヨ閲囪喘浠锋牸绠$悊鍒楄〃
+     *
+     * @param page
+     * @param procurementPriceManagement
+     * @return
+     */
+    IPage<ProcurementPriceManagement> listPage(Page page,@Param("req") ProcurementPriceManagement procurementPriceManagement);
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementPriceManagement.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementPriceManagement.java
new file mode 100644
index 0000000..08c9d21
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementPriceManagement.java
@@ -0,0 +1,122 @@
+package com.ruoyi.procurementrecord.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * @author :yys
+ * @date : 2025/9/17 14:58
+ */
+@Data
+@TableName("procurement_price_management")
+@ApiModel
+public class ProcurementPriceManagement {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "鍟嗗搧鍚嶇О")
+    @Excel(name = "鍟嗗搧鍚嶇О")
+    private String productName;
+
+    @ApiModelProperty(value = "鍟嗗搧缂栫爜")
+    @Excel(name = "鍟嗗搧缂栫爜")
+    private String productCode;
+
+    @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
+    @Excel(name = "瑙勬牸鍨嬪彿")
+    private String specification;
+
+    @ApiModelProperty(value = "渚涘簲鍟嗗悕绉�")
+    @Excel(name = "渚涘簲鍟嗗悕绉�")
+    private String supplierName;
+
+    @ApiModelProperty(value = "鍩虹浠锋牸")
+    @Excel(name = "鍩虹浠锋牸")
+    private String basePrice;
+
+    @ApiModelProperty(value = "鐘舵��")
+    @TableField(exist = false)
+    @Excel(name = "鐘舵��")
+    private String status;
+
+    @ApiModelProperty(value = "鍗曚綅")
+    private String unit;
+
+    @ApiModelProperty(value = "鎶樻墸绫诲瀷")
+    @Excel(name = "鎶樻墸绫诲瀷", readConverterExp = "=鏃犳姌鎵�,percentage=鐧惧垎姣旀姌鎵�,fixed=鍥哄畾閲戦")
+    private String discountType;
+
+    @ApiModelProperty(value = "鎶樻墸鍊�")
+    @Excel(name = "鎶樻墸鍊�")
+    private String discountValue;
+
+    @ApiModelProperty(value = "鎶樻墸鏈夋晥鏈�")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date discountEndTime;
+
+    @ApiModelProperty(value = "鏈�浣庝环鏍�")
+    @Excel(name = "鏈�浣庝环鏍�")
+    private String minPrice;
+
+    @ApiModelProperty(value = "鏈�楂樹环鏍�")
+    @Excel(name = "鏈�楂樹环鏍�")
+    private String maxPrice;
+
+    @ApiModelProperty(value = "棰勮闃堝��(%)")
+    private String warningThreshold;
+
+    @ApiModelProperty(value = "鐢熸晥鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "鐢熸晥鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date effectiveTime;
+
+    @ApiModelProperty(value = "澶辨晥鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date expireTime;
+
+    @ApiModelProperty(value = "璋冧环鍘熷洜")
+    private String reason;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鏇存柊鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementPriceManagementService.java b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementPriceManagementService.java
new file mode 100644
index 0000000..fc26ab6
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementPriceManagementService.java
@@ -0,0 +1,26 @@
+package com.ruoyi.procurementrecord.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.ruoyi.procurementrecord.pojo.ProcurementPriceManagement;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author :yys
+ * @date : 2025/9/17 15:06
+ */
+public interface ProcurementPriceManagementService extends IService<ProcurementPriceManagement> {
+
+    /**
+     * 閲囪喘浠锋牸绠$悊-鏌ヨ
+     *
+     * @param page
+     * @param procurementPriceManagement
+     * @return
+     */
+    IPage<ProcurementPriceManagement> listPage(Page page, ProcurementPriceManagement procurementPriceManagement);
+
+    void export(HttpServletResponse response);
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementPriceManagementServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementPriceManagementServiceImpl.java
new file mode 100644
index 0000000..e90a7a2
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementPriceManagementServiceImpl.java
@@ -0,0 +1,78 @@
+package com.ruoyi.procurementrecord.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.ruoyi.common.utils.excel.ExcelUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.procurementrecord.dto.ProcurementPageDto;
+import com.ruoyi.procurementrecord.mapper.ProcurementPriceManagementMapper;
+import com.ruoyi.procurementrecord.pojo.ProcurementPriceManagement;
+import com.ruoyi.procurementrecord.service.ProcurementPriceManagementService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/9/17 15:07
+ */
+@Service
+@Slf4j
+public class ProcurementPriceManagementServiceImpl extends ServiceImpl<ProcurementPriceManagementMapper, ProcurementPriceManagement> implements ProcurementPriceManagementService {
+
+
+    @Autowired
+    private ProcurementPriceManagementMapper procurementPriceManagementMapper;
+
+
+    @Override
+    public IPage<ProcurementPriceManagement> listPage(Page page, ProcurementPriceManagement procurementPriceManagement) {
+        IPage<ProcurementPriceManagement> result = procurementPriceManagementMapper.listPage(page, procurementPriceManagement);
+        // 鏍规嵁鐢熸晥鏃堕棿锛屽け鏁堟椂闂村垽鏂姸鎬� 鏈夋晥锛屽緟鐢熸晥锛屽凡杩囨湡
+        for (ProcurementPriceManagement record : result.getRecords()) {
+            if (record.getEffectiveTime() != null) {
+                if (record.getEffectiveTime().getTime() <= System.currentTimeMillis()) {
+                    record.setStatus("active");
+                }
+            }
+            if (record.getEffectiveTime() != null) {
+                if (record.getEffectiveTime().getTime() > System.currentTimeMillis()) {
+                    record.setStatus("pending");
+                }
+            }
+            if (record.getExpireTime() != null) {
+                if (record.getExpireTime().getTime() <= System.currentTimeMillis()) {
+                    record.setStatus("expired");
+                }
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public void export(HttpServletResponse response) {
+        List<ProcurementPriceManagement> procurementPriceManagements = procurementPriceManagementMapper.selectList(null);
+        for (ProcurementPriceManagement procurementPriceManagement : procurementPriceManagements) {
+            if (procurementPriceManagement.getEffectiveTime() != null) {
+                if (procurementPriceManagement.getEffectiveTime().getTime() <= System.currentTimeMillis()) {
+                    procurementPriceManagement.setStatus("鏈夋晥");
+                }
+            }
+            if (procurementPriceManagement.getEffectiveTime() != null) {
+                if (procurementPriceManagement.getEffectiveTime().getTime() > System.currentTimeMillis()) {
+                    procurementPriceManagement.setStatus("寰呯敓鏁�");
+                }
+            }
+            if (procurementPriceManagement.getExpireTime() != null) {
+                if (procurementPriceManagement.getExpireTime().getTime() <= System.currentTimeMillis()) {
+                    procurementPriceManagement.setStatus("宸茶繃鏈�");
+                }
+            }
+        }
+        ExcelUtil<ProcurementPriceManagement> util = new ExcelUtil<ProcurementPriceManagement>(ProcurementPriceManagement.class);
+        util.exportExcel(response, procurementPriceManagements, "閲囪喘浠锋牸绠$悊");}
+}
diff --git a/src/main/resources/application-cmny.yml b/src/main/resources/application-cmny.yml
index 911faa2..6239c56 100644
--- a/src/main/resources/application-cmny.yml
+++ b/src/main/resources/application-cmny.yml
@@ -17,7 +17,7 @@
 # 寮�鍙戠幆澧冮厤缃�
 server:
   # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9070
+  port: 9088
   servlet:
     # 搴旂敤鐨勮闂矾寰�
     context-path: /
diff --git a/src/main/resources/application-dhdc.yml b/src/main/resources/application-dhdc.yml
index 579ad20..52fbd62 100644
--- a/src/main/resources/application-dhdc.yml
+++ b/src/main/resources/application-dhdc.yml
@@ -62,7 +62,7 @@
     druid:
       # 涓诲簱鏁版嵁婧�
       master:
-        url: jdbc:mysql://192.168.1.195:3306/product-inventory-management-dhdc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://192.168.1.8:3306/product-inventory-management-dhdc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
         password: 123456
       # 浠庡簱鏁版嵁婧�
@@ -135,7 +135,7 @@
   redis:
     # 鍦板潃
 #    host: 127.0.0.1
-    host: 192.168.1.195
+    host: 192.168.1.8
     # 绔彛锛岄粯璁や负6379
     port: 6379
     # 鏁版嵁搴撶储寮�
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 7163e17..33d6165 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,4 +1,4 @@
 # Spring閰嶇疆
 spring:
   profiles:
-    active: zqhx
+    active: demo
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementPriceManagementMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementPriceManagementMapper.xml
new file mode 100644
index 0000000..196adfa
--- /dev/null
+++ b/src/main/resources/mapper/procurementrecord/ProcurementPriceManagementMapper.xml
@@ -0,0 +1,16 @@
+<?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.ruoyi.procurementrecord.mapper.ProcurementPriceManagementMapper">
+
+    <select id="listPage" resultType="com.ruoyi.procurementrecord.pojo.ProcurementPriceManagement">
+        SELECT * FROM procurement_price_management
+        <where>
+            <if test="req.productName != null and req.productName != ''">
+                AND product_name like concat('%',#{req.productName},'%')
+            </if>
+            <if test="req.supplierName != null and req.supplierName != ''">
+                AND supplier_name = #{req.supplierName}
+            </if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3