package cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality;
|
|
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.seedquality.vo.MesQcSeedQualityPageReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityRespVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualitySubmitReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityApprovalReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityRetestReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityBatchApprovalReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityBatchRetestReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityScopeRetestReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedIndicatorRangeSaveReqVO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.bagcode.MesProBagCodeDO;
|
import cn.iocoder.yudao.module.mes.dal.mysql.pro.bagcode.MesProBagCodeMapper;
|
import cn.iocoder.yudao.module.mes.service.qc.seedquality.MesQcSeedQualityService;
|
import cn.iocoder.yudao.module.mes.service.qc.seedquality.MesQcSeedIndicatorRangeService;
|
import io.swagger.v3.oas.annotations.Operation;
|
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.List;
|
import java.util.Map;
|
import java.util.function.Function;
|
import java.util.stream.Collectors;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
@Tag(name = "管理后台 - MES 种子质检")
|
@RestController @RequestMapping("/mes/qc/seed-quality") @Validated
|
public class MesQcSeedQualityController {
|
@Resource private MesQcSeedQualityService service;
|
@Resource private MesQcSeedIndicatorRangeService rangeService;
|
@Resource private MesProBagCodeMapper bagCodeMapper;
|
@GetMapping("/ranges") @Operation(summary = "获得种子质检合格范围")
|
@PreAuthorize("@ss.hasAnyPermissions('mes:qc-seed-quality:submit', 'mes:qc-seed-quality:retest', 'mes:qc-seed-range:query')")
|
public CommonResult<java.util.List<cn.iocoder.yudao.module.mes.dal.dataobject.qc.seedquality.MesQcSeedIndicatorRangeDO>> ranges() {
|
return success(rangeService.getRanges());
|
}
|
|
@PutMapping("/ranges") @Operation(summary = "配置种子质检合格范围")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-range:update')")
|
public CommonResult<Boolean> saveRanges(@Valid @RequestBody MesQcSeedIndicatorRangeSaveReqVO reqVO) {
|
rangeService.saveRanges(reqVO);
|
return success(true);
|
}
|
@GetMapping("/resolve")
|
@Operation(summary = "解析待质检袋码及确认该袋质检结果")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:submit')")
|
public CommonResult<java.util.Map<String, Object>> resolve(@RequestParam String code, @RequestParam(defaultValue = "BAG") String scanType) {
|
return success(service.resolveScan(code, scanType));
|
}
|
@GetMapping("/page")
|
@Operation(summary = "获得种子质检记录分页")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:query')")
|
public CommonResult<PageResult<MesQcSeedQualityRespVO>> getQualityPage(@Valid MesQcSeedQualityPageReqVO pageReqVO) {
|
PageResult<MesQcSeedQualityRespVO> page = BeanUtils.toBean(
|
service.getQualityPage(pageReqVO), MesQcSeedQualityRespVO.class);
|
List<String> codes = page.getList().stream().map(MesQcSeedQualityRespVO::getCode)
|
.filter(java.util.Objects::nonNull).distinct().toList();
|
if (!codes.isEmpty()) {
|
Map<String, MesProBagCodeDO> bagMap = bagCodeMapper.selectList(MesProBagCodeDO::getCode, codes).stream()
|
.collect(Collectors.toMap(MesProBagCodeDO::getCode, Function.identity(), (first, ignored) -> first));
|
page.getList().forEach(record -> {
|
MesProBagCodeDO bag = bagMap.get(record.getCode());
|
if (bag != null) record.setPalletCode(bag.getPalletCode());
|
});
|
}
|
return success(page);
|
}
|
|
@GetMapping("/indicators") @Operation(summary = "获得种子质检最新指标")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:query')")
|
public CommonResult<java.util.List<cn.iocoder.yudao.module.mes.dal.dataobject.qc.seedquality.MesQcSeedQualityIndicatorDO>> indicators(@RequestParam Long id) {
|
return success(service.getIndicatorsByQualityId(id));
|
}
|
@GetMapping("/actions") @Operation(summary = "获得种子质检流程留痕")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:query')")
|
public CommonResult<java.util.List<cn.iocoder.yudao.module.mes.dal.dataobject.qc.seedquality.MesQcSeedQualityActionDO>> actions(@RequestParam Long id) {
|
return success(service.getActions(id));
|
}
|
|
@PostMapping("/submit") @Operation(summary = "提交种子质检")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:submit')")
|
public CommonResult<Long> submit(@Valid @RequestBody MesQcSeedQualitySubmitReqVO reqVO) { return success(service.submit(reqVO)); }
|
|
@PostMapping("/submit-group") @Operation(summary = "按袋码、托盘或生产批次统一提交种子质检")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:submit')")
|
public CommonResult<java.util.Map<String, Object>> submitGroup(@Valid @RequestBody cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityGroupSubmitReqVO reqVO) {
|
return success(service.submitGroup(reqVO));
|
}
|
|
@PostMapping("/retest") @Operation(summary = "种子质检复检")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:retest')")
|
public CommonResult<Boolean> retest(@RequestParam Long id, @Valid @RequestBody MesQcSeedQualityRetestReqVO reqVO) {
|
service.retest(id, reqVO);
|
return success(true);
|
}
|
|
@PostMapping("/retest-batch") @Operation(summary = "同批次种子批量复检或重新初检")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:retest')")
|
public CommonResult<Boolean> retestBatch(@Valid @RequestBody MesQcSeedQualityBatchRetestReqVO reqVO) {
|
service.retestBatch(reqVO);
|
return success(true);
|
}
|
|
@GetMapping("/retest-scope/resolve") @Operation(summary = "按托盘码或生产批次码解析待批量质检记录")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:retest')")
|
public CommonResult<java.util.Map<String, Object>> resolveRetestScope(@RequestParam String code, @RequestParam String scanType) {
|
return success(service.resolveRetestScope(code, scanType));
|
}
|
|
@PostMapping("/retest-scope") @Operation(summary = "按托盘码或生产批次码批量复检或重新初检")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:retest')")
|
public CommonResult<java.util.Map<String, Object>> retestScope(@Valid @RequestBody MesQcSeedQualityScopeRetestReqVO reqVO) {
|
return success(service.retestScope(reqVO));
|
}
|
|
@PostMapping("/process-approve") @Operation(summary = "初检审核")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:process-approve')")
|
public CommonResult<Boolean> processApprove(@Valid @RequestBody MesQcSeedQualityApprovalReqVO reqVO) {
|
service.processApprove(reqVO.getId(), reqVO.getApproved(), reqVO.getOpinion());
|
return success(true);
|
}
|
|
@PostMapping("/company-approve") @Operation(summary = "复检审核并流转库存")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:company-approve')")
|
public CommonResult<Boolean> companyApprove(@Valid @RequestBody MesQcSeedQualityApprovalReqVO reqVO) {
|
service.companyApprove(reqVO.getId(), reqVO.getApproved(), reqVO.getOpinion());
|
return success(true);
|
}
|
@PostMapping("/process-approve-batch") @Operation(summary = "批量初检审核")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:process-approve')")
|
public CommonResult<Boolean> processApproveBatch(@Valid @RequestBody MesQcSeedQualityBatchApprovalReqVO reqVO) {
|
service.processApproveBatch(reqVO.getIds(), reqVO.getApproved(), reqVO.getOpinion());
|
return success(true);
|
}
|
@PostMapping("/company-approve-batch") @Operation(summary = "批量复检审核并流转库存")
|
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:company-approve')")
|
public CommonResult<Boolean> companyApproveBatch(@Valid @RequestBody MesQcSeedQualityBatchApprovalReqVO reqVO) {
|
service.companyApproveBatch(reqVO.getIds(), reqVO.getApproved(), reqVO.getOpinion());
|
return success(true);
|
}
|
}
|