| | |
| | | asnId: "asnId", |
| | | asnCode: "asnCode", |
| | | poDetlId: "poDetlId", |
| | | platItemId: 'platItemId', |
| | | poDetlCode: "poDetlCode", |
| | | matnrId: "matnrId", |
| | | maktx: "maktx", |
| | |
| | | asnCode: "主单编码", |
| | | poDetlId: "PO单ID", |
| | | poDetlCode: "PO单", |
| | | platItemId: '行号', |
| | | matnrId: "物料标识", |
| | | maktx: "物料名称", |
| | | spec: "规格", |
| | |
| | | batchLocType: "批量库位类型", |
| | | batchPrint: "批量打印", |
| | | quality: "质检", |
| | | complete: "完成", |
| | | complete: "完结", |
| | | close: "关闭", |
| | | asnCreate: "通过单据创建", |
| | | createTask: "下发任务", |
| | |
| | | preferenceKey='locItem' |
| | | bulkActionButtons={false} |
| | | rowClick={false} |
| | | expand={() => <LocItemPanel />} |
| | | expand={false} |
| | | expandSingle={true} |
| | | omit={['id', 'createTime','locId','orderId', 'orderItemId', 'matnrId', 'splrBatch','workQty','qty', 'createBy', 'memo','fieldsIndex']} |
| | | |
| | |
| | | <DateField source="createTime" label="common.field.createTime" showTime /> |
| | | <BooleanField source="statusBool" label="common.field.status" sortable={false} /> |
| | | <TextField source="memo" label="common.field.memo" sortable={false} /> |
| | | <WrapperField cellClassName="opt" label="common.field.opt"> |
| | | <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} /> |
| | | {/* <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */} |
| | | </WrapperField> |
| | | </StyledDatagrid> |
| | | </List> |
| | | <LocItemCreate |
| | |
| | | // setSelect(record) |
| | | // setEditDialog(true) |
| | | // }} |
| | | omit={['id', 'createTime', 'purQty', 'purUnit', 'poDetlCode', 'createBy', 'memo', 'model', 'packName', 'splrCode', 'qrcode', 'poDetlId', 'matnrId', 'asnId']} |
| | | omit={['id', 'purQty', 'purUnit','platItemId', 'poDetlCode', 'memo', 'model', 'packName', 'splrCode', 'qrcode', 'poDetlId', 'matnrId', 'asnId']} |
| | | > |
| | | <NumberField source="id" /> |
| | | <NumberField source="asnId" label="table.field.asnOrderItem.asnId" /> |
| | | <TextField source="asnCode" label="table.field.asnOrderItem.asnCode" /> |
| | | <TextField source="poDetlId" label="table.field.asnOrderItem.poDetlId" /> |
| | | <TextField source="poDetlCode" label="table.field.asnOrderItem.poDetlCode" /> |
| | | <TextField source="platItemId" label="table.field.asnOrderItem.platItemId" /> |
| | | <TextField source="matnrId" label="table.field.asnOrderItem.matnrId" /> |
| | | <TextField source="matnrCode" label="table.field.asnOrderItem.matnrCode" /> |
| | | <TextField source="maktx" label="table.field.asnOrderItem.maktx" /> |
| | |
| | | <TextField source="trackCode" label="table.field.asnOrderItem.barcode" /> |
| | | <TextField source="packName" label="table.field.asnOrderItem.packName" /> |
| | | <DateField source="updateTime" label="common.field.updateTime" showTime /> |
| | | <TextField source="updateBy$" label="common.field.updateBy" /> |
| | | <TextField source="createBy$" label="common.field.createBy" /> |
| | | <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}> |
| | | <TextField source="nickname" /> |
| | | </ReferenceField> |
| | | <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}> |
| | | <TextField source="nickname" /> |
| | | </ReferenceField> |
| | | <DateField source="createTime" label="common.field.createTime" showTime /> |
| | | <TextField source="memo" label="common.field.memo" sortable={false} /> |
| | | </StyledDatagrid> |
| | |
| | | title={"menu.asnOrder"} |
| | | empty={false} |
| | | filters={filters} |
| | | filter={{deleted: 0}} |
| | | filter={{ deleted: 0 }} |
| | | sort={{ field: "create_time", order: "desc" }} |
| | | actions={( |
| | | <TopToolbar> |
| | |
| | | <MyButton setCreateDialog={setCreateDialog} setmodalType={setmodalType} /> |
| | | <InspectionButton /> |
| | | <CompleteButton /> |
| | | <CloseButton /> |
| | | <DeleteButton mutationMode="pessimistic" /> |
| | | {/* <CloseButton /> */} |
| | | </WrapperField> |
| | | </StyledDatagrid> |
| | | </List> |
| | |
| | | ) |
| | | } |
| | | |
| | | //报检 |
| | | const InspectionButton = () => { |
| | | const record = useRecordContext(); |
| | | const notify = useNotify(); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | return ( |
| | | <Button onClick={inspection} label={"toolbar.inspection"}> |
| | | <ConstructionIcon /> |
| | | </Button> |
| | | <ConfirmButton label={"toolbar.inspection"} color="secondary" startIcon={<ConstructionIcon />} onConfirm={inspection} /> |
| | | ) |
| | | } |
| | | |
| | |
| | | ) |
| | | } |
| | | |
| | | //完成单据 |
| | | const CompleteButton = () => { |
| | | const record = useRecordContext(); |
| | | const notify = useNotify(); |
| | |
| | | } |
| | | |
| | | return ( |
| | | record.exceStatus === 1 && (record.anfme === record.qty ? <Button onClick={requestComplete} label={"toolbar.complete"} color="success"> |
| | | <TaskIcon /> |
| | | </Button> : <ConfirmButton label={"toolbar.complete"} color="success" data={'当前收货数量小于计划数量,是否确认完成'} startIcon={<TaskIcon />} onConfirm={requestComplete} />) |
| | | |
| | | // record.exceStatus === 1 && (record.anfme === record.qty ? <Button onClick={requestComplete} label={"toolbar.complete"} color="secondary"> |
| | | // <TaskIcon /> |
| | | // </Button> : ) |
| | | <ConfirmButton label={"toolbar.complete"} color="secondary" startIcon={<TaskIcon />} onConfirm={requestComplete} /> |
| | | ) |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | return ( |
| | | <ConfirmButton label={"toolbar.close"} color="error" data={'确认是否关闭?'} startIcon={<CloseIcon />} onConfirm={requestClose} /> |
| | | <ConfirmButton label={"toolbar.close"} color="error" startIcon={<CloseIcon />} onConfirm={requestClose} /> |
| | | ) |
| | | } |
| | |
| | | > |
| | | <StyledDatagrid |
| | | preferenceKey='stock' |
| | | bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} |
| | | bulkActionButtons={false} |
| | | rowClick='edit' |
| | | expandSingle={true} |
| | | expandSingle={false} |
| | | omit={['id', 'createTime','sourceId', 'createBy', 'memo']} |
| | | > |
| | | <NumberField source="id" /> |
| | |
| | | @ApiModel(value = "ReceiptDetlsDto", description = "收货明细信息") |
| | | public class ReceiptDetlsDto implements Serializable { |
| | | |
| | | @ApiModelProperty("明细ID") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty("收货通知单") |
| | | private String asnCode; |
| | | |
| | |
| | | // if (dto.getReceiptQty().compareTo(dto.getAnfme()) > 0) { |
| | | // throw new CoolException("收货数量不能大于采购数量!!"); |
| | | // } |
| | | AsnOrderItem orderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>() |
| | | .eq(AsnOrderItem::getAsnCode, asnCode) |
| | | .eq(AsnOrderItem::getTrackCode, dto.getBarcode()) |
| | | .eq(AsnOrderItem::getMatnrId, dto.getMatnrId())); |
| | | // AsnOrderItem orderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>() |
| | | // .eq(AsnOrderItem::getAsnCode, asnCode) |
| | | // .eq(AsnOrderItem::getId, dto.getId()) |
| | | // .eq(AsnOrderItem::getTrackCode, dto.getBarcode()) |
| | | // .eq(AsnOrderItem::getSplrBatch, dto.getSplrBatch())); |
| | | |
| | | AsnOrderItem orderItem = asnOrderItemMapper.resultById(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getId, dto.getId())); |
| | | |
| | | if (Objects.isNull(orderItem)) { |
| | | throw new CoolException("通知单明细不存在!!"); |
| | | } |
| | |
| | | throw new CoolException("通知单明细数量修改失败!!"); |
| | | } |
| | | |
| | | WarehouseAreasItem item = new WarehouseAreasItem(); |
| | | // SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | // String format = null; |
| | | // if (Objects.isNull(dto.getProdTime())) { |
| | | // format = dateFormat.format(dto.getProdTime()); |
| | | // } |
| | | item.setTrackCode(dto.getBarcode()) |
| | | .setAreaName(areasItem.getName()) |
| | | .setAreaId(areasItem.getId()) |
| | | .setAsnItemId(orderItem.getId()) |
| | | .setAsnCode(asnOrder.getCode()) |
| | | .setAsnId(asnOrder.getId()) |
| | | .setProdTime(dto.getProdTime()) |
| | | .setWeight(dto.getWeigth()) |
| | | //库存单位为最小单位 |
| | | .setUnit(orderItem.getStockUnit()) |
| | | .setStockUnit(orderItem.getStockUnit()) |
| | | .setBatch(StringUtils.isBlank(orderItem.getBatch()) ? SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_RECEIPT_BATCH, dto) : orderItem.getBatch()) |
| | | .setAnfme(dto.getReceiptQty()) |
| | | .setSplrBatch(dto.getSplrBatch()) |
| | | .setMatnrCode(matnr.getCode()) |
| | | .setUpdateBy(loginUserId) |
| | | .setCreateBy(loginUserId) |
| | | .setMatnrId(matnr.getId()) |
| | | .setMaktx(matnr.getName()) |
| | | .setWeight(matnr.getWeight()) |
| | | .setFieldsIndex(orderItem.getFieldsIndex()) |
| | | .setShipperId(matnr.getShipperId()); |
| | | //TODO 供应商标识未设置,标识由PO单供应商编码转换 |
| | | |
| | | WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>() |
| | | .eq(WarehouseAreasItem::getAsnItemId, item.getAsnItemId()) |
| | | .eq(WarehouseAreasItem::getTrackCode, item.getTrackCode()) |
| | | .eq(StringUtils.isNotBlank(item.getSplrBatch()), WarehouseAreasItem::getSplrBatch, item.getSplrBatch())); |
| | | if (!Objects.isNull(serviceOne)) { |
| | | item.setAnfme(item.getAnfme() + serviceOne.getAnfme()); |
| | | item.setId(serviceOne.getId()); |
| | | } |
| | | |
| | | if (!warehouseAreasItemService.saveOrUpdate(item)) { |
| | | throw new CoolException("收货失败!!"); |
| | | List<QlyIsptItem> isptItems = qlyIsptItemService.list(new LambdaQueryWrapper<QlyIsptItem>().eq(QlyIsptItem::getAsnItemId, dto.getId())); |
| | | if (isptItems.isEmpty()) { |
| | | extracted(loginUserId, dto, areasItem, orderItem, asnOrder, matnr); |
| | | } else { |
| | | for (QlyIsptItem isptItem : isptItems) { |
| | | extracted(loginUserId, dto, areasItem, orderItem, asnOrder, matnr); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | return R.ok("收货成功!!"); |
| | | } |
| | | |
| | | private void extracted(Long loginUserId, ReceiptDetlsDto dto, WarehouseAreas areasItem, AsnOrderItem orderItem, AsnOrder asnOrder, Matnr matnr) { |
| | | WarehouseAreasItem item = new WarehouseAreasItem(); |
| | | item.setTrackCode(dto.getBarcode()) |
| | | .setAreaName(areasItem.getName()) |
| | | .setAreaId(areasItem.getId()) |
| | | .setAsnItemId(orderItem.getId()) |
| | | .setAsnCode(asnOrder.getCode()) |
| | | .setAsnId(asnOrder.getId()) |
| | | .setProdTime(dto.getProdTime()) |
| | | .setWeight(dto.getWeigth()) |
| | | //库存单位为最小单位 |
| | | .setUnit(orderItem.getStockUnit()) |
| | | .setStockUnit(orderItem.getStockUnit()) |
| | | .setBatch(StringUtils.isBlank(orderItem.getBatch()) ? SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_RECEIPT_BATCH, dto) : orderItem.getBatch()) |
| | | .setAnfme(dto.getReceiptQty()) |
| | | .setSplrBatch(dto.getSplrBatch()) |
| | | .setMatnrCode(matnr.getCode()) |
| | | .setUpdateBy(loginUserId) |
| | | .setCreateBy(loginUserId) |
| | | .setMatnrId(matnr.getId()) |
| | | .setMaktx(matnr.getName()) |
| | | .setWeight(matnr.getWeight()) |
| | | .setFieldsIndex(orderItem.getFieldsIndex()) |
| | | .setShipperId(matnr.getShipperId()); |
| | | //TODO 供应商标识未设置,标识由PO单供应商编码转换 |
| | | |
| | | WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>() |
| | | .eq(WarehouseAreasItem::getAsnItemId, item.getAsnItemId()) |
| | | .eq(WarehouseAreasItem::getTrackCode, item.getTrackCode()) |
| | | .eq(StringUtils.isNotBlank(item.getSplrBatch()), WarehouseAreasItem::getSplrBatch, item.getSplrBatch())); |
| | | if (!Objects.isNull(serviceOne)) { |
| | | item.setAnfme(item.getAnfme() + serviceOne.getAnfme()); |
| | | item.setId(serviceOne.getId()); |
| | | } |
| | | |
| | | if (!warehouseAreasItemService.saveOrUpdate(item)) { |
| | | throw new CoolException("收货失败!!"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | * @time 2025/4/7 16:58 |
| | | */ |
| | | @Override |
| | | public R getDeltByCode(Map<String, Object> params ) { |
| | | public R getDeltByCode(Map<String, Object> params) { |
| | | String code = params.get("code").toString(); |
| | | String batch = null; |
| | | if (!Objects.isNull(params.get("batch"))) { |
| | |
| | | ReceiptDetlsDto detlsDto = new ReceiptDetlsDto(); |
| | | |
| | | detlsDto.setAsnCode(asnOrderItem.getAsnCode()) |
| | | .setId(asnOrderItem.getId()) |
| | | .setMaktx(asnOrderItem.getMaktx()) |
| | | .setFieldsIndex(asnOrderItem.getFieldsIndex()) |
| | | .setBarcode(asnOrderItem.getTrackCode()) |
| | |
| | | @ApiModelProperty("质检状态") |
| | | private Short isptStatus; |
| | | |
| | | |
| | | @ApiModelProperty("合格数量") |
| | | private Double safeQty; |
| | | |
| | | @ApiModelProperty("不合格数量") |
| | | private Double disQty; |
| | | |
| | | /** |
| | | * 状态 1: 正常 0: 冻结 |
| | | */ |
| | |
| | | */ |
| | | @Excel(name = "业务类型") |
| | | @ApiModelProperty(value= "业务类型") |
| | | @ExcelComment(value = "wkType", example = "生产入库") |
| | | @ExcelComment(value = "wkType", example = "完工入库单") |
| | | private String wkType; |
| | | |
| | | |
| | | @Excel(name = "执行状态") |
| | | @ApiModelProperty(value= "执行状态") |
| | | @ExcelComment(value = "exceStatus", example = "1") |
| | | @ExcelComment(value = "exceStatus", example = "0") |
| | | private String exceStatus; |
| | | |
| | | @Excel(name = "行号") |
| | |
| | | |
| | | @Excel(name = "供应商编码") |
| | | @ApiModelProperty("供应商编码") |
| | | @ExcelComment(value = "splrCode",example = "3654821") |
| | | @ExcelComment(value = "splrCode",example = "685947") |
| | | private String splrCode; |
| | | |
| | | @Excel(name = "供应商名称") |
| | | @ApiModelProperty("供应商名称") |
| | | @ExcelComment(value = "splrName",example = "浙江中扬技术公司") |
| | | @ExcelComment(value = "splrName",example = "浙江中扬立库技术有限公司") |
| | | private String splrName; |
| | | |
| | | @Excel(name = "供应商批次") |
| | |
| | | @ExcelComment(value = "splrBatch",example = "25251212") |
| | | private String splrBatch; |
| | | |
| | | @Excel(name = "二维码") |
| | | @ApiModelProperty("二维码") |
| | | @ExcelComment(value = "qrcode",example = "") |
| | | private String qrcode; |
| | | // @Excel(name = "二维码") |
| | | // @ApiModelProperty("二维码") |
| | | // @ExcelComment(value = "qrcode",example = "") |
| | | // private String qrcode; |
| | | |
| | | @Excel(name = "条形码") |
| | | @ApiModelProperty("条形码") |
| | | @ExcelComment(value = "barcode",example = "2354788") |
| | | @ExcelComment(value = "barcode",example = "") |
| | | private String barcode; |
| | | |
| | | @Excel(name = "跟踪码") |
| | | @ApiModelProperty("跟踪码") |
| | | @ExcelComment(value = "trackCode",example = "2354788") |
| | | @ExcelComment(value = "trackCode",example = "") |
| | | private String trackCode; |
| | | |
| | | @Excel(name = "包装名称") |
| | |
| | | package com.vincent.rsf.server.manager.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Constants; |
| | |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Mapper |
| | |
| | | |
| | | IPage<Map<String, Object>> resultForMap(PageParam<AsnOrderItem, BaseParam> pages, @Param(Constants.WRAPPER) QueryWrapper<AsnOrderItem> buildWrapper); |
| | | |
| | | // List<Map<String, Object>> resultForMap(long pageParam, @Param(Constants.WRAPPER) QueryWrapper<AsnOrderItem> ew); |
| | | AsnOrderItem resultById(@Param(Constants.WRAPPER) LambdaQueryWrapper<AsnOrderItem> buildWrapper); |
| | | |
| | | } |
| | |
| | | import com.vincent.rsf.server.manager.entity.Companys; |
| | | import com.vincent.rsf.server.manager.entity.Matnr; |
| | | import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate; |
| | | import com.vincent.rsf.server.manager.enums.CompanysType; |
| | | import com.vincent.rsf.server.manager.mapper.AsnOrderItemMapper; |
| | | import com.vincent.rsf.server.manager.entity.AsnOrderItem; |
| | | import com.vincent.rsf.server.manager.service.AsnOrderItemService; |
| | |
| | | sbFaild.append(orderTemplate.getMatnrCode()).append("物料不存在"); |
| | | continue; |
| | | } |
| | | String trackCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, matnr); |
| | | orderItem.setAsnId(order.getId()) |
| | | .setAsnCode(order.getCode()) |
| | | .setSplrBatch(orderTemplate.getSplrBatch()) |
| | | .setPlatItemId(orderTemplate.getPlatItemId()) |
| | | .setAnfme(Double.parseDouble(orderTemplate.getAnfme())) |
| | | .setQty(Double.parseDouble(orderTemplate.getQty())) |
| | | .setBarcode(orderTemplate.getBarcode()) |
| | | .setTrackCode(orderTemplate.getTrackCode()) |
| | | .setTrackCode(StringUtils.isBlank(orderTemplate.getTrackCode()) ? trackCode : orderTemplate.getTrackCode()) |
| | | .setBarcode(StringUtils.isBlank(orderTemplate.getBarcode()) ? trackCode : orderTemplate.getBarcode()) |
| | | .setPoCode(orderTemplate.getPoCode()) |
| | | .setPurUnit(orderTemplate.getPurUnit()) |
| | | .setCreateBy(loginUserId) |
| | |
| | | .setMatnrId(matnr.getId()) |
| | | .setStockUnit(matnr.getUnit()); |
| | | if (!Objects.isNull(orderTemplate.getSplrCode())) { |
| | | Companys companys = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getCode, orderTemplate.getSplrCode())); |
| | | Companys companys = companysService.getOne(new LambdaQueryWrapper<Companys>() |
| | | .eq(Companys::getType, CompanysType.COMPANYS_TYPE_SUPPLIER.val) |
| | | .eq(Companys::getCode, orderTemplate.getSplrCode())); |
| | | if (!Objects.isNull(companys)) { |
| | | orderItem.setSplrCode(companys.getCode()).setSplrName(companys.getName()); |
| | | } else { |
| | | orderItem.setSplrCode(orderTemplate.getSplrCode()).setSplrName(orderTemplate.getSplrName() + "(供应商不存在!!)"); |
| | | sbFaild.append("供应商:" + orderTemplate.getSplrCode()).append("不存在"); |
| | | continue; |
| | | } |
| | | } else { |
| | | continue; |
| | | } |
| | | |
| | | items.add(orderItem); |
| | | if (!asnOrderItemService.saveBatch(items)) { |
| | | |
| | | if (!asnOrderItemService.save(orderItem)) { |
| | | throw new CoolException("单据明细保存失败!!"); |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | return R.ok("操作成功," + sbFaild.toString()); |
| | | return R.ok("导入成功," + sbFaild.toString()); |
| | | } |
| | | |
| | | /** |
| | |
| | | ) t |
| | | ${ew.customSqlSegment} |
| | | </select> |
| | | <select id="resultById" resultType="com.vincent.rsf.server.manager.entity.AsnOrderItem"> |
| | | SELECT |
| | | * |
| | | FROM |
| | | ( |
| | | SELECT |
| | | aoi.id, |
| | | aoi.asn_id, |
| | | aoi.asn_code, |
| | | aoi.plat_item_id, |
| | | aoi.po_detl_id, |
| | | aoi.po_code, |
| | | aoi.fields_index, |
| | | aoi.matnr_id, |
| | | aoi.matnr_code, |
| | | aoi.maktx, |
| | | aoi.anfme, |
| | | aoi.stock_unit, |
| | | aoi.pur_qty, |
| | | aoi.pur_unit, |
| | | aoi.prod_time, |
| | | aoi.qty, |
| | | qii.safe_qty, |
| | | qii.dis_qty, |
| | | aoi.splr_code, |
| | | aoi.splr_batch, |
| | | aoi.splr_name, |
| | | aoi.qrcode, |
| | | aoi.track_code, |
| | | aoi.barcode, |
| | | aoi.pack_name, |
| | | aoi.nty_status, |
| | | aoi.`status`, |
| | | CASE |
| | | aoi.ispt_result |
| | | WHEN 0 THEN |
| | | '未检' |
| | | WHEN 1 THEN |
| | | '合格' |
| | | WHEN 2 THEN |
| | | '不合格' |
| | | WHEN 3 THEN |
| | | '待定' |
| | | WHEN 4 THEN |
| | | '部分合格' |
| | | END AS isptResult$, |
| | | aoi.deleted, |
| | | aoi.tenant_id, |
| | | aoi.create_by, |
| | | aoi.create_time, |
| | | aoi.update_by, |
| | | aoi.update_time, |
| | | aoi.memo |
| | | FROM |
| | | man_asn_order_item aoi |
| | | LEFT JOIN man_qly_ispt_item qii ON aoi.id = qii.asn_item_id |
| | | ) t |
| | | ${ew.customSqlSegment} |
| | | </select> |
| | | </mapper> |