已添加1个文件
已删除27个文件
已修改12个文件
| | |
| | | * 设å¤id |
| | | |
| | | */ |
| | | equId: number | string; |
| | | maintName: string; |
| | | maintNo: number; |
| | | maintDesc: string; |
| | | |
| | | /** |
| | | * ä¿å
»ç±»åï¼åå
¸ï¼ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <script setup lang="ts"> |
| | | import { ref } from 'vue'; |
| | | |
| | | import { useVbenModal } from '@vben/common-ui'; |
| | | |
| | | import { message } from 'ant-design-vue'; |
| | | |
| | | import InnerView from '#/views/eims/maint-plan/index.vue'; |
| | | |
| | | const emit = defineEmits<{ updateSelect: [any] }>(); |
| | | |
| | | const [BasicModal, modalApi] = useVbenModal({ |
| | | fullscreenButton: false, |
| | | draggable: true, |
| | | onCancel: handleCancel, |
| | | onConfirm: handleConfirm |
| | | }); |
| | | const innerView = ref(); |
| | | |
| | | async function handleConfirm() { |
| | | try { |
| | | modalApi.modalLoading(true); |
| | | const tableSelect = innerView.value.tableSelect(); |
| | | if (tableSelect.length > 1) { |
| | | message.error('æå¤åªè½éæ©ä¸æ¡æ°æ®ï¼'); |
| | | modalApi.modalLoading(false); |
| | | return false; |
| | | } |
| | | emit('updateSelect', tableSelect[0]); |
| | | await handleCancel(); |
| | | } catch (error) { |
| | | console.error(error); |
| | | } finally { |
| | | modalApi.modalLoading(false); |
| | | } |
| | | } |
| | | |
| | | async function handleCancel() { |
| | | modalApi.close(); |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <BasicModal :fullscreen-button="true" class="w-[800px]"> |
| | | <InnerView ref="innerView" /> |
| | | </BasicModal> |
| | | </template> |
| | | |
| | | <style scoped></style> |
| | |
| | | title: '设å¤åç§°', |
| | | field: 'equName', |
| | | minWidth: 200, |
| | | fixed: 'left' |
| | | }, |
| | | { |
| | | title: 'èµäº§ç¼å·', |
| | | field: 'assetNo', |
| | | minWidth: 160 |
| | | }, |
| | | { |
| | | title: 'ä¿å
»é¡¹', |
| | | field: 'maintName', |
| | | minWidth: 160 |
| | | }, |
| | | { |
| | |
| | | }, |
| | | { |
| | | component: 'Input', |
| | | dependencies: { |
| | | show: () => false, |
| | | triggerFields: [''] |
| | | }, |
| | | fieldName: 'planId', |
| | | }, |
| | | { |
| | | component: 'Input', |
| | | fieldName: 'equId', |
| | | label: '设å¤id', |
| | | dependencies: { |
| | |
| | | |
| | | import { columns, querySchema } from './data'; |
| | | import maintOrderDrawer from './maint-order-drawer.vue'; |
| | | import SubOrditm from './sub-orditm.vue'; |
| | | |
| | | defineExpose({ |
| | | tableSelect |
| | |
| | | <template> |
| | | <Page :auto-content-height="true"> |
| | | <div class="flex h-full gap-[8px] flex-col"> |
| | | <BasicTable class="h-2/3" table-title="ä¿å
»å·¥åå表"> |
| | | <BasicTable table-title="ä¿å
»å·¥åå表"> |
| | | <template #toolbar-tools> |
| | | <Space> |
| | | <a-button v-access:code="['eims:maintOrder:export']" @click="handleDownloadExcel"> |
| | |
| | | </template> |
| | | </BasicTable> |
| | | <!--<BasisSubTable :columns="maintStandCol" :list-api="listMaintStand" :req-value="equId" class="h-1/3" req-key="equId" title="ä¿å
»å®æ½é¡¹ç®" />--> |
| | | <SubOrditm :order-id="orderId" class="h-1/3" /> |
| | | |
| | | </div> |
| | | <MaintOrderDrawer @reload="tableApi.query()" /> |
| | | </Page> |
| | |
| | | } |
| | | }, |
| | | { |
| | | title: 'ä¿å
»é¡¹', |
| | | field: 'maintName', |
| | | minWidth: 200 |
| | | }, |
| | | { |
| | | title: 'ä¿å
»ç±»å', |
| | | field: 'maintType', |
| | | minWidth: 120, |
| | |
| | | label: '设å¤åç§°' |
| | | }, |
| | | { |
| | | component: 'Input', |
| | | fieldName: 'maintName', |
| | | label: 'ä¿å
»é¡¹' |
| | | }, |
| | | { |
| | | component: 'RadioGroup', |
| | | componentProps: { |
| | | buttonStyle: 'solid', |
| | |
| | | |
| | | import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table'; |
| | | import { delMaintPlan, listMaintPlan, maintPlanExport } from '#/api/eims/maint-plan'; |
| | | import { listMaintStand } from '#/api/eims/maint-stand'; |
| | | import { generateCode } from '#/api/eims/utils'; |
| | | import { getDeptTree, userList } from '#/api/system/user'; |
| | | import { MAINT_ORDER_STATUS } from '#/constants/dict'; |
| | | import { commonDownloadExcel } from '#/utils/file/download'; |
| | | import BasisSubTable from '#/views/eims/components/basis-sub-table.vue'; |
| | | import maintOrderDrawer from '#/views/eims/maint-order/maint-order-drawer.vue'; |
| | | import { columns as maintSrandCol } from '#/views/eims/maint-stand/data'; |
| | | |
| | | import { columns, querySchema } from './data'; |
| | | import maintPlanDrawer from './maint-plan-drawer.vue'; |
| | | |
| | | |
| | | defineExpose({ |
| | | tableSelect |
| | | }); |
| | | |
| | | const formOptions: VbenFormProps = { |
| | | commonConfig: { |
| | |
| | | } |
| | | const planOrder = { |
| | | equId: record.equId, |
| | | planId: record.id, |
| | | equName: record.equName, |
| | | maintUser: record.maintUser, |
| | | maintUserName: record.maintUserName, |
| | |
| | | onMounted(async () => { |
| | | await setupDeptSelect(); |
| | | }); |
| | | |
| | | // é䏿°æ® |
| | | function tableSelect() { |
| | | return tableApi.grid.getCheckboxRecords(); |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <Page :auto-content-height="true"> |
| | | <div class="flex h-full gap-[8px] flex-col"> |
| | | <BasicTable class="h-2/3" table-title="ä¿å
»è®¡åå表"> |
| | | <BasicTable table-title="ä¿å
»è®¡åå表"> |
| | | <template #toolbar-tools> |
| | | <Space> |
| | | <a-button v-access:code="['eims:maintPlan:export']" @click="handleDownloadExcel"> |
| | |
| | | </Dropdown> |
| | | </template> |
| | | </BasicTable> |
| | | <BasisSubTable :columns="maintSrandCol" :list-api="listMaintStand" :req-value="equId" class="h-1/3" req-key="equId" title="ä¿å
»å®æ½é¡¹ç®" /> |
| | | </div> |
| | | <MaintPlanDrawer @reload="tableApi.query()" /> |
| | | <MaintOrderDrawer @reload="tableApi.query()" /> |
| | |
| | | private Long id; |
| | | |
| | | /** |
| | | * ä¿å
»é¡¹åç§° |
| | | */ |
| | | private String maintName; |
| | | |
| | | /** |
| | | * ä¿å
»é¡¹ç¼å· |
| | | */ |
| | | private Integer maintNo; |
| | | |
| | | /** |
| | | * ä¿å
»é¡¹æè¿° |
| | | */ |
| | | private String maintDesc; |
| | | |
| | | /** |
| | | * 设å¤id |
| | | |
| | | */ |
| | |
| | | @NotNull(message = "ä¸è½ä¸ºç©º", groups = { EditGroup.class }) |
| | | private Long id; |
| | | |
| | | |
| | | /** |
| | | * ä¿å
»é¡¹åç§° |
| | | */ |
| | | @NotNull(message = "ä¿å
»é¡¹åç§°ä¸è½ä¸ºç©º", groups = { EditGroup.class }) |
| | | private String maintName; |
| | | |
| | | /** |
| | | * ä¿å
»é¡¹ç¼å· |
| | | */ |
| | | private Integer maintNo; |
| | | |
| | | /** |
| | | * ä¿å
»é¡¹æè¿° |
| | | */ |
| | | private String maintDesc; |
| | | |
| | | /** |
| | | * 设å¤id |
| | | |
| | |
| | | private String assetNo; |
| | | |
| | | /** |
| | | * ä¿å
»é¡¹åç§° |
| | | */ |
| | | private String maintName; |
| | | |
| | | /** |
| | | * 计å表åä½-ä¿å
»ç±»åï¼åå
¸ï¼ |
| | | */ |
| | | @ExcelProperty(value = "计å表åä½-ä¿å
»ç±»å", converter = ExcelDictConvert.class) |
| | |
| | | @ExcelProperty(value = "") |
| | | private Long id; |
| | | |
| | | |
| | | /** |
| | | * ä¿å
»é¡¹åç§° |
| | | */ |
| | | private String maintName; |
| | | |
| | | /** |
| | | * ä¿å
»é¡¹ç¼å· |
| | | */ |
| | | private Integer maintNo; |
| | | |
| | | /** |
| | | * ä¿å
»é¡¹æè¿° |
| | | */ |
| | | private String maintDesc; |
| | | |
| | | /** |
| | | * 设å¤id |
| | | |
| | |
| | | import org.dromara.eims.domain.*; |
| | | import org.dromara.eims.domain.bo.EimsMaintPlanBo; |
| | | import org.dromara.eims.domain.vo.EimsMaintPlanVo; |
| | | import org.dromara.eims.domain.vo.EimsMaintStandVo; |
| | | import org.dromara.eims.mapper.EimsMaintOrderMapper; |
| | | import org.dromara.eims.mapper.EimsMaintOrditmMapper; |
| | | import org.dromara.eims.mapper.EimsMaintPlanMapper; |
| | | import org.dromara.eims.mapper.EimsMaintStandMapper; |
| | | import org.dromara.eims.service.IEimsMaintOrderService; |
| | | import org.dromara.eims.service.IEimsMaintPlanService; |
| | | import org.dromara.eims.service.IGenerateCodeService; |
| | |
| | | public class MaintPlanToOrderJob { |
| | | private final EimsMaintOrderMapper orderMapper; |
| | | |
| | | private final EimsMaintStandMapper standMapper; |
| | | |
| | | private final EimsMaintOrditmMapper orditmMapper; |
| | | |
| | | private final EimsMaintPlanMapper planMapper; |
| | | |
| | |
| | | order.setId(null); |
| | | order.setStatus(DictConstants.MAINT_ORDER_STATUS_DETAIL.DAIBAOYANG); |
| | | order.setPlanTime(createOrderTime); |
| | | order.setPlanId(planVo.getId()); |
| | | order.setMaintCode(codeService.generateCode("BYZD")); |
| | | EimsMaintPlan plan = MapstructUtils.convert(planVo, EimsMaintPlan.class); |
| | | assert plan != null; |
| | |
| | | if (!flag) continue; |
| | | planMapper.updateById(plan); |
| | | |
| | | //çæä¿å
»æç» |
| | | Long equId = plan.getEquId(); |
| | | List<EimsMaintStandVo> standList = standMapper.selectVoList(new LambdaQueryWrapper<EimsMaintStand>().eq(EimsMaintStand::getEquId, equId)); |
| | | //TODO 没æä¿å
»é¡¹ï¼æ·»å å¼å¸¸è®°å½ |
| | | if(standList.isEmpty()) continue; |
| | | for (int j = 0; j < standList.size(); j++) { |
| | | EimsMaintStandVo stand = standList.get(j); |
| | | EimsMaintOrditm itm = new EimsMaintOrditm(); |
| | | itm.setOrderId(order.getId()); |
| | | itm.setEquId(equId); |
| | | itm.setItmName(stand.getName()); |
| | | itm.setItmAction(stand.getStand()); |
| | | itm.setItmUser(order.getMaintUser()); |
| | | orditmMapper.insert(itm); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | return ExecuteResult.success("ä¿å
»è®¡åçæä¿å
»å·¥åæå"); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.dromara.eims.domain.EimsMaintOrditm; |
| | | import org.dromara.eims.domain.EimsMaintStand; |
| | | import org.dromara.eims.domain.vo.EimsMaintPlanVo; |
| | | import org.dromara.eims.domain.vo.EimsMaintStandVo; |
| | | import org.dromara.eims.domain.vo.EimsRepairResVo; |
| | | import org.dromara.eims.mapper.EimsMaintOrditmMapper; |
| | | import org.dromara.eims.mapper.EimsMaintStandMapper; |
| | | |
| | | import org.dromara.system.domain.SysDept; |
| | | import org.dromara.system.domain.vo.SysDeptVo; |
| | | import org.dromara.system.mapper.SysDeptMapper; |
| | |
| | | public class EimsMaintOrderServiceImpl implements IEimsMaintOrderService, MaintOrderService { |
| | | |
| | | private final EimsMaintOrderMapper baseMapper; |
| | | private final EimsMaintOrditmMapper orditmMapper; |
| | | private final SysDeptMapper sysDeptMapper; |
| | | |
| | | private final EimsMaintStandMapper standMapper; |
| | | /** |
| | | * æ¥è¯¢ä¿å
Ȍᴌ |
| | | * |
| | |
| | | if (flag) { |
| | | bo.setId(add.getId()); |
| | | |
| | | //çæä¿å
»æç» |
| | | Long equId = bo.getEquId(); |
| | | List<EimsMaintStandVo> standList = standMapper.selectVoList(new LambdaQueryWrapper<EimsMaintStand>().eq(EimsMaintStand::getEquId, equId)); |
| | | //TODO 没æä¿å
»é¡¹ï¼æ·»å å¼å¸¸è®°å½ |
| | | for (int j = 0; j < standList.size(); j++) { |
| | | EimsMaintStandVo stand = standList.get(j); |
| | | EimsMaintOrditm itm = new EimsMaintOrditm(); |
| | | itm.setOrderId(bo.getId()); |
| | | itm.setEquId(equId); |
| | | itm.setItmName(stand.getName()); |
| | | itm.setItmAction(stand.getStand()); |
| | | itm.setItmUser(bo.getMaintUser()); |
| | | orditmMapper.insert(itm); |
| | | } |
| | | |
| | | } |
| | | return flag; |
| | | } |
| | |
| | | EimsMaintOrder update = MapstructUtils.convert(bo, EimsMaintOrder.class); |
| | | |
| | | EimsMaintOrder old = baseMapper.selectById(bo.getId()); |
| | | |
| | | // ä¿å
»ç¶æåæ´å¾
å®¡æ ¸æ¶éè¦æ ¡éªä¿å
»é¡¹æ°æ® |
| | | if(old.getStatus().equals(DictConstants.MAINT_ORDER_STATUS_DETAIL.BAOYANG)&&bo.getStatus().equals(DictConstants.MAINT_ORDER_STATUS_DETAIL.DAIYANZHENG)){ |
| | | LambdaQueryWrapper<EimsMaintOrditm> itmQueryWrapper = Wrappers.lambdaQuery(); |
| | | itmQueryWrapper.eq(EimsMaintOrditm::getOrderId, bo.getId()); |
| | | List<EimsMaintOrditm> eimsMaintOrditms = orditmMapper.selectList(itmQueryWrapper); |
| | | List<EimsMaintOrditm> wwc = eimsMaintOrditms.stream().filter(item->!item.getStatus().equals(DictConstants.EIMS_ORDITM_STATUS_DETAIL.YIWANCHENG)).toList(); |
| | | if(!wwc.isEmpty()){ |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | validEntityBeforeSave(update); |
| | | return baseMapper.updateById(update) > 0; |
| | |
| | | </resultMap> |
| | | <select id="selectMaintOrderList" resultMap="EimsMaintOrderResult"> |
| | | SELECT mo.*,equ.equ_name equName,equ.equ_code equCode,equ.asset_no assetNo,equ.model_no modelNo,mo.create_time createTime, |
| | | pl.maint_name maintName, |
| | | us.nick_name maintUserName,dp.dept_name maintDeptName,ue.nick_name verifyUserName, |
| | | CONCAT_WS('', mo.maint_cycle, dd.dict_label) maintCycleUnitName |
| | | FROM eims_maint_order mo |
| | |
| | | LEFT JOIN sys_user us ON mo.maint_user = us.user_id |
| | | LEFT JOIN sys_user ue ON mo.verify_user = ue.user_id |
| | | LEFT JOIN sys_dept dp ON mo.maint_dept = dp.dept_id |
| | | LEFT JOIN eims_maint_plan pl ON pl.id = mo.plan_id |
| | | LEFT JOIN sys_dict_data dd on dd.dict_type = 'maint_cycle_unit' and dd.dict_value = mo.maint_cycle_unit |
| | | ${ew.getCustomSqlSegment} |
| | | </select> |