Переглянути джерело

feat:"增加维护记录打卡功能"

soobin 2 місяців тому
батько
коміт
269326924a

+ 3 - 1
src/main/java/com/szwl/aspect/MyWebMvcConfigurer.java

@@ -59,7 +59,9 @@ public class MyWebMvcConfigurer extends WebMvcConfigurationSupport {
                 "/tAlarmClean/**",
                 "/mqtt/**",
                 "/callback/**",
-                "/purse/**"
+                "/purse/**",
+                "/maintenanceRecord/save",
+                "/maintenanceRecord/uploadPic"
         };
         registry.addInterceptor(headTokenInterceptor)
                 .addPathPatterns("/**")

+ 149 - 0
src/main/java/com/szwl/controller/MaintenanceRecordController.java

@@ -0,0 +1,149 @@
+package com.szwl.controller;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.gson.Gson;
+import com.qiniu.http.Response;
+import com.qiniu.storage.BucketManager;
+import com.qiniu.storage.Configuration;
+import com.qiniu.storage.Region;
+import com.qiniu.storage.UploadManager;
+import com.qiniu.storage.model.DefaultPutRet;
+import com.qiniu.util.Auth;
+import com.szwl.constant.ConfigConsts;
+import com.szwl.constant.ResponseCodesEnum;
+import com.szwl.model.bo.R;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.MaintenanceRecord;
+import com.szwl.model.entity.ReturnCoinRecord;
+import com.szwl.model.entity.TAdmin;
+import com.szwl.model.param.MaintenanceRecordParm;
+import com.szwl.model.param.ReturnCoinParam;
+import com.szwl.service.MaintenanceRecordService;
+import com.szwl.service.TAdminService;
+import com.szwl.util.IDGenerator;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.ServletInputStream;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p>
+ * 维护记录表 前端控制器
+ * </p>
+ *
+ * @author wuhs
+ * @since 2025-05-23
+ */
+@Slf4j
+@RestController
+@RequestMapping("/maintenanceRecord")
+public class MaintenanceRecordController {
+
+    @Autowired
+    private MaintenanceRecordService maintenanceRecordService;
+
+    @Autowired
+    private TAdminService adminService;
+
+
+    @ApiOperation("保存维护记录")
+    @PostMapping("/save")
+    public ResponseModel<?> save(@RequestBody MaintenanceRecord maintenanceRecord){
+        // 验证工号是否有效
+        maintenanceRecord.setId(IDGenerator.commonID());
+        maintenanceRecord.setCreateDate(new Date());
+        LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
+        query.eq(TAdmin::getManagerId, maintenanceRecord.getManagerId());
+        TAdmin admin = adminService.getOne(query);
+        if (admin == null) {
+            return R.fail(ResponseCodesEnum.A0001,  "工号不存在");
+        }
+        if (admin.getType() != 3) {
+            return R.fail(ResponseCodesEnum.A0002,"工号类型错误");
+        }
+        maintenanceRecordService.save(maintenanceRecord);
+        return R.ok();
+    }
+
+    @ApiOperation("删除维护记录")
+    @PostMapping("/delete")
+    public ResponseModel<?> delete(@RequestBody MaintenanceRecord maintenanceRecord){
+        maintenanceRecordService.removeById(maintenanceRecord.getId());
+        return R.ok();
+    }
+
+    @ApiOperation("维护记录列表")
+    @PostMapping("/list")
+    public ResponseModel<IPage<?>> list(@RequestBody MaintenanceRecordParm param) {
+        Page<MaintenanceRecord> page = new Page<>(param.getCurrent(), param.getSize(), true);
+        LambdaQueryWrapper<MaintenanceRecord> query = Wrappers.lambdaQuery();
+        if (StringUtils.isNotEmpty(param.getClientId())) {
+            query.eq(MaintenanceRecord::getClientId, param.getClientId());
+        }
+        if (param.getStatus() != null) {
+            query.eq(MaintenanceRecord::getStatus, param.getStatus());
+        }
+        if (StringUtils.isNotEmpty(param.getName())) {
+            query.like(MaintenanceRecord::getName, param.getName());
+        }
+        if (StringUtils.isNotEmpty(param.getManagerId())) {
+            query.eq(MaintenanceRecord::getManagerId, param.getManagerId());
+        }
+        if (StringUtils.isNotEmpty(param.getStartDate()) && StringUtils.isNotEmpty(param.getEndDate())) {
+            param.setStartDate(param.getStartDate() + " 00:00:00");
+            param.setEndDate(param.getEndDate() + " 23:59:59");
+            query.between(MaintenanceRecord::getCreateDate, param.getStartDate(), param.getEndDate());
+        }
+        query.orderByDesc(MaintenanceRecord::getCreateDate);
+        IPage<MaintenanceRecord> iPage = maintenanceRecordService.page(page, query);
+        return R.ok(iPage);
+    }
+
+    @ApiOperation("上传图片")
+    @PostMapping("/uploadPic")
+    public ResponseModel<?> uploadPic(MultipartFile file){
+        //构造一个带指定 Region 对象的配置类
+        Configuration cfg = new Configuration(Region.region2());
+        cfg.resumableUploadAPIVersion = Configuration.ResumableUploadAPIVersion.V2;// 指定分片上传版本
+        UploadManager uploadManager = new UploadManager(cfg);
+        //默认不指定key的情况下,以文件内容的hash值作为文件名
+        String filename = System.currentTimeMillis() + "_" + file.getOriginalFilename();
+        String key = "pic/" + filename;
+        try {
+            byte[] fileBytes = file.getBytes();
+            Auth auth = Auth.create(ConfigConsts.QINIU_CLOUD_ACCESS_KEY, ConfigConsts.QINIU_CLOUD_SECRET_KEY);
+            String upToken = auth.uploadToken(ConfigConsts.QINIU_CLOUD_BUCKET, key);
+            Response responseMap = uploadManager.put(fileBytes, key, upToken);
+            //解析上传成功的结果
+            DefaultPutRet putRet = new Gson().fromJson(responseMap.bodyString(), DefaultPutRet.class);
+            String result = "https://qiniuyun.sunzee.com.cn/" + key;
+            Configuration cfg0 = new Configuration(Region.region0());
+            int days = 30;
+            BucketManager bucketManager = new BucketManager(auth, cfg0);
+            bucketManager.deleteAfterDays(ConfigConsts.QINIU_CLOUD_BUCKET, key, days);
+            return R.ok(result);
+        } catch (Exception ex) {
+            //响应信息 json字符串格式
+            log.error("上传图片异常", ex);
+        }
+        return R.fail("上传图片异常");
+    }
+
+
+}
+

+ 1 - 11
src/main/java/com/szwl/controller/TAdminController.java

@@ -180,6 +180,7 @@ public class TAdminController {
         entity.setEmail(param.getEmail());
         entity.setPhone(param.getPhone());
         entity.setCompanyType(param.getCompanyType());
+        entity.setPayPlatform(param.getCompanyType());
         //获取父账号信息
         TAdmin parentAdmin = tAdminService.getById(parentId);
         entity.setIfForeign(parentAdmin.getIfForeign());
@@ -212,17 +213,6 @@ public class TAdminController {
             }
         }
 
-//        log.debug("添加账号 id:{},TAdmin:{}", entity.getId(), entity);
-//        // 保存用户角色关系
-//        List<SysUserRole> userRoleList = param.getRoleList()
-//                .stream()
-//                .map(e -> new SysUserRole().setRoleId(e).setUserId(String.valueOf(entity.getId())))
-//                .collect(Collectors.toList());
-//
-//        if (CollUtil.isNotEmpty(userRoleList)) {
-//            sysUserRoleService.saveBatch(userRoleList);
-//        }
-
         List<String> roleList = param.getRoleList();
         if (roleList.size() > 0) {
             for (String role : roleList) {

+ 16 - 0
src/main/java/com/szwl/mapper/MaintenanceRecordMapper.java

@@ -0,0 +1,16 @@
+package com.szwl.mapper;
+
+import com.szwl.model.entity.MaintenanceRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 维护记录表 Mapper 接口
+ * </p>
+ *
+ * @author wuhs
+ * @since 2025-05-23
+ */
+public interface MaintenanceRecordMapper extends BaseMapper<MaintenanceRecord> {
+
+}

+ 26 - 0
src/main/java/com/szwl/mapper/xml/MaintenanceRecordMapper.xml

@@ -0,0 +1,26 @@
+<?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="com.szwl.mapper.MaintenanceRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.szwl.model.entity.MaintenanceRecord">
+        <id column="id" property="id" />
+        <result column="create_date" property="createDate" />
+        <result column="client_id" property="clientId" />
+        <result column="manager_id" property="managerId" />
+        <result column="name" property="name" />
+        <result column="type" property="type" />
+        <result column="start_time" property="startTime" />
+        <result column="end_time" property="endTime" />
+        <result column="consumption" property="consumption" />
+        <result column="description" property="description" />
+        <result column="pic" property="pic" />
+        <result column="status" property="status" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, create_date, client_id, manager_id, name, type, start_time, end_time, consumption, description, pic, status
+    </sql>
+
+</mapper>

+ 65 - 0
src/main/java/com/szwl/model/entity/MaintenanceRecord.java

@@ -0,0 +1,65 @@
+package com.szwl.model.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 维护记录表
+ * </p>
+ *
+ * @author wuhs
+ * @since 2025-05-23
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="MaintenanceRecord对象", description="维护记录表")
+public class MaintenanceRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "维护记录ID")
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createDate;
+
+    @ApiModelProperty(value = "设备编号")
+    private String clientId;
+
+    @ApiModelProperty(value = "维护人员工号(系统ID)")
+    private String managerId;
+
+    @ApiModelProperty(value = "维护人员姓名")
+    private String name;
+
+    @ApiModelProperty(value = "维护类型")
+    private String type;
+
+    @ApiModelProperty(value = "维护开始时间")
+    private Date startTime;
+
+    @ApiModelProperty(value = "维护结束时间")
+    private Date endTime;
+
+    @ApiModelProperty(value = "消耗物料")
+    private String consumption;
+
+    @ApiModelProperty(value = "故障/处理描述")
+    private String description;
+
+    @ApiModelProperty(value = "异常/处理图片")
+    private String pic;
+
+    @ApiModelProperty(value = "问题解决状态")
+    private Integer status;
+
+
+}

+ 17 - 0
src/main/java/com/szwl/model/param/MaintenanceRecordParm.java

@@ -0,0 +1,17 @@
+package com.szwl.model.param;
+
+import com.szwl.model.entity.MaintenanceRecord;
+import lombok.Data;
+
+@Data
+public class MaintenanceRecordParm extends MaintenanceRecord {
+
+    private String startDate;
+
+    private String endDate;
+
+    private long current;
+
+    private long size;
+
+}

+ 16 - 0
src/main/java/com/szwl/service/MaintenanceRecordService.java

@@ -0,0 +1,16 @@
+package com.szwl.service;
+
+import com.szwl.model.entity.MaintenanceRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 维护记录表 服务类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2025-05-23
+ */
+public interface MaintenanceRecordService extends IService<MaintenanceRecord> {
+
+}

+ 20 - 0
src/main/java/com/szwl/service/impl/MaintenanceRecordServiceImpl.java

@@ -0,0 +1,20 @@
+package com.szwl.service.impl;
+
+import com.szwl.model.entity.MaintenanceRecord;
+import com.szwl.mapper.MaintenanceRecordMapper;
+import com.szwl.service.MaintenanceRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 维护记录表 服务实现类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2025-05-23
+ */
+@Service
+public class MaintenanceRecordServiceImpl extends ServiceImpl<MaintenanceRecordMapper, MaintenanceRecord> implements MaintenanceRecordService {
+
+}