From 08a962d2925baa255207fdf979e6fee794f1773b Mon Sep 17 00:00:00 2001
From: ke <893754509@qq.com>
Date: Fri, 19 Jul 2024 12:25:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectPersonConfigServiceImpl.java |   77 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 77 insertions(+), 0 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectPersonConfigServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectPersonConfigServiceImpl.java
new file mode 100644
index 0000000..0e404b2
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectPersonConfigServiceImpl.java
@@ -0,0 +1,77 @@
+package cn.gistack.sm.sg.service.impl;
+
+import cn.gistack.sm.sg.DO.SgProgressReportDO;
+import cn.gistack.sm.sg.DO.SgProjectPersonConfigDO;
+import cn.gistack.sm.sg.DO.SgProjectRolePersonV0;
+import cn.gistack.sm.sg.DTO.AddSgProjectPersonConfigDTO;
+import cn.gistack.sm.sg.DTO.ProjectSearchDTO;
+import cn.gistack.sm.sg.mapper.SgProgressReportMapper;
+import cn.gistack.sm.sg.mapper.SgProjectPersonConfigMapper;
+import cn.gistack.sm.sg.service.SgProjectPersonConfigService;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.log.exception.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 施工项目人员配置表 服务实现类
+ * </p>
+ *
+ * @author shenyijian
+ * @since 2024-06-15 11:45:35
+ */
+@Service
+public class SgProjectPersonConfigServiceImpl extends ServiceImpl<SgProjectPersonConfigMapper, SgProjectPersonConfigDO> implements SgProjectPersonConfigService {
+	@Autowired
+	private SgProjectPersonConfigMapper projectPersonConfigMapper;
+	@Autowired
+	private SgProgressReportMapper sgProgressReportMapper;
+	@Override
+	public List<String> getRoleList(ProjectSearchDTO searchDTO) {
+		List<String> list = projectPersonConfigMapper.getRoleList(searchDTO);
+		return list;
+	}
+
+	@Override
+	public void add(AddSgProjectPersonConfigDTO dto) {
+		for (SgProjectPersonConfigDO sgProjectPersonConfigDO : dto.getData()) {
+			Long id = sgProjectPersonConfigDO.getId();
+			Long userId = sgProjectPersonConfigDO.getUserId();
+			if (Objects.isNull(id)){
+				projectPersonConfigMapper.insert(sgProjectPersonConfigDO);
+			}else {
+				SgProjectPersonConfigDO old = projectPersonConfigMapper.selectById(id);
+				boolean isReport = !new LambdaQueryChainWrapper<>(sgProgressReportMapper).eq(SgProgressReportDO::getProframId, old.getProgramId()).list().isEmpty();
+				if (Objects.isNull(userId)){
+					if (isReport){
+						throw new ServiceException("此项目配置存在审批,不允许修改");
+					}
+					projectPersonConfigMapper.deleteById(id);
+				}else if (!old.getUserId().equals(sgProjectPersonConfigDO.getUserId())){
+					if (isReport){
+						throw new ServiceException("此项目配置存在审批,不允许修改");
+					}
+					projectPersonConfigMapper.updateById(sgProjectPersonConfigDO);
+				}
+			}
+		}
+	}
+
+	@Override
+	public List<SgProjectRolePersonV0> getList(ProjectSearchDTO searchDTO) {
+		List<SgProjectRolePersonV0> list =	projectPersonConfigMapper.getList(searchDTO);
+		return list;
+	}
+
+	@Override
+	public List<Map<String, Object>> getUserByRole(String roleId) {
+		return projectPersonConfigMapper.getUserByRole(roleId);
+	}
+}

--
Gitblit v1.9.3