From 1614f88b7feb3be9451a6698875715365f09ae83 Mon Sep 17 00:00:00 2001
From: 杜洪波 <1074825718@qq.com>
Date: 星期四, 16 十月 2025 17:08:51 +0800
Subject: [PATCH] 会议任务

---
 src/main/java/com/product/administration/controller/ConferenceManagerController.java |   25 ++++++++++++
 src/main/java/com/product/administration/service/ConferenceManagerService.java       |   66 +++++++++++++++++++++++++++++++++
 pom.xml                                                                              |    4 ++
 3 files changed, 95 insertions(+), 0 deletions(-)

diff --git a/pom.xml b/pom.xml
index e6a8ec2..b7f1a1c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,6 +47,10 @@
             <groupId>com.lx</groupId>
             <artifactId>product-server-data-export-import</artifactId>
         </dependency>
+		 <dependency>
+            <groupId>com.lx</groupId>
+            <artifactId>product-server-task</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.itextpdf</groupId>
             <artifactId>itextpdf</artifactId>
diff --git a/src/main/java/com/product/administration/controller/ConferenceManagerController.java b/src/main/java/com/product/administration/controller/ConferenceManagerController.java
index 6e1ccb8..f12186a 100644
--- a/src/main/java/com/product/administration/controller/ConferenceManagerController.java
+++ b/src/main/java/com/product/administration/controller/ConferenceManagerController.java
@@ -513,6 +513,31 @@
             return this.error(SystemCode.CONFERENCE_APPLY_FIND_FIAL.getValue(), SystemCode.CONFERENCE_APPLY_FIND_FIAL.getText() + e.getMessage());
         }
 	}
+    
+    /**
+     * 	鑾峰彇浼氳绾鍒楄〃
+     * @param request
+     * @return
+     */
+    @PostMapping("/find-meeting-minute/{version}")
+    @ApiVersion(1)
+    public String findMeetingMinute(HttpServletRequest request) {
+    	try {
+    		FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);
+        	// 鍒ゆ柇鍒嗛〉鍙傛暟鏄惁姝e父
+            if (StringUtils.isEmpty(fse.getString(CmnConst.UUID))
+                    && StringUtils.isEmpty(fse.getString("meeting_uuid"))) {
+                return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
+            }
+            return OK_List(conferenceManagerService.findMeetingMinute(fse));
+    	} catch (BaseException e) {
+    		e.printStackTrace();
+            return this.error(e.getCode(), e.getMessage());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return this.error(SystemCode.CONFERENCE_APPLY_FIND_FIAL.getValue(), SystemCode.CONFERENCE_APPLY_FIND_FIAL.getText() + e.getMessage());
+        }
+	}
 
     /**
      * 鍙戦�佹秷鎭�
diff --git a/src/main/java/com/product/administration/service/ConferenceManagerService.java b/src/main/java/com/product/administration/service/ConferenceManagerService.java
index 2412139..2317880 100644
--- a/src/main/java/com/product/administration/service/ConferenceManagerService.java
+++ b/src/main/java/com/product/administration/service/ConferenceManagerService.java
@@ -26,6 +26,7 @@
 import com.product.core.transfer.Transactional;
 import com.product.core.websocket.service.WebsocketMesssageServiceThread;
 import com.product.module.sys.entity.SystemUser;
+import com.product.oa.task.service.TaskDistributionService;
 import com.product.util.BaseUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -57,6 +58,8 @@
     QueryFilterService queryFilterService;
     @Autowired
     PermissionService permissionService;
+    @Autowired
+    TaskDistributionService taskDistributionService;
 
     /**
      * 浼氳瀹ゅ垪琛�
@@ -1250,6 +1253,69 @@
     	sbSql.append("\nLEFT JOIN product_oa_conference_apply B ON B.uuid = A.meeting_uuid");
     	return baseDao.listTable(sbSql.toString(), new Object[] {}, fse.getInteger(CmnConst.PAGESIZE), fse.getInteger(CmnConst.CPAGE));
     }
+    
+    
+    
+    /**
+     * 	浼氳绾璇︽儏
+     * @param fse
+     * @return
+     */
+    public FieldSetEntity findMeetingMinute(FieldSetEntity fse) {
+    	List<String> param = new ArrayList<>();
+    	String filter = null;
+    	if (StringUtils.isEmpty(fse.getUUID())) {
+			filter = "B.uuid = ?";
+			param.add(fse.getString("meeting_uuid"));
+		} else {
+			filter = "A.uuid = ?";
+			param.add(fse.getUUID());
+		}
+    	StringBuilder sbSql = new StringBuilder();
+    	sbSql.append("\nSELECT ");
+    	sbSql.append("\n  B.uuid AS meeting_uuid,B.meeting_topic,B.meeting_master,B.meeting_recorder,B.participator,CONCAT(start_time,'-',end_time)AS meeting_time, ");
+    	sbSql.append("\n  A.uuid,A.meeting_minute,A.copy_user,A.flow_flag");
+    	sbSql.append("\nFROM product_oa_conference_minute A");
+    	sbSql.append("\nRIGHT JOIN product_oa_conference_apply B ON B.uuid = A.meeting_uuid");
+    	sbSql.append("\nWHERE ").append(filter);
+    	FieldSetEntity fseMeetingMinute = baseDao.getFieldSetEntityBySQL(sbSql.toString(), param.toArray(), false);
+    	baseDao.loadPromptData(fseMeetingMinute);
+    	if(!StringUtils.isEmpty(fseMeetingMinute.getUUID())) {
+    		DataTableEntity dtMeetingMinute = baseDao.listTable("product_oa_conference_minute_sub", "main_uuid = ?", new Object[] {fseMeetingMinute.getUUID()});
+    		fseMeetingMinute.addSubDataTable(dtMeetingMinute);
+    	}
+    	return fseMeetingMinute;
+    }
+    
+    /**
+     * 鑷姩鍙戣捣浠诲姟
+     * @param fse
+     */
+    public void autoMeetingtask(FieldSetEntity fse) {
+    	DataTableEntity dtMeetingMinute = fse.getSubDataTable("product_oa_conference_minute_sub");
+    	if(!BaseUtil.dataTableIsEmpty(dtMeetingMinute)) {
+    		for (int i = 0; i < dtMeetingMinute.getRows(); i++) {
+				FieldSetEntity fseMeetingMinute = dtMeetingMinute.getFieldSetEntity(i);
+				if ("1".equals(fseMeetingMinute.getString("item_task"))) {
+					FieldSetEntity fseOaTask = new FieldSetEntity("product_oa_task_distribution");
+					fseOaTask.setValue("task_name", fseMeetingMinute.getString("item_name"));
+					fseOaTask.setValue("task_description", fseMeetingMinute.getString("item_detail"));
+					fseOaTask.setValue("task_persons", fseMeetingMinute.getString("item_user"));
+					fseOaTask.setValue("owner", fseMeetingMinute.getString("item_mananger"));
+					fseOaTask.setValue("task_start_time", fseMeetingMinute.getString("plan_finish_time"));
+					fseOaTask.setValue("task_finish_time", fseMeetingMinute.getString("plan_start_time"));
+					fseOaTask.setValue("task_source", 1);
+					fseOaTask.setValue("task_status", 1);
+					fseOaTask.setValue("task_complete_sche", 0);
+					fseOaTask.setValue("org_level_uuid", SpringMVCContextHolder.getCurrentUser().getOrg_level_uuid());
+					baseDao.add(fseOaTask);
+					
+					// 鍙戦�佷换鍔℃秷鎭�
+					taskDistributionService.sendTaskMessage(fseOaTask, fseMeetingMinute.getString("item_user"), "admin", 1, fseOaTask.getUUID());
+				}
+			}
+    	}
+    }
 
     public void taskMeetingRminder() {
         DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_OA_CONFERENCE_APPLY, " flow_flag=2 and ( to_remind IS NULL OR to_remind = 0 ) AND reminder_time > 0 and reminder_time>=(( UNIX_TIMESTAMP(start_time ) - UNIX_TIMESTAMP( now( ) ) ) / 60) ", new Object[]{});

--
Gitblit v1.9.2