| | |
| | | ReferenceInput, |
| | | AutocompleteInput, |
| | | Button, |
| | | BulkDeleteButton, |
| | | useRedirect, |
| | | } from 'react-admin'; |
| | | import { styled } from '@mui/material/styles'; |
| | |
| | | import AddTaskIcon from '@mui/icons-material/AddTask'; |
| | | import PublicIcon from '@mui/icons-material/Public'; |
| | | import SelectMatnrModal from "./SelectMatnrModal"; |
| | | import CheckOrderModal from "./CheckOrderModal"; |
| | | import EditIcon from '@mui/icons-material/Edit'; |
| | | import AddIcon from '@mui/icons-material/Add'; |
| | | import request from '@/utils/request'; |
| | |
| | | > |
| | | <StyledDatagrid |
| | | preferenceKey='check' |
| | | bulkActionButtons={<PublicTaskButton setWaveRule={setWaveRule} setSelectIds={setSelectIds} />} |
| | | bulkActionButtons={() => <BulkDeleteButton mutationMode="pessimistic"/>} |
| | | rowClick={false} |
| | | expandSingle={true} |
| | | omit={['id', 'createTime', 'createBy', 'memo', 'rleStatus$']} |
| | |
| | | } |
| | | |
| | | return ( |
| | | record?.exceStatus == 10 ? <ConfirmButton label={"toolbar.cancel"} startIcon={<CancelOutlinedIcon />} onConfirm={cancelOrder} size={"small"} /> : <></> |
| | | record?.exceStatus == 0 ? <ConfirmButton label={"toolbar.cancel"} startIcon={<CancelOutlinedIcon />} onConfirm={cancelOrder} size={"small"} /> : <></> |
| | | ) |
| | | } |
| | | |
| | |
| | | import CloseSharpIcon from '@mui/icons-material/CloseSharp'; |
| | | import ConfirmButton from '../../components/ConfirmButton'; |
| | | import { Delete, Edit, Add } from '@mui/icons-material'; |
| | | import OutStockSiteDialog from "./OutStockSiteDialog"; |
| | | import CheckOrderSiteDialog from "./CheckOrderSiteDialog"; |
| | | |
| | | const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ |
| | | '& .css-1vooibu-MuiSvgIcon-root': { |
| | |
| | | </Grid> |
| | | </Grid> |
| | | <Grid> |
| | | <OutStockSiteDialog |
| | | <CheckOrderSiteDialog |
| | | selectedValue={selectedValue} |
| | | open={dialog} |
| | | onClose={handleClose} |
| | |
| | | } |
| | | |
| | | List<WkOrderItem> wkOrderItem = asnOrderItemMapper.selectList(new LambdaQueryWrapper<WkOrderItem>() |
| | | .eq(WkOrderItem::getAsnCode, params.getAsnCode()) |
| | | .eq(WkOrderItem::getOrderCode, params.getAsnCode()) |
| | | .eq(!Objects.isNull(params.getTrackCode()), WkOrderItem::getTrackCode, params.getTrackCode()) |
| | | .eq(!Cools.isEmpty(params.getMatnrCode()), WkOrderItem::getMatnrCode, params.getMatnrCode()) |
| | | ); |
| | |
| | | } |
| | | InspectDetlDto detlDto = new InspectDetlDto(); |
| | | detlDto.setCode(wkOrders.getCode()).setId(wkOrders.getId()).setPoCode(wkOrders.getPoCode()); |
| | | List<WkOrderItem> orderItems = asnOrderItemMapper.selectList(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnCode, code)); |
| | | List<WkOrderItem> orderItems = asnOrderItemMapper.selectList(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderCode, code)); |
| | | if (orderItems.isEmpty()) { |
| | | detlDto.setItems(new ArrayList<>()); |
| | | } else { |
| | |
| | | if (Objects.isNull(params.getItemList()) || params.getItemList().isEmpty()) { |
| | | throw new CoolException("单据明细不能为空!!"); |
| | | } |
| | | Long OrderId = params.getItemList().stream().findFirst().get().getAsnId(); |
| | | Long OrderId = params.getItemList().stream().findFirst().get().getOrderId(); |
| | | /**获取平库订单*/ |
| | | WkOrder order = asnOrderMapper.getOne(new LambdaQueryWrapper<WkOrder>() |
| | | .eq(WkOrder::getId, OrderId) |
| | |
| | | items.forEach(asnOrderItem -> { |
| | | ReceiptDetlsDto detlsDto = new ReceiptDetlsDto(); |
| | | |
| | | detlsDto.setAsnCode(asnOrderItem.getAsnCode()) |
| | | detlsDto.setAsnCode(asnOrderItem.getOrderCode()) |
| | | .setId(asnOrderItem.getId()) |
| | | .setMaktx(asnOrderItem.getMaktx()) |
| | | .setFieldsIndex(asnOrderItem.getFieldsIndex()) |
| | |
| | | List<WkOrder> wkOrderList = asnOrderService.list(new LambdaQueryWrapper<WkOrder>().in(WkOrder::getId, ids)); |
| | | for (WkOrder wkOrder : wkOrderList) { |
| | | WkOrderItem orderItem = asnOrderItemService.getOne(new LambdaQueryWrapper<WkOrderItem>() |
| | | .eq(WkOrderItem::getAsnId, wkOrder.getId()) |
| | | .eq(WkOrderItem::getOrderId, wkOrder.getId()) |
| | | .eq(WkOrderItem::getMatnrCode, taskItem.getMatnrCode()) |
| | | .eq(WkOrderItem::getSplrBatch, taskItem.getBatch()) |
| | | ); |
| | |
| | | if (num.compareTo(orderDemandQty) < 0){ |
| | | throw new CoolException("播种数量大于单据出库数量,请检查"); |
| | | } |
| | | WkOrder wkOrder = asnOrderService.getById(orderItem.getAsnId()); |
| | | WkOrder wkOrder = asnOrderService.getById(orderItem.getOrderId()); |
| | | if (Cools.isEmpty(wkOrder)){ |
| | | throw new CoolException("出库单主单未找到"); |
| | | } |
| | |
| | | } |
| | | |
| | | private Boolean checkOrderComplete(WkOrderItem orderItem) { |
| | | List<WkOrderItem> wkOrderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnCode, orderItem.getAsnCode())); |
| | | List<WkOrderItem> wkOrderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderCode, orderItem.getOrderCode())); |
| | | return wkOrderItems.stream().allMatch(item -> new BigDecimal(item.getAnfme().toString()).equals(new BigDecimal(item.getQty().toString()))); |
| | | } |
| | | } |
| | |
| | | |
| | | /************************** 修改ASN主单数据 ******************************/ |
| | | //获取ASN明细订单标识 |
| | | List<Long> ids = wkOrderItems.stream().map(WkOrderItem::getAsnId).collect(Collectors.toList()); |
| | | List<Long> ids = wkOrderItems.stream().map(WkOrderItem::getOrderId).collect(Collectors.toList()); |
| | | //ASN明细单据分组 |
| | | Map<Long, List<WkOrderItem>> asnIds = wkOrderItems.stream().collect(Collectors.groupingBy(WkOrderItem::getAsnId)); |
| | | Map<Long, List<WkOrderItem>> asnIds = wkOrderItems.stream().collect(Collectors.groupingBy(WkOrderItem::getOrderId)); |
| | | ids.forEach(id -> { |
| | | int count = asnOrderService.count(new LambdaQueryWrapper<WkOrder>().in(WkOrder::getId, id)); |
| | | if (count == asnIds.get(id).size()) { |
| | |
| | | return R.ok("Delete Success").add(ids); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('manager:outStock:update')") |
| | | @ApiOperation("取消盘点单据") |
| | | @GetMapping("/check/cancel/{id}") |
| | | public R cancel(@PathVariable Long id) { |
| | | if (Objects.isNull(id)) { |
| | | return R.error("参数不能为空!!"); |
| | | } |
| | | return checkOrderService.cancelCheckOrder(id); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('manager:check:list')") |
| | | @PostMapping("/check/query") |
| | | public R query(@RequestParam(required = false) String condition) { |
| | |
| | | List<KeyValVo> vos = new ArrayList<>(); |
| | | LambdaQueryWrapper<WkOrderItem> wrapper = new LambdaQueryWrapper<>(); |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.like(WkOrderItem::getAsnCode, condition); |
| | | wrapper.like(WkOrderItem::getOrderCode, condition); |
| | | } |
| | | checkOrderItemService.page(new Page<>(1, 20), wrapper).getRecords().forEach( |
| | | item -> vos.add(new KeyValVo(item.getId(), item.getAsnCode())) |
| | | item -> vos.add(new KeyValVo(item.getId(), item.getOrderCode())) |
| | | ); |
| | | return R.ok().add(vos); |
| | | } |
| | |
| | | } |
| | | List<AsnOrderTemplate> orderTemplates = new ArrayList<>(); |
| | | for (WkOrder order : orders) { |
| | | List<WkOrderItem> orderItems = outStockItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnId, order.getId())); |
| | | List<WkOrderItem> orderItems = outStockItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId())); |
| | | for (WkOrderItem item : orderItems) { |
| | | if (Objects.isNull(item)) { |
| | | continue; |
| | |
| | | } |
| | | List<AsnOrderTemplate> orderTemplates = new ArrayList<>(); |
| | | for (WkOrder order : orders) { |
| | | List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnId, order.getId())); |
| | | List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId())); |
| | | for (WkOrderItem item : orderItems) { |
| | | if (Objects.isNull(item)) { |
| | | continue; |
| | |
| | | * ASN主单标识 |
| | | */ |
| | | @ApiModelProperty(value= "ASN主单标识") |
| | | private Long asnId; |
| | | |
| | | private Long orderId; |
| | | |
| | | /** |
| | | * 平台标识(行号) |
| | |
| | | * ASN单号 |
| | | */ |
| | | @ApiModelProperty(value= "ASN单号") |
| | | private String asnCode; |
| | | private String orderCode; |
| | | |
| | | /** |
| | | * PO单明细标识 |
| | |
| | | public WkOrderItem() {} |
| | | |
| | | public WkOrderItem(Long asnId, String asnCode, Long poDetlId, String matnrCode, String poCode, Long matnrId, String matnk, Double anfme, String stockUnit, Double purQty, String purUnit, Double qty, String splrCode, String splrName, String qrcode, String barcode, String packName, Integer status, Integer ntyStatus, Integer deleted, Integer tenantId, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) { |
| | | this.asnId = asnId; |
| | | this.asnCode = asnCode; |
| | | this.orderId = asnId; |
| | | this.orderCode = asnCode; |
| | | this.poDetlId = poDetlId; |
| | | this.matnrCode = matnrCode; |
| | | this.poCode = poCode; |
| | |
| | | */ |
| | | private void moveOrderToLog(List<WkOrder> wkOrders, String type) { |
| | | Set<Long> longSet = wkOrders.stream().map(WkOrder::getId).collect(Collectors.toSet()); |
| | | List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().in(WkOrderItem::getAsnId, longSet)); |
| | | List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().in(WkOrderItem::getOrderId, longSet)); |
| | | if (orderItems.isEmpty()) { |
| | | throw new CoolException("收货明细为空!!"); |
| | | } |
| | |
| | | } |
| | | |
| | | List<AsnOrderItemLog> logs = new ArrayList<>(); |
| | | List<WkOrderItem> items = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnId, order.getId())); |
| | | List<WkOrderItem> items = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId())); |
| | | items.forEach(item -> { |
| | | AsnOrderItemLog itemLog = new AsnOrderItemLog(); |
| | | BeanUtils.copyProperties(item, itemLog); |
| | | itemLog.setAsnItemId(itemLog.getId()) |
| | | .setLogId(orderLog.getId()) |
| | | .setAsnId(item.getAsnId()); |
| | | .setAsnId(item.getOrderId()); |
| | | logs.add(itemLog); |
| | | }); |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>().in(WkOrderItem::getAsnId, longSet))) { |
| | | if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>().in(WkOrderItem::getOrderId, longSet))) { |
| | | throw new CoolException("原单据明细删除失败!!"); |
| | | } |
| | | if (!this.asnOrderService.removeByIds(longSet)) { |
| | |
| | | .eq(WkOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)); |
| | | if (!orders.isEmpty()) { |
| | | for (WkOrder order : orders) { |
| | | List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnId, order.getId())); |
| | | List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId())); |
| | | if (orderItems.isEmpty()) { |
| | | return; |
| | | } |
| | |
| | | LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new LambdaQueryWrapper<WarehouseAreasItem>() |
| | | .eq(WarehouseAreasItem::getMatnrCode, orderItem.getMatnrCode()) |
| | | .eq(!Cools.isEmpty(orderItem.getFieldsIndex()), WarehouseAreasItem::getFieldsIndex, orderItem.getFieldsIndex()) |
| | | .eq(WarehouseAreasItem::getAsnCode, orderItem.getAsnCode()) |
| | | .eq(WarehouseAreasItem::getAsnCode, orderItem.getOrderCode()) |
| | | .eq(StringUtils.isNotBlank(orderItem.getSplrBatch()), WarehouseAreasItem::getSplrBatch, orderItem.getSplrBatch()); |
| | | if (Objects.isNull(orderItem.getIsptResult())) { |
| | | queryWrapper.isNull(WarehouseAreasItem::getIsptResult); |
| | |
| | | } |
| | | // String barcode = code + matnr.getCode(); |
| | | orderItem.setAnfme(item.getAnfme()) |
| | | .setAsnId(order.getId()) |
| | | .setOrderId(order.getId()) |
| | | .setQty(item.getQty()) |
| | | .setSplrName(item.getSplrName()) |
| | | .setAsnCode(code) |
| | | .setOrderCode(code) |
| | | .setSplrCode(item.getSplrCode()) |
| | | .setPoDetlId(item.getId()) |
| | | .setPlatItemId(item.getPlatItemId()) |
| | |
| | | R excelImport(MultipartFile file, HashMap<String, Object> hashMap, Long loginUserId); |
| | | |
| | | R saveCheckOrder(AsnOrderAndItemsParams params, Long loginUserId); |
| | | |
| | | R cancelCheckOrder(Long id); |
| | | } |
| | |
| | | throw new CoolException(sbFaild.toString()); |
| | | } |
| | | String trackCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, matnr); |
| | | orderItem.setAsnId(order.getId()) |
| | | .setAsnCode(order.getCode()) |
| | | orderItem.setOrderId(order.getId()) |
| | | .setOrderCode(order.getCode()) |
| | | .setSplrBatch(orderTemplate.getSplrBatch()) |
| | | .setPlatItemId(orderTemplate.getPlatItemId()) |
| | | .setAnfme(Double.parseDouble(orderTemplate.getAnfme())) |
| | |
| | | WkOrderItem item = new WkOrderItem(); |
| | | BeanUtils.copyProperties(itemLog, item); |
| | | item.setId(itemLog.getAsnItemId()) |
| | | .setAsnId(order.getId()) |
| | | .setOrderId(order.getId()) |
| | | .setMatnrId(Long.parseLong(itemLog.getMatnrId())) |
| | | .setDeleted(0); |
| | | orderItems.add(item); |
| | |
| | | if (orderItems.isEmpty()) { |
| | | return new ArrayList<>(); |
| | | } |
| | | List<Long> longList = orderItems.stream().map(WkOrderItem::getAsnId).collect(Collectors.toList()); |
| | | List<Long> longList = orderItems.stream().map(WkOrderItem::getOrderId).collect(Collectors.toList()); |
| | | |
| | | return this.listByIds(longList); |
| | | } |
| | |
| | | public void svaeOrUpdateOrderItem(AsnOrderAndItemsParams params, Long loginUserId) throws Exception { |
| | | WkOrder orders = params.getOrders(); |
| | | params.getItems().forEach(item -> { |
| | | item.put("asnId", orders.getId()); |
| | | item.put("asnCode", orders.getCode()); |
| | | item.put("orderId", orders.getId()); |
| | | item.put("orderCode", orders.getCode()); |
| | | item.put("poCode", orders.getPoCode()); |
| | | item.put("createBy", loginUserId); |
| | | item.put("updateBy", loginUserId); |
| | |
| | | } |
| | | }); |
| | | List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>() |
| | | .eq(WkOrderItem::getAsnId, params.getOrders().getId())); |
| | | .eq(WkOrderItem::getOrderId, params.getOrders().getId())); |
| | | double sum = orderItems.stream().mapToDouble(WkOrderItem::getAnfme).sum(); |
| | | orders.setAnfme(sum); |
| | | if (!this.updateById(orders)) { |
| | |
| | | throw new CoolException("新建单据数量不能大于计划数量!!"); |
| | | } |
| | | orderItem.setAnfme(item.getAnfme()) |
| | | .setAsnId(order.getId()) |
| | | .setOrderId(order.getId()) |
| | | .setSplrName(item.getSplrName()) |
| | | .setAsnCode(code) |
| | | .setOrderCode(code) |
| | | .setSplrBatch(item.getSplrBatch()) |
| | | .setSplrCode(item.getSplrCode()) |
| | | .setPoDetlId(item.getId()) |
| | |
| | | public R removeOrders(List<Long> ids) { |
| | | for (Long id : ids) { |
| | | List<WkOrderItem> list = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>() |
| | | .eq(WkOrderItem::getAsnId, id)); |
| | | .eq(WkOrderItem::getOrderId, id)); |
| | | if (list.isEmpty()) { |
| | | continue; |
| | | } |
| | |
| | | |
| | | |
| | | if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>() |
| | | .in(WkOrderItem::getAsnId, ids))) { |
| | | .in(WkOrderItem::getOrderId, ids))) { |
| | | // throw new CoolException("Details Delete Fail"); |
| | | } |
| | | |
| | |
| | | if (!this.updateById(asrder)) { |
| | | throw new CoolException("单据关闭失败!!"); |
| | | } |
| | | List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnId, asrder.getId())); |
| | | List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, asrder.getId())); |
| | | if (orderItems.isEmpty()) { |
| | | throw new CoolException("收货明细为空!!"); |
| | | } |
| | |
| | | throw new CoolException("主单历史档添加失败!!"); |
| | | } |
| | | List<AsnOrderItemLog> logs = new ArrayList<>(); |
| | | List<WkOrderItem> items = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnId, order.getId())); |
| | | List<WkOrderItem> items = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId())); |
| | | items.forEach(item -> { |
| | | AsnOrderItemLog itemLog = new AsnOrderItemLog(); |
| | | BeanUtils.copyProperties(item, itemLog); |
| | | itemLog.setAsnItemId(itemLog.getId()) |
| | | .setLogId(orderLog.getId()) |
| | | .setAsnId(item.getAsnId()); |
| | | .setAsnId(item.getOrderId()); |
| | | logs.add(itemLog); |
| | | }); |
| | | |
| | | if (!asnOrderItemLogService.saveBatch(logs)) { |
| | | throw new CoolException("通知单明细历史档保存失败!!"); |
| | | } |
| | | if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnId, order.getId()))) { |
| | | if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId()))) { |
| | | throw new CoolException("原单据明细删除失败!!"); |
| | | } |
| | | if (!this.removeById(asrder.getId())) { |
| | |
| | | matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>() |
| | | .eq(Matnr::getCode, orderTemplate.getMatnrCode())); |
| | | } |
| | | orderItem.setAsnId(order.getId()) |
| | | .setAsnCode(order.getCode()) |
| | | orderItem.setOrderId(order.getId()) |
| | | .setOrderCode(order.getCode()) |
| | | .setSplrBatch(orderTemplate.getSplrBatch()) |
| | | .setAnfme(Double.parseDouble(orderTemplate.getAnfme())) |
| | | .setSplrName(orderTemplate.getSplrName()) |
| | |
| | | } |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @date 2025/7/16 |
| | | * @description: 取消盘点单据 |
| | | * @version 1.0 |
| | | */ |
| | | @Override |
| | | public R cancelCheckOrder(Long id) { |
| | | WkOrder order = this.getById(id); |
| | | if (Objects.isNull(order)) { |
| | | throw new CoolException("单据不存在!!"); |
| | | } |
| | | if (!order.getExceStatus().equals(CheckExceStatus.CHECK_ORDER_STATUS_UN_EXCE.val)) { |
| | | throw new CoolException("当前单据不可执行取消操作!!"); |
| | | } |
| | | |
| | | if (!this.removeById(id)) { |
| | | throw new CoolException("盘点单据删除失败!!"); |
| | | } |
| | | |
| | | if (!checkOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, id))) { |
| | | throw new CoolException("盘点单明细删除失败!!"); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * @param |
| | | * @return |
| | | * @author Ryan |
| | |
| | | public void svaeOrUpdateOrderItem(AsnOrderAndItemsParams params, Long loginUserId) throws Exception { |
| | | WkOrder orders = params.getOrders(); |
| | | params.getItems().forEach(item -> { |
| | | item.put("asnId", orders.getId()); |
| | | item.put("asnCode", orders.getCode()); |
| | | item.put("orderId", orders.getId()); |
| | | item.put("orderCode", orders.getCode()); |
| | | item.put("poCode", orders.getPoCode()); |
| | | item.put("createBy", loginUserId); |
| | | item.put("updateBy", loginUserId); |
| | |
| | | } |
| | | }); |
| | | List<WkOrderItem> orderItems = checkOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>() |
| | | .eq(WkOrderItem::getAsnId, params.getOrders().getId())); |
| | | .eq(WkOrderItem::getOrderId, params.getOrders().getId())); |
| | | Double sum = orderItems.stream().mapToDouble(WkOrderItem::getAnfme).sum(); |
| | | orders.setAnfme(sum); |
| | | if (!this.updateById(orders)) { |
| | |
| | | matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>() |
| | | .eq(Matnr::getCode, orderTemplate.getMatnrCode())); |
| | | } |
| | | orderItem.setAsnId(order.getId()) |
| | | .setAsnCode(order.getCode()) |
| | | orderItem.setOrderId(order.getId()) |
| | | .setOrderCode(order.getCode()) |
| | | .setSplrBatch(orderTemplate.getSplrBatch()) |
| | | .setAnfme(Double.parseDouble(orderTemplate.getAnfme())) |
| | | .setSplrName(orderTemplate.getSplrName()) |
| | |
| | | public void svaeOrUpdateOrderItem(AsnOrderAndItemsParams params, Long loginUserId) throws Exception { |
| | | WkOrder orders = params.getOrders(); |
| | | params.getItems().forEach(item -> { |
| | | item.put("asnId", orders.getId()); |
| | | item.put("asnCode", orders.getCode()); |
| | | item.put("orderId", orders.getId()); |
| | | item.put("orderCode", orders.getCode()); |
| | | item.put("poCode", orders.getPoCode()); |
| | | item.put("createBy", loginUserId); |
| | | item.put("updateBy", loginUserId); |
| | |
| | | } |
| | | }); |
| | | List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>() |
| | | .eq(WkOrderItem::getAsnId, params.getOrders().getId())); |
| | | .eq(WkOrderItem::getOrderId, params.getOrders().getId())); |
| | | Double sum = orderItems.stream().mapToDouble(WkOrderItem::getAnfme).sum(); |
| | | orders.setAnfme(sum); |
| | | if (!this.updateById(orders)) { |
| | |
| | | throw new CoolException("当前单据状态为" + AsnExceStatus.getExceStatus(order.getExceStatus()) + ", 不可执行取消操作!!"); |
| | | } |
| | | |
| | | List<WkOrderItem> orderItems = outStockItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnId, id)); |
| | | List<WkOrderItem> orderItems = outStockItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, id)); |
| | | if (!orderItems.isEmpty()) { |
| | | for (WkOrderItem orderItem : orderItems) { |
| | | if (!Objects.isNull(orderItem.getPoDetlId())) { |
| | |
| | | if (!this.remove(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getId, id))) { |
| | | throw new CoolException("主单删除失败!!"); |
| | | } |
| | | if (!outStockItemService.remove(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnId, id))) { |
| | | if (!outStockItemService.remove(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, id))) { |
| | | throw new CoolException("单据明细删除失败!!"); |
| | | } |
| | | return R.ok("操作成功"); |
| | |
| | | .setFieldsIndex(item.getFieldsIndex()) |
| | | .setAnfme(item.getAnfme()) |
| | | .setWorkQty(0.0) |
| | | .setAsnId(order.getId()) |
| | | .setAsnCode(order.getCode()) |
| | | .setOrderId(order.getId()) |
| | | .setOrderCode(order.getCode()) |
| | | .setStockUnit(item.getUnit()) |
| | | .setPurUnit(item.getUnit()) |
| | | .setPlatWorkCode(item.getPlatWorkCode()) |
| | |
| | | List<Long> list = orders.stream().map(WkOrder::getId).collect(Collectors.toList()); |
| | | List<WkOrderItem> orderItems = asnOrderItemService |
| | | .list(new LambdaQueryWrapper<WkOrderItem>() |
| | | .in(WkOrderItem::getAsnId, list).apply("anfme > work_qty")); |
| | | .in(WkOrderItem::getOrderId, list).apply("anfme > work_qty")); |
| | | if (orderItems.isEmpty()) { |
| | | throw new CoolException("单据不存在!!"); |
| | | } |
| | |
| | | items.forEach(orderItem -> { |
| | | WaveOrderRela orderRela = new WaveOrderRela(); |
| | | orderRela.setId(null) |
| | | .setOrderId(orderItem.getAsnId()) |
| | | .setOrderId(orderItem.getOrderId()) |
| | | .setOrderItemId(orderItem.getId()) |
| | | .setWaveId(wave.getId()) |
| | | .setWaveItemId(item.getId()); |
| | |
| | | LocItem locItem = locItemService.getById(param.getId()); |
| | | |
| | | WkOrderItem orderItem = outStockItemService.getOne(new LambdaQueryWrapper<WkOrderItem>() |
| | | .eq(WkOrderItem::getAsnId, outId) |
| | | .eq(WkOrderItem::getOrderId, outId) |
| | | .eq(StringUtils.isNotBlank(locItem.getBatch()), WkOrderItem::getSplrBatch, locItem.getBatch()) |
| | | .eq(StringUtils.isNotBlank(locItem.getFieldsIndex()), WkOrderItem::getFieldsIndex, locItem.getFieldsIndex()) |
| | | .eq(WkOrderItem::getMatnrId, locItem.getMatnrId())); |
| | |
| | | locItem.setOutQty(param.getOutQty()) |
| | | .setBatch(param.getBatch()) |
| | | .setSourceId(outId) |
| | | .setSourceCode(orderItem.getAsnCode()) |
| | | .setSourceCode(orderItem.getOrderCode()) |
| | | .setSource(orderItem.getId()); |
| | | locItems.add(locItem); |
| | | |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R cancelOutOrderByItems(List<WkOrderItem> orderItems) { |
| | | Map<Long, List<WkOrderItem>> listMap = orderItems.stream().collect(Collectors.groupingBy(WkOrderItem::getAsnId)); |
| | | Map<Long, List<WkOrderItem>> listMap = orderItems.stream().collect(Collectors.groupingBy(WkOrderItem::getOrderId)); |
| | | for (Long key : listMap.keySet()) { |
| | | WkOrder order = this.getById(key); |
| | | if (Objects.isNull(order)) { |
| | |
| | | throw new CoolException("主单删除失败!!"); |
| | | } |
| | | if (!outStockItemService.remove(new LambdaQueryWrapper<WkOrderItem>() |
| | | .eq(WkOrderItem::getAsnId, key))) { |
| | | .eq(WkOrderItem::getOrderId, key))) { |
| | | throw new CoolException("单据明细删除失败!!"); |
| | | } |
| | | } |
| | |
| | | |
| | | private List<OrderOutItemDto> getOutOrderList(Long orderId, WaveRule waveRule) { |
| | | List<WkOrderItem> wkOrderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>() |
| | | .eq(WkOrderItem::getAsnId, orderId)); |
| | | .eq(WkOrderItem::getOrderId, orderId)); |
| | | List<OrderOutItemDto> list = new ArrayList<>(); |
| | | Set<ExistDto> existDtos = new HashSet<>(); |
| | | for (WkOrderItem wkOrderItem : wkOrderItems) { |
| | |
| | | throw new CoolException("单据不存在!!"); |
| | | } |
| | | List<WkOrderItem> wkOrderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>() |
| | | .eq(WkOrderItem::getAsnCode, map.get("asnCode")) |
| | | .eq(WkOrderItem::getOrderCode, map.get("asnCode")) |
| | | .eq(WkOrderItem::getNtyStatus, 1)); |
| | | if (wkOrderItems.isEmpty()) { |
| | | return new ArrayList<>(); |
| | |
| | | .setMemo("库存出库,无单据信息!!") |
| | | .setType(OrderType.ORDER_OUT.type); |
| | | } else if (!Objects.isNull(orderItem) && StringUtils.isNotBlank(orderItem.getId() + "")) { |
| | | WkOrder wkOrder = asnOrderService.getById(orderItem.getAsnId()); |
| | | WkOrder wkOrder = asnOrderService.getById(orderItem.getOrderId()); |
| | | stock.setWkType(Short.parseShort(wkOrder.getWkType())) |
| | | .setType(OrderType.ORDER_OUT.type); |
| | | } else { |