| | |
| | | import org.jeecg.modules.dnc.response.ProcessInfoCode; |
| | | import org.jeecg.modules.dnc.service.IDeviceTypeService; |
| | | import org.jeecg.modules.dnc.utils.ValidateUtil; |
| | | import org.jeecg.modules.mdc.entity.MdcEquipment; |
| | | import org.jeecg.modules.mdc.service.IMdcEquipmentService; |
| | | import org.jeecg.modules.mdc.service.IMdcProductionEquipmentService; |
| | | import org.jeecg.modules.system.entity.MdcProductionEquipment; |
| | | import org.jeecg.modules.system.entity.SysParams; |
| | | import org.jeecg.modules.system.service.ISysParamsService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeMapper, DeviceType> implements IDeviceTypeService { |
| | |
| | | @Autowired |
| | | private ISysParamsService sysParamsService; |
| | | |
| | | @Autowired |
| | | private IMdcEquipmentService mdcEquipmentService; |
| | | |
| | | @Autowired |
| | | private IMdcProductionEquipmentService mdcProductionEquipmentService; |
| | | |
| | | /** |
| | | * 新增设备类 |
| | | * @param deviceType |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result<?> add(DeviceType deviceType){ |
| | | SysParams sysParams = sysParamsService.getSysPramBySettingKey("dnc_nc_device_type"); |
| | | if ("-1".equals(sysParams.getSettingValue())){ |
| | | SysParams sysParams; |
| | | if (deviceType.getAttributionType()==5){ |
| | | //工序设备类 |
| | | sysParams = sysParamsService.getSysPramBySettingKey("dnc_device_type_process"); |
| | | }else { |
| | | //工步设备类 |
| | | sysParams = sysParamsService.getSysPramBySettingKey("dnc_device_type_step"); |
| | | } |
| | | if ("0".equals(sysParams.getSettingValue())){ |
| | | //未启动设备类 |
| | | return Result.error("设备类未启动,请联系管理员"); |
| | | }else { |
| | | //已启动设备类 |
| | | if(deviceType == null) |
| | | ExceptionCast.cast(CommonCode.INVALID_PARAM); |
| | | if(!ValidateUtil.validateString(deviceType.getProcessStepId())) |
| | | if(!ValidateUtil.validateString(deviceType.getAttributionId())) |
| | | Result.error("无效的设备类"); |
| | | List<DeviceType> deviceTypes=this.getByProductionIdAndDeviceManagementId(deviceType); |
| | | if(!deviceTypes.isEmpty()){ |
| | | return Result.error("设备类名称已存在"); |
| | | } |
| | | boolean save = this.save(deviceType); |
| | | if(save){ |
| | | return Result.OK("添加设备类成功"); |
| | |
| | | * @param deviceType |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result<?> edit(DeviceType deviceType){ |
| | | if(deviceType == null) |
| | | ExceptionCast.cast(CommonCode.INVALID_PARAM); |
| | | if(deviceType.getDeviceType()==null) |
| | | if(deviceType.getDeviceManagementId()==null) |
| | | ExceptionCast.cast(ProcessInfoCode.PROCESS_NAME_NONE); |
| | | DeviceType en = super.getById(deviceType.getId()); |
| | | if(en == null) |
| | | ExceptionCast.cast(ProcessInfoCode.WORKSTEP_NOT_EXIST); |
| | | //判断设备类是否为本身 |
| | | if(en.getDeviceManagementId().equals(deviceType.getDeviceManagementId()) |
| | | &&en.getProductionId().equals(deviceType.getProductionId()) |
| | | &&en.getAttributionId().equals(deviceType.getAttributionId()) |
| | | &&en.getAttributionType().equals(deviceType.getAttributionType())){ |
| | | return Result.OK("设备类编辑成功"); |
| | | } |
| | | //判断设备类是否被使用 |
| | | List<DeviceType> deviceTypeList=this.getByProductionIdAndDeviceManagementId(deviceType); |
| | | if(!deviceTypeList.isEmpty()){ |
| | | return Result.error("设备类已存在"); |
| | | } |
| | | boolean save = this.updateById(deviceType); |
| | | if(save){ |
| | | return Result.OK("设备类编辑成功"); |
| | |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result<?> delete(String id){ |
| | | if(!ValidateUtil.validateString(id)) |
| | | ExceptionCast.cast(CommonCode.INVALID_PARAM); |
| | |
| | | * @param deviceTypes |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result<?> getByDeviceType(List<DeviceType> deviceTypes){ |
| | | if (deviceTypes == null || deviceTypes.isEmpty()) { |
| | | return Result.error("设备类信息为空"); |
| | | } |
| | | List<Integer> deviceTypeIds = deviceTypes.stream().map(DeviceType::getDeviceType).collect(Collectors.toList()); |
| | | QueryWrapper<MdcEquipment> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.in("device_type", deviceTypeIds); |
| | | List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(queryWrapper); |
| | | return Result.OK(mdcEquipmentList); |
| | | return Result.OK(null); |
| | | } |
| | | |
| | | /** |
| | | * 通过车间id与设备类id查询设备信息 |
| | | * @param deviceType |
| | | * @return |
| | | */ |
| | | public List<DeviceType> getByProductionIdAndDeviceManagementId(DeviceType deviceType) { |
| | | List<DeviceType> list = this.list(new QueryWrapper<DeviceType>().eq("attribution_id", deviceType.getAttributionId()) |
| | | .eq("attribution_type", deviceType.getAttributionType()) |
| | | .eq("device_management_id", deviceType.getDeviceManagementId())); |
| | | list.forEach(item->{ |
| | | item.setDeviceManagementCode(item.getDeviceManagementId()); |
| | | }); |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param type |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result<?> getByBusinessId(String businessId,String type){ |
| | | List<DeviceType> list = this.list(new QueryWrapper<DeviceType>().eq("production_id", businessId).eq("type", type)); |
| | | if (list == null || list.isEmpty()) { |
| | | return Result.error("设备类信息为空"); |
| | | } |
| | | List<Integer> deviceTypeIds = list.stream().map(DeviceType::getDeviceType).collect(Collectors.toList()); |
| | | List<String> equipmentIds=mdcProductionEquipmentService.list(new QueryWrapper<MdcProductionEquipment>().in("production_id",deviceTypeIds)) |
| | | .stream().map(MdcProductionEquipment::getEquipmentId).collect(Collectors.toList()); |
| | | List<DeviceType> list = this.list(new QueryWrapper<DeviceType>().eq("attribution_id", businessId).eq("attribution_type", type)); |
| | | list.forEach(item->{ |
| | | List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(new QueryWrapper<MdcEquipment>() |
| | | .eq("device_type", item.getDeviceType()).in("id", equipmentIds)); |
| | | item.setEquipmentList(mdcEquipmentList); |
| | | item.setDeviceManagementCode(item.getDeviceManagementId()); |
| | | }); |
| | | return Result.OK(list); |
| | | } |