value
2024-04-23 6ca23797c5221b37b18247c7a610da70a05913a9
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
package com.yuanchu.mom.controller;
 
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.dto.CostStatisticsDto;
import com.yuanchu.mom.dto.SampleOrderDto;
import com.yuanchu.mom.dto.SampleProductDto;
import com.yuanchu.mom.dto.SampleProductDto2;
import com.yuanchu.mom.pojo.InsOrder;
import com.yuanchu.mom.pojo.InsOrderTemplate;
import com.yuanchu.mom.service.InsOrderService;
import com.yuanchu.mom.service.InsOrderTemplateService;
import com.yuanchu.mom.service.InsProductService;
import com.yuanchu.mom.service.InsSampleService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.*;
 
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
 
@RestController
@AllArgsConstructor
@RequestMapping("/insOrder")
@Api("检验单模块")
public class InsOrderController {
 
    private InsOrderService insOrderService;
 
    private InsSampleService insSampleService;
 
    private InsProductService insProductService;
 
    private InsOrderTemplateService insOrderTemplateService;
 
    //获取检验下单数据
    @ApiOperation(value = "查询检验下单数据")
    @PostMapping("/selectInsOrderParameter")
    public Result selectInsOrderParameter(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        SampleOrderDto sampleOrderDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), SampleOrderDto.class);
        return Result.success(insOrderService.selectInsOrderParameter(page, sampleOrderDto));
    }
 
    @ApiOperation(value = "检验分配")
    @PostMapping("/upInsOrder")
    public Result<?> upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId) {
        return Result.success(insOrderService.upInsOrder(orderId, sampleId, appointed, userId));
    }
 
    @ApiOperation(value = "添加检验下单数据")
    @PostMapping("/addInsOrder")
    public Result<?> addInsOrder(@RequestBody Map<String, Object> map) {
        JSONArray jsonArray = JSON.parseArray(map.get("list")+"");
        List<SampleProductDto> list = jsonArray.toJavaList(SampleProductDto.class);
        InsOrder insOrder = JSON.parseObject(JSON.toJSONString(map.get("insOrder")), InsOrder.class);
        return Result.success(insOrderService.addInsOrder(list, insOrder));
    }
 
    @ApiOperation(value = "查询订单最长预计时间")
    @PostMapping("/selectOrderManDay")
    @ValueAuth
    public Result<?> selectOrderManDay(Integer id) {
        int day = insProductService.selectOrderManDay(id);
        return Result.success("成功", LocalDateTime.now().plusDays(day).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
    }
 
    @ApiOperation(value = "查询检验下单内容详情")
    @PostMapping("/getInsOrder")
    @ValueAuth
    public Result<?> getInsOrder(Integer orderId) {
        return Result.success(insOrderService.getInsOrder(orderId));
    }
 
    @ApiOperation(value = "审核检验单进行状态修改")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "state", value = "审核结果 1:通过 2:不通过", dataTypeClass = Integer.class)
    })
    @PostMapping("/upInsOrderOfState")
    public Result<?> upInsOrderOfState(@RequestBody InsOrder insOrder) {
        return Result.success(insOrderService.upInsOrderOfState(insOrder));
    }
 
    @ApiOperation(value = "添加检验单模板")
    @PostMapping("/addInsOrderTemplate")
    public Result<?> addInsOrderTemplate(@RequestBody InsOrderTemplate insOrderTemplate) {
        return Result.success(insOrderTemplateService.addInsOrderTemplate(insOrderTemplate));
    }
 
    @ApiOperation(value = "查询检验单模板")
    @GetMapping("/selectInsOrderTemplate")
    @ValueAuth
    public Result<?> selectInsOrderTemplate() {
        return Result.success(insOrderTemplateService.selectInsOrderTemplate());
    }
 
    @ApiOperation(value = "通过检验单模板id获取检验单模板内容")
    @PostMapping("/selectInsOrderTemplateById")
    @ValueAuth
    public Result<?> selectInsOrderTemplateById(Integer id) {
        return Result.success("成功", insOrderTemplateService.selectInsOrderTemplateById(id));
    }
 
    @ApiOperation(value = "删除检验单模板")
    @PostMapping("/delInsOrderTemplate")
    @ValueAuth
    public Result<?> delInsOrderTemplate(Integer id) {
        return Result.success(insOrderTemplateService.delInsOrderTemplate(id));
    }
 
    @ApiOperation(value = "通过检验单查询检验数据(数据查看)")
    @PostMapping("/selectSampleAndProductByOrderId")
    @ValueAuth
    public Result<?> selectSampleAndProductByOrderId(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        SampleProductDto2 sampleProductDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), SampleProductDto2.class);
        return Result.success(insOrderService.selectSampleAndProductByOrderId(page, sampleProductDto));
    }
 
    @ApiOperation(value = "费用统计")
    @PostMapping("/costStatistics")
    public Result<?> costStatistics(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        CostStatisticsDto costStatisticsDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), CostStatisticsDto.class);
        return Result.success(insOrderService.costStatistics(page, costStatisticsDto));
    }
 
}