diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/InspectionPlanInfoController.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/InspectionPlanInfoController.java index d6519d4..7bc4f5d 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/InspectionPlanInfoController.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/InspectionPlanInfoController.java @@ -1,12 +1,14 @@ package org.dromara.platform.controller; import java.util.List; +import java.util.Set; import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; import org.apache.ibatis.annotations.Param; +import org.dromara.platform.domain.vo.ioCompanySelectVo; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -114,4 +116,12 @@ public class InspectionPlanInfoController extends BaseController { return R.ok("创建巡检计划成功!"); } + + + @SaCheckPermission("platform:inspectPlanInfo:getIoCompanyNames") + @GetMapping("/getIoCompanyNames") + public R> getIoCompanyNames() { + Set rs = inspectionPlanInfoService.getIoCompanyNames(); + return R.ok(rs); + } } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ServiceCatalogCategoryController.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ServiceCatalogCategoryController.java index 65eee09..2be62d6 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ServiceCatalogCategoryController.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ServiceCatalogCategoryController.java @@ -170,4 +170,12 @@ public class ServiceCatalogCategoryController extends BaseController { return toAjax( serviceCatalogCategoryService.saveByBo(bo)); } + + + @SaCheckPermission("platform:catalogCategory:queryOutCategoryName") + @GetMapping("/queryOutCategoryName") + public R> queryOutCategoryName() { + List rs = serviceCatalogCategoryService.queryOutCategoryName(); + return R.ok(rs); + } } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderInfoController.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderInfoController.java index 0bc4dbd..27b4755 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderInfoController.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderInfoController.java @@ -6,6 +6,9 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.apache.ibatis.annotations.Param; +import org.dromara.platform.domain.InspectionPlanInfo; +import org.dromara.platform.domain.WorkOrderInfo; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -102,4 +105,11 @@ public class WorkOrderInfoController extends BaseController { @PathVariable String[] ids) { return toAjax(workOrderInfoService.deleteWithValidByIds(List.of(ids), true)); } + + @SaCheckPermission("platform:workOrder:createOrders") + @PostMapping("/createOrders") + public R> createOrders(@RequestBody InspectionPlanInfo inspectionPlanInfo) { + List rs = workOrderInfoService.createOrders(inspectionPlanInfo); + return R.ok(rs); + } } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java index 1cfd075..0a0dd4b 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java @@ -1,5 +1,6 @@ package org.dromara.platform.domain; +import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; @@ -8,6 +9,7 @@ import org.dromara.common.translation.annotation.Translation; import org.dromara.common.translation.constant.TransConstant; import java.io.Serial; +import java.util.Date; /** * 工单信息对象 work_order_info @@ -34,6 +36,36 @@ public class WorkOrderInfo extends TenantEntity { */ private String projectName; + /** + * 所属合同 + */ + @TableField(exist = false) + private String contractName; + + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd") + private Date ScheduleStartDate; + + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd") + private Date ScheduleEndDate; + /** + * 巡检点位 + */ + @TableField(exist = false) + private String inspectionPoint; + /** + * 工单类型 + */ + @TableField(exist = false) + private String type; + + /** + * 运维单位 + */ + @TableField(exist = false) + private String ioCompany; + /** * 报修人员 */ diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/CreatePlanVo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/CreatePlanVo.java new file mode 100644 index 0000000..b2f59e3 --- /dev/null +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/CreatePlanVo.java @@ -0,0 +1,11 @@ +package org.dromara.platform.domain.vo; + +import lombok.Data; +import org.dromara.common.tenant.core.TenantEntity; +@Data +public class CreatePlanVo extends TenantEntity { + private String contractName; + private String projectName; + private String ioCompany; + +} diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/ioCompanySelectVo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/ioCompanySelectVo.java new file mode 100644 index 0000000..8611134 --- /dev/null +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/ioCompanySelectVo.java @@ -0,0 +1,9 @@ +package org.dromara.platform.domain.vo; + +import lombok.Data; + +@Data +public class ioCompanySelectVo { + private String id; + private String companyName; +} diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IInspectionPlanInfoService.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IInspectionPlanInfoService.java index a708311..98d816c 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IInspectionPlanInfoService.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IInspectionPlanInfoService.java @@ -4,9 +4,11 @@ import org.dromara.platform.domain.vo.InspectionPlanInfoVo; import org.dromara.platform.domain.bo.InspectionPlanInfoBo; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.platform.domain.vo.ioCompanySelectVo; import java.util.Collection; import java.util.List; +import java.util.Set; /** * 巡检计划Service接口 @@ -67,4 +69,10 @@ public interface IInspectionPlanInfoService { Boolean deleteWithValidByIds(Collection ids, Boolean isValid); void createPlans(String contractId, String categoryId); + + /** + * 获取运维单位名称 (下拉框) + * @return + */ + Set getIoCompanyNames(); } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IServiceCatalogCategoryService.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IServiceCatalogCategoryService.java index 2cd1b87..04156d9 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IServiceCatalogCategoryService.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IServiceCatalogCategoryService.java @@ -88,4 +88,11 @@ public interface IServiceCatalogCategoryService { List findLeafNodeIds(String rootId); + + + /** + * 获取服务目录最外层节点 + * @return + */ + List queryOutCategoryName(); } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IWorkOrderInfoService.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IWorkOrderInfoService.java index 64832cb..f04b2d5 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IWorkOrderInfoService.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IWorkOrderInfoService.java @@ -1,5 +1,7 @@ package org.dromara.platform.service; +import org.dromara.platform.domain.InspectionPlanInfo; +import org.dromara.platform.domain.WorkOrderInfo; import org.dromara.platform.domain.vo.WorkOrderInfoVo; import org.dromara.platform.domain.bo.WorkOrderInfoBo; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -65,4 +67,6 @@ public interface IWorkOrderInfoService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + List createOrders(InspectionPlanInfo inspectionPlanInfo); } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/InspectionPlanInfoServiceImpl.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/InspectionPlanInfoServiceImpl.java index 446e609..2dea545 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/InspectionPlanInfoServiceImpl.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/InspectionPlanInfoServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.platform.service.impl; +import cn.hutool.core.collection.CollectionUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.utils.MapstructUtils; @@ -11,10 +12,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.platform.domain.AgreementInfo; +import org.dromara.platform.domain.ContractInfo; import org.dromara.platform.domain.dto.AgreementInfoDto; import org.dromara.platform.domain.vo.AgreementInfoVo; import org.dromara.platform.domain.vo.ContractInfoVo; +import org.dromara.platform.domain.vo.ioCompanySelectVo; import org.dromara.platform.mapper.AgreementInfoMapper; +import org.dromara.platform.mapper.ContractInfoMapper; import org.dromara.platform.service.IAgreementInfoService; import org.dromara.platform.service.IContractInfoService; import org.dromara.platform.service.IServiceCatalogCategoryService; @@ -44,6 +48,9 @@ public class InspectionPlanInfoServiceImpl implements IInspectionPlanInfoService @Resource private IContractInfoService contractInfoService; + @Resource + private ContractInfoMapper contractInfoMapper; + @Resource private IServiceCatalogCategoryService serviceCatalogCategoryService; @@ -166,6 +173,7 @@ public class InspectionPlanInfoServiceImpl implements IInspectionPlanInfoService String projectName = contractInfoVo.getProjectName(); Date startDate = contractInfoVo.getStartDate(); Date endDate = contractInfoVo.getEndDate(); + String partyB = contractInfoVo.getPartyB(); // 初始化待新增的协议信息集合 List agreementInfos = new ArrayList<>(); @@ -192,7 +200,7 @@ public class InspectionPlanInfoServiceImpl implements IInspectionPlanInfoService inspectionPlanInfo.setEndDate(endDate); inspectionPlanInfo.setDescription(agreementInfo.getServiceContent()); inspectionPlanInfo.setFrequency(agreementInfo.getFrequency()); - inspectionPlanInfo.setIoCompany("测试运维单位1"); + inspectionPlanInfo.setIoCompany(partyB); // 0未开始 1进行中 2已完成 inspectionPlanInfo.setStatus(0L); baseMapper.insert(inspectionPlanInfo); @@ -200,4 +208,17 @@ public class InspectionPlanInfoServiceImpl implements IInspectionPlanInfoService } } + + @Override + public Set getIoCompanyNames() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + List contractInfos = contractInfoMapper.selectList(queryWrapper); + if (CollectionUtil.isNotEmpty(contractInfos)){ + Set partyBSet = contractInfos.stream() + .map(item -> item.getPartyB()) + .collect(Collectors.toSet()); + return partyBSet; + } + return new HashSet<>(); + } } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ServiceCatalogCategoryServiceImpl.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ServiceCatalogCategoryServiceImpl.java index a57333d..a323d70 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ServiceCatalogCategoryServiceImpl.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ServiceCatalogCategoryServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.platform.service.impl; +import cn.hutool.core.collection.CollectionUtil; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -264,4 +265,22 @@ public class ServiceCatalogCategoryServiceImpl implements IServiceCatalogCategor List leafNodeIds = baseMapper.findLeafNodeIds(rootId); return leafNodeIds; } + + @Override + public List queryOutCategoryName() { + List selectVoList = new ArrayList<>(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ServiceCatalogCategory::getIsChildren, false); + queryWrapper.eq(ServiceCatalogCategory::getDescription, "目录"); + List categoryList = this.baseMapper.selectList(queryWrapper); + if (CollectionUtil.isNotEmpty(categoryList)){ + categoryList.forEach(category -> { + ServiceCatalogSelectVo selectVo = new ServiceCatalogSelectVo(); + selectVo.setId(category.getId()); + selectVo.setCategoryName(category.getCategoryName()); + selectVoList.add(selectVo); + }); + } + return selectVoList; + } } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java index f13aa40..f25204c 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.platform.service.impl; +import cn.hutool.core.date.DateUtil; +import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -8,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.platform.domain.InspectionPlanInfo; import org.springframework.stereotype.Service; import org.dromara.platform.domain.bo.WorkOrderInfoBo; import org.dromara.platform.domain.vo.WorkOrderInfoVo; @@ -15,9 +18,7 @@ import org.dromara.platform.domain.WorkOrderInfo; import org.dromara.platform.mapper.WorkOrderInfoMapper; import org.dromara.platform.service.IWorkOrderInfoService; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; /** * 工单信息Service业务层处理 @@ -27,6 +28,7 @@ import java.util.Collection; */ @RequiredArgsConstructor @Service +@Slf4j public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { private final WorkOrderInfoMapper baseMapper; @@ -143,4 +145,28 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { } return baseMapper.deleteByIds(ids) > 0; } + + @Override + public List createOrders(InspectionPlanInfo inspectionPlanInfo) { + Date startDate = inspectionPlanInfo.getStartDate(); + Date endDate = inspectionPlanInfo.getEndDate(); + long daysBetween = DateUtil.betweenDay(startDate, endDate, false); + // 默认1日1次 + List workOrderInfos = new ArrayList<>(); + for (long i = 0; i < daysBetween; i++) { + WorkOrderInfo workOrderInfo = new WorkOrderInfo(); + workOrderInfo.setProjectName(inspectionPlanInfo.getProjectName()); + workOrderInfo.setContractName(inspectionPlanInfo.getContractName()); + workOrderInfo.setStatus(0L); + workOrderInfo.setScheduleStartDate(DateUtil.offsetDay(startDate, (int) i)); + workOrderInfo.setScheduleEndDate(DateUtil.offsetDay(startDate, (int) i)); + workOrderInfo.setIoCompany(inspectionPlanInfo.getIoCompany()); + workOrderInfo.setInspectionPoint("测试巡检点位"); + workOrderInfo.setType("巡检计划"); + workOrderInfos.add(workOrderInfo); + log.info("开始日期{} ---> 结束日期{}-->运维单位{}",workOrderInfo.getScheduleStartDate(),workOrderInfo.getScheduleEndDate(),workOrderInfo.getIoCompany()); + } + + return workOrderInfos; + } }