| | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | |
| | | import org.jeecg.common.constant.CommonConstant; |
| | | import org.jeecg.common.constant.DataBaseConstant; |
| | | import org.jeecg.common.exception.JeecgBootException; |
| | | import org.jeecg.common.system.vo.DictModel; |
| | | import org.jeecg.common.system.vo.LoginUser; |
| | | import org.jeecg.common.util.StrUtils; |
| | | import org.jeecg.common.util.oConvertUtils; |
| | | import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; |
| | | import org.jeecg.modules.eam.constant.*; |
| | | import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExport; |
| | | import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExport; |
| | | import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExportYj; |
| | | import org.jeecg.modules.eam.dto.EchartsDto; |
| | | import org.jeecg.modules.eam.entity.*; |
| | | import org.jeecg.modules.eam.mapper.EamThirdMaintenanceOrderMapper; |
| | | import org.jeecg.modules.eam.request.EamThirdMaintenanceBaseResponse; |
| | | import org.jeecg.modules.eam.request.EamThirdMaintenanceQuery; |
| | | import org.jeecg.modules.eam.request.EamThirdMaintenanceRequest; |
| | | import org.jeecg.modules.eam.service.*; |
| | | import org.jeecg.modules.eam.vo.EamThirdMaintenanceBaseVo; |
| | | import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; |
| | | import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; |
| | | import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; |
| | |
| | | import org.jeecg.modules.system.entity.BaseFactoryUser; |
| | | import org.jeecg.modules.system.service.IBaseFactoryService; |
| | | import org.jeecg.modules.system.service.IBaseFactoryUserService; |
| | | import org.jeecg.modules.system.service.ISysDictService; |
| | | import org.jeecg.modules.system.service.ISysUserService; |
| | | import org.jeecg.modules.system.vo.UserSelector; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDate; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | private IEamThirdMaintenanceOrderDetailService eamThirdMaintenanceOrderDetailService; |
| | | @Resource |
| | | private IEamThirdMaintenanceSpareService eamThirdMaintenanceSpareService; |
| | | @Resource |
| | | private ISysDictService sysDictService; |
| | | |
| | | @Override |
| | | public IPage<EamThirdMaintenanceOrder> queryPageList(Page<EamThirdMaintenanceOrder> page, EamThirdMaintenanceQuery query) { |
| | |
| | | if (sysUser == null) { |
| | | return page; |
| | | } |
| | | if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { |
| | | if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { |
| | | //选择了设备,根据设备id过滤设备 |
| | | List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); |
| | | List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); |
| | | queryWrapper.in("e.equipment_code", equipArr); |
| | | } else { |
| | | //没有选择设备,根据中心过滤设备 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 获取工单基本信息 |
| | | * |
| | | * @param id 工单id |
| | | * @return |
| | | */ |
| | | @Override |
| | | public JSONObject exportThirdMaintenanceOrderBaseInfo(String id) { |
| | | // 创建结果对象 |
| | | JSONObject result = new JSONObject(); |
| | | EamThirdMaintenanceBaseResponse eamThirdMaintenanceBaseResponse = eamThirdMaintenanceOrderMapper.findThirdMaintenanceBaseInfo(id); |
| | | if (eamThirdMaintenanceBaseResponse == null) { |
| | | return result; |
| | | } |
| | | eamThirdMaintenanceBaseResponse.setOperatorSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getOperatorSignature()) + "," + eamThirdMaintenanceBaseResponse.getAssistantOperator()); |
| | | eamThirdMaintenanceBaseResponse.setRepairmanSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getRepairmanSignature()) + "," + eamThirdMaintenanceBaseResponse.getAssistantRepairman()); |
| | | eamThirdMaintenanceBaseResponse.setRepairManagerSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getRepairManagerSignature())); |
| | | eamThirdMaintenanceBaseResponse.setInspectorSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getInspectorSignature())); |
| | | eamThirdMaintenanceBaseResponse.setEquipmentCategory(sysDictService.queryDictTextByKey("equipment_category", eamThirdMaintenanceBaseResponse.getEquipmentCategory())); |
| | | //检查人和检查时间 |
| | | EamThirdMaintenanceBaseVo vo = eamThirdMaintenanceOrderDetailService.selectCreatByAndTimeByOrderId(id); |
| | | if (vo != null) { |
| | | eamThirdMaintenanceBaseResponse.setCreateBy(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", vo.getOperateBy())); |
| | | eamThirdMaintenanceBaseResponse.setCreateTime(vo.getOperateTime()); |
| | | } |
| | | result.put("data",Collections.singletonList(eamThirdMaintenanceBaseResponse)); |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 设置流程变量 |
| | | */ |
| | | private void setupProcessVariables(EamThirdMaintenanceRequest request, EamThirdMaintenanceOrder order, LoginUser user, EamEquipment equipment) { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 批量打印加工设备三级保养完工移交单 |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<EamThirdMaintenanceOrderExportYj> export(String ids){ |
| | | QueryWrapper<EamThirdMaintenanceOrderExport> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("wmo.del_flag",CommonConstant.DEL_FLAG_0.toString()); |
| | | queryWrapper.eq("wmo.maintenance_status",SecondMaintenanceStatusEnum.COMPLETE.name()); |
| | | //用户数据权限 |
| | | LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | if (sysUser == null) { |
| | | return new ArrayList<>(); |
| | | } |
| | | if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { |
| | | //选择了设备,根据设备id过滤设备 |
| | | List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); |
| | | queryWrapper.in("e.equipment_code", equipArr); |
| | | } else { |
| | | //没有选择设备,根据中心过滤设备 |
| | | List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService. |
| | | list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId())); |
| | | if(!CollectionUtils.isEmpty(baseFactoryUserList)){ |
| | | Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); |
| | | Set<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); |
| | | queryWrapper.in("e.factory_org_code", factoryCode); |
| | | } else { |
| | | return new ArrayList<>(); |
| | | } |
| | | } |
| | | //查询条件过滤 |
| | | if (StrUtil.isNotEmpty(ids)) { |
| | | List<String> idList = Arrays.asList(ids.split(",")); |
| | | queryWrapper.in("wmo.id", idList); |
| | | } else { |
| | | queryWrapper.orderByDesc("wmo.create_time"); |
| | | } |
| | | List<EamThirdMaintenanceOrderExport> eamThirdMaintenanceOrderExports=this.baseMapper.queryList(queryWrapper); |
| | | List<EamThirdMaintenanceOrderExportYj> eamThirdMaintenanceOrderExportYjs=new ArrayList<>(); |
| | | if (!eamThirdMaintenanceOrderExports.isEmpty()){ |
| | | for (EamThirdMaintenanceOrderExport eamThirdMaintenanceOrderExport:eamThirdMaintenanceOrderExports) { |
| | | EamThirdMaintenanceOrderExportYj eamThirdMaintenanceOrderExportYj = new EamThirdMaintenanceOrderExportYj(); |
| | | BeanUtils.copyProperties(eamThirdMaintenanceOrderExport, eamThirdMaintenanceOrderExportYj); |
| | | eamThirdMaintenanceOrderExportYjs.add(eamThirdMaintenanceOrderExportYj); |
| | | } |
| | | } |
| | | //填充对应修理更换备件明细 |
| | | eamThirdMaintenanceOrderExportYjs.forEach(eamThirdMaintenanceOrderExportYj->{ |
| | | List<EamThirdMaintenanceSpare> eamThirdMaintenanceSpares=eamThirdMaintenanceSpareService.list( |
| | | new QueryWrapper<EamThirdMaintenanceSpare>().eq("order_Id",eamThirdMaintenanceOrderExportYj.getId())); |
| | | if (!eamThirdMaintenanceSpares.isEmpty()){ |
| | | eamThirdMaintenanceOrderExportYj.setEamThirdMaintenanceSpareList(eamThirdMaintenanceSpares); |
| | | } |
| | | }); |
| | | return eamThirdMaintenanceOrderExportYjs; |
| | | } |
| | | |
| | | /** |
| | | * 批量打印加工设备三级保养验收单 |
| | | */ |
| | | @Override |
| | | public List<EamThirdMaintenanceOrderExport> exportAcceptance(String ids){ |
| | | QueryWrapper<EamThirdMaintenanceOrderExport> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("wmo.del_flag",CommonConstant.DEL_FLAG_0.toString()); |
| | | queryWrapper.eq("wmo.maintenance_status",SecondMaintenanceStatusEnum.COMPLETE.name()); |
| | | //用户数据权限 |
| | | LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | if (sysUser == null) { |
| | | return new ArrayList<>(); |
| | | } |
| | | if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { |
| | | //选择了设备,根据设备id过滤设备 |
| | | List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); |
| | | queryWrapper.in("e.equipment_code", equipArr); |
| | | } else { |
| | | //没有选择设备,根据中心过滤设备 |
| | | List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService. |
| | | list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId())); |
| | | if(!CollectionUtils.isEmpty(baseFactoryUserList)){ |
| | | Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); |
| | | Set<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); |
| | | queryWrapper.in("e.factory_org_code", factoryCode); |
| | | } else { |
| | | return new ArrayList<>(); |
| | | } |
| | | } |
| | | //查询条件过滤 |
| | | if (StrUtil.isNotEmpty(ids)) { |
| | | List<String> idList = Arrays.asList(ids.split(",")); |
| | | queryWrapper.in("wmo.id", idList); |
| | | } else { |
| | | queryWrapper.orderByDesc("wmo.create_time"); |
| | | } |
| | | List<EamThirdMaintenanceOrderExport> eamThirdMaintenanceOrderExports=this.baseMapper.queryList(queryWrapper); |
| | | //填充对应保养项明细 |
| | | eamThirdMaintenanceOrderExports.forEach(eamThirdMaintenanceOrderExport->{ |
| | | List<EamThirdMaintenanceOrderDetail> eamThirdMaintenanceSpares=eamThirdMaintenanceOrderDetailService.list( |
| | | new QueryWrapper<EamThirdMaintenanceOrderDetail>().eq("order_Id",eamThirdMaintenanceOrderExport.getId())); |
| | | if (!eamThirdMaintenanceSpares.isEmpty()){ |
| | | eamThirdMaintenanceOrderExport.setEamThirdMaintenanceOrderDetailList(eamThirdMaintenanceSpares); |
| | | } |
| | | }); |
| | | return eamThirdMaintenanceOrderExports; |
| | | } |
| | | |
| | | /** |
| | | * 设备管理首页-三保计划 |
| | | * @return |
| | | * */ |
| | | @Override |
| | | public List<EchartsDto> selectList() { |
| | | List<EchartsDto> echartsDtos = new ArrayList<>(); |
| | | |
| | | // 用户数据权限检查 |
| | | LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | if (sysUser == null) { |
| | | return echartsDtos; // 返回空列表而非null |
| | | } |
| | | |
| | | QueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new QueryWrapper<>(); |
| | | |
| | | // 设备过滤逻辑 |
| | | if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { |
| | | List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); |
| | | queryWrapper.in("e.equipment_code", equipArr); |
| | | } else { |
| | | List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService |
| | | .list(new LambdaQueryWrapper<BaseFactoryUser>() |
| | | .eq(BaseFactoryUser::getUserId, sysUser.getId())); |
| | | |
| | | if (CollectionUtils.isEmpty(baseFactoryUserList)) { |
| | | return echartsDtos; // 返回空列表而非null |
| | | } |
| | | |
| | | Set<String> factoryIds = baseFactoryUserList.stream() |
| | | .map(BaseFactoryUser::getFactoryId) |
| | | .collect(Collectors.toSet()); |
| | | |
| | | Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds) |
| | | .stream() |
| | | .map(BaseFactory::getOrgCode) |
| | | .collect(Collectors.toSet()); |
| | | |
| | | queryWrapper.in("e.factory_org_code", factoryCodes); |
| | | } |
| | | |
| | | // 获取当前年月和下两个月的年月字符串 |
| | | String currentYearMonth = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM")); |
| | | String nextMonth = LocalDate.now().plusMonths(1).format(DateTimeFormatter.ofPattern("yyyy-MM")); |
| | | String nextNextMonth = LocalDate.now().plusMonths(2).format(DateTimeFormatter.ofPattern("yyyy-MM")); |
| | | |
| | | // 从字典表获取配置值 |
| | | String bysbjh = sysDictService.queryEnableDictItemsByCode("eam_home_third_number_bysbzs").get(0).getValue(); |
| | | String bywc = sysDictService.queryEnableDictItemsByCode("eam_home_third_number_bwc").get(0).getValue(); |
| | | String xysb = sysDictService.queryEnableDictItemsByCode("eam_home_third_number_xysb").get(0).getValue(); |
| | | String xxysb = sysDictService.queryEnableDictItemsByCode("eam_home_third_number_xxysb").get(0).getValue(); |
| | | |
| | | // 本月三保计划总数 |
| | | if ("0".equals(bysbjh)) { |
| | | List<EamThirdMaintenanceOrder> currentMonthOrders = this.baseMapper.queryAsList( |
| | | queryWrapper.clone().like("maintenance_date", currentYearMonth) |
| | | ); |
| | | echartsDtos.add(new EchartsDto("bysbzs", "本月三保计划总数", |
| | | String.valueOf(currentMonthOrders.size()), null, null)); |
| | | } else { |
| | | echartsDtos.add(new EchartsDto("bysbzs", "本月三保计划总数", |
| | | bysbjh, null, null)); |
| | | } |
| | | |
| | | // 本月完成 |
| | | if ("0".equals(bywc)) { |
| | | List<EamThirdMaintenanceOrder> currentMonthCompleted = this.baseMapper.queryAsList( |
| | | queryWrapper.clone().like("maintenance_date", currentYearMonth) |
| | | .eq("maintenance_status", ThirdMaintenanceStatusEnum.COMPLETE.name()) |
| | | ); |
| | | echartsDtos.add(new EchartsDto("bwc", "本月完成", |
| | | String.valueOf(currentMonthCompleted.size()), null, null)); |
| | | } else { |
| | | echartsDtos.add(new EchartsDto("bwc", "本月完成", |
| | | bywc, null, null)); |
| | | } |
| | | |
| | | // 下月三保计划 |
| | | if ("0".equals(xysb)) { |
| | | List<EamThirdMaintenanceOrder> nextMonthOrders = this.baseMapper.queryAsList( |
| | | queryWrapper.clone().like("maintenance_date", nextMonth) |
| | | ); |
| | | echartsDtos.add(new EchartsDto("xysb", "下月三保计划", |
| | | String.valueOf(nextMonthOrders.size()), null, null)); |
| | | } else { |
| | | echartsDtos.add(new EchartsDto("xysb", "下月三保计划", |
| | | xysb, null, null)); |
| | | } |
| | | |
| | | // 下下月三保计划 |
| | | if ("0".equals(xxysb)) { |
| | | List<EamThirdMaintenanceOrder> nextNextMonthOrders = this.baseMapper.queryAsList( |
| | | queryWrapper.clone().like("maintenance_date", nextNextMonth) |
| | | ); |
| | | echartsDtos.add(new EchartsDto("xxysb", "下下月三保计划", |
| | | String.valueOf(nextNextMonthOrders.size()), null, null)); |
| | | } else { |
| | | echartsDtos.add(new EchartsDto("xxysb", "下下月三保计划", |
| | | xxysb, null, null)); |
| | | } |
| | | |
| | | return echartsDtos; |
| | | } |
| | | |
| | | /** |
| | | * 更新工单状态 |
| | | */ |
| | | private void updateOrderStatus(Result result, EamThirdMaintenanceRequest request, EamThirdMaintenanceOrder order, LoginUser user) { |