| | |
| | | import org.jeecg.modules.flowable.service.IFlowTaskService; |
| | | import org.jeecg.modules.mdc.entity.MdcEquipment; |
| | | import org.jeecg.modules.mdc.service.IMdcEquipmentService; |
| | | import org.jeecg.modules.system.entity.MdcProduction; |
| | | import org.jeecg.modules.system.service.IMdcProductionService; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | @Autowired |
| | | private IProcessStreamService processStreamService; |
| | | @Autowired |
| | | private IWorkStepService workStepService; |
| | | @Autowired |
| | | private IPermissionStreamNewService permissionStreamNewService; |
| | | @Autowired |
| | | private IDocClassificationService classificationService; |
| | | @Autowired |
| | | private IToEquipmentTaskService equipmentTaskService; |
| | |
| | | @Autowired |
| | | private IFlowTaskService flowTaskService; |
| | | @Autowired |
| | | private IDeviceTypeService deviceTypeService; |
| | | @Autowired |
| | | private IFlowMyBusinessService flowMyBusinessService; |
| | | @Autowired |
| | | private PermissionService permissionService; |
| | | |
| | | @Value("${securedoc.whether}") |
| | | private String whether; |
| | |
| | | if(!b) |
| | | ExceptionCast.cast(ActivitiCode.ACT_APPROVE_ERROR); |
| | | if(up.getStatus() == 2) { |
| | | DocInfo docInfo; |
| | | //同意操作 |
| | | if (StrUtil.isNotEmpty(en.getStepId())){ |
| | | //工步下设备类指派 |
| | | docInfo = docInfoService.getByDocAttrAndDocId(en.getDocId(), 6, en.getDeviceTypeId()); |
| | | }else { |
| | | docInfo = docInfoService.getByDocAttrAndDocId(en.getDocId(), 5, en.getDeviceTypeId()); |
| | | } |
| | | if(docInfo == null || docInfo.getDocStatus() == 3) |
| | | ExceptionCast.cast(ActivitiCode.ACT_DOC_ERROR); |
| | | DocInfo docInfo = docInfoService.getByDocAttrAndDocId(en.getDocId(), Integer.valueOf(en.getAttributionType()), en.getAttributionId()); |
| | | if(docInfo == null ) |
| | | ExceptionCast.cast(ActivitiCode.ACT_DOC_ERROR); |
| | | MdcEquipment mdcEquipment = iMdcEquipmentService.getById(en.getDeviceId()); |
| | | if(mdcEquipment == null) |
| | | ExceptionCast.cast(ActivitiCode.ACT_ASSIGN_DEVICE_NONE); |
| | |
| | | } |
| | | |
| | | private PermissionStreamNew getPermissionStreams(AssignFileStream stream) { |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | DeviceType deviceType = deviceTypeService.getById(stream.getAttributionId()); |
| | | String attributionId = deviceType != null ? deviceType.getAttributionId() : stream.getAttributionId(); |
| | | |
| | | PermissionStreamNew permissionStreams; |
| | | if (stream.getAttributionType().equals("5")) { |
| | | // 工序 |
| | | permissionStreams = handleProcess(stream, attributionId, user); |
| | | } else { |
| | | // 工步 |
| | | permissionStreams = handleWorkStep(stream, attributionId, user); |
| | | } |
| | | if (permissionStreams == null) { |
| | | PermissionStreamNew permissionStreamNew = permissionService.getPermissionStreams(stream); |
| | | if (permissionStreamNew == null) { |
| | | ExceptionCast.cast(ActivitiCode.ACT_NODE_DEPART_NONE); |
| | | } |
| | | return permissionStreams; |
| | | return permissionStreamNew ; |
| | | } |
| | | |
| | | private PermissionStreamNew handleProcess(AssignFileStream stream, String attributionId, LoginUser user) { |
| | | ProcessStream processStream = processStreamService.getById(attributionId); |
| | | if (processStream == null) { |
| | | ExceptionCast.cast(CommonCode.INVALID_PARAM); |
| | | } |
| | | stream.setProductId(processStream.getProductId()); |
| | | stream.setComponentId(processStream.getComponentId()); |
| | | stream.setPartsId(processStream.getPartsId()); |
| | | stream.setProcessId(processStream.getProcessId()); |
| | | if (deviceTypeService.getById(stream.getAttributionId()) != null) { |
| | | stream.setDeviceTypeId(deviceTypeService.getById(stream.getAttributionId()).getId()); |
| | | } |
| | | return permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(processStream.getProcessId(), user.getId(), "5"); |
| | | } |
| | | |
| | | private PermissionStreamNew handleWorkStep(AssignFileStream stream, String attributionId, LoginUser user) { |
| | | WorkStep workStep = workStepService.getById(attributionId); |
| | | if (workStep == null) { |
| | | ExceptionCast.cast(CommonCode.INVALID_PARAM); |
| | | } |
| | | stream.setProductId(workStep.getProductId()); |
| | | stream.setComponentId(workStep.getComponentId()); |
| | | stream.setPartsId(workStep.getPartsId()); |
| | | stream.setProcessId(workStep.getProcessId()); |
| | | stream.setStepId(workStep.getId()); |
| | | if (deviceTypeService.getById(stream.getAttributionId()) != null) { |
| | | stream.setDeviceTypeId(deviceTypeService.getById(stream.getAttributionId()).getId()); |
| | | } |
| | | return permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(workStep.getId(), user.getId(), "6"); |
| | | } |
| | | |
| | | //获取部门信息 |
| | | //todo 修改 |
| | | private List<String> getDepartIds(List<PermissionStream> permissionStreams, String userId) { |
| | | Map<String, MdcProduction> map = iMdcProductionService.getUserAssignedDepart(userId); |
| | | List<String> departIds = permissionStreams.stream() |
| | | .filter(item -> map.containsKey(item.getDepartId())) |
| | | .map(PermissionStream::getDepartId) |
| | | .collect(Collectors.toList()); |
| | | if (departIds.isEmpty()) { |
| | | ExceptionCast.cast(ActivitiCode.ACT_USER_NOT_PERM); |
| | | } |
| | | return departIds; |
| | | } |
| | | |
| | | |
| | | //封装数据 |
| | | private void saveBusinessObject(AssignFileStream stream, String userId) { |