| | |
| | | [ |
| | | { locale: "en", name: "English" }, |
| | | { locale: "zh", name: "简体中文" }, |
| | | // { locale: "zh", name: "简体中文" }, |
| | | // { locale: "zh", name: "简体中文" }, |
| | | // { locale: "zh", name: "简体中文" }, |
| | | ], |
| | | { |
| | | // msg in console |
| | |
| | | delete_title: "删除 %{name} #%{id}", |
| | | details: "Details", |
| | | error: "A client error occurred and your request couldn't be completed.", |
| | | |
| | | |
| | | invalid_form: "表单无效 请检查是否有错误!", |
| | | loading: "Please wait", |
| | | no: "No", |
| | |
| | | order: 'Orders', |
| | | |
| | | }, |
| | | request: { |
| | | error: { |
| | | stock: "Insufficient inventory to deliver !!" |
| | | } |
| | | |
| | | } |
| | | |
| | | }; |
| | | |
| | | export default customEnglishMessages; |
| | |
| | | createWave: "生成波次", |
| | | recover: "继续收货", |
| | | }, |
| | | request: { |
| | | error: { |
| | | stock: "库存不足,无法提交!!" |
| | | } |
| | | |
| | | } |
| | | }; |
| | | |
| | | export default customChineseMessages; |
| | |
| | | </DialogContent> |
| | | <DialogActions> |
| | | <Toolbar sx={{ width: '100%', justifyContent: 'end' }} > |
| | | <GenerateTaskButton record={record?.id} dataSource={data} /> |
| | | <GenerateTaskButton record={record?.id} dataSource={data} setOpen={setOpen}/> |
| | | </Toolbar> |
| | | </DialogActions> |
| | | </Dialog> |
| | |
| | | |
| | | export default ItemToTaskModal; |
| | | |
| | | const GenerateTaskButton = (record, dataSource) => { |
| | | const GenerateTaskButton = (record) => { |
| | | const refresh = useRefresh(); |
| | | const notify = useNotify(); |
| | | const redirect = useRedirect(); |
| | | const translate = useTranslate(); |
| | | const { locs, setLocs } = useState([]); |
| | | const generateTask = async () => { |
| | | const params = {wave: record, waveItem: dataSource} |
| | | console.log('---------->'); |
| | | console.log(record); |
| | | const res = await request.post(`/wave/public/task`, { wave: record?.record, waveItem: record?.dataSource }); |
| | | if (res?.data?.code === 200) { |
| | | notify(res.data.msg); |
| | | redirect("/task") |
| | | record?.dataSource.map(item => { |
| | | const loc = JSON.parse(item.stockLocs); |
| | | if (loc != undefined && loc.length > 0) { |
| | | setLocs(...loc) |
| | | } |
| | | }) |
| | | if (locs == undefined || locs.length < 1) { |
| | | notify(translate('request.error.stock')) |
| | | } else { |
| | | notify(res.data.msg); |
| | | const res = await request.post(`/wave/public/task`, { wave: record?.record, waveItem: record?.dataSource }); |
| | | if (res?.data?.code === 200) { |
| | | notify(res.data.msg); |
| | | redirect("/task") |
| | | } else { |
| | | notify(res.data.msg); |
| | | } |
| | | refresh(); |
| | | } |
| | | refresh(); |
| | | record.setOpen(false) |
| | | } |
| | | return (<Button variant="contained" label={"ra.action.save"} onClick={generateTask}></Button>) |
| | | } |
| | |
| | | title={"menu.task"} |
| | | empty={false} |
| | | filters={filters} |
| | | sort={{ field: "sort", order: "desc" }} |
| | | sort={{ field: "create_time", order: "desc" }} |
| | | actions={( |
| | | <TopToolbar> |
| | | <FilterButton /> |
| | |
| | | private Double anfme; |
| | | |
| | | /** |
| | | * 库存数量 |
| | | */ |
| | | @ApiModelProperty("库存数量") |
| | | private Double stockQty; |
| | | |
| | | /** |
| | | * 库存批次 |
| | | */ |
| | | @ApiModelProperty(value= "库存批次") |
| | |
| | | double sum2 = orderItems.stream().mapToDouble(AsnOrderItem::getWorkQty).sum(); |
| | | if (!this.update(new LambdaUpdateWrapper<AsnOrder>() |
| | | .set(AsnOrder::getWaveId, wave.getId()) |
| | | .set(AsnOrder::getWorkQty, sum2) |
| | | .set(AsnOrder::getWorkQty, sum2) |
| | | .set(AsnOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_WAVE.val) |
| | | .in(AsnOrder::getId, ids))) { |
| | | throw new CoolException("执行状态修改修改失败!!"); |
| | |
| | | } |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @description 保存出库主单及明细 |
| | | * @param |
| | | * @return |
| | | * @author Ryan |
| | | * @description 保存出库主单及明细 |
| | | * @time 2025/4/29 13:47 |
| | | */ |
| | | @Override |
| | |
| | | if (Objects.isNull(ruleCode) || StringUtils.isBlank(ruleCode)) { |
| | | throw new CoolException("编码规则错误:请检查「SYS_OUT_STOCK_CODE」是否设置正确!!"); |
| | | } |
| | | |
| | | orders.setCode(ruleCode) |
| | | .setType(OrderType.ORDER_OUT.type) |
| | | .setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val) |
| | | .setUpdateBy(loginUserId) |
| | | .setCreateBy(loginUserId); |
| | | if (!this.save(orders)) { |
| | |
| | | } |
| | | params.setOrders(orders); |
| | | try { |
| | | svaeOrUpdateOrderItem(params,loginUserId); |
| | | svaeOrUpdateOrderItem(params, loginUserId); |
| | | } catch (Exception e) { |
| | | throw new CoolException(e.getMessage()); |
| | | } |
| | |
| | | |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @description 修改主单及明细 |
| | | * @param |
| | | * @return |
| | | * @author Ryan |
| | | * @description 修改主单及明细 |
| | | * @time 2025/4/29 13:47 |
| | | */ |
| | | @Override |
| | |
| | | } |
| | | |
| | | try { |
| | | svaeOrUpdateOrderItem(params,loginUserId); |
| | | svaeOrUpdateOrderItem(params, loginUserId); |
| | | } catch (Exception e) { |
| | | throw new CoolException(e.getMessage()); |
| | | } |
| | |
| | | if (Objects.isNull(waves)) { |
| | | throw new CoolException("波次数据不存在!!"); |
| | | } |
| | | // List<Long> list = itemParams.stream().map(WaveItem::getWaveId).collect(Collectors.toList()); |
| | | List<WaveItem> waveItems = waveItemService.list(new LambdaQueryWrapper<WaveItem>().eq(WaveItem::getWaveId, waves.getId())); |
| | | if (waveItems.isEmpty()) { |
| | | throw new CoolException("波次明细不存在!!"); |
| | |
| | | // 3. 修改主单、波次执行数量 |
| | | // 4. 判断全仓出库或拣料出库 |
| | | List<Long> orderIds = waveItems.stream().map(WaveItem::getOrderId).collect(Collectors.toList()); |
| | | // List<AsnOrder> orders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().in(AsnOrder::getId, orderIds)); |
| | | /**修改出库单状态*/ |
| | | if (!asnOrderService.update(new LambdaUpdateWrapper<AsnOrder>() |
| | | .set(AsnOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_WORKING.val) |
| | | .in(AsnOrder::getId, orderIds))) { |
| | | throw new CoolException("出库单据状态修改失败!!"); |
| | | } |
| | | // /**修改波次单据执行状态*/ |
| | | // if (!this.update(new LambdaUpdateWrapper<Wave>().set(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_TASK).eq(Wave::getId, waves.getId()))) { |
| | | // throw new CoolException("波次状态修改失败!!"); |
| | | // } |
| | | return R.ok(); |
| | | } |
| | | |
| | |
| | | TaskItem taskItem = new TaskItem(); |
| | | BeanUtils.copyProperties(item, taskItem); |
| | | taskItem.setTaskId(task.getId()) |
| | | .setAnfme(waveItem.getAnfme()) |
| | | .setId(null) |
| | | .setSource(item.getWaveItemId()); |
| | | taskItems.add(taskItem); |