From 259a60f240fdfff356a236d380d8d682949fc571 Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期一, 26 十月 2026 09:24:25 +0800
Subject: [PATCH] feat(环保门禁): 巡检设备数据回传开放接口(无人机/机器人/AI摄像头)、无人值守地磅模块(表+后端+日报)、车辆采集照片字段、修复车辆修改接口缺@RequestBody

---
 src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java |   61 +++++++++++++++++++++++++++---
 1 files changed, 55 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
index 29cba69..0b60e7a 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
@@ -4,26 +4,27 @@
 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.handler.CustomTenantLineHandler;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd;
 import com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto;
 import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto;
 import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
 import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
-import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
 import com.ruoyi.procurementrecord.service.ProcurementRecordOutService;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
-import java.text.DateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -54,7 +55,15 @@
         procurementRecordOutLambdaQueryWrapper.ge(ProcurementRecordOut::getCreateTime, now)  // 澶т簬绛変簬褰撳ぉ
                 .lt(ProcurementRecordOut::getCreateTime, now.plusDays(1)); // 灏忎簬鏄庡ぉ
         Long aLong1 = procurementRecordOutMapper.selectCount(procurementRecordOutLambdaQueryWrapper);
-
+        // 2. 瀹氫箟鏃ユ湡鏍煎紡锛堝繀椤讳笌瀛楃涓叉牸寮忓畬鍏ㄥ尮閰嶏級
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        LocalDateTime localDateTime = null;
+        // 3. 杞崲锛歋tring 鈫� LocalDate 鈫� LocalDateTime锛堣ˉ鍏�0鐐规椂闂达級
+        if(StringUtils.isNotEmpty(procurementRecordOutAdd.getTime())){
+            LocalDate localDate = LocalDate.parse(procurementRecordOutAdd.getTime(), formatter);
+            // 鑾峰彇褰撳墠鏃跺垎绉�
+            LocalTime localTime = LocalTime.now();
+            localDateTime = localDate.atTime(localTime);}
         // 鏌ヨ閲囪喘鍑哄簱鏁伴噺
         LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
         procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getProcurementRecordStorageId, procurementRecordOutAdd.getId());
@@ -65,12 +74,30 @@
                 .salesLedgerProductId(procurementRecordOutAdd.getSalesLedgerProductId())
                 .inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规")
                 .inboundNum(new BigDecimal(procurementRecordOutAdd.getQuantity()))
-                .createTime(LocalDateTime.now())
+                .type(procurementRecordOutAdd.getType())
+                .supplierName(procurementRecordOutAdd.getSupplierName())
+                .createTime(localDateTime == null ? LocalDateTime.now() : localDateTime)
                 .createUser(Long.valueOf(procurementRecordOutAdd.getUserId()))
                 .createBy(sysUser.getNickName())
                 .updateUser(Long.valueOf(procurementRecordOutAdd.getUserId()))
                 .updateTime(LocalDateTime.now());
-        this.save(procurementRecordOut.build());
+        ProcurementRecordOut saved = procurementRecordOut.build();
+        // 鍑哄簱鍐欏叆鏃朵复鏃惰烦杩囩鎴锋彃浠讹紝閬垮厤 jsqlparser 瑙f瀽寮傚父
+        // 锛圕lassCastException: SetOperationList cannot be cast to PlainSelect锛�
+        // tenant_id 鐢� MybatisHandler 鐨� strictInsertFill 鑷姩濉厖锛屼笉浼氫涪
+        CustomTenantLineHandler.TEMP_IGNORE.set(Boolean.TRUE);
+        try {
+            this.save(saved);
+            if (StringUtils.isNotEmpty(procurementRecordOutAdd.getRequisitionNum()) && saved.getId() != null) {
+                ProcurementRecordOut upd = ProcurementRecordOut.builder()
+                        .id(saved.getId())
+                        .requisitionNum(new BigDecimal(procurementRecordOutAdd.getRequisitionNum()))
+                        .build();
+                procurementRecordOutMapper.updateById(upd);
+            }
+        } finally {
+            CustomTenantLineHandler.TEMP_IGNORE.remove();
+        }
         return 0;
     }
 
@@ -95,8 +122,30 @@
 
     @Override
     public void export(HttpServletResponse response) {
-        List<ProcurementRecordOutPageDto> list =procurementRecordOutMapper.list();
+        List<ProcurementRecordOutPageDto> list = procurementRecordOutMapper.list();
         ExcelUtil<ProcurementRecordOutPageDto> util = new ExcelUtil<>(ProcurementRecordOutPageDto.class);
         util.exportExcel(response, list, "鍑哄簱鍙拌处");
     }
+
+    @Override
+    public IPage<ProcurementRecordOutPageDto> listPageByProduct(Page page, ProcurementRecordOutPageDto procurementDto) {
+        return procurementRecordOutMapper.listPageByProduct(page, procurementDto);
+    }
+
+    @Override
+    public IPage<ProcurementRecordOutPageDto> listPageByCustom(Page page, ProcurementRecordOutPageDto procurementDto) {
+        return procurementRecordOutMapper.listPageByCustom(page, procurementDto);
+    }
+
+    @Override
+    public IPage<ProcurementRecordOutPageDto> listPageByPurchaseReturn(Page page, ProcurementRecordOutPageDto procurementDto) {
+        return procurementRecordOutMapper.listPageByPurchaseReturn(page, procurementDto);
+    }
+
+    @Override
+    public void exportPurchaseReturn(HttpServletResponse response) {
+        List<ProcurementRecordOutPageDto> list = procurementRecordOutMapper.listPurchaseReturn();
+        ExcelUtil<ProcurementRecordOutPageDto> util = new ExcelUtil<>(ProcurementRecordOutPageDto.class);
+        util.exportExcel(response, list, "閫�璐у嚭搴撳彴璐�");
+    }
 }

--
Gitblit v1.9.3