| | |
| | | import com.vincent.rsf.framework.common.Cools; |
| | | import com.vincent.rsf.framework.common.R; |
| | | import com.vincent.rsf.framework.exception.CoolException; |
| | | import com.vincent.rsf.server.api.controller.params.*; |
| | | import com.vincent.rsf.server.api.controller.erp.params.*; |
| | | import com.vincent.rsf.server.api.entity.dto.*; |
| | | import com.vincent.rsf.server.manager.enums.*; |
| | | import com.vincent.rsf.server.api.service.MobileService; |
| | |
| | | throw new CoolException("数据错误:主单不存在!!"); |
| | | } |
| | | //TODO /**收货数量累加,1. 会出超收情况 2. 会有收货不足情况*/ |
| | | Double rcptedQty = Math.round((wkOrder.getQty() + receiptQty) * 10000) / 10000.0; |
| | | Double rcptedQty = Math.round((wkOrder.getQty() + receiptQty) * 100) / 100.0; |
| | | wkOrder.setQty(rcptedQty).setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val); |
| | | if (!asnOrderMapper.updateById(wkOrder)) { |
| | | throw new CoolException("已收货数量修改失败!!"); |
| | |
| | | throw new CoolException("请输入正确的时间格式!!"); |
| | | } |
| | | |
| | | Double itemRcptQty = Math.round((dto.getReceiptQty() + orderItem.getQty()) * 10000) / 10000.0; |
| | | Double itemRcptQty = Math.round((dto.getReceiptQty() + orderItem.getQty()) * 100) / 100.0; |
| | | Boolean allowOver = false; |
| | | if (!Objects.isNull(config)) { |
| | | if (Boolean.parseBoolean(config.getVal())) { |
| | |
| | | |
| | | if (!Objects.isNull(serviceOne)) { |
| | | item.setId(serviceOne.getId()); |
| | | Double anfme = Math.round((item.getAnfme() + serviceOne.getAnfme()) * 10000) / 10000.0; |
| | | Double anfme = Math.round((item.getAnfme() + serviceOne.getAnfme()) * 100) / 100.0; |
| | | item.setAnfme(anfme); |
| | | } |
| | | |
| | |
| | | Object code = params.get("code"); |
| | | Object matnrCode = params.get("matnrCode"); |
| | | Object asnCode = params.get("asnCode"); |
| | | Object crushNo = params.get("fieldsIndex"); |
| | | Object batch = params.get("batch"); |
| | | String fieldIndex = null; |
| | | if (!Objects.isNull(crushNo)) { |
| | | FieldsItem fieldsItem = fieldsItemService.getOne(new LambdaQueryWrapper<FieldsItem>().eq(FieldsItem::getValue, crushNo).last("Limit 1")); |
| | | |
| | | if (!Objects.isNull(fieldsItem)) { |
| | | fieldIndex = fieldsItem.getUuid(); |
| | | } |
| | | } |
| | | //TODO 后续需根据策略配置,获取组拖数据。如:混装,按批次混装等 |
| | | LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new LambdaQueryWrapper<WarehouseAreasItem>() |
| | | .or().eq(!Cools.isEmpty(code), WarehouseAreasItem::getTrackCode, code) |
| | | .or().eq(!Cools.isEmpty(batch), WarehouseAreasItem::getSplrBatch, batch) |
| | | .or().eq(!Cools.isEmpty(fieldIndex), WarehouseAreasItem::getFieldsIndex, fieldIndex) |
| | | .or().eq(!Cools.isEmpty(matnrCode), WarehouseAreasItem::getMatnrCode, matnrCode) |
| | | .or().eq(!Cools.isEmpty(asnCode), WarehouseAreasItem::getAsnCode, asnCode); |
| | | List<WarehouseAreasItem> list = warehouseAreasItemService.list(queryWrapper); |
| | | list.removeIf(e -> e.getAnfme() <= e.getWorkQty()); |
| | | if (!list.isEmpty()) { |
| | | list.removeIf(e -> e.getAnfme() <= e.getWorkQty()); |
| | | } |
| | | list.forEach(item -> { |
| | | Map<String, String> fields = FieldsUtils.getFields(item.getFieldsIndex()); |
| | | item.setExtendFields(fields); |
| | | }); |
| | | |
| | | return R.ok(list); |
| | | } |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public R getItemByContainer(Map<String, Object> params) { |
| | | // if (Objects.isNull(params.get("code"))) { |
| | | // throw new CoolException("参数不能为空!!"); |
| | | // } |
| | | //获取组拖未生成任务的组拖档 |
| | | List<Short> asList = Arrays.asList(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val)); |
| | | Short flagDefect = 0; |
| | | if (!Objects.isNull(params.get("type")) && params.get("type").equals("defective")) { |
| | | flagDefect = 1; |
| | | } |
| | | List<WaitPakin> waitPakin = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>() |
| | | WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>() |
| | | .eq(WaitPakin::getBarcode, params.get("barcode").toString()) |
| | | // .eq(WaitPakin::getFlagDefect, flagDefect) |
| | | .eq(WaitPakin::getFlagDefect, flagDefect) |
| | | .in(WaitPakin::getIoStatus, asList)); |
| | | if (!Cools.isEmpty(waitPakin)) { |
| | | throw new CoolException("托盘不可用,在组托中已存在"); |
| | | // if (!Cools.isEmpty(waitPakin)) { |
| | | // throw new CoolException("托盘不可用,在组托中已存在"); |
| | | // } |
| | | List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.get("barcode").toString())); |
| | | if (!tasks.isEmpty()) { |
| | | throw new CoolException("托盘码已在任务档执行!!"); |
| | | } |
| | | List<Loc> locs = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getBarcode, params.get("barcode").toString())); |
| | | if (!Cools.isEmpty(locs)) { |
| | | throw new CoolException("托盘不可用,在库位中已存在"); |
| | | } |
| | | return R.ok("托盘可用"); |
| | | // List<WaitPakinItem> items = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().eq(WaitPakinItem::getPakinId, waitPakin.getId())); |
| | | // items.forEach(item -> { |
| | | // FieldsItem fieldsItem = fieldsItemService.getOne(new LambdaQueryWrapper<FieldsItem>().eq(FieldsItem::getUuid, item.getFieldsIndex()).last("limit 1")); |
| | | // if (!Objects.isNull(fieldsItem) && !Objects.isNull(item.getFieldsIndex())) { |
| | | // Map<String, String> fields = FieldsUtils.getFields(item.getFieldsIndex()); |
| | | // item.setExtendFields(fields); |
| | | // } |
| | | // }); |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | |
| | | if (Cools.isEmpty(params.get("barcode")) && Cools.isEmpty(params.get("code"))) { |
| | | throw new CoolException("容器号与组托档编码不能全为空"); |
| | | } |
| | | //获取组拖未生成任务的组拖档 |
| | | // List<Short> asList = Arrays.asList(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val), Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val)); |
| | | |
| | | WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>() |
| | | .eq(!Cools.isEmpty(params.get("barcode")), WaitPakin::getBarcode, params.get("barcode")) |
| | | .eq(!Cools.isEmpty(params.get("code")), WaitPakin::getCode, params.get("code")) |
| | |
| | | if (Objects.isNull(stockItem)) { |
| | | detlsDto.setStockQty(0.0); |
| | | } else { |
| | | Double anfme = Math.round((stockItem.getAnfme() + stockItem.getWorkQty()) * 10000) / 10000.0; |
| | | Double anfme = Math.round((stockItem.getAnfme() + stockItem.getWorkQty()) * 100) / 100.0; |
| | | detlsDto.setStockQty(anfme); |
| | | } |
| | | |