From 5a7297f4b57b40801b0cf0247a42e883d3c986bb Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期三, 22 十月 2025 14:12:28 +0800
Subject: [PATCH] yys  发货台账管理

---
 src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java |   30 ++++++
 src/main/java/com/ruoyi/sales/mapper/ShippingInfoMapper.java            |   19 +++
 src/main/java/com/ruoyi/sales/service/ShippingInfoService.java          |   14 ++
 src/main/resources/mapper/sales/ShippingInfoMapper.xml                  |   44 ++++++++
 src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java    |   95 +++++++++++++++++++
 src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java                    |   68 +++++++++++++
 6 files changed, 270 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
new file mode 100644
index 0000000..56b3e15
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -0,0 +1,95 @@
+package com.ruoyi.sales.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.sales.mapper.ShippingInfoMapper;
+import com.ruoyi.sales.pojo.SalesLedger;
+import com.ruoyi.sales.pojo.ShippingInfo;
+import com.ruoyi.sales.service.ShippingInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/10/22 9:34
+ */
+@RestController
+@RequestMapping("/shippingInfo")
+@Api(tags = "鍙戣揣淇℃伅绠$悊")
+public class ShippingInfoController extends BaseController {
+
+    @Autowired
+    private ShippingInfoService shippingInfoService;
+
+
+    @GetMapping("/listPage")
+    @ApiOperation("鍙戣揣淇℃伅鍒楄〃")
+    public AjaxResult listPage(Page page, ShippingInfo req) {
+        IPage<ShippingInfo> listPage = shippingInfoService.listPage(page,req);
+        return AjaxResult.success(listPage);
+    }
+
+    @PostMapping("/add")
+    @ApiOperation("娣诲姞鍙戣揣淇℃伅")
+    public AjaxResult add(@RequestBody ShippingInfo req) {
+        boolean save = shippingInfoService.save(req);
+        return save ? AjaxResult.success() : AjaxResult.error();
+    }
+
+    @PostMapping("/update")
+    @ApiOperation("淇敼鍙戣揣淇℃伅")
+    public AjaxResult update(@RequestBody ShippingInfo req) {
+        ShippingInfo byId = shippingInfoService.getById(req.getId());
+        if (byId == null) {
+            return AjaxResult.error("鍙戣揣淇℃伅涓嶅瓨鍦�");
+        }
+        Long userId = getLoginUser().getUserId();
+        if(!userId.equals(Long.parseLong(byId.getCreateUser().toString()))){
+            return AjaxResult.error("鎮ㄦ病鏈夋潈闄愪慨鏀规鍙戣揣淇℃伅");
+        }
+        boolean update = shippingInfoService.updateById(req);
+        return update ? AjaxResult.success() : AjaxResult.error();
+    }
+
+    @DeleteMapping("/delete")
+    @ApiOperation("鍒犻櫎鍙戣揣淇℃伅")
+    public AjaxResult delete(@RequestBody List<Long> ids) {
+        Long userId = getLoginUser().getUserId();
+        ids.forEach(id -> {
+            ShippingInfo byId = shippingInfoService.getById(id);
+            if (byId == null) {
+                throw new RuntimeException("鍙戣揣淇℃伅涓嶅瓨鍦�");
+            }
+            if(!userId.equals(Long.parseLong(byId.getCreateUser().toString()))){
+                throw new RuntimeException("鎮ㄦ病鏈夋潈闄愬垹闄ゆ鍙戣揣淇℃伅");
+            }
+        });
+        boolean delete = shippingInfoService.removeBatchByIds(ids);
+        return delete ? AjaxResult.success("鍒犻櫎鎴愬姛") : AjaxResult.error("鍒犻櫎澶辫触");
+    }
+
+    @Autowired
+    private ShippingInfoMapper shippingInfoMapper;
+
+    /**
+     * 瀵煎嚭鍙戣揣淇℃伅绠$悊
+     */
+    @PostMapping("/export")
+    @ApiOperation("瀵煎嚭鍙戣揣淇℃伅")
+    public void export(HttpServletResponse response) {
+        List<ShippingInfo> list = shippingInfoMapper.listAll();
+        ExcelUtil<ShippingInfo> util = new ExcelUtil<ShippingInfo>(ShippingInfo.class);
+        util.exportExcel(response, list, "鍙戣揣淇℃伅");
+    }
+
+}
diff --git a/src/main/java/com/ruoyi/sales/mapper/ShippingInfoMapper.java b/src/main/java/com/ruoyi/sales/mapper/ShippingInfoMapper.java
new file mode 100644
index 0000000..88dec8a
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/mapper/ShippingInfoMapper.java
@@ -0,0 +1,19 @@
+package com.ruoyi.sales.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.sales.pojo.ShippingInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/10/22 9:32
+ */
+public interface ShippingInfoMapper extends BaseMapper<ShippingInfo> {
+    IPage<ShippingInfo> listPage(Page page,@Param("req") ShippingInfo req);
+
+    List<ShippingInfo> listAll();
+}
diff --git a/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java b/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
new file mode 100644
index 0000000..3f80dc0
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
@@ -0,0 +1,68 @@
+package com.ruoyi.sales.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+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/10/22 9:29
+ */
+@Data
+@TableName("shipping_info")
+public class ShippingInfo {
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "閿�鍞彴璐d")
+    private Long salesLedgerId;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "閿�鍞悎鍚屽彿")
+    @Excel(name = "閿�鍞悎鍚屽彿")
+    private String salesContractNo;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "瀹㈡埛鍚嶇О")
+    @Excel(name = "瀹㈡埛鍚嶇О")
+    private String customerName;
+
+    @ApiModelProperty(value = "鍙戣揣鏃ユ湡")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "鍙戣揣鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date shippingDate;
+
+    @ApiModelProperty(value = "鍙戣揣杞︾墝鍙�")
+    @Excel(name = "鍙戣揣杞︾墝鍙�")
+    private String shippingCarNumber;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Integer createUser;
+
+    @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/sales/service/ShippingInfoService.java b/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java
new file mode 100644
index 0000000..81c7181
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java
@@ -0,0 +1,14 @@
+package com.ruoyi.sales.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.sales.pojo.ShippingInfo;
+
+/**
+ * @author :yys
+ * @date : 2025/10/22 9:33
+ */
+public interface ShippingInfoService extends IService<ShippingInfo>{
+    IPage<ShippingInfo> listPage(Page page, ShippingInfo req);
+}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
new file mode 100644
index 0000000..8469b9e
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.sales.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.sales.mapper.ShippingInfoMapper;
+import com.ruoyi.sales.pojo.ShippingInfo;
+import com.ruoyi.sales.service.ShippingInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author :yys
+ * @date : 2025/10/22 9:33
+ */
+@Service
+@Slf4j
+public class ShippingInfoServiceImpl extends ServiceImpl<ShippingInfoMapper, ShippingInfo> implements ShippingInfoService {
+
+    @Autowired
+    private ShippingInfoMapper shippingInfoMapper;
+
+    @Override
+    public IPage<ShippingInfo> listPage(Page page, ShippingInfo req) {
+        IPage<ShippingInfo> listPage = shippingInfoMapper.listPage(page, req);
+
+        return listPage;
+    }
+}
diff --git a/src/main/resources/mapper/sales/ShippingInfoMapper.xml b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
new file mode 100644
index 0000000..efe93cf
--- /dev/null
+++ b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -0,0 +1,44 @@
+<?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.sales.mapper.ShippingInfoMapper">
+
+    <select id="listPage" resultType="com.ruoyi.sales.pojo.ShippingInfo">
+        SELECT
+        s.id,
+        s.sales_ledger_id,
+        s.shipping_date,
+        s.shipping_car_number,
+        s.create_time,
+        s.update_time,
+        s.create_user,
+        s.update_user,
+        s.tenant_id,
+        sl.sales_contract_no,
+        sl.customer_name
+        FROM shipping_info s
+        LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
+        WHERE 1=1
+        <if test="req.salesContractNo != null and req.salesContractNo != ''">
+            AND sl.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%')
+        </if>
+        <if test="req.shippingCarNumber != null and req.shippingCarNumber != ''">
+            AND s.shipping_car_number LIKE CONCAT('%',#{req.shippingCarNumber},'%')
+        </if>
+    </select>
+    <select id="listAll" resultType="com.ruoyi.sales.pojo.ShippingInfo">
+        SELECT
+            s.id,
+            s.sales_ledger_id,
+            s.shipping_date,
+            s.shipping_car_number,
+            s.create_time,
+            s.update_time,
+            s.create_user,
+            s.update_user,
+            s.tenant_id,
+            sl.sales_contract_no,
+            sl.customer_name
+        FROM shipping_info s
+                 LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
+    </select>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3