From 37d6ceefa256356961be44e868842bf6a77e4599 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期一, 18 八月 2025 13:37:50 +0800 Subject: [PATCH] 加工设备三级保养验收单 加工设备三级保养移交单批量打印接口 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java | 203 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 196 insertions(+), 7 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java index 18c3350..641593a 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java @@ -3,8 +3,10 @@ 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 com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -22,15 +24,15 @@ 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.entity.EamBaseHFCode; -import org.jeecg.modules.eam.entity.EamEquipment; -import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder; -import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrderDetail; +import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExport; +import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExport; +import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.mapper.EamThirdMaintenanceOrderMapper; -import org.jeecg.modules.eam.request.EamInspectionOrderRequest; +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; @@ -41,6 +43,7 @@ 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; @@ -49,6 +52,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; @@ -91,6 +95,10 @@ private IEamBaseHFCodeService eamBaseHFCodeService; @Resource private IEamThirdMaintenanceOrderDetailService eamThirdMaintenanceOrderDetailService; + @Resource + private IEamThirdMaintenanceSpareService eamThirdMaintenanceSpareService; + @Resource + private ISysDictService sysDictService; @Override public IPage<EamThirdMaintenanceOrder> queryPageList(Page<EamThirdMaintenanceOrder> page, EamThirdMaintenanceQuery query) { @@ -100,9 +108,9 @@ 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 { //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶� @@ -342,6 +350,7 @@ /** * 鏌ヨ涓変繚宸ュ崟鍩烘湰淇℃伅 + * * @param id * @return */ @@ -358,6 +367,80 @@ eamThirdMaintenanceRequestList.add(eamThirdMaintenanceRequest); }); return Result.ok(eamThirdMaintenanceRequestList); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateMaintenanceStatus(String orderId, String maintenanceStatus) { + LambdaUpdateWrapper<EamThirdMaintenanceOrder> updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(EamThirdMaintenanceOrder::getId, orderId); + updateWrapper.set(EamThirdMaintenanceOrder::getMaintenanceStatus, maintenanceStatus); + updateWrapper.eq(EamThirdMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0); + updateWrapper.in(EamThirdMaintenanceOrder::getMaintenanceStatus, Arrays.asList(ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name(), ThirdMaintenanceStatusEnum.FREEZE.name())); + int update = this.getBaseMapper().update(null, updateWrapper); + return update > 0; + } + + @Override + public List<EamThirdMaintenanceOrder> selectWaitMaintenanceOrderList() { + LambdaQueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamThirdMaintenanceOrder::getMaintenanceStatus, ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name()); + queryWrapper.isNotNull(EamThirdMaintenanceOrder::getFreezeOrderDate); + queryWrapper.eq(EamThirdMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0); + LocalDate localDate = LocalDate.now(); + queryWrapper.lt(EamThirdMaintenanceOrder::getFreezeOrderDate, localDate.toString()); + return this.getBaseMapper().selectList(queryWrapper); + } + + @Override + public List<EamThirdMaintenanceOrder> selectUnCompletedThirdMaintenanceOrderList() { + LambdaQueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new LambdaQueryWrapper<>(); + List<String> statusList = Arrays.asList(ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name(), + ThirdMaintenanceStatusEnum.UNDER_MAINTENANCE.name(), + ThirdMaintenanceStatusEnum.WAIT_CHECK.name(), + ThirdMaintenanceStatusEnum.UNDER_FIRST_ACCEPTANCE.name(), + ThirdMaintenanceStatusEnum.UNDER_SECOND_ACCEPTANCE.name(), + ThirdMaintenanceStatusEnum.OPERATOR_SIGNATURE.name(), + ThirdMaintenanceStatusEnum.REPAIRMAN_SIGNATURE.name(), + ThirdMaintenanceStatusEnum.REPAIR_MANAGER_SIGNATURE.name(), + ThirdMaintenanceStatusEnum.INSPECTOR_SIGNATURE.name(), + ThirdMaintenanceStatusEnum.FREEZE.name() + ); + queryWrapper.in(EamThirdMaintenanceOrder::getMaintenanceStatus, statusList); + queryWrapper.isNotNull(EamThirdMaintenanceOrder::getOrderExpirationDate); + queryWrapper.eq(EamThirdMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0); + LocalDate localDate = LocalDate.now(); + queryWrapper.lt(EamThirdMaintenanceOrder::getOrderExpirationDate, localDate.toString()); + return this.getBaseMapper().selectList(queryWrapper); + } + + /** + * 鑾峰彇宸ュ崟鍩烘湰淇℃伅 + * + * @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; } /** @@ -510,6 +593,104 @@ } /** + * 鎵归噺鎵撳嵃鍔犲伐璁惧涓夌骇淇濆吇瀹屽伐绉讳氦鍗� + * @param ids + * @return + */ + @Override + public List<EamThirdMaintenanceOrderExport> 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); + //濉厖瀵瑰簲淇悊鏇存崲澶囦欢鏄庣粏 + eamThirdMaintenanceOrderExports.forEach(eamThirdMaintenanceOrderExport->{ + List<EamThirdMaintenanceSpare> eamThirdMaintenanceSpares=eamThirdMaintenanceSpareService.list( + new QueryWrapper<EamThirdMaintenanceSpare>().eq("order_Id",eamThirdMaintenanceOrderExport.getId())); + if (!eamThirdMaintenanceSpares.isEmpty()){ + eamThirdMaintenanceOrderExport.setEamThirdMaintenanceSpareList(eamThirdMaintenanceSpares); + } + }); + return eamThirdMaintenanceOrderExports; + } + + /** + * 鎵归噺鎵撳嵃鍔犲伐璁惧涓夌骇淇濆吇楠屾敹鍗� + */ + @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; + } + + /** * 鏇存柊宸ュ崟鐘舵�� */ private void updateOrderStatus(Result result, EamThirdMaintenanceRequest request, EamThirdMaintenanceOrder order, LoginUser user) { @@ -540,6 +721,14 @@ // 涓変繚鏄庣粏澶勭悊 eamThirdMaintenanceOrderDetailService.remove(new LambdaQueryWrapper<EamThirdMaintenanceOrderDetail>().eq(EamThirdMaintenanceOrderDetail::getOrderId, order.getId())); eamThirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList()); + // 涓変繚澶囦欢鏄庣粏澶勭悊 + if (request.getTableSpareList() != null && !request.getTableSpareList().isEmpty()) { + List<EamThirdMaintenanceSpare> tableSpareList = request.getTableSpareList(); + tableSpareList.forEach(eamThirdMaintenanceSpare -> { + eamThirdMaintenanceSpare.setOrderId(request.getId()); + }); + eamThirdMaintenanceSpareService.saveBatch(tableSpareList); + } break; case UNDER_FIRST_ACCEPTANCE: // 绗竴娆¢獙鏀剁粨鏉� -- Gitblit v1.9.3