diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/process/OrderProcessServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/process/OrderProcessServiceImpl.java index c01f71e36..a0fdcea1c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/process/OrderProcessServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/process/OrderProcessServiceImpl.java @@ -2,12 +2,10 @@ package com.cf.imes.module.executor.service.process; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; -import com.cf.imes.framework.common.enums.ProcessProcessingTypeEnum; import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO; import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO; import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO; -import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO; import com.cf.imes.module.executor.dal.dataobject.processStep.ProcessStepDO; import com.cf.imes.module.executor.dal.dataobject.processStepItem.OrderProcessStepItemDO; import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper; @@ -21,7 +19,6 @@ import com.cf.imes.module.executor.enums.OrderStatusEnum; import com.cf.imes.module.executor.enums.ProcessTypeEnum; import com.cf.imes.module.system.api.process.ProcessGroupApi; import com.cf.imes.module.system.api.process.dto.ProcessListReqDTO; -import com.cf.imes.module.system.api.process.dto.ProcessRespDTO; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -31,15 +28,14 @@ import org.springframework.validation.annotation.Validated; import com.cf.imes.module.executor.controller.admin.process.vo.*; import com.cf.imes.module.executor.dal.dataobject.process.OrderProcessDO; -import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.module.executor.dal.mysql.process.OrderProcessMapper; import java.math.BigDecimal; -import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; @@ -84,7 +80,6 @@ public class OrderProcessServiceImpl implements OrderProcessService { @Resource private GoodsMapper goodsMapper; - private static Integer INDEX = 0; @Override @Transactional(rollbackFor = Exception.class) @@ -115,11 +110,11 @@ public class OrderProcessServiceImpl implements OrderProcessService { // 需要获取工序组的具体信息,以及工序组中工序的信息,然后将工序组中工序的信息插入到生产单工序步骤表中 ProcessListReqDTO processListReqDTO = processGroupApi.getProcessGroupDetail(createReqVO.getGroupId()); - + AtomicInteger INDEX = new AtomicInteger(0); processListReqDTO.getLists().forEach(processRespDTO -> { Long processStepDOId = (Long) identifierGenerator.nextId(null); ProcessStepDO processStepDO = BeanUtils.toBean(processRespDTO, ProcessStepDO.class).setId(processStepDOId).setOrderId(createReqVO.getOrderId()) - .setStatus(false).setProcessinfoId(processRespDTO.getId()).setOrderProcessId(orderProcess.getId()).setFinishTime(null).setSort(INDEX++);// 计划日期没有填写 + .setStatus(false).setProcessinfoId(processRespDTO.getId()).setOrderProcessId(orderProcess.getId()).setFinishTime(null).setSort(INDEX.getAndIncrement());// 计划日期没有填写 processStepDOS.add(processStepDO); // 生产单中是否存在加工组,若存在加工组,需要逐条加工组信息写入到生产单工序步骤表 @@ -171,7 +166,7 @@ public class OrderProcessServiceImpl implements OrderProcessService { } } }); - INDEX = 0; + INDEX.set(0); // 修改生产单的状态 orderMapper.updateOrderStatus(createReqVO.getOrderId(), OrderStatusEnum.NO_SORT.getStatus(), SecurityFrameworkUtils.getLoginUser().getOrganId()); // 批量插入 diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelReadUtil.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelReadUtil.java index 86e2b8e64..aa1211d3e 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelReadUtil.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelReadUtil.java @@ -1,10 +1,9 @@ package com.cf.imes.module.executor.util.fileConversion.admin.files.excel; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.map.MapUtil; import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.ExcelWriter; -import com.alibaba.excel.write.metadata.WriteSheet; -import com.alibaba.excel.write.metadata.fill.FillConfig; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.nacos.common.utils.StringUtils; @@ -15,25 +14,21 @@ import com.cf.imes.module.system.api.dict.dto.DictDataRespDTO; import com.cf.imes.module.system.enums.DictTypeConstants; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import org.springframework.util.ResourceUtils; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletResponse; import java.io.*; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; @Slf4j @Component public class ExcelReadUtil { // 文件读取 - - private Boolean index = true; - - private int isErr; + private AtomicInteger isErr = new AtomicInteger(0); @Resource private DictDataApi dictDataApi; @@ -50,12 +45,13 @@ public class ExcelReadUtil { // 文件读取 List> dataLists = excelListener.getDataLists();// 读取的内容 List list = new ArrayList<>();// plate + AtomicBoolean index = new AtomicBoolean(true); dataLists.forEach( item -> { if (item.get(0).equals("###")) { - index = false; + index.set(false); } - if (index) { + if (index.get()) { orderMap.put(item.get(0), item.get(1)); orderMap.put(item.get(12), item.get(13)); } else { @@ -66,12 +62,11 @@ public class ExcelReadUtil { // 文件读取 } } ); - index = true; + index.set(true); + if (MapUtil.isEmpty(orderMap) || CollectionUtil.isEmpty(list)) { + isErr.set(-1); + } map.put("order", orderMap); - if (orderMap.size() == 0) - isErr = -1; - if (list.size() == 0) - isErr = -1; map.put("plate", list); return map; @@ -391,7 +386,7 @@ public class ExcelReadUtil { // 文件读取 } if (!flag) { - isErr++; + isErr.getAndIncrement(); } JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(errList));// 错误列表 vo.setResult(String.valueOf(jsonArray)); @@ -432,10 +427,10 @@ public class ExcelReadUtil { // 文件读取 } public int isErr() { - return isErr; + return isErr.get(); } public void setErr(int isErr) { - this.isErr = isErr; + this.isErr.set(isErr); } } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/PermissionServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/PermissionServiceImpl.java index b90ce0250..a4a7ce9e2 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/PermissionServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/PermissionServiceImpl.java @@ -172,8 +172,9 @@ public class PermissionServiceImpl implements PermissionService { throw new ServiceException(ErrorCodeConstants.ROLE_NOT_EXISTS); } // 前端没传或者查一次后切换了组织导致跟角色组织不一致的统一为角色的组织 - if (Objects.isNull(organId) || ObjectUtil.notEqual(role.getOrganId(), organId)) { - organId = role.getOrganId(); + Long roleOrganId = role.getOrganId(); + if (Objects.isNull(organId) || ObjectUtil.notEqual(roleOrganId, organId)) { + organId = roleOrganId; } final Long finalOrganId = organId; @@ -304,6 +305,8 @@ public class PermissionServiceImpl implements PermissionService { Set userIds = reqVO.getUserIds(); // 组织id Long organId = reqVO.getOrganId(); + // 角色id + Long roleId = reqVO.getRoleId(); // 超管不传组织id则操作本机构角色 // 非超管不传组织id不允许操作 if (isSupAdmin) { @@ -313,8 +316,18 @@ public class PermissionServiceImpl implements PermissionService { throw new ServiceException(ErrorCodeConstants.ROLE_NOT_SUPERADMIN_NO_ORGAN_ID_OPER_ERROR); } } + // 查询角色获取角色的组织id,如果没有传入组织id就跟角色的组织统一 + RoleDO role = roleService.getRole(roleId); + if (Objects.isNull(role)) { + throw new ServiceException(ErrorCodeConstants.ROLE_NOT_EXISTS); + } + // 前端没传或者查一次后切换了组织导致跟角色组织不一致的统一为角色的组织 + Long roleOrganId = role.getOrganId(); + if (Objects.isNull(organId) || ObjectUtil.notEqual(roleOrganId, organId)) { + organId = roleOrganId; + } final Long finalOrganId = organId; - Long roleId = reqVO.getRoleId(); + // 当前用户不能操作含有自己的角色 if (CollectionUtil.isNotEmpty(userIds)) { Long incloudSelf = userIds.stream().filter(userId -> userId.equals(loginUser.getId())).findAny().orElse(null);