package com.infynova.udi.controller; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.infynova.udi.common.api.ResponseData; import com.infynova.udi.common.context.SpringContextUtils; import com.infynova.udi.dto.*; import com.infynova.udi.service.helper.UdiEasyExcelHelper; import com.infynova.udi.service.TaskImportService; import com.infynova.udi.service.TaskService; import com.infynova.udi.vo.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.validation.Valid; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; @Slf4j @Api(tags = "对码平台-任务") @ApiSupport(order = 200) @RestController @RequestMapping("/match/task") public class UdiMatchTaskController { @Resource private TaskService taskService; @Resource private TaskImportService taskImportService; @ApiOperationSupport(order = 100) @ApiOperation(value = "udi对码导入模板下载", notes = "udi对码导入模板下载") @GetMapping("template") public void template() throws IOException { log.info("template"); TaskUdiExcelImportVo udiExcelVo = new TaskUdiExcelImportVo(); String example = "样例-"; udiExcelVo.setUdiCode(example + "6938954499349"); udiExcelVo.setYiBaoOneCode(example + "C03380310700000"); udiExcelVo.setYiBaoTwoCode(example + "C0338031070000001523"); udiExcelVo.setYiBaoCode(example + "C03380310700000015230000046"); udiExcelVo.setYiBaoCodePrefix(example + "C03"); udiExcelVo.setCompanyName(example + "深圳市无境创新有限公司"); udiExcelVo.setBrandName(example + "无境创新"); udiExcelVo.setRegistryNo(example + "国械注准20240000001"); udiExcelVo.setRegistryName(example + "人工踝关节假体"); udiExcelVo.setRegistryStartTime("2000-01-01"); udiExcelVo.setRegistryEndTime("2099-12-31"); udiExcelVo.setRegistry(example + "深圳市无境创新有限公司"); udiExcelVo.setProductCode(example + "infynova-DEMO-001"); udiExcelVo.setProductFactoryCode(example + "0116001"); //udiExcelVo.setInfynovaCode(example + ); udiExcelVo.setProductName(example + "人工踝关节假体-跟距骨假体QH型26×26×23"); udiExcelVo.setProductType("耗材"); udiExcelVo.setSpecification(example + "QH型 26×26×23"); udiExcelVo.setModel(example + "QH型 26×26×23"); udiExcelVo.setMaterial(example + "不区分"); udiExcelVo.setAsepticPackaging(example + "否"); udiExcelVo.setBeforeSterilize(example + "是"); udiExcelVo.setSterilizationMethod(example + "按照说明书要求进行灭菌"); UdiEasyExcelHelper.export("udi对码导入模板", Collections.singletonList(udiExcelVo), TaskUdiExcelImportVo.class); } @ApiOperationSupport(order = 110) @ApiOperation(value = "udi对码导入", notes = "udi对码导入") @PostMapping("importData") public ResponseData<ImportItemResp> importData(@RequestParam("file") MultipartFile file) throws IOException { log.info("importData"); return ResponseData.ok(taskImportService.importData(file)); } @ApiOperationSupport(order = 120) @ApiOperation(value = "udi对码列表", notes = "udi对码列表") @PostMapping("list") public ResponseData<Page<UdiMatchListVo>> list(@RequestBody @Valid UdiMatchTaskListQry udiMatchTaskListQry){ log.info("list:"+ JSON.toJSONString(udiMatchTaskListQry)); udiMatchTaskListQry.setCreateBy(SpringContextUtils.getIdentityId()); return ResponseData.ok(taskService.queryTaskPage(udiMatchTaskListQry)); } @ApiOperationSupport(order = 130) @ApiOperation(value = "全部暂停", notes = "全部暂停") @PostMapping("allPause") public ResponseData<?> allPause(@RequestBody @Valid IdListQry idListQry){ log.info("allPause:"+ JSON.toJSONString(idListQry)); return ResponseData.ok(taskService.pauseTask(new ArrayList<>(idListQry.getIdList()))); } @ApiOperationSupport(order = 131) @ApiOperation(value = "单个暂停", notes = "单个暂停") @PostMapping("onePause") public ResponseData<?> onePause(@RequestBody @Valid IdQry idQry){ log.info("onePause:"+ JSON.toJSONString(idQry)); return ResponseData.ok(taskService.pauseTask(Collections.singletonList(idQry.getId()))); } @ApiOperationSupport(order = 140) @ApiOperation(value = "全部开始", notes = "全部开始") @PostMapping("allStart") public ResponseData<?> allStart(@RequestBody @Valid IdListQry idListQry){ log.info("allStart:"+ JSON.toJSONString(idListQry)); return ResponseData.ok(taskService.startTask(new ArrayList<>(idListQry.getIdList()))); } @ApiOperationSupport(order = 141) @ApiOperation(value = "单个开始-开始上传", notes = "单个开始") @PostMapping("oneStart") public ResponseData<?> oneStart(@RequestBody @Valid IdQry idQry){ log.info("oneStart:"+ JSON.toJSONString(idQry)); return ResponseData.ok(taskService.startTask(Collections.singletonList(idQry.getId()))); } @ApiOperationSupport(order = 150) @ApiOperation(value = "全部删除", notes = "全部删除") @PostMapping("allDelete") public ResponseData<?> allDelete(@RequestBody @Valid IdListQry idListQry){ log.info("allDelete:"+ JSON.toJSONString(idListQry)); return ResponseData.ok(taskService.deleteTask(new ArrayList<>(idListQry.getIdList()))); } @ApiOperationSupport(order = 151) @ApiOperation(value = "单个删除", notes = "单个删除") @PostMapping("oneDelete") public ResponseData<?> oneDelete(@RequestBody @Valid IdQry idQry){ log.info("oneDelete:"+ JSON.toJSONString(idQry)); return ResponseData.ok(taskService.deleteTask(Collections.singletonList(idQry.getId()))); } @ApiOperationSupport(order = 160) @ApiOperation(value = "对码进度", notes = "对码进度") @PostMapping("matchResult") public ResponseData<TaskMatchStatisticVo> matchResult(@RequestBody @Valid IdQry idQry){ log.info("matchResult:"+ JSON.toJSONString(idQry)); return ResponseData.ok(taskService.matchResult(idQry.getId())); } @ApiOperationSupport(order = 170) @ApiOperation(value = "获取下载链接", notes = "获取下载链接") @PostMapping("getDownloadUrl") public ResponseData<List<UdiMatchTaskFileDto>> getDownloadUrl(@RequestBody @Valid IdListQry idListQry){ log.info("getDownloadUrl:"+ JSON.toJSONString(idListQry)); return ResponseData.ok(taskService.getDownloadUrl(idListQry)); } }