From 12328d40a8abd295452c53ac70497290c31ceaaf Mon Sep 17 00:00:00 2001
From: zenglf <18502938215@163.com>
Date: 星期三, 18 十月 2023 15:46:05 +0800
Subject: [PATCH] 操作证管理 明细更新

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/OperationCertificateServiceImpl.java |  155 +++++++++++++++++++++++++++++++++++----------------
 1 files changed, 105 insertions(+), 50 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/OperationCertificateServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/OperationCertificateServiceImpl.java
index cea95d8..e4ba5ad 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/OperationCertificateServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/OperationCertificateServiceImpl.java
@@ -1,14 +1,18 @@
 package org.jeecg.modules.eam.service.impl;
 
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.modules.eam.entity.DeductionItem;
 import org.jeecg.modules.eam.entity.OperationCertificate;
 import org.jeecg.modules.eam.entity.OperationCertificateDetail;
 import org.jeecg.modules.eam.mapper.OperationCertificateDetailMapper;
 import org.jeecg.modules.eam.mapper.OperationCertificateMapper;
+import org.jeecg.modules.eam.service.IDeductionItemService;
 import org.jeecg.modules.eam.service.IOperationCertificateService;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
+
 import java.io.Serializable;
 import java.util.List;
 import java.util.Collection;
@@ -16,62 +20,113 @@
 /**
  * @Description: 鎿嶄綔璇佷功绠$悊
  * @Author: jeecg-boot
- * @Date:   2023-10-17
+ * @Date: 2023-10-17
  * @Version: V1.0
  */
 @Service
 public class OperationCertificateServiceImpl extends ServiceImpl<OperationCertificateMapper, OperationCertificate> implements IOperationCertificateService {
 
-	@Autowired
-	private OperationCertificateMapper operationCertificateMapper;
-	@Autowired
-	private OperationCertificateDetailMapper operationCertificateDetailMapper;
-	
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void saveMain(OperationCertificate operationCertificate, List<OperationCertificateDetail> operationCertificateDetailList) {
-		operationCertificateMapper.insert(operationCertificate);
-		if(operationCertificateDetailList!=null && operationCertificateDetailList.size()>0) {
-			for(OperationCertificateDetail entity:operationCertificateDetailList) {
-				//澶栭敭璁剧疆
-				entity.setOperationCertificateId(operationCertificate.getId());
-				operationCertificateDetailMapper.insert(entity);
-			}
-		}
-	}
+    @Autowired
+    private OperationCertificateMapper operationCertificateMapper;
+    @Autowired
+    private OperationCertificateDetailMapper operationCertificateDetailMapper;
+    @Autowired
+    private IDeductionItemService deductionItemService;
 
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void updateMain(OperationCertificate operationCertificate,List<OperationCertificateDetail> operationCertificateDetailList) {
-		operationCertificateMapper.updateById(operationCertificate);
-		
-		//1.鍏堝垹闄ゅ瓙琛ㄦ暟鎹�
-		operationCertificateDetailMapper.deleteByMainId(operationCertificate.getId());
-		
-		//2.瀛愯〃鏁版嵁閲嶆柊鎻掑叆
-		if(operationCertificateDetailList!=null && operationCertificateDetailList.size()>0) {
-			for(OperationCertificateDetail entity:operationCertificateDetailList) {
-				//澶栭敭璁剧疆
-				entity.setOperationCertificateId(operationCertificate.getId());
-				operationCertificateDetailMapper.insert(entity);
-			}
-		}
-	}
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void saveMain(OperationCertificate operationCertificate, List<OperationCertificateDetail> operationCertificateDetailList) {
+//        operationCertificateMapper.insert(operationCertificate);
+//        if (operationCertificateDetailList != null && operationCertificateDetailList.size() > 0) {
+//            for (OperationCertificateDetail entity : operationCertificateDetailList) {
+//                //澶栭敭璁剧疆
+//                entity.setOperationCertificateId(operationCertificate.getId());
+//                operationCertificateDetailMapper.insert(entity);
+//            }
+//        }
+        operationCertificateMapper.insert(operationCertificate);
+        String equipmentIds = operationCertificate.getEquipmentIds();
+        Integer currentCycleScore = operationCertificate.getCurrentCycleScore();
+        for (OperationCertificateDetail entity : operationCertificateDetailList) {
+            if ("addEquipment".equals(entity.getType())) {
+                equipmentIds = equipmentIds + "," + entity.getEquipmentId();
+            } else if ("deduction".equals(entity.getType())) {
+                String deductionItemId = entity.getDeductionItem();
+                Integer deductionScore = deductionItemService.getById(deductionItemId).getDeductionScore();
+                currentCycleScore = currentCycleScore - deductionScore;
+            }
+            //澶栭敭璁剧疆
+            entity.setOperationCertificateId(operationCertificate.getId());
+            operationCertificateDetailMapper.insert(entity);
 
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void delMain(String id) {
-		operationCertificateDetailMapper.deleteByMainId(id);
-		operationCertificateMapper.deleteById(id);
-	}
+        }
+        operationCertificate.setEquipmentIds(equipmentIds);
+        if(currentCycleScore<=0){
+            currentCycleScore=0;
+            // 褰撳垎鏁颁负0鏃�,璁剧疆鎿嶄綔璇佺殑鐘舵�佷负绂佺敤
+            operationCertificate.setStatus(CommonConstant.STATUS_0);
+        }
+        operationCertificate.setCurrentCycleScore(currentCycleScore);
+        operationCertificateMapper.updateById(operationCertificate);
 
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void delBatchMain(Collection<? extends Serializable> idList) {
-		for(Serializable id:idList) {
-			operationCertificateDetailMapper.deleteByMainId(id.toString());
-			operationCertificateMapper.deleteById(id);
-		}
-	}
-	
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateMain(OperationCertificate operationCertificate, List<OperationCertificateDetail> operationCertificateDetailList) {
+//		operationCertificateMapper.updateById(operationCertificate);
+
+        //1.鍏堝垹闄ゅ瓙琛ㄦ暟鎹�
+//		operationCertificateDetailMapper.deleteByMainId(operationCertificate.getId());
+
+//		//2.瀛愯〃鏁版嵁閲嶆柊鎻掑叆
+//		if(operationCertificateDetailList!=null && operationCertificateDetailList.size()>0) {
+//			for(OperationCertificateDetail entity:operationCertificateDetailList) {
+//				//澶栭敭璁剧疆
+//				entity.setOperationCertificateId(operationCertificate.getId());
+//				operationCertificateDetailMapper.insert(entity);
+//			}
+//		}
+        // 鏂板璁惧鏇存柊涓昏〃鐨別quipmentIds瀛楁锛屾柊澧炴墸鍒嗗垯鏍规嵁鎵e垎椤规洿鏂板綋鍓嶅垎鏁帮紝鍒嗘暟涓�0鏃跺�欑鐢ㄦ搷浣滆瘉
+        String equipmentIds = operationCertificate.getEquipmentIds();
+        Integer currentCycleScore = operationCertificate.getCurrentCycleScore();
+        for (OperationCertificateDetail entity : operationCertificateDetailList) {
+            if ("addEquipment".equals(entity.getType())) {
+                equipmentIds = equipmentIds + "," + entity.getEquipmentId();
+            } else if ("deduction".equals(entity.getType())) {
+                String deductionItemId = entity.getDeductionItem();
+                Integer deductionScore = deductionItemService.getById(deductionItemId).getDeductionScore();
+                currentCycleScore = currentCycleScore - deductionScore;
+            }
+            //澶栭敭璁剧疆
+            entity.setOperationCertificateId(operationCertificate.getId());
+            operationCertificateDetailMapper.insert(entity);
+
+        }
+        operationCertificate.setEquipmentIds(equipmentIds);
+        if(currentCycleScore<=0){
+            currentCycleScore=0;
+            // 褰撳垎鏁颁负0鏃�,璁剧疆鎿嶄綔璇佺殑鐘舵�佷负绂佺敤
+            operationCertificate.setStatus(CommonConstant.STATUS_0);
+        }
+        operationCertificate.setCurrentCycleScore(currentCycleScore);
+        operationCertificateMapper.updateById(operationCertificate);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void delMain(String id) {
+        operationCertificateDetailMapper.deleteByMainId(id);
+        operationCertificateMapper.deleteById(id);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void delBatchMain(Collection<? extends Serializable> idList) {
+        for (Serializable id : idList) {
+            operationCertificateDetailMapper.deleteByMainId(id.toString());
+            operationCertificateMapper.deleteById(id);
+        }
+    }
+
 }

--
Gitblit v1.9.3