车间能级提升-智能设备管理系统
zhuguifei
2025-04-22 7a6dc6d28d36e4c3558391bac52d188d5075543f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
package org.dromara.eims.controller;
 
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.TemporalAdjusters;
import java.util.List;
import java.util.Map;
 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.eims.domain.bo.EimsMaintOrderBo;
import org.dromara.eims.domain.bo.InspectRecordBo;
import org.dromara.eims.domain.vo.EimsMaintOrderVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.eims.domain.vo.EimsInspectRecordVo;
import org.dromara.eims.domain.bo.EimsInspectRecordBo;
import org.dromara.eims.service.IEimsInspectRecordService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
 
/**
 * 点检记录
 *
 * @author zhuguifei
 * @date 2025-03-13
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/eims/inspRecord")
public class EimsInspectRecordController extends BaseController {
 
    private final IEimsInspectRecordService eimsInspectRecordService;
 
    /**
     * 查询点检记录列表
     */
    @SaCheckPermission("eims:inspectRecord:list")
    @GetMapping("/list")
    public TableDataInfo<EimsInspectRecordVo> list(EimsInspectRecordBo bo, PageQuery pageQuery) {
       // return eimsInspectRecordService.queryPageList(bo, pageQuery);
        return eimsInspectRecordService.queryPageListCustom(bo, pageQuery);
    }
 
    @SaCheckPermission("eims:inspectRecord:list")
    @GetMapping("/stList")
    public TableDataInfo<EimsInspectRecordVo> groupDetail(EimsInspectRecordBo bo, PageQuery pageQuery) {
        // 这里使用inspCode传递了 equid + plantime + viewModel(day-日视图  month-月视图)
        String inspCode = bo.getInspCode();
        if (StringUtils.isEmpty(inspCode) || !inspCode.contains("_")) {
            return TableDataInfo.build(new Page<>(0,0));
        }
        String[] split = inspCode.split("_");
        bo.setEquId(Long.valueOf(split[0]));
        bo.setInspCode(null);
        LocalDate planTime = DateUtils.parseDate(split[1]).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
        if((split[2].equals("Day"))){
            LocalDateTime startOfDay = planTime.atStartOfDay();
            LocalDateTime endOfDay = planTime.plusDays(1).atStartOfDay().minusSeconds(1);
            Map<String, Object> params = bo.getParams();
            params.put("beginPlanTime",startOfDay);
            params.put("endPlanTime",endOfDay);
        }else if((split[2].equals("Month"))){
            LocalDate startOfMonth = planTime.with(TemporalAdjusters.firstDayOfMonth());
            LocalDate endOfMonth = planTime.with(TemporalAdjusters.lastDayOfMonth());
            Map<String, Object> params = bo.getParams();
            params.put("beginPlanTime",startOfMonth);
            params.put("endPlanTime",endOfMonth);
            params.put("type","Month");
        }
        return eimsInspectRecordService.queryPageListCustom(bo, pageQuery);
    }
 
 
    /**
     * 导出点检记录列表
     */
    @SaCheckPermission("eims:inspectRecord:export")
    @Log(title = "点检记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(EimsInspectRecordBo bo, HttpServletResponse response) {
        List<EimsInspectRecordVo> list = eimsInspectRecordService.queryList(bo);
        ExcelUtil.exportExcel(list, "点检记录", EimsInspectRecordVo.class, response);
    }
 
    /**
     * 获取点检记录详细信息
     *
     * @param id 主键
     */
    @SaCheckPermission("eims:inspectRecord:query")
    @GetMapping("/{id}")
    public R<EimsInspectRecordVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long id) {
        return R.ok(eimsInspectRecordService.queryById(id));
    }
 
    /**
     * 新增点检记录
     */
    @SaCheckPermission("eims:inspectRecord:add")
    @Log(title = "点检记录", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody EimsInspectRecordBo bo) {
        return toAjax(eimsInspectRecordService.insertByBo(bo));
    }
 
    /**
     * 修改点检记录
     */
    @SaCheckPermission("eims:inspectRecord:edit")
    @Log(title = "点检记录", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody EimsInspectRecordBo bo) {
        return toAjax(eimsInspectRecordService.updateByBo(bo));
    }
 
    @SaCheckPermission("eims:inspectRecord:edit")
    @Log(title = "点检记录-批量修改", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping("editBatch")
    public R<Void> editBatch(@Validated(EditGroup.class) @RequestBody InspectRecordBo bo) {
        return toAjax(eimsInspectRecordService.updateBatchByBo(bo));
    }
 
    /**
     * 删除点检记录
     *
     * @param ids 主键串
     */
    @SaCheckPermission("eims:inspectRecord:remove")
    @Log(title = "点检记录", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] ids) {
        return toAjax(eimsInspectRecordService.deleteWithValidByIds(List.of(ids), true));
    }
}