package com.yuanchu.mom.controller; 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.annotation.ValueClassify; 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.utils.JackSonUtil; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; @RestController @AllArgsConstructor @RequestMapping("/insOrder") @Api(tags="检验单模块") public class InsOrderController { private InsOrderService insOrderService; private InsProductService insProductService; private InsOrderTemplateService insOrderTemplateService; //获取检验下单数据 @ValueClassify("检验下单") @ApiOperation(value = "查询单位检验单") @PostMapping("/selectInsOrderParameter") public Result selectInsOrderParameter(@RequestBody Map 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)); } @ValueClassify("检验下单") @ApiOperation(value = "查看所有检验单") @PostMapping("/selectAllInsOrder") public Result selectAllInsOrder(){ return Result.success(); } @ValueClassify("检验下单") @ApiOperation(value = "检验分配") @PostMapping("/upInsOrder") public Result upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId,String sonLaboratory) { return Result.success(insOrderService.upInsOrder(orderId, sampleId, appointed, userId,sonLaboratory)); } @ValueClassify("检验下单") @ApiOperation(value = "添加检验下单数据") @PostMapping("/addInsOrder") public Result addInsOrder(String str) { Map map = JSON.parseObject(str, Map.class); JSONArray jsonArray = JSON.parseArray(map.get("list")+""); List list = jsonArray.toJavaList(SampleProductDto.class); InsOrder insOrder = JSON.parseObject(JSON.toJSONString(map.get("insOrder")), InsOrder.class); List> pairing = JSON.parseArray(map.get("pairing")+""); return Result.success(insOrderService.addInsOrder(list, insOrder, pairing)); } @ApiOperation(value = "查询订单最长预计时间") @PostMapping("/selectOrderManDay") @ValueAuth public Result selectOrderManDay(Integer id) { int day = insProductService.selectOrderManDay(id); return Result.success("成功", LocalDateTime.now().plusHours(day).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); } @ApiOperation(value = "查询检验下单内容详情") @PostMapping("/getInsOrder") @ValueAuth public Result getInsOrder(Integer orderId) { return Result.success(insOrderService.getInsOrder(orderId)); } @ValueClassify("检验下单") @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)); } @ValueClassify("检验下单") @ApiOperation(value = "添加检验单模板") @PostMapping("/addInsOrderTemplate") public Result addInsOrderTemplate(@RequestBody InsOrderTemplate insOrderTemplate) { return Result.success(insOrderTemplateService.addInsOrderTemplate(insOrderTemplate)); } @ApiOperation(value = "查询检验单模板") @GetMapping("/selectInsOrderTemplate") @ValueAuth public Result selectInsOrderTemplate(String company) { return Result.success(insOrderTemplateService.selectInsOrderTemplate(company)); } @ApiOperation(value = "通过检验单模板id获取检验单模板内容") @PostMapping("/selectInsOrderTemplateById") @ValueAuth public Result selectInsOrderTemplateById(Integer id) { return Result.success("成功", insOrderTemplateService.selectInsOrderTemplateById(id)); } @ValueClassify("检验下单") @ApiOperation(value = "删除检验单模板") @PostMapping("/delInsOrderTemplate") public Result delInsOrderTemplate(Integer id) { return Result.success(insOrderTemplateService.delInsOrderTemplate(id)); } @ApiOperation(value = "通过检验单查询检验数据(数据查看)") @PostMapping("/selectSampleAndProductByOrderId") @ValueAuth public Result selectSampleAndProductByOrderId(@RequestBody Map 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)); } @ValueClassify("费用统计") @ApiOperation(value = "费用统计") @PostMapping("/costStatistics") public Result costStatistics(@RequestBody Map 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)); } @ValueAuth @ApiOperation(value = "费用统计获取总价") @PostMapping("/costStatistics2") public Result costStatistics2(@RequestBody Map data) throws Exception { CostStatisticsDto costStatisticsDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), CostStatisticsDto.class); return Result.success(insOrderService.costStatistics2(costStatisticsDto)); } @ValueClassify("统计图表") @ApiOperation(value = "样品缺陷指数") @PostMapping("/selectSampleDefects") public Result selectSampleDefects(Integer size, Integer current, String inspectionItems, String orderNumber) { return Result.success(insOrderService.selectSampleDefects(new Page<>(current, size),inspectionItems, orderNumber)); } @ValueClassify("检验下单") @ApiOperation(value = "撤销") @PutMapping("/updateStatus") public Result updateStatus(Integer id) { insOrderService.updateStatus(id); return Result.success(); } @PutMapping("/updateInspected") @ValueAuth public Result updateInspected(Integer id){ insProductService.updateInspected(id); return Result.success(); } @ValueClassify("检验下单") @ApiOperation(value = "标签打印") @PostMapping("/labelPrinting") public Result labelPrinting(String ids) { return Result.success(insOrderService.labelPrinting(ids)); } @ValueClassify("费用统计") @ApiOperation(value = "费用统计导出") @PostMapping("/export") public void export(@RequestBody Map data,HttpServletResponse response) throws Exception { CostStatisticsDto costStatisticsDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), CostStatisticsDto.class); insOrderService.export(costStatisticsDto,response); } }