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/entity/OperationCertificateDetail.java            |    9 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/OperationCertificateServiceImpl.java |  155 +++++++++++++++++++++++++++++++++++----------------
 2 files changed, 113 insertions(+), 51 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateDetail.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateDetail.java
index 5146352..7b183c7 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateDetail.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateDetail.java
@@ -7,6 +7,7 @@
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecg.common.system.base.entity.JeecgEntity;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.jeecgframework.poi.excel.annotation.Excel;
@@ -27,13 +28,18 @@
 public class OperationCertificateDetail  extends JeecgEntity  implements Serializable {
     private static final long serialVersionUID = 1L;
 
-
+    @Excel(name = "鍙戠敓鏃ユ湡", width = 15, format = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍙戠敓鏃ユ湡")
+    private Date happenDate;
 	/**璇佷功ID*/
     @ApiModelProperty(value = "璇佷功ID")
     private String operationCertificateId;
 	/**绫诲瀷*/
 	@Excel(name = "绫诲瀷", width = 15)
     @ApiModelProperty(value = "绫诲瀷")
+    @Dict(dicCode = "certificate_change_type")
     private String type;
 	/**璁惧id*/
 	@Excel(name = "璁惧id", width = 15)
@@ -42,6 +48,7 @@
 	/**鎵e垎椤�*/
 	@Excel(name = "鎵e垎椤�", width = 15)
     @ApiModelProperty(value = "鎵e垎椤�")
+    @Dict(dictTable = "mom_eam_base_deduction_item", dicText = "content", dicCode = "id")
     private String deductionItem;
 	/**鎵e垎鍛ㄦ湡*/
 	@Excel(name = "鎵e垎鍛ㄦ湡", width = 15)
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