From 7f3e843cbdced5d9deb2234648fef360cd296f83 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Thu, 05 Mar 2026 09:40:00 +0800
Subject: [PATCH] 实施清单管理,加个字段,结果送达方式:站内信、短信

---
 drone-service/drone-gd/src/main/java/org/sxkj/gd/implement/service/impl/GdImplementListServiceImpl.java |  106 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 98 insertions(+), 8 deletions(-)

diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/implement/service/impl/GdImplementListServiceImpl.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/implement/service/impl/GdImplementListServiceImpl.java
index 6eaf453..be8c0ca 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/implement/service/impl/GdImplementListServiceImpl.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/implement/service/impl/GdImplementListServiceImpl.java
@@ -16,20 +16,34 @@
  */
 package org.sxkj.gd.implement.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.jetbrains.annotations.NotNull;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.sxkj.gd.implement.dto.GdImplementListDTO;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.sxkj.common.utils.HeaderUtils;
+import org.sxkj.gd.common.GenericConverter;
+import org.sxkj.gd.common.IdParam;
 import org.sxkj.gd.implement.entity.GdImplementListEntity;
-import org.sxkj.gd.implement.param.GdImplementListPageParam;
-import org.sxkj.gd.implement.vo.GdImplementListVO;
+import org.sxkj.gd.implement.entity.GdThingListMaterialRelEntity;
 import org.sxkj.gd.implement.excel.GdImplementListExcel;
 import org.sxkj.gd.implement.mapper.GdImplementListMapper;
+import org.sxkj.gd.implement.param.GdImplementListPageParam;
+import org.sxkj.gd.implement.param.ThingListMaterialRelationParam;
 import org.sxkj.gd.implement.service.IGdImplementListService;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springblade.core.mp.base.BaseServiceImpl;
+import org.sxkj.gd.implement.service.IGdThingListMaterialRelService;
+import org.sxkj.gd.implement.vo.GdImplementListVO;
+import org.sxkj.gd.implement.vo.GetThingListMaterialRelationVO;
+import org.sxkj.gd.implement.wrapper.GdThingListMaterialRelWrapper;
 import org.sxkj.system.cache.SysCache;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -39,15 +53,70 @@
  * @since 2026-01-31
  */
 @Service
+@AllArgsConstructor
 public class GdImplementListServiceImpl extends BaseServiceImpl<GdImplementListMapper, GdImplementListEntity> implements IGdImplementListService {
+
+	private final IGdThingListMaterialRelService gdThingListMaterialRelService;
 
 	@Override
 	public IPage<GdImplementListVO> selectGdImplementListPage(IPage<GdImplementListVO> page, GdImplementListPageParam gdImplementList) {
-		List<Long> deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
+		List<Long> deptList = new ArrayList<>();
+		if (!AuthUtil.isAdministrator()) {
+			deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
+		}
 		gdImplementList.setDeptList(deptList);
+		gdImplementList.setAreaCode(HeaderUtils.formatAreaCode(gdImplementList.getAreaCode()));
 		return page.setRecords(baseMapper.selectGdImplementListPage(page, gdImplementList));
 	}
 
+	@Override
+	public GetThingListMaterialRelationVO getThingListMaterialRelation(IdParam idParam) {
+		GetThingListMaterialRelationVO getThingListMaterialRelationVO = new GetThingListMaterialRelationVO();
+
+		// 查询实施清单详情
+		GdImplementListEntity gdImplement = getOne(Condition.getQueryWrapper(GenericConverter.convert(idParam, GdImplementListEntity.class)));
+		getThingListMaterialRelationVO.setImplementListId(gdImplement.getId());
+		getThingListMaterialRelationVO.setProcessDefinitionId(gdImplement.getProcessDefinitionId());
+		getThingListMaterialRelationVO.setProcessInstanceId(gdImplement.getProcessInstanceId());
+		getThingListMaterialRelationVO.setResultConfig(gdImplement.getResultConfig());
+
+		List<GdThingListMaterialRelEntity> gdThingListMaterialRelEntityList = gdThingListMaterialRelService.list(
+			Wrappers.<GdThingListMaterialRelEntity>query()
+				.lambda().eq(GdThingListMaterialRelEntity::getImplementListId, idParam.getId()));
+
+		getThingListMaterialRelationVO.setThingListMaterialRels(GdThingListMaterialRelWrapper.build().listVO(gdThingListMaterialRelEntityList));
+		return getThingListMaterialRelationVO;
+	}
+
+	@Override
+	@Transactional
+	public boolean thingListMaterialRelation(ThingListMaterialRelationParam param) {
+
+		if (null != param.getImplementListId()) {
+
+			// 关联关系先删除,在新增
+			gdThingListMaterialRelService.remove(
+				new QueryWrapper<GdThingListMaterialRelEntity>()
+					.eq("implement_list_id", param.getImplementListId()));
+
+			List<GdThingListMaterialRelEntity> gdThingListMaterialRelEntityList = getGdThingListMaterialRelEntities(param);
+
+			// 批量新增材料关联关系
+			gdThingListMaterialRelService.saveBatch(gdThingListMaterialRelEntityList);
+
+			// 保存流程关联关系
+			GdImplementListEntity gdImplementList = new GdImplementListEntity();
+			gdImplementList.setId(param.getImplementListId());
+			gdImplementList.setProcessDefinitionId(param.getProcessDefinitionId());
+			gdImplementList.setProcessInstanceId(param.getProcessInstanceId());
+			gdImplementList.setResultConfig(param.getResultConfig());
+			updateById(gdImplementList);
+
+			return true;
+		}
+
+		return false;
+	}
 
 	@Override
 	public List<GdImplementListExcel> exportGdImplementList(Wrapper<GdImplementListEntity> queryWrapper) {
@@ -58,4 +127,25 @@
 		return gdImplementListList;
 	}
 
+	/**
+	 * 获取材料关联关系(对象转换)
+	 * @param param 材料关联关系参数
+	 * @return 材料关联关系
+	 */
+	@NotNull
+	private static List<GdThingListMaterialRelEntity> getGdThingListMaterialRelEntities(ThingListMaterialRelationParam param) {
+		List<GdThingListMaterialRelEntity> gdThingListMaterialRelEntityList = new ArrayList<>();
+		int index = 0;
+		for (Long materialId : param.getMaterialIds()) {
+			GdThingListMaterialRelEntity gdThingListMaterialRelEntity = new GdThingListMaterialRelEntity();
+			gdThingListMaterialRelEntity.setImplementListId(param.getImplementListId());
+			gdThingListMaterialRelEntity.setMaterialId(materialId);
+			gdThingListMaterialRelEntity.setSort(index);
+			index += 1;
+
+			gdThingListMaterialRelEntityList.add(gdThingListMaterialRelEntity);
+		}
+		return gdThingListMaterialRelEntityList;
+	}
+
 }

--
Gitblit v1.9.3