diff --git a/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java b/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java index 55efdfc..32063b7 100644 --- a/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java +++ b/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java @@ -20,6 +20,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dayu.daf.core.log.annotation.ApiLog; import com.dayu.daf.core.tool.constant.DafConstant; import com.xkcoding.http.util.StringUtil; +import io.micrometer.core.instrument.util.StringUtils; +import io.micrometer.core.instrument.util.StringUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -257,4 +259,21 @@ public class EquipmentLedgerController extends DafController { EquipmentLedger DetailList = equipmentLedgerService.getDetailList("'" + KksNo + "'"); return R.data(DetailList); } + + /** + * 远程搜索 + */ + @GetMapping("/listByCoding") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "远程搜索", notes = "传入") + public R> listByCoding(String coding) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (StringUtils.isNotEmpty(coding)) { + queryWrapper.lambda().like(EquipmentLedger::getKksEncoding, coding); + } + queryWrapper.lambda().orderByDesc(EquipmentLedger::getKksEncoding); + queryWrapper.lambda().last(" LIMIT 50"); + List list = equipmentLedgerService.list(queryWrapper); + return R.data(list); + } } diff --git a/src/main/java/org/energy/modules/smart/controller/WorkOrderController.java b/src/main/java/org/energy/modules/smart/controller/WorkOrderController.java new file mode 100644 index 0000000..59be10f --- /dev/null +++ b/src/main/java/org/energy/modules/smart/controller/WorkOrderController.java @@ -0,0 +1,189 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.energy.modules.smart.controller; + +import com.alibaba.excel.EasyExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.dayu.daf.core.boot.ctrl.DafController; +import com.dayu.daf.core.log.annotation.ApiLog; +import com.dayu.daf.core.mp.support.Condition; +import com.dayu.daf.core.mp.support.Query; +import com.dayu.daf.core.tool.api.R; +import com.dayu.daf.core.tool.utils.Func; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import lombok.SneakyThrows; +import org.apache.commons.codec.Charsets; +import org.energy.modules.smart.entity.WorkOrder; +import org.energy.modules.smart.excel.WorkOrderExcel; +import org.energy.modules.smart.service.IWorkOrderService; +import org.energy.modules.smart.vo.WorkOrderVO; +import org.energy.modules.system.util.DataUtils; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author Daf + * @since 2024-07-12 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/workorder") +@Api(value = "", tags = "接口") +public class WorkOrderController extends DafController { + + private IWorkOrderService workOrderService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "详情", notes = "传入workOrder") + public R detail(WorkOrder workOrder) { + WorkOrderVO detail = workOrderService.selectDetail(workOrder.getId()); + return R.data(detail); + } + + /** + * 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入workOrder") + public R> list(WorkOrder workOrder, Query query) { + IPage pages = workOrderService.page(Condition.getPage(query), Condition.getQueryWrapper(workOrder)); + return R.data(pages); + } + + /** + * 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "分页", notes = "传入workOrder") + public R> page(WorkOrderVO workOrderVO, Query query) { + IPage pages = workOrderService.selectWorkOrderPage(Condition.getPage(query), workOrderVO); + return R.data(pages); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入workOrder") + public R save(@Valid @RequestBody WorkOrder workOrder) { + return R.status(workOrderService.save(workOrder)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入workOrder") + public R update(@Valid @RequestBody WorkOrder workOrder) { + return R.status(workOrderService.updateById(workOrder)); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "新增或修改", notes = "传入workOrder") + public R submit(@Valid @RequestBody WorkOrder workOrder) { + return R.status(workOrderService.saveOrUpdate(workOrder)); + } + + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @ApiOperation(value = "逻辑删除", notes = "传入ids") + public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return R.status(workOrderService.deleteLogic(Func.toLongList(ids))); + } + + /** + * 审核 + */ + @PostMapping("/auditing") + @ApiOperationSupport(order = 8) + @ApiOperation(value = "更新", notes = "传入ids") + public R auditing(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return this.approve(2,ids); + } + + /** + * 驳回 + */ + @PostMapping("/reject") + @ApiOperationSupport(order = 9) + @ApiOperation(value = "更新", notes = "传入ids") + public R reject(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return this.approve(3,ids); + } + + /** + * 驳回OR审核 + */ + public R approve(Integer status, String ids) { + List list = new ArrayList<>(); + for (String id : ids.split(",")) { + WorkOrder workOrder = new WorkOrder(); + workOrder.setId(Long.parseLong(id)); + workOrder.setApprovalStatus(status); + list.add(workOrder); + } + return R.status(workOrderService.updateBatchById(list)); + } + + /** + * 导出 + */ + @SneakyThrows + @GetMapping("export") + @ApiOperationSupport(order = 10) + @ApiOperation(value = "导出", notes = "传入") + @ApiLog + public void exportUser(@ApiIgnore @RequestParam Map entity, HttpServletResponse response) { + entity.remove("daf-auth"); + WorkOrderVO vo = DataUtils.mapToEntity(entity, WorkOrderVO::new); + List list = workOrderService.export(vo); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding(Charsets.UTF_8.name()); + String fileName = URLEncoder.encode("工单数据导出", Charsets.UTF_8.name()); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + EasyExcel.write(response.getOutputStream(), WorkOrderExcel.class).sheet("工单").doWrite(list); + } + +} diff --git a/src/main/java/org/energy/modules/smart/dto/WorkOrderDTO.java b/src/main/java/org/energy/modules/smart/dto/WorkOrderDTO.java new file mode 100644 index 0000000..f034595 --- /dev/null +++ b/src/main/java/org/energy/modules/smart/dto/WorkOrderDTO.java @@ -0,0 +1,18 @@ +package org.energy.modules.smart.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.energy.modules.smart.entity.WorkOrder; + +/** + * 数据传输对象实体类 + * + * @author Daf + * @since 2024-07-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class WorkOrderDTO extends WorkOrder { + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/energy/modules/smart/entity/WorkOrder.java b/src/main/java/org/energy/modules/smart/entity/WorkOrder.java new file mode 100644 index 0000000..0d532fb --- /dev/null +++ b/src/main/java/org/energy/modules/smart/entity/WorkOrder.java @@ -0,0 +1,128 @@ +package org.energy.modules.smart.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.dayu.daf.core.mp.base.BaseEntity; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +/** + * 实体类 + * + * @author Daf + * @since 2024-07-12 + */ +@Data +@TableName("smt_work_order") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "WorkOrder对象", description = "WorkOrder对象") +public class WorkOrder extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "主键") + private Long id; + /** + * 台账id + */ + @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "台账id") + private Long equipmentLedgerId; + /** + * 工单编号 + */ + @ApiModelProperty(value = "工单编号") + private String workOrderNo; + /** + * 工单类型 + */ + @ApiModelProperty(value = "工单类型") + private Integer workOrderType; + /** + * 内容描述 + */ + @ApiModelProperty(value = "内容描述") + private String description; + /** + * 负责人 + */ + @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "负责人") + private Long responsibleUserId; + /** + * 责任班组 + */ + @ApiModelProperty(value = "责任班组") + private String responsibilityTeam; + /** + * 计划工厂 + */ + @ApiModelProperty(value = "计划工厂") + private String plannedFactory; + /** + * 维护作业类型 + */ + @ApiModelProperty(value = "维护作业类型") + private Integer maintenanceTaskType; + /** + * 用户状态 + */ + @ApiModelProperty(value = "用户状态") + private Integer userStatus; + /** + * 发生时间 + */ + @ApiModelProperty(value = "发生时间") + private LocalDateTime occurrenceTime; + /** + * 执行班组 + */ + @ApiModelProperty(value = "执行班组") + private String taskTeam; + /** + * 处理时间 + */ + @ApiModelProperty(value = "处理时间") + private LocalDateTime processingTime; + /** + * 发生原因 + */ + @ApiModelProperty(value = "发生原因") + private String causeIncident; + /** + * 处理过程描述 + */ + @ApiModelProperty(value = "处理过程描述") + private String processDescription; + /** + * 结束时间 + */ + @ApiModelProperty(value = "结束时间") + private LocalDateTime endTime; + /** + * 处理结果 + */ + @ApiModelProperty(value = "处理结果") + private Integer handlingResult; + /** + * 审核状态 + */ + @JsonSerialize(nullsUsing = NullSerializer.class) + @ApiModelProperty(value = "审核状态") + private Integer approvalStatus; + + + +} diff --git a/src/main/java/org/energy/modules/smart/excel/WorkOrderExcel.java b/src/main/java/org/energy/modules/smart/excel/WorkOrderExcel.java new file mode 100644 index 0000000..2564ebf --- /dev/null +++ b/src/main/java/org/energy/modules/smart/excel/WorkOrderExcel.java @@ -0,0 +1,77 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.energy.modules.smart.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serializable; + +/** + * EquipmentLedge model export + * @author edwong + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(16) +public class WorkOrderExcel implements Serializable { + private static final long serialVersionUID = 1L; + + @ColumnWidth(20) + @ExcelProperty(value = "KKS编码") + private String kksEncoding; + + @ColumnWidth(20) + @ExcelProperty(value = "工单编号") + private String workOrderNo; + + @ColumnWidth(20) + @ExcelProperty(value = "内容描述") + private String description; + + @ColumnWidth(20) + @ExcelProperty(value = "工单类型") + private String workOrderType; + + @ColumnWidth(20) + @ExcelProperty(value = "维护作业类型") + private String maintenanceTaskType; + + @ColumnWidth(20) + @ExcelProperty(value = "所属场站") + private String plannedFactory; + + @ColumnWidth(20) + @ExcelProperty(value = "负责人") + private String responsibleUserName; + + @ColumnWidth(20) + @ExcelProperty(value = "责任班组") + private String responsibilityTeam; + + @ColumnWidth(20) + @ExcelProperty(value = "工单完成") + private String handlingResult; + + @ColumnWidth(20) + @ExcelProperty(value = "审核状态") + private String approvalStatus; + +} diff --git a/src/main/java/org/energy/modules/smart/mapper/WorkOrderMapper.java b/src/main/java/org/energy/modules/smart/mapper/WorkOrderMapper.java new file mode 100644 index 0000000..987387d --- /dev/null +++ b/src/main/java/org/energy/modules/smart/mapper/WorkOrderMapper.java @@ -0,0 +1,35 @@ +package org.energy.modules.smart.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.energy.modules.leger.entity.EquipmentLedger; +import org.energy.modules.leger.excel.EquipmentLedgerExcel; +import org.energy.modules.smart.entity.WorkOrder; +import org.energy.modules.smart.excel.WorkOrderExcel; +import org.energy.modules.smart.vo.WorkOrderVO; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Daf + * @since 2024-07-12 + */ +public interface WorkOrderMapper extends BaseMapper { + + WorkOrderVO selectDetail(@Param("id") Long id); + + /** + * 自定义分页 + * + * @param page + * @param workOrder + * @return + */ + List selectWorkOrderPage(IPage page,@Param("vo") WorkOrderVO workOrder); + + List exportData(@Param("vo") WorkOrderVO workOrder); +} diff --git a/src/main/java/org/energy/modules/smart/mapper/WorkOrderMapper.xml b/src/main/java/org/energy/modules/smart/mapper/WorkOrderMapper.xml new file mode 100644 index 0000000..f5fd997 --- /dev/null +++ b/src/main/java/org/energy/modules/smart/mapper/WorkOrderMapper.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/energy/modules/smart/service/IWorkOrderService.java b/src/main/java/org/energy/modules/smart/service/IWorkOrderService.java new file mode 100644 index 0000000..fe75ae0 --- /dev/null +++ b/src/main/java/org/energy/modules/smart/service/IWorkOrderService.java @@ -0,0 +1,39 @@ +package org.energy.modules.smart.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.dayu.daf.core.mp.base.BaseService; +import org.energy.modules.smart.entity.WorkOrder; +import org.energy.modules.smart.excel.WorkOrderExcel; +import org.energy.modules.smart.vo.WorkOrderVO; + +import java.util.List; + +/** + * 服务类 + * + * @author Daf + * @since 2024-07-12 + */ +public interface IWorkOrderService extends BaseService { + + /** + * 获取详情 + * @param id + * @return + */ + WorkOrderVO selectDetail(Long id); + + /** + * 自定义分页 + * + * @param page + * @param workOrder + * @return + */ + IPage selectWorkOrderPage(IPage page, WorkOrderVO workOrder); + + List export(WorkOrderVO workOrder); + + +} diff --git a/src/main/java/org/energy/modules/smart/service/impl/WorkOrderServiceImpl.java b/src/main/java/org/energy/modules/smart/service/impl/WorkOrderServiceImpl.java new file mode 100644 index 0000000..8078cf6 --- /dev/null +++ b/src/main/java/org/energy/modules/smart/service/impl/WorkOrderServiceImpl.java @@ -0,0 +1,56 @@ +package org.energy.modules.smart.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.dayu.daf.core.mp.base.BaseServiceImpl; +import io.micrometer.core.instrument.util.StringUtils; +import org.energy.modules.smart.entity.WorkOrder; +import org.energy.modules.smart.excel.WorkOrderExcel; +import org.energy.modules.smart.mapper.WorkOrderMapper; +import org.energy.modules.smart.service.IWorkOrderService; +import org.energy.modules.smart.vo.WorkOrderVO; +import org.energy.modules.system.service.IDictService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 服务实现类 + * + * @author Daf + * @since 2024-07-12 + */ +@Service +public class WorkOrderServiceImpl extends BaseServiceImpl implements IWorkOrderService { + + @Autowired + IDictService dictService; + + @Override + public WorkOrderVO selectDetail(Long id) { + return baseMapper.selectDetail(id); + } + + @Override + public IPage selectWorkOrderPage(IPage page, WorkOrderVO workOrder) { + return page.setRecords(baseMapper.selectWorkOrderPage(page, workOrder)); + } + + @Override + public List export(WorkOrderVO workOrder) { + List list = baseMapper.exportData(workOrder); + list.forEach(item -> { + if (StringUtils.isNotEmpty(item.getWorkOrderType())) + item.setWorkOrderType(dictService.getValue("workorder_type", Integer.parseInt(item.getWorkOrderType()))); + if (StringUtils.isNotEmpty(item.getMaintenanceTaskType())) + item.setMaintenanceTaskType(dictService.getValue("maintenance_job_type", Integer.parseInt(item.getMaintenanceTaskType()))); + if (StringUtils.isNotEmpty(item.getHandlingResult())) + item.setHandlingResult(dictService.getValue("workorder_process_res", Integer.parseInt(item.getHandlingResult()))); + if (StringUtils.isNotEmpty(item.getApprovalStatus())) + item.setApprovalStatus(dictService.getValue("check_status", Integer.parseInt(item.getApprovalStatus()))); + }); + return list; + } + +} diff --git a/src/main/java/org/energy/modules/smart/vo/WorkOrderVO.java b/src/main/java/org/energy/modules/smart/vo/WorkOrderVO.java new file mode 100644 index 0000000..25ae0c9 --- /dev/null +++ b/src/main/java/org/energy/modules/smart/vo/WorkOrderVO.java @@ -0,0 +1,29 @@ +package org.energy.modules.smart.vo; + +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.energy.modules.smart.entity.WorkOrder; + +/** + * 视图实体类 + * + * @author Daf + * @since 2024-07-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "WorkOrderVO对象", description = "WorkOrderVO对象") +public class WorkOrderVO extends WorkOrder { + private static final long serialVersionUID = 1L; + + private String kksEncoding; + + private String kksDescription; + + private Integer station; + + private String responsibleUserName; + + +} diff --git a/src/main/java/org/energy/modules/system/controller/DictController.java b/src/main/java/org/energy/modules/system/controller/DictController.java index 6b89839..e51074b 100644 --- a/src/main/java/org/energy/modules/system/controller/DictController.java +++ b/src/main/java/org/energy/modules/system/controller/DictController.java @@ -15,6 +15,8 @@ */ package org.energy.modules.system.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.dayu.daf.core.tool.constant.DafConstant; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.*; import lombok.AllArgsConstructor; @@ -32,6 +34,7 @@ import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -128,4 +131,24 @@ public class DictController extends DafController { } + /** + * 通过编号获取列表 + */ + @GetMapping("/listByCode") + @ApiImplicitParams({ + @ApiImplicitParam(name = "code", value = "字典编号", paramType = "query", dataType = "string"), + }) + @ApiOperationSupport(order = 2) + @ApiOperation(value = "列表", notes = "传入dict") + public R> listByCode(@ApiIgnore @RequestParam Map dict) { + List list = new ArrayList<>(); + if (dict != null && dict.containsKey("code")) { + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(Dict::getCode, dict.get("code")); + qw.lambda().notIn(Dict::getDictKey, -1); + qw.lambda().eq(Dict::getIsDeleted, DafConstant.DB_NOT_DELETED); + list = dictService.list(qw); + } + return R.data(list); + } } diff --git a/src/main/java/org/energy/modules/system/controller/MenuController.java b/src/main/java/org/energy/modules/system/controller/MenuController.java index 81ee8fb..06a1c22 100644 --- a/src/main/java/org/energy/modules/system/controller/MenuController.java +++ b/src/main/java/org/energy/modules/system/controller/MenuController.java @@ -15,6 +15,7 @@ */ package org.energy.modules.system.controller; +import com.dayu.daf.core.tool.constant.DafConstant; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.*; import lombok.AllArgsConstructor; @@ -121,6 +122,7 @@ public class MenuController extends DafController { @ApiOperationSupport(order = 5) @ApiOperation(value = "新增或修改", notes = "传入menu") public R submit(@Valid @RequestBody Menu menu) { + menu.setIsDeleted(DafConstant.DB_NOT_DELETED); return R.status(menuService.saveOrUpdate(menu)); } diff --git a/src/main/java/org/energy/modules/system/controller/RoleController.java b/src/main/java/org/energy/modules/system/controller/RoleController.java index e877ee7..7f3f404 100644 --- a/src/main/java/org/energy/modules/system/controller/RoleController.java +++ b/src/main/java/org/energy/modules/system/controller/RoleController.java @@ -122,11 +122,14 @@ public class RoleController extends DafController { if (Func.isEmpty(role.getId())) { role.setTenantId(user.getTenantId()); } + if (Func.isEmpty(role.getParentId())) { + role.setParentId(0L); + } return R.status(roleService.saveOrUpdate(role)); } /** - * 删除 + * 删除L */ @PostMapping("/remove") @ApiOperationSupport(order = 6) diff --git a/src/main/java/org/energy/modules/system/controller/UserController.java b/src/main/java/org/energy/modules/system/controller/UserController.java index e0302fc..734706b 100644 --- a/src/main/java/org/energy/modules/system/controller/UserController.java +++ b/src/main/java/org/energy/modules/system/controller/UserController.java @@ -296,4 +296,21 @@ public class UserController { return R.status(userService.registerGuest(user, oauthId)); } + /** + * 远程搜索 + */ + @GetMapping("/listBySearch") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "远程搜索", notes = "传入") + public R> listBySearch(String search) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (io.micrometer.core.instrument.util.StringUtils.isNotEmpty(search)) { + queryWrapper.lambda().like(User::getName, search).or().like(User::getCode, search); + } + queryWrapper.lambda().orderByAsc(User::getCreateTime); + queryWrapper.lambda().last(" LIMIT 50"); + List list = userService.list(queryWrapper); + return R.data(list); + } + } diff --git a/src/main/java/org/energy/modules/system/mapper/DictMapper.xml b/src/main/java/org/energy/modules/system/mapper/DictMapper.xml index 6b89bd7..3ddb6a8 100644 --- a/src/main/java/org/energy/modules/system/mapper/DictMapper.xml +++ b/src/main/java/org/energy/modules/system/mapper/DictMapper.xml @@ -50,7 +50,7 @@ diff --git a/src/main/java/org/energy/modules/system/service/impl/DictServiceImpl.java b/src/main/java/org/energy/modules/system/service/impl/DictServiceImpl.java index e1afa6b..382e853 100644 --- a/src/main/java/org/energy/modules/system/service/impl/DictServiceImpl.java +++ b/src/main/java/org/energy/modules/system/service/impl/DictServiceImpl.java @@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dayu.daf.core.log.exception.ServiceException; +import com.dayu.daf.core.tool.constant.DafConstant; import com.dayu.daf.core.tool.node.ForestNodeMerger; import com.dayu.daf.core.tool.utils.Func; import com.dayu.daf.core.tool.utils.StringPool; @@ -27,10 +28,14 @@ import org.energy.modules.system.entity.Dict; import org.energy.modules.system.mapper.DictMapper; import org.energy.modules.system.service.IDictService; import org.energy.modules.system.vo.DictVO; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import java.util.List; +import static org.energy.common.cache.CacheNames.DICT_VALUE; +import static org.energy.common.cache.CacheNames.DICT_LIST; + /** * 服务实现类 * @@ -50,6 +55,7 @@ public class DictServiceImpl extends ServiceImpl implements ID } @Override + @Cacheable(cacheNames = {DICT_LIST, DICT_VALUE}, key = "#code + ':' + #dictKey") public String getValue(String code, Integer dictKey) { return Func.toStr(baseMapper.getValue(code, dictKey), StringPool.EMPTY); } @@ -66,6 +72,10 @@ public class DictServiceImpl extends ServiceImpl implements ID if (cnt > 0) { throw new ServiceException("当前字典键值已存在!"); } + if (dict.getParentId() == null) { + dict.setParentId(0L); + } + dict.setIsDeleted(DafConstant.DB_NOT_DELETED); return saveOrUpdate(dict); } } diff --git a/src/main/java/org/energy/modules/system/util/DataUtils.java b/src/main/java/org/energy/modules/system/util/DataUtils.java new file mode 100644 index 0000000..b781ea4 --- /dev/null +++ b/src/main/java/org/energy/modules/system/util/DataUtils.java @@ -0,0 +1,22 @@ +package org.energy.modules.system.util; + +import java.util.Map; +import java.util.function.Supplier; + +public class DataUtils { + + public static T mapToEntity(Map map, Supplier supplier) { + T entity = supplier.get(); + + map.forEach((key, value) -> { + try { + entity.getClass().getDeclaredField(key).setAccessible(true); + entity.getClass().getDeclaredField(key).set(entity, value); + } catch (NoSuchFieldException | IllegalAccessException e) { + e.printStackTrace(); + } + }); + + return entity; + } +} diff --git a/src/main/java/org/energy/modules/system/util/ExcelUtils.java b/src/main/java/org/energy/modules/system/util/ExcelUtils.java new file mode 100644 index 0000000..0ea514f --- /dev/null +++ b/src/main/java/org/energy/modules/system/util/ExcelUtils.java @@ -0,0 +1,43 @@ +package org.energy.modules.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +public class ExcelUtils { + + + /** + * 解析excel文件 + * + * @param fileName + * @param clazz + * @param + * @return + */ + public static List parseExcel(String fileName, Class clazz) { + List list = new ArrayList<>(); + try { + EasyExcel.read(fileName, clazz, new AnalysisEventListener() { + //解析一行运行一次此方法。 + @Override + public void invoke(T t, AnalysisContext analysisContext) { + list.add(t); + } + + //解析所有数据完成,运行此方法。 + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + } + }).sheet().doRead(); + } catch (Exception e) { + log.error("解析excel异常,文件名={}", fileName, e); + } + return list; + } +}