From d75958896efd4c8a6daee9c56d048641b99cacf6 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 24 六月 2025 17:54:50 +0800
Subject: [PATCH] 1.二维码巡检记录以及文件上传记录 2.部分优化
---
main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 110 insertions(+), 2 deletions(-)
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java
index d8b297a..51c2d14 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java
@@ -1,11 +1,30 @@
package com.ruoyi.business.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+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.basic.entity.CoalInfo;
+import com.ruoyi.basic.entity.Supply;
+import com.ruoyi.basic.mapper.CoalInfoMapper;
+import com.ruoyi.basic.mapper.SupplyMapper;
+import com.ruoyi.business.dto.PurchaseRegistrationDto;
+import com.ruoyi.business.entity.PendingInventory;
import com.ruoyi.business.entity.PurchaseRegistration;
+import com.ruoyi.business.mapper.PendingInventoryMapper;
import com.ruoyi.business.mapper.PurchaseRegistrationMapper;
import com.ruoyi.business.service.PurchaseRegistrationService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
+import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.bean.BeanUtils;
import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.Assert;
+
+import java.time.LocalDate;
+import java.util.Objects;
/**
* <p>
@@ -19,4 +38,93 @@
@RequiredArgsConstructor
public class PurchaseRegistrationServiceImpl extends ServiceImpl<PurchaseRegistrationMapper, PurchaseRegistration> implements PurchaseRegistrationService {
+
+ private final PurchaseRegistrationMapper purchaseRegistrationMapper;
+
+ private final PendingInventoryMapper pendingInventoryMapper;
+
+ private final CoalInfoMapper coalInfoMapper;
+
+ private final SupplyMapper supplyMapper;
+
+ @Override
+ public IPage<PurchaseRegistration> selectPurchaseRegistrationList(Page page, PurchaseRegistrationDto purchaseRegistrationDto) {
+ LambdaQueryWrapper<PurchaseRegistration> queryWrapper = new LambdaQueryWrapper<>();
+ if (StringUtils.isNotBlank(purchaseRegistrationDto.getSearchAll())){
+ queryWrapper.and(wrapper -> wrapper
+ .like(PurchaseRegistration::getCoalId, purchaseRegistrationDto.getSearchAll())
+ .or()
+ .like(PurchaseRegistration::getSupplierName, purchaseRegistrationDto.getSearchAll())
+ );
+ }
+ queryWrapper.orderByDesc(PurchaseRegistration::getCreateTime);
+ return purchaseRegistrationMapper.selectPage(page, queryWrapper);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int addOrEditPR(PurchaseRegistrationDto purchaseRegistrationDto) {
+ // 鍙傛暟鏍¢獙
+ Assert.notNull(purchaseRegistrationDto, "閲囪喘鐧昏淇℃伅涓嶈兘涓虹┖");
+
+ // 鍒涘缓閲囪喘鐧昏瀹炰綋骞跺鍒跺睘鎬�
+ PurchaseRegistration purchaseRegistration = new PurchaseRegistration();
+ BeanUtils.copyProperties(purchaseRegistrationDto, purchaseRegistration);
+ CoalInfo coalInfo = coalInfoMapper.selectById(purchaseRegistrationDto.getCoalId());
+ if (coalInfo == null) {
+ throw new BaseException("鐓ょ淇℃伅涓嶅瓨鍦�");
+ }
+// purchaseRegistration.setCoal(coalInfo.getCoal());
+ Supply supply = supplyMapper.selectById(purchaseRegistrationDto.getSupplierId());
+ if (supply == null) {
+ throw new BaseException("渚涘簲鍟嗕俊鎭笉瀛樺湪");
+ }
+ purchaseRegistration.setSupplierName(supply.getSupplierName());
+ if (Objects.isNull(purchaseRegistrationDto.getId())) {
+ // 鏂板閲囪喘鐧昏
+ purchaseRegistration.setRegistrationDate(LocalDate.now());
+ int insertCount = purchaseRegistrationMapper.insert(purchaseRegistration);
+ if (insertCount > 0) {
+ // 閲囪喘鐧昏鎴愬姛锛屽悓姝ュ垱寤哄緟鍏ュ簱璁板綍
+ PendingInventory pendingInventory = createPendingInventory(purchaseRegistration);
+ pendingInventory.setSupplierName(supply.getSupplierName());
+ return pendingInventoryMapper.insert(pendingInventory);
+ }
+ return insertCount;
+ } else {
+ // 鏇存柊閲囪喘鐧昏
+ return purchaseRegistrationMapper.updateById(purchaseRegistration);
+ }
+ }
+
+ /**
+ * 鏍规嵁閲囪喘鐧昏淇℃伅鍒涘缓寰呭叆搴撹褰�
+ *
+ * @param purchaseRegistration 閲囪喘鐧昏瀹炰綋
+ * @return 寰呭叆搴撳疄浣�
+ */
+ private PendingInventory createPendingInventory(PurchaseRegistration purchaseRegistration) {
+ PendingInventory pendingInventory = new PendingInventory();
+ // 澶嶅埗鍩烘湰灞炴��
+ BeanUtils.copyProperties(purchaseRegistration, pendingInventory);
+
+ // 璁剧疆寰呭叆搴撹褰曠壒鏈夌殑灞炴�э紙濡傛灉鏈夛級
+ pendingInventory.setCoalId(purchaseRegistration.getCoalId());
+ pendingInventory.setInventoryQuantity(purchaseRegistration.getPurchaseQuantity());
+ return pendingInventory;
+ }
+
+ @Override
+ public int delByIds(Long[] ids) {
+ // 妫�鏌ュ弬鏁�
+ if (ids == null || ids.length == 0) {
+ return 0;
+ }
+ // 鏋勯�犳洿鏂版潯浠�
+ UpdateWrapper<PurchaseRegistration> updateWrapper = new UpdateWrapper<>();
+ updateWrapper.in("id", ids)
+ .set("deleted", 1); // 璁剧疆 deleted 涓� 1 琛ㄧず宸插垹闄�
+ // 鎵ц鎵归噺閫昏緫鍒犻櫎
+ return purchaseRegistrationMapper.update(null, updateWrapper);
+ }
}
--
Gitblit v1.9.3