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