package cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample;
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo.MesQcRetentionSamplePageReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo.MesQcRetentionSampleRespVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo.MesQcRetentionSampleSaveReqVO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.retentionsample.MesQcRetentionSampleDO;
|
import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
|
import cn.iocoder.yudao.module.mes.service.qc.retentionsample.MesQcRetentionSampleService;
|
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import jakarta.annotation.Resource;
|
import jakarta.validation.Valid;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.Collections;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Set;
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
|
import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen;
|
|
@Tag(name = "管理后台 - MES 留样管理")
|
@RestController
|
@RequestMapping("/mes/qc/retention-sample")
|
@Validated
|
public class MesQcRetentionSampleController {
|
|
@Resource
|
private MesQcRetentionSampleService retentionSampleService;
|
|
@Resource
|
private MesMdItemService itemService;
|
|
@Resource
|
private AdminUserApi adminUserApi;
|
|
@PostMapping("/create")
|
@Operation(summary = "创建留样记录")
|
@PreAuthorize("@ss.hasPermission('mes:qc-retention-sample:create')")
|
public CommonResult<Long> createRetentionSample(
|
@Valid @RequestBody MesQcRetentionSampleSaveReqVO createReqVO) {
|
return success(retentionSampleService.createRetentionSample(createReqVO));
|
}
|
|
@PutMapping("/update")
|
@Operation(summary = "更新留样记录")
|
@PreAuthorize("@ss.hasPermission('mes:qc-retention-sample:update')")
|
public CommonResult<Boolean> updateRetentionSample(
|
@Valid @RequestBody MesQcRetentionSampleSaveReqVO updateReqVO) {
|
retentionSampleService.updateRetentionSample(updateReqVO);
|
return success(true);
|
}
|
|
@DeleteMapping("/delete")
|
@Operation(summary = "删除留样记录")
|
@Parameter(name = "id", description = "编号", required = true)
|
@PreAuthorize("@ss.hasPermission('mes:qc-retention-sample:delete')")
|
public CommonResult<Boolean> deleteRetentionSample(@RequestParam("id") Long id) {
|
retentionSampleService.deleteRetentionSample(id);
|
return success(true);
|
}
|
|
@GetMapping("/get")
|
@Operation(summary = "获得留样记录详情")
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
@PreAuthorize("@ss.hasPermission('mes:qc-retention-sample:query')")
|
public CommonResult<MesQcRetentionSampleRespVO> getRetentionSample(@RequestParam("id") Long id) {
|
MesQcRetentionSampleDO sample = retentionSampleService.getRetentionSample(id);
|
return success(buildRetentionSampleRespVOList(Collections.singletonList(sample)).get(0));
|
}
|
|
@GetMapping("/page")
|
@Operation(summary = "获得留样记录分页")
|
@PreAuthorize("@ss.hasPermission('mes:qc-retention-sample:query')")
|
public CommonResult<PageResult<MesQcRetentionSampleRespVO>> getRetentionSamplePage(
|
@Valid MesQcRetentionSamplePageReqVO pageReqVO) {
|
PageResult<MesQcRetentionSampleDO> pageResult =
|
retentionSampleService.getRetentionSamplePage(pageReqVO);
|
return success(new PageResult<>(buildRetentionSampleRespVOList(pageResult.getList()),
|
pageResult.getTotal()));
|
}
|
|
// ==================== 拼接 VO ====================
|
|
private List<MesQcRetentionSampleRespVO> buildRetentionSampleRespVOList(
|
List<MesQcRetentionSampleDO> list) {
|
if (CollUtil.isEmpty(list)) {
|
return Collections.emptyList();
|
}
|
Map<Long, MesMdItemDO> itemMap = itemService.getItemMap(
|
convertSet(list, MesQcRetentionSampleDO::getProductId));
|
Set<Long> keeperUserIds = convertSet(list, MesQcRetentionSampleDO::getKeeperUserId);
|
Map<Long, AdminUserRespDTO> keeperMap = CollUtil.isNotEmpty(keeperUserIds)
|
? adminUserApi.getUserMap(keeperUserIds) : Collections.emptyMap();
|
return BeanUtils.toBean(list, MesQcRetentionSampleRespVO.class, vo -> {
|
findAndThen(itemMap, vo.getProductId(), item -> {
|
vo.setProductCode(item.getCode());
|
vo.setProductName(item.getName());
|
vo.setProductSpecification(item.getSpecification());
|
});
|
findAndThen(keeperMap, vo.getKeeperUserId(),
|
user -> vo.setKeeperNickname(user.getNickname()));
|
});
|
}
|
|
}
|