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/SgGxServiceImpl.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 111 insertions(+), 0 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java
new file mode 100644
index 0000000..57ef6a0
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java
@@ -0,0 +1,111 @@
+package cn.gistack.sm.sg.service.impl;
+
+import cn.gistack.sm.sg.DO.SgGxDO;
+import cn.gistack.sm.sg.DO.SgGxStepDO;
+import cn.gistack.sm.sg.DO.SgReportUserDO;
+import cn.gistack.sm.sg.DTO.ProjectSearchDTO;
+import cn.gistack.sm.sg.VO.SgGxVO;
+import cn.gistack.sm.sg.mapper.SgGxMapper;
+import cn.gistack.sm.sg.mapper.SgGxStepMapper;
+import cn.gistack.sm.sg.mapper.SgProgressReportMapper;
+import cn.gistack.sm.sg.service.SgGxService;
+import cn.gistack.sm.sg.service.SgGxStepService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+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 org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 施工工序基本表 服务实现类
+ * </p>
+ *
+ * @author shenyijian
+ * @since 2024-06-13 15:46:18
+ */
+@Service
+public class SgGxServiceImpl extends ServiceImpl<SgGxMapper, SgGxDO> implements SgGxService {
+ @Autowired
+ private SgGxMapper sgGxMapper;
+
+ @Autowired
+ private SgGxStepMapper sgGxStepMapper;
+
+ @Autowired
+ private SgGxStepService sgGxStepService;
+
+ @Autowired
+ private SgProgressReportMapper sgProgressReportMapper;
+ @Override
+ public IPage<SgGxVO> queryPageList(IPage<SgGxVO> page, ProjectSearchDTO searchDTO) {
+ List<SgGxVO> list = sgGxMapper.queryPageList(page,searchDTO);
+ if (CollectionUtils.isNotEmpty(list)){
+ List<Long> ids = list.stream().map(SgGxDO::getId).collect(Collectors.toList());
+ List<Long> userIds = list.stream().map(SgGxDO::getCreateUser).collect(Collectors.toList());
+ List<Map<String,Object>> users = sgProgressReportMapper.getUserByIds(userIds);
+ List<SgGxStepDO> stepDOS = sgGxMapper.queryStepByIds(ids);
+ if (CollectionUtils.isNotEmpty(stepDOS)){
+ Map<Long, List<SgGxStepDO>> map = stepDOS.stream().collect(Collectors.groupingBy(SgGxStepDO::getGxInfoId));
+ for (SgGxVO sgGxDO : list) {
+ for (Map<String, Object> user : users) {
+ if (user.get("ID").equals(sgGxDO.getCreateUser())){
+ sgGxDO.setCreateUserName(user.get("REAL_NAME").toString());
+ }
+ }
+ List<SgGxStepDO> sgGxStepDOS = map.get(sgGxDO.getId());
+ if (CollectionUtils.isNotEmpty(sgGxStepDOS)){
+ sgGxDO.setStepDOList(sgGxStepDOS);
+ sgGxDO.setGxStepCount(sgGxStepDOS.size());
+ }
+ }
+ }
+ }
+ return page.setRecords(list);
+ }
+
+ @Override
+ public void add(SgGxDO sgGxDO) {
+ sgGxDO.setCreateUpdateTime();
+ if (sgGxMapper.selectByGxType(sgGxDO.getGxType())!= null){
+ throw new ServiceException("工序类型已存在");
+ }
+ this.save(sgGxDO);
+ }
+
+ @Override
+ public void update(SgGxDO sgGxDO) {
+ sgGxDO.setCreateUpdateTime();
+ SgGxDO one = sgGxMapper.selectByGxType(sgGxDO.getGxType());
+ if (one != null && one.getId()!= sgGxDO.getId() ){
+ throw new ServiceException("工序类型已存在");
+ }
+ this.updateById(sgGxDO);
+ }
+
+ @Override
+ public SgGxVO detail(Long id) {
+ SgGxVO byId = sgGxMapper.getById(id);
+ List<SgGxStepDO> stepDOS = sgGxMapper.queryStepByIds(List.of(id));
+ byId.setStepDOList(stepDOS);
+ return byId;
+ }
+
+ @Override
+ @Transactional
+ public void delete(Long id) {
+ SgGxDO byId = this.getById(id);
+ List<SgGxStepDO> list = new LambdaQueryChainWrapper<>(sgGxStepMapper).eq(SgGxStepDO::getGxInfoId, id).list();
+ if (CollectionUtils.isNotEmpty(list)){
+ throw new ServiceException("此工序存在工序步骤,不允许删除");
+ }
+ this.delete(id);
+ }
+}
--
Gitblit v1.9.3