package org.jeecg.modules.lims.testing.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.lims.testing.dto.LimsItemTargetDTO; import org.jeecg.modules.lims.testing.entity.LimsItemTarget; import org.jeecg.modules.lims.testing.entity.LimsTestingCategory; import org.jeecg.modules.lims.testing.service.ILimsItemTargetService; import org.jeecg.modules.lims.testing.service.ILimsTestingCategoryService; import org.jeecg.modules.lims.testing.service.ILimsTestingItemService; import org.jeecg.modules.lims.testing.service.ILimsTestingTypeService; import org.jeecg.modules.lims.testing.vo.OutlineTreeVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * @Description: lims_item_target * @Author: jeecg-boot * @Date: 2023-04-24 * @Version: V1.0 */ @Api(tags = "lims_item_target") @RestController @RequestMapping("/lims/testing/target") @Slf4j public class LimsItemTargetController extends JeecgController { @Autowired private ILimsItemTargetService limsItemTargetService; @Autowired private ILimsTestingCategoryService limsTestingCategoryService; @Autowired private ILimsTestingTypeService limsTestingTypeService; @Autowired private ILimsTestingItemService limsTestingItemService; /** * 分页列表查询 * * @param limsItemTarget * @param pageNo * @param pageSize * @param req * @return */ @AutoLog(value = "lims_item_target-分页列表查询") @ApiOperation(value = "lims_item_target-分页列表查询", notes = "lims_item_target-分页列表查询") @GetMapping(value = "/list") public Result queryPageList(LimsItemTarget limsItemTarget, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(limsItemTarget, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage pageList = limsItemTargetService.page(page, queryWrapper); //填充其他表字段 pageList.getRecords().forEach(item -> { limsTestingCategoryService.getById(item.getCategoryId()); }); return Result.OK(pageList); } @AutoLog(value = "lims_item_target-queryByStandId分页列表查询") @ApiOperation(value = "lims_item_target-queryByStandId分页列表查询", notes = "lims_item_target-queryByStandId分页列表查询") @GetMapping(value = "/treeByStandId") public Result> queryByStandId(LimsItemTarget limsItemTarget) { Result> result = new Result<>(); List list = limsItemTargetService.queryTreeByStandId(limsItemTarget); result.setResult(list); return result; } /** * 添加 * * @param limsItemTarget * @return */ @AutoLog(value = "lims_item_target-添加") @ApiOperation(value = "lims_item_target-添加", notes = "lims_item_target-添加") @PostMapping(value = "/add") public Result add(@RequestBody LimsItemTarget limsItemTarget) { limsItemTargetService.save(limsItemTarget); return Result.OK("添加成功!"); } /** * 批量添加 * * @param limsItemTarget * @return */ @AutoLog(value = "lims_item_target-批量添加") @ApiOperation(value = "lims_item_target-批量添加", notes = "lims_item_target-批量添加") @PostMapping(value = "/addBatch") public Result addBatch(@RequestBody LimsItemTargetDTO limsItemTarget) { //1.查询ITEM项明细 /* QueryWrapper itmWrapper = new QueryWrapper<>(); itmWrapper.lambda().in(LimsTestingItem::getId, itemIds.split(",")); List itmList = limsTestingItemService.list(itmWrapper); List typIds = itmList.stream().map(item -> item.getTypeId()).collect(Collectors.toList()); //2.根据ITM查询父类TYP QueryWrapper typWrapper = new QueryWrapper<>(); typWrapper.lambda().in(LimsTestingType::getId, typIds); List typList = limsTestingTypeService.list(typWrapper); List catIds = typList.stream().map(item -> item.getCategoryId()).collect(Collectors.toList()); //3.根据TYP查询父类CAT QueryWrapper catWrapper = new QueryWrapper<>(); catWrapper.lambda().in(LimsTestingCategory::getId, catIds); List catList = limsTestingCategoryService.list(catWrapper); //4.组装insert数据 List targetDTOSList = itmList.stream().map(item -> { //组装ITM LimsItemTargetDTO t = new LimsItemTargetDTO(); t.setItemId(item.getId()); t.setItemName(item.getName()); t.setPid(item.getTypeId()); t.setStandardId(limsItemTarget.getStandardId()); t.setOutlineId(limsItemTarget.getOutlineId()); return t; }).map(item -> { //组装TYP List selTypList = typList.stream().filter(i -> i.getId().equals(item.getPid())).collect(Collectors.toList()); LimsTestingType type = selTypList.get(0); item.setTypeId(type.getId()); item.setPpid(type.getCategoryId()); return item; }).map(item -> { //组装CAT List selCatList = catList.stream().filter(i -> i.getId().equals(item.getPpid())).collect(Collectors.toList()); LimsTestingCategory cat = selCatList.get(0); item.setCategoryId(cat.getId()); return item; }).collect(Collectors.toList()); //dto转entity List list = targetDTOSList.stream().map(item -> { LimsItemTarget target = new LimsItemTarget(); BeanUtils.copyProperties(item, target); return target; }).collect(Collectors.toList());*/ String standardId = limsItemTarget.getStandardId(); if (StringUtils.isEmpty(standardId)) { return Result.error("请求参数错误!"); } String itemIds = limsItemTarget.getItemIds(); if (StringUtils.isEmpty(itemIds)) { return Result.error("请求参数错误!"); } String[] split = itemIds.split(","); List itmIds = Arrays.asList(split); Map itmIdsMap = itmIds.stream().collect(Collectors.toMap(item -> item, item -> item)); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(LimsItemTarget::getStandardId, standardId); List allList = limsItemTargetService.list(queryWrapper); // List updateList = allList.stream().map(item -> { if (itmIdsMap.containsKey(item.getId())) { item.setEnabled(1); } else { item.setEnabled(0); } return item; }).collect(Collectors.toList()); limsItemTargetService.updateBatchById(updateList); return Result.OK("添加成功!"); } /** * 编辑 * * @param limsItemTarget * @return */ @AutoLog(value = "lims_item_target-编辑") @ApiOperation(value = "lims_item_target-编辑", notes = "lims_item_target-编辑") @PutMapping(value = "/edit") public Result edit(@RequestBody LimsItemTarget limsItemTarget) { limsItemTargetService.updateById(limsItemTarget); return Result.OK("编辑成功!"); } /** * 通过id删除 * * @param id * @return */ @AutoLog(value = "lims_item_target-通过id删除") @ApiOperation(value = "lims_item_target-通过id删除", notes = "lims_item_target-通过id删除") @DeleteMapping(value = "/delete") public Result delete(@RequestParam(name = "id", required = true) String id) { limsItemTargetService.removeById(id); return Result.OK("删除成功!"); } /** * 批量删除 * * @param ids * @return */ @AutoLog(value = "lims_item_target-批量删除") @ApiOperation(value = "lims_item_target-批量删除", notes = "lims_item_target-批量删除") @DeleteMapping(value = "/deleteBatch") public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { this.limsItemTargetService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } /** * 通过id查询 * * @param id * @return */ @AutoLog(value = "lims_item_target-通过id查询") @ApiOperation(value = "lims_item_target-通过id查询", notes = "lims_item_target-通过id查询") @GetMapping(value = "/queryById") public Result queryById(@RequestParam(name = "id", required = true) String id) { LimsItemTarget limsItemTarget = limsItemTargetService.getById(id); if (limsItemTarget == null) { return Result.error("未找到对应数据"); } return Result.OK(limsItemTarget); } /** * 导出excel * * @param request * @param limsItemTarget */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, LimsItemTarget limsItemTarget) { return super.exportXls(request, limsItemTarget, LimsItemTarget.class, "lims_item_target"); } /** * 通过excel导入数据 * * @param request * @param response * @return */ @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, LimsItemTarget.class); } }