Merge remote-tracking branch 'origin/main'

main
Dayu 12 months ago
commit c9032e0cdb
  1. 19
      src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java
  2. 189
      src/main/java/org/energy/modules/smart/controller/WorkOrderController.java
  3. 18
      src/main/java/org/energy/modules/smart/dto/WorkOrderDTO.java
  4. 128
      src/main/java/org/energy/modules/smart/entity/WorkOrder.java
  5. 77
      src/main/java/org/energy/modules/smart/excel/WorkOrderExcel.java
  6. 35
      src/main/java/org/energy/modules/smart/mapper/WorkOrderMapper.java
  7. 127
      src/main/java/org/energy/modules/smart/mapper/WorkOrderMapper.xml
  8. 39
      src/main/java/org/energy/modules/smart/service/IWorkOrderService.java
  9. 56
      src/main/java/org/energy/modules/smart/service/impl/WorkOrderServiceImpl.java
  10. 29
      src/main/java/org/energy/modules/smart/vo/WorkOrderVO.java
  11. 23
      src/main/java/org/energy/modules/system/controller/DictController.java
  12. 2
      src/main/java/org/energy/modules/system/controller/MenuController.java
  13. 5
      src/main/java/org/energy/modules/system/controller/RoleController.java
  14. 17
      src/main/java/org/energy/modules/system/controller/UserController.java
  15. 2
      src/main/java/org/energy/modules/system/mapper/DictMapper.xml
  16. 10
      src/main/java/org/energy/modules/system/service/impl/DictServiceImpl.java
  17. 22
      src/main/java/org/energy/modules/system/util/DataUtils.java
  18. 43
      src/main/java/org/energy/modules/system/util/ExcelUtils.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.log.annotation.ApiLog;
import com.dayu.daf.core.tool.constant.DafConstant; import com.dayu.daf.core.tool.constant.DafConstant;
import com.xkcoding.http.util.StringUtil; 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.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
@ -257,4 +259,21 @@ public class EquipmentLedgerController extends DafController {
EquipmentLedger DetailList = equipmentLedgerService.getDetailList("'" + KksNo + "'"); EquipmentLedger DetailList = equipmentLedgerService.getDetailList("'" + KksNo + "'");
return R.data(DetailList); return R.data(DetailList);
} }
/**
* 远程搜索
*/
@GetMapping("/listByCoding")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "远程搜索", notes = "传入")
public R<List<EquipmentLedger>> listByCoding(String coding) {
QueryWrapper<EquipmentLedger> queryWrapper = new QueryWrapper<>();
if (StringUtils.isNotEmpty(coding)) {
queryWrapper.lambda().like(EquipmentLedger::getKksEncoding, coding);
}
queryWrapper.lambda().orderByDesc(EquipmentLedger::getKksEncoding);
queryWrapper.lambda().last(" LIMIT 50");
List<EquipmentLedger> list = equipmentLedgerService.list(queryWrapper);
return R.data(list);
}
} }

@ -0,0 +1,189 @@
/**
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
* <p>
* 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
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* 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<WorkOrderVO> detail(WorkOrder workOrder) {
WorkOrderVO detail = workOrderService.selectDetail(workOrder.getId());
return R.data(detail);
}
/**
* 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入workOrder")
public R<IPage<WorkOrder>> list(WorkOrder workOrder, Query query) {
IPage<WorkOrder> pages = workOrderService.page(Condition.getPage(query), Condition.getQueryWrapper(workOrder));
return R.data(pages);
}
/**
* 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "分页", notes = "传入workOrder")
public R<IPage<WorkOrderVO>> page(WorkOrderVO workOrderVO, Query query) {
IPage<WorkOrderVO> 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<WorkOrder> 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<String, Object> entity, HttpServletResponse response) {
entity.remove("daf-auth");
WorkOrderVO vo = DataUtils.mapToEntity(entity, WorkOrderVO::new);
List<WorkOrderExcel> 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);
}
}

@ -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;
}

@ -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;
}

@ -0,0 +1,77 @@
/**
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
* <p>
* 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
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* 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;
}

@ -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<WorkOrder> {
WorkOrderVO selectDetail(@Param("id") Long id);
/**
* 自定义分页
*
* @param page
* @param workOrder
* @return
*/
List<WorkOrderVO> selectWorkOrderPage(IPage page,@Param("vo") WorkOrderVO workOrder);
List<WorkOrderExcel> exportData(@Param("vo") WorkOrderVO workOrder);
}

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.energy.modules.smart.mapper.WorkOrderMapper">
<!-- 通用查询映射结果 -->
<resultMap id="workOrderResultMap" type="org.energy.modules.smart.vo.WorkOrderVO">
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="is_deleted" property="isDeleted"/>
<result column="status" property="status"/>
<result column="id" property="id"/>
<result column="equipment_ledger_id" property="equipmentLedgerId"/>
<result column="work_order_no" property="workOrderNo"/>
<result column="work_order_type" property="workOrderType"/>
<result column="description" property="description"/>
<result column="responsible_user_id" property="responsibleUserId"/>
<result column="responsibility_team" property="responsibilityTeam"/>
<result column="planned_factory" property="plannedFactory"/>
<result column="maintenance_task_type" property="maintenanceTaskType"/>
<result column="user_status" property="userStatus"/>
<result column="occurrence_time" property="occurrenceTime"/>
<result column="task_team" property="taskTeam"/>
<result column="processing_time" property="processingTime"/>
<result column="cause_incident" property="causeIncident"/>
<result column="process_description" property="processDescription"/>
<result column="end_time" property="endTime"/>
<result column="handling_result" property="handlingResult"/>
<result column="approval_status" property="approvalStatus"/>
<result column="kks_encoding" property="kksEncoding"/>
<result column="kks_description" property="kksDescription"/>
<result column="station" property="station"/>
<result column="responsible_user_name" property="responsibleUserName"/>
</resultMap>
<select id="selectDetail" resultMap="workOrderResultMap">
select a.*, b.kks_encoding, b.kks_description, b.station, c.name as responsible_user_name from smt_work_order a
left join l_equipment_ledger b on b.id = a.equipment_ledger_id and b.is_deleted = 0
left join sys_user c on c.id = a.responsible_user_id and c.is_deleted = 0
where a.is_deleted = 0 and a.id = #{id}
</select>
<select id="selectWorkOrderPage" resultMap="workOrderResultMap">
select a.*, b.kks_encoding, b.kks_description, b.station, c.name as responsible_user_name from smt_work_order a
left join l_equipment_ledger b on b.id = a.equipment_ledger_id and b.is_deleted = 0
left join sys_user c on c.id = a.responsible_user_id and c.is_deleted = 0
where a.is_deleted = 0
<if test="vo.equipmentLedgerId != null and vo.equipmentLedgerId != ''">
and a.equipment_ledger_id = #{vo.equipmentLedgerId}
</if>
<if test="vo.workOrderType != null and vo.workOrderType != ''">
and a.work_order_type = #{vo.workOrderType}
</if>
<if test="vo.workOrderNo != null and vo.workOrderNo != ''">
and a.work_order_no = #{vo.workOrderNo}
</if>
<if test="vo.description != null and vo.description != ''">
and a.description = #{vo.description}
</if>
<if test="vo.maintenanceTaskType != null and vo.maintenanceTaskType != ''">
and a.maintenance_task_type = #{vo.maintenanceTaskType}
</if>
<if test="vo.userStatus != null and vo.userStatus != ''">
and a.user_status = #{vo.userStatus}
</if>
<if test="vo.responsibilityTeam != null and vo.responsibilityTeam != ''">
and a.responsibility_team = #{vo.responsibilityTeam}
</if>
<if test="vo.station != null and vo.station != ''">
and b.station = ${vo.station}
</if>
order by update_time desc
</select>
<select id="exportData" resultType="org.energy.modules.smart.excel.WorkOrderExcel">
select
b.kks_encoding,
a.work_order_no,
a.description,
a.planned_factory,
c.name as responsible_user_name,
a.responsibility_team,
a.work_order_type,
a.maintenance_task_type,
a.handling_result,
a.approval_status
-- d.dict_value as work_order_type,
-- d2.dict_value maintenance_task_type,
-- d3.dict_value handling_result,
-- d4.dict_value approval_status
from smt_work_order a
left join l_equipment_ledger b on b.id = a.equipment_ledger_id and b.is_deleted = 0
left join sys_user c on c.id = a.responsible_user_id and c.is_deleted = 0
-- left join sys_dict d on d.id = a.work_order_type and d.is_deleted = 0
-- left join sys_dict d2 on d2.id = a.maintenance_task_type and d2.is_deleted = 0
-- left join sys_dict d3 on d3.id = a.handling_result and d3.is_deleted = 0
-- left join sys_dict d4 on d4.id = a.approval_status and d4.is_deleted = 0
where a.is_deleted = 0
<if test="vo.equipmentLedgerId != null and vo.equipmentLedgerId != ''">
and a.equipment_ledger_id = #{vo.equipmentLedgerId}
</if>
<if test="vo.workOrderType != null and vo.workOrderType != ''">
and a.work_order_type = #{vo.workOrderType}
</if>
<if test="vo.workOrderNo != null and vo.workOrderNo != ''">
and a.work_order_no = #{vo.workOrderNo}
</if>
<if test="vo.description != null and vo.description != ''">
and a.description = #{vo.description}
</if>
<if test="vo.maintenanceTaskType != null and vo.maintenanceTaskType != ''">
and a.maintenance_task_type = #{vo.maintenanceTaskType}
</if>
<if test="vo.userStatus != null and vo.userStatus != ''">
and a.user_status = #{vo.userStatus}
</if>
<if test="vo.responsibilityTeam != null and vo.responsibilityTeam != ''">
and a.responsibility_team = #{vo.responsibilityTeam}
</if>
<if test="vo.station != null and vo.station != ''">
and b.station = ${vo.station}
</if>
</select>
</mapper>

@ -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<WorkOrder> {
/**
* 获取详情
* @param id
* @return
*/
WorkOrderVO selectDetail(Long id);
/**
* 自定义分页
*
* @param page
* @param workOrder
* @return
*/
IPage<WorkOrderVO> selectWorkOrderPage(IPage<WorkOrderVO> page, WorkOrderVO workOrder);
List<WorkOrderExcel> export(WorkOrderVO workOrder);
}

@ -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<WorkOrderMapper, WorkOrder> implements IWorkOrderService {
@Autowired
IDictService dictService;
@Override
public WorkOrderVO selectDetail(Long id) {
return baseMapper.selectDetail(id);
}
@Override
public IPage<WorkOrderVO> selectWorkOrderPage(IPage<WorkOrderVO> page, WorkOrderVO workOrder) {
return page.setRecords(baseMapper.selectWorkOrderPage(page, workOrder));
}
@Override
public List<WorkOrderExcel> export(WorkOrderVO workOrder) {
List<WorkOrderExcel> 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;
}
}

@ -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;
}

@ -15,6 +15,8 @@
*/ */
package org.energy.modules.system.controller; 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 com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -32,6 +34,7 @@ import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; 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<List<Dict>> listByCode(@ApiIgnore @RequestParam Map<String, Object> dict) {
List<Dict> list = new ArrayList<>();
if (dict != null && dict.containsKey("code")) {
QueryWrapper<Dict> 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);
}
} }

@ -15,6 +15,7 @@
*/ */
package org.energy.modules.system.controller; package org.energy.modules.system.controller;
import com.dayu.daf.core.tool.constant.DafConstant;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -121,6 +122,7 @@ public class MenuController extends DafController {
@ApiOperationSupport(order = 5) @ApiOperationSupport(order = 5)
@ApiOperation(value = "新增或修改", notes = "传入menu") @ApiOperation(value = "新增或修改", notes = "传入menu")
public R submit(@Valid @RequestBody Menu menu) { public R submit(@Valid @RequestBody Menu menu) {
menu.setIsDeleted(DafConstant.DB_NOT_DELETED);
return R.status(menuService.saveOrUpdate(menu)); return R.status(menuService.saveOrUpdate(menu));
} }

@ -122,11 +122,14 @@ public class RoleController extends DafController {
if (Func.isEmpty(role.getId())) { if (Func.isEmpty(role.getId())) {
role.setTenantId(user.getTenantId()); role.setTenantId(user.getTenantId());
} }
if (Func.isEmpty(role.getParentId())) {
role.setParentId(0L);
}
return R.status(roleService.saveOrUpdate(role)); return R.status(roleService.saveOrUpdate(role));
} }
/** /**
* 删除 * 删除L
*/ */
@PostMapping("/remove") @PostMapping("/remove")
@ApiOperationSupport(order = 6) @ApiOperationSupport(order = 6)

@ -296,4 +296,21 @@ public class UserController {
return R.status(userService.registerGuest(user, oauthId)); return R.status(userService.registerGuest(user, oauthId));
} }
/**
* 远程搜索
*/
@GetMapping("/listBySearch")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "远程搜索", notes = "传入")
public R<List<User>> listBySearch(String search) {
QueryWrapper<User> 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<User> list = userService.list(queryWrapper);
return R.data(list);
}
} }

@ -50,7 +50,7 @@
</select> </select>
<select id="tree" resultMap="treeNodeResultMap"> <select id="tree" resultMap="treeNodeResultMap">
select id, parent_id, dict_value as title, id as 'value', id as 'key' from sys_dict where is_deleted = 0 select id, parent_id, dict_value as title, id as "value", id as "key" from sys_dict where is_deleted = 0
</select> </select>
</mapper> </mapper>

@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dayu.daf.core.log.exception.ServiceException; 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.node.ForestNodeMerger;
import com.dayu.daf.core.tool.utils.Func; import com.dayu.daf.core.tool.utils.Func;
import com.dayu.daf.core.tool.utils.StringPool; 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.mapper.DictMapper;
import org.energy.modules.system.service.IDictService; import org.energy.modules.system.service.IDictService;
import org.energy.modules.system.vo.DictVO; import org.energy.modules.system.vo.DictVO;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; 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<DictMapper, Dict> implements ID
} }
@Override @Override
@Cacheable(cacheNames = {DICT_LIST, DICT_VALUE}, key = "#code + ':' + #dictKey")
public String getValue(String code, Integer dictKey) { public String getValue(String code, Integer dictKey) {
return Func.toStr(baseMapper.getValue(code, dictKey), StringPool.EMPTY); return Func.toStr(baseMapper.getValue(code, dictKey), StringPool.EMPTY);
} }
@ -66,6 +72,10 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements ID
if (cnt > 0) { if (cnt > 0) {
throw new ServiceException("当前字典键值已存在!"); throw new ServiceException("当前字典键值已存在!");
} }
if (dict.getParentId() == null) {
dict.setParentId(0L);
}
dict.setIsDeleted(DafConstant.DB_NOT_DELETED);
return saveOrUpdate(dict); return saveOrUpdate(dict);
} }
} }

@ -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> T mapToEntity(Map<String, Object> map, Supplier<T> 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;
}
}

@ -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 <T>
* @return
*/
public static <T> List<T> parseExcel(String fileName, Class<T> clazz) {
List<T> list = new ArrayList<>();
try {
EasyExcel.read(fileName, clazz, new AnalysisEventListener<T>() {
//解析一行运行一次此方法。
@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;
}
}
Loading…
Cancel
Save