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/SgGxStepServiceImpl.java | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 178 insertions(+), 0 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxStepServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxStepServiceImpl.java
new file mode 100644
index 0000000..91fef81
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxStepServiceImpl.java
@@ -0,0 +1,178 @@
+package cn.gistack.sm.sg.service.impl;
+
+import cn.gistack.sm.sg.DO.SgGxRoleDO;
+import cn.gistack.sm.sg.DO.SgGxStepDO;
+import cn.gistack.sm.sg.DO.SgProgressReportDO;
+import cn.gistack.sm.sg.DTO.ProjectSearchDTO;
+import cn.gistack.sm.sg.VO.SgGxRoleVO;
+import cn.gistack.sm.sg.mapper.SgGxRoleMapper;
+import cn.gistack.sm.sg.mapper.SgGxStepMapper;
+import cn.gistack.sm.sg.mapper.SgProgressReportMapper;
+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 org.springblade.core.log.exception.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 施工工序步骤表 服务实现类
+ * </p>
+ *
+ * @author shenyijian
+ * @since 2024-06-13 15:46:18
+ */
+@Service
+public class SgGxStepServiceImpl extends ServiceImpl<SgGxStepMapper, SgGxStepDO> implements SgGxStepService {
+ @Autowired
+ private SgGxStepMapper sgGxStepMapper;
+ @Autowired
+ private SgGxRoleMapper sgGxRoleMapper;
+
+ @Autowired
+ private SgProgressReportMapper sgProgressReportMapper;
+
+ @Override
+ public void add(SgGxStepDO sgGxStepDO) {
+ List<SgGxStepDO> list= sgGxStepMapper.selectByGxInfoId(sgGxStepDO.getGxInfoId());
+ if (CollectionUtils.isNotEmpty(list)){
+ if (Integer.parseInt(sgGxStepDO.getGxStepNum()) - Integer.parseInt(list.get(0).getGxStepNum()) != 1){
+ throw new ServiceException("请按顺序配置工序");
+ }
+ }
+ this.save(sgGxStepDO);
+ }
+
+ @Override
+ public void updateOne(SgGxStepDO sgGxStepDO) {
+ this.updateById(sgGxStepDO);
+ }
+
+ @Override
+ public void delete(String id) {
+ SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(id);
+ if (!new LambdaQueryChainWrapper<>(sgGxRoleMapper).eq(SgGxRoleDO::getGxStepId,id).list().isEmpty()){
+ throw new ServiceException(sgGxStepDO.getGxStepName()+ "已绑定角色,无法删除");
+ }
+ List<SgGxStepDO> list= sgGxStepMapper.selectByGxInfoId(sgGxStepDO.getGxInfoId());
+ if (!sgGxStepDO.getGxStepNum().equals(list.get(0).getGxStepNum())){
+ throw new ServiceException("请按顺序删除工序步骤");
+ }
+ this.removeById(id);
+ }
+
+ @Override
+ public IPage<SgGxStepDO> queryPageList(IPage<SgGxStepDO> page, ProjectSearchDTO searchDTO) {
+ List<SgGxStepDO> list = sgGxStepMapper.queryPageList(page,searchDTO);
+ return page.setRecords(list);
+ }
+
+ /**
+ * 新增工序角色配置逻辑
+ * @param sgGxRoleVO
+ */
+ @Override
+ public void insertSgGxRole(SgGxRoleVO sgGxRoleVO){
+
+
+ if (sgGxRoleVO.getGxStepId()==null){
+ throw new ServiceException("工序步骤参数错误");
+ }
+ if (sgGxRoleVO.getGxDeviceType()==null){
+ throw new ServiceException("工序类型参数错误");
+ }
+
+ List<SgGxRoleDO> sgGxRoleDOS = sgGxRoleMapper.selectSgGxRole(sgGxRoleVO.getGxDeviceType(), sgGxRoleVO.getGxStepId());
+ if (sgGxRoleDOS==null||sgGxRoleDOS.size()>0){
+ throw new ServiceException("已存在相同的工序角色配置");
+ }
+ List<SgGxRoleDO> sgGxRoles=new ArrayList<>();
+
+ if (sgGxRoleVO.getRoleIds()==null||sgGxRoleVO.getRoleIds().size()==0){
+ throw new ServiceException("工序角色参数错误");
+ }
+ List<String> roleIds = sgGxRoleVO.getRoleIds();
+ for (int i = 0; i <roleIds.size() ; i++) {
+ SgGxRoleDO sgGxRoleDO=new SgGxRoleDO();
+ sgGxRoleDO.setGxDeviceType(sgGxRoleVO.getGxDeviceType());
+ sgGxRoleDO.setGxStepId(sgGxRoleVO.getGxStepId());
+ sgGxRoleDO.setRoleId(roleIds.get(i));
+ sgGxRoleDO.setSgOrder(sgGxRoleVO.getOrders().get(i));
+ sgGxRoles.add(sgGxRoleDO);
+ }
+ sgGxRoleMapper.insertBach(sgGxRoles);
+ }
+
+
+ /**
+ * 更新工序角色配置
+ * @param sgGxRoleVO
+ */
+ @Override
+@Transactional
+public void updateSgGxRole(SgGxRoleVO sgGxRoleVO){
+ String gxStepId = sgGxRoleVO.getGxStepId();
+ List<SgProgressReportDO> reportDOS = new LambdaQueryChainWrapper<>(sgProgressReportMapper).eq(SgProgressReportDO::getGxStepId, gxStepId).list();
+ List<SgGxRoleDO> list = new LambdaQueryChainWrapper<>(sgGxRoleMapper).eq(SgGxRoleDO::getGxStepId, gxStepId).orderByAsc(SgGxRoleDO::getSgOrder).list();
+ List<String> roles = list.stream().map(SgGxRoleDO::getRoleId).map(Object::toString).collect(Collectors.toList());
+ List<Integer> orders = list.stream().map(SgGxRoleDO::getSgOrder).collect(Collectors.toList());
+ if (!reportDOS.isEmpty()){
+ if (! roles.equals(sgGxRoleVO.getRoleIds()) || ! orders.equals(sgGxRoleVO.getOrders())) {
+ throw new ServiceException("此配置已有上报记录,不允许修改");
+ }
+ }
+ if (sgGxRoleVO.getGxStepId()==null){
+ throw new ServiceException("工序步骤参数错误");
+ }
+ if (sgGxRoleVO.getGxDeviceType()==null){
+ throw new ServiceException("工序类型参数错误");
+ }
+
+ List<SgGxRoleDO> sgGxRoleDOS = sgGxRoleMapper.selectSgGxRole(sgGxRoleVO.getGxDeviceType(), sgGxRoleVO.getGxStepId());
+ if (sgGxRoleDOS==null||sgGxRoleDOS.size()>0){
+ //删除原来的
+ sgGxRoleMapper.deleteSgGxRoleDOs(sgGxRoleVO.getGxDeviceType(),sgGxRoleVO.getGxStepId());
+ }
+ List<SgGxRoleDO> sgGxRoles=new ArrayList<>();
+
+ if (sgGxRoleVO.getRoleIds()==null||sgGxRoleVO.getRoleIds().size()==0){
+ throw new ServiceException("工序角色参数错误");
+ }
+ List<String> roleIds = sgGxRoleVO.getRoleIds();
+ for (int i = 0; i <roleIds.size() ; i++) {
+ SgGxRoleDO sgGxRoleDO=new SgGxRoleDO();
+ sgGxRoleDO.setGxDeviceType(sgGxRoleVO.getGxDeviceType());
+ sgGxRoleDO.setGxStepId(sgGxRoleVO.getGxStepId());
+ sgGxRoleDO.setRoleId(roleIds.get(i));
+ sgGxRoleDO.setSgOrder(sgGxRoleVO.getOrders().get(i));
+ sgGxRoles.add(sgGxRoleDO);
+ }
+ sgGxRoleMapper.insertBach(sgGxRoles);
+}
+
+ /**
+ * 获取绑定的角色进行回显
+ *
+ * @param gxDeviceType
+ * @param gxStepId
+ * @return
+ */
+ @Override
+ public List<String> getSgGxRoles(String gxDeviceType, String gxStepId) {
+ return sgGxRoleMapper.getSgGxRoles(gxDeviceType, gxStepId);
+
+ }
+
+ @Override
+ public List<SgGxStepDO> sgGxStepList() {
+ return sgGxStepMapper.getDEviceGXtwo();
+ }
+}
--
Gitblit v1.9.3