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<LimsItemTarget, ILimsItemTargetService> {
|
@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<LimsItemTarget> queryWrapper = QueryGenerator.initQueryWrapper(limsItemTarget, req.getParameterMap());
|
Page<LimsItemTarget> page = new Page<LimsItemTarget>(pageNo, pageSize);
|
IPage<LimsItemTarget> 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<List<OutlineTreeVo>> queryByStandId(LimsItemTarget limsItemTarget) {
|
Result<List<OutlineTreeVo>> result = new Result<>();
|
List<OutlineTreeVo> 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<LimsTestingItem> itmWrapper = new QueryWrapper<>();
|
itmWrapper.lambda().in(LimsTestingItem::getId, itemIds.split(","));
|
List<LimsTestingItem> itmList = limsTestingItemService.list(itmWrapper);
|
List<String> typIds = itmList.stream().map(item -> item.getTypeId()).collect(Collectors.toList());
|
//2.根据ITM查询父类TYP
|
QueryWrapper<LimsTestingType> typWrapper = new QueryWrapper<>();
|
typWrapper.lambda().in(LimsTestingType::getId, typIds);
|
List<LimsTestingType> typList = limsTestingTypeService.list(typWrapper);
|
List<String> catIds = typList.stream().map(item -> item.getCategoryId()).collect(Collectors.toList());
|
//3.根据TYP查询父类CAT
|
QueryWrapper<LimsTestingCategory> catWrapper = new QueryWrapper<>();
|
catWrapper.lambda().in(LimsTestingCategory::getId, catIds);
|
List<LimsTestingCategory> catList = limsTestingCategoryService.list(catWrapper);
|
//4.组装insert数据
|
List<LimsItemTargetDTO> 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<LimsTestingType> 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<LimsTestingCategory> 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<LimsItemTarget> 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<String> itmIds = Arrays.asList(split);
|
Map<String, String> itmIdsMap = itmIds.stream().collect(Collectors.toMap(item -> item, item -> item));
|
|
QueryWrapper<LimsItemTarget> queryWrapper = new QueryWrapper<>();
|
queryWrapper.lambda().eq(LimsItemTarget::getStandardId, standardId);
|
List<LimsItemTarget> allList = limsItemTargetService.list(queryWrapper);
|
//
|
List<LimsItemTarget> 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);
|
}
|
|
}
|