From d98b07bc1ba63fda03dc7f9bdbab51ec91b9b21c Mon Sep 17 00:00:00 2001
From: 6c <420680616@qq.com>
Date: 星期三, 02 七月 2025 11:01:13 +0800
Subject: [PATCH] 收文管理-科长环节-自定义保存-保存指派的科员信息

---
 home-server-admin/src/main/java/com/home/xining/controller/ReceiptDocumentController.java |   38 +++++++++++++++++++
 home-server-admin/src/main/java/com/home/xining/service/idel/IReceiptDocumentService.java |    2 +
 home-server-admin/src/main/java/com/home/xining/service/ReceiptDocumentService.java       |   35 +++++++++++++++++
 3 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/home-server-admin/src/main/java/com/home/xining/controller/ReceiptDocumentController.java b/home-server-admin/src/main/java/com/home/xining/controller/ReceiptDocumentController.java
index 388da8e..948c0e5 100644
--- a/home-server-admin/src/main/java/com/home/xining/controller/ReceiptDocumentController.java
+++ b/home-server-admin/src/main/java/com/home/xining/controller/ReceiptDocumentController.java
@@ -115,4 +115,42 @@
             return this.error(SystemCode.SAVE_DATA_FILE.getValue(), SystemCode.SAVE_DATA_FILE.getText());
         }
     }
+
+    /**
+     * 鏀舵枃绠$悊鍒楄〃
+     * @param request
+     * @return
+     */
+    @RequestMapping(value ="/save/{version}",  method = RequestMethod.POST)
+    @ApiVersion(1)
+    public String save(HttpServletRequest request) {
+        try {
+            //鑾峰彇鍙傛暟
+            FieldSetEntity fse=null;
+            Object bean=request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
+            if(bean != null){
+                RequestParameterEntity reqp=(RequestParameterEntity)bean;
+                fse = reqp.getFormData();
+            }
+            //鍒ゆ柇鍙傛暟鏄惁涓虹┖
+            if(bean == null || fse == null) {
+                SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText());
+                return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText());
+            }
+            //鍒ゆ柇琛ㄥ悕鏄惁姝e父
+            if (!CmnConst.SFGL.equals(fse.getTableName())) {
+                SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText());
+                return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText());
+            }
+            IReceiptDocumentService service = (IReceiptDocumentService)getProxyInstance(receiptDocumentService);
+            service.save(fse);
+            return OK();
+        }catch(BaseException e) {
+            SpringMVCContextHolder.getSystemLogger().error(e);
+            return this.error(e);
+        }catch (Exception e) {
+            SpringMVCContextHolder.getSystemLogger().error(e);
+            return this.error(SystemCode.SAVE_DATA_FILE.getValue(), SystemCode.SAVE_DATA_FILE.getText());
+        }
+    }
 }
diff --git a/home-server-admin/src/main/java/com/home/xining/service/ReceiptDocumentService.java b/home-server-admin/src/main/java/com/home/xining/service/ReceiptDocumentService.java
index 1de0712..0e81950 100644
--- a/home-server-admin/src/main/java/com/home/xining/service/ReceiptDocumentService.java
+++ b/home-server-admin/src/main/java/com/home/xining/service/ReceiptDocumentService.java
@@ -1,6 +1,7 @@
 package com.home.xining.service;
 
 import cn.hutool.core.collection.CollectionUtil;
+import com.google.common.collect.Sets;
 import com.home.xining.config.CmnConst;
 import com.home.xining.service.idel.IReceiptDocumentService;
 import com.product.common.lang.StringUtils;
@@ -17,7 +18,9 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.Arrays;
 import java.util.List;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -74,6 +77,38 @@
 		return baseDao.update(fse);
 	}
 
+	/**
+	 * 淇濆瓨
+	 * @param fse
+	 */
+	@Override
+	@Transactional
+	public void save(FieldSetEntity fse) {
+		String curMember = fse.getString("cur_member");
+		if (!StringUtils.isEmpty(curMember)) {
+			String allMember = fse.getString("all_member");
+			if (StringUtils.isEmpty(allMember)) {
+				fse.setValue("all_member", curMember);
+			} else {
+				Set<String> allMemberSet = Sets.newLinkedHashSet();
+				allMemberSet.addAll(Arrays.asList(allMember.split(",")));
+				allMemberSet.addAll(Arrays.asList(curMember.split(",")));
+				fse.setValue("all_member", BaseUtil.collection2String(allMemberSet));
+			}
+			fse.setValue("cur_member", null);
+		}
+		baseDao.saveFieldSetEntity(fse);
+	}
+
+	/**
+	 * 绉戝憳閫�鍥炵壒娈婂鐞�
+	 * @param fse
+	 */
+	public void memberBack(FieldSetEntity fse) {
+		fse.setValue("all_member", null);
+		baseDao.saveFieldSetEntity(fse);
+	}
+
 
 	//鏀舵枃鎶勯�佸眬闀�
 	public Boolean sendToLeader(FieldSetEntity record, String jobPostName) {
diff --git a/home-server-admin/src/main/java/com/home/xining/service/idel/IReceiptDocumentService.java b/home-server-admin/src/main/java/com/home/xining/service/idel/IReceiptDocumentService.java
index e30007c..2a28abc 100644
--- a/home-server-admin/src/main/java/com/home/xining/service/idel/IReceiptDocumentService.java
+++ b/home-server-admin/src/main/java/com/home/xining/service/idel/IReceiptDocumentService.java
@@ -10,4 +10,6 @@
  */
 public interface IReceiptDocumentService {
     Boolean isPrint(FieldSetEntity fse);
+
+    void save(FieldSetEntity fse);
 }

--
Gitblit v1.9.2