package com.yuanchu.mom.controller; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.*; import com.yuanchu.mom.mapper.InsSampleUserMapper; import com.yuanchu.mom.pojo.InsOrderFile; import com.yuanchu.mom.pojo.InsOrderState; import com.yuanchu.mom.pojo.InsProductResult; import com.yuanchu.mom.pojo.InsSampleUser; import com.yuanchu.mom.service.*; import com.yuanchu.mom.utils.JackSonUtil; import com.yuanchu.mom.vo.InsProductResultVo; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 检验任务-控制层 */ @RestController @RequestMapping("/insOrderPlan") @Api(tags = "检验任务") @AllArgsConstructor public class InsOrderPlanController { private InsOrderPlanService insOrderPlanService; private InsOrderUserService insOrderUserService; private InsOrderFileService insOrderFileService; private InsProductService insProductService; private InsOrderStateService insOrderStateService; private InsSampleUserMapper insSampleUserMapper; @ValueClassify("检验任务") @ApiOperation(value = "获取检验任务列表") @PostMapping("/selectInsOrderPlanList") public Result selectInsOrderPlanList(@RequestBody Map data) throws Exception { Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class); page.setOptimizeCountSql(false); InsOrderPlanDTO insOrderPlanDTO = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), InsOrderPlanDTO.class); return Result.success(insOrderPlanService.selectInsOrderPlanList(page, insOrderPlanDTO)); } @ValueAuth @ApiOperation(value = "检验单详情-任务切换") @PostMapping("/inspectionOrderDetailsTaskSwitching") public Result inspectionOrderDetailsTaskSwitching(@RequestBody Map data) throws Exception { Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class); page.setOptimizeCountSql(false); InsOrderPlanDTO insOrderPlanDTO = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), InsOrderPlanDTO.class); return Result.success(insOrderPlanService.inspectionOrderDetailsTaskSwitching(page, insOrderPlanDTO)); } @ValueClassify("检验任务") @ApiOperation(value = "认领任务计划") @PostMapping("/claimInsOrderPlan") public Result claimInsOrderPlan(@RequestBody InsOrderPlanDTO data) { return Result.success(insOrderPlanService.claimInsOrderPlan(data)); } @ValueClassify("检验任务") @ApiOperation(value = "执行检验操作") @PostMapping("/doInsOrder") public Result doInsOrder(Integer sampleId, String laboratory) { return Result.success(insOrderPlanService.doInsOrder(sampleId, laboratory)); } @ValueAuth @PostMapping("/getInsProduct") @ApiOperation("获取检验项目和模板内容") //这里的id就是样品id public Result getInsProduct(Integer id, Integer type, String laboratory, HttpServletRequest request) { return Result.success(insOrderPlanService.getInsProduct(id, type, laboratory, request)); } @ValueClassify("检验任务") @ApiOperation(value = "任务交接") @PostMapping("/upPlanUser") public Result upPlanUser(Integer userId, Integer sampleId, String sonLaboratory) { return Result.success(insOrderPlanService.upPlanUser(userId, sampleId, sonLaboratory)); } @ValueAuth @ApiOperation(value = "判断交接的试验室") @PostMapping("/upPlanUser2") public Result upPlanUser2(Integer sampleId) { return Result.success(insOrderPlanService.upPlanUser2(sampleId)); } @ValueClassify("检验任务") @ApiOperation(value = "复核检验任务") @PostMapping("/verifyPlan") public Result verifyPlan(Integer sampleId, String laboratory, Integer type, String tell) throws IOException { return Result.success(insOrderPlanService.verifyPlan(sampleId, laboratory, type, tell)); } @ValueClassify("检验任务") @ApiOperation(value = "纠正复核") @PostMapping("/verifyPlan2") public Result verifyPlan2(Integer sampleId, String laboratory, Integer type, String tell) throws IOException { return Result.success(insOrderPlanService.verifyPlan2(sampleId, laboratory, type, tell)); } @ValueAuth @ApiOperation(value = "校验检验任务提交") @PostMapping("/checkSubmitPlan") public Result checkSubmitPlan(Integer sampleId, String laboratory) { return Result.success(insOrderPlanService.checkSubmitPlan(sampleId, laboratory)); } @ValueClassify("检验任务") @ApiOperation(value = "检验任务提交") @PostMapping("/submitPlan") public Result submitPlan(@RequestBody SubmitPlanDto submitPlanDto) { int num = insOrderPlanService.submitPlan(submitPlanDto); return num == 1 ? Result.success() : Result.fail("提交失败,部分项目还未进行检验"); } @ValueClassify("检验任务") @ApiOperation(value = "检验任务撤销提交") @PostMapping("/cancelSubmitPlan") public Result cancelSubmitPlan(Integer orderStateId) { return Result.success(insOrderPlanService.cancelSubmitPlan(orderStateId)); } @ValueClassify("设备") @ApiOperation(value = "是否允许修改采集值") @DeleteMapping("/isItAllowedToModifyTheCollectedValues") public Result isItAllowedToModifyTheCollectedValues() { return Result.success(); } @ApiOperation(value = "保存检验内容") @PostMapping("/saveInsContext") @ValueAuth public Result saveInsContext(String param, Integer num) { Map param2 = JSON.parseObject(param, Map.class); insOrderPlanService.saveInsContext(param2, num); return Result.success(); } @ApiOperation(value = "电路试验的保存检验内容") @PostMapping("/saveInsContext2") @ValueAuth public Result saveInsContext2(@RequestBody InsProductResultDto insProductResultDtos) { return Result.success(insOrderPlanService.saveInsContext2(insProductResultDtos)); } @ApiOperation(value = "电路试验的保存检验内容(返回/提交)") @PostMapping("/saveInsContext2s") @ValueAuth public Result saveInsContext2s(@RequestBody InsProductResultDtos insProductResultDtos) { return Result.success(insOrderPlanService.saveInsContext2s(insProductResultDtos)); } @ApiOperation(value = "温湿度试验+功率试验的保存检验内容") @PostMapping("/saveInsContext3") @ValueAuth public Result saveInsContext3(@RequestBody InsProductResult insProductResult) { return Result.success(insOrderPlanService.saveInsContext3(insProductResult)); } @ValueAuth @ApiOperation(value = "查看检验单下的附件列表") @PostMapping("/getFileList") public Result getFileList(@RequestBody Map data) throws Exception { Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class); page.setOptimizeCountSql(false); InsOrderFile insOrderFile = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), InsOrderFile.class); return Result.success(insOrderPlanService.getFileList(page, insOrderFile)); } @ValueClassify("检验任务") @ApiOperation(value = "上传附件") @PostMapping("/uploadFile") public Result uploadFile(Integer orderId, MultipartFile file, String sonLaboratory,Integer sampleId) { return Result.success(insOrderPlanService.uploadFile(orderId, file, sonLaboratory,sampleId)); } @ValueClassify("检验任务") @ApiOperation(value = "删除附件") @PostMapping("/delfile") public Result delfile(Integer id) { return Result.success(insOrderFileService.delfile(id)); } @ValueAuth @ValueClassify("检验任务") @ApiOperation(value = "下载附件") @PostMapping("/downFile") public Result downFile(Integer id) { InsOrderFile insOrderFile = insOrderFileService.getById(id); HashMap map = new HashMap<>(); map.put("type", insOrderFile.getType()); map.put("fileUrl", insOrderFile.getFileUrl()); return Result.success(map); } @ApiOperation(value = "填写温度与湿度") @PostMapping("/write") @ValueAuth public Result write(@RequestBody InsProductDto insProductDto) { return Result.success(insProductService.write(insProductDto)); } @ValueClassify("检验任务") @ApiOperation(value = "插队操作") @PostMapping("/jumpTeam") public Result jumpTeam(@RequestBody InsOrderState insOrderState) { return Result.success(insOrderStateService.jumpTeam(insOrderState)); } @ApiOperation(value = "电路试验的删除频段") @PostMapping("/deleteInsContext") @ValueAuth public Result deleteInsContext(@RequestBody InsProductResultVo insProductResultVo) { return Result.success(insOrderPlanService.deleteInsContext(insProductResultVo)); } @ApiOperation(value = "电路试验点击检验选择版本") @PostMapping("/chooseVersion") @ValueAuth public Result chooseVersion(Integer orderStateId, Integer version) { InsOrderState orderState = new InsOrderState(); orderState.setId(orderStateId); orderState.setVersion(version); return Result.success(insOrderStateService.updateById(orderState)); } @ValueAuth @PostMapping("/getInsOrderUserList") @ApiOperation("查看检验历史列表") public Result getInsOrderUserList(Integer insOrderStateId) { return Result.success(insOrderPlanService.getInsOrderUserList(insOrderStateId)); } @ValueAuth @PostMapping("/getInsProduct2") @ApiOperation("查看检验历史") public Result getInsProduct2(Integer id, Integer type, String laboratory, HttpServletRequest request, Integer num) { return Result.success(insOrderPlanService.getInsProduct2(id, type, laboratory, request, num)); } @ValueClassify("检验任务") @ApiOperation(value = "扫码报检(入库)") @PostMapping("/scanInsOrderState") public Result scanInsOrderState(String sonLaboratory, String sampleCode, String trees,String entrustCode) { return Result.success(insOrderPlanService.scanInsOrderState(sonLaboratory, sampleCode, trees,entrustCode)); } @ValueClassify("检验任务") @ApiOperation(value = "扫码出库(只有复核结束才会调用)") @PostMapping("/outInsOrderState") public Result outInsOrderState(String sonLaboratory, String sampleCode,String entrustCode) { return Result.success(insOrderPlanService.outInsOrderState(sonLaboratory, sampleCode,entrustCode)); } @ValueAuth @PostMapping("/preview") @ApiOperation("预览文件") public Result preview(Integer id) throws Exception { return Result.success(insOrderPlanService.preview(id)); } @ValueAuth @PostMapping("/getCheckUser") @ApiOperation("获取当前检验任务的所有检验员信息") public Result getCheckUser(Integer id,String sonLaboratory) { List insSampleUsers = insSampleUserMapper.selectList(Wrappers.lambdaQuery() .eq(InsSampleUser::getState, 0) //检验人 .eq(InsSampleUser::getInsSampleId, id) .eq(InsSampleUser::getSonLaboratory, sonLaboratory)); return Result.success(insSampleUsers); } }