From becc33ce9681fcc75d26eb2b8fbe650d53cb1f89 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 30 七月 2025 14:55:26 +0800
Subject: [PATCH] 1. 调拔单功能优化 2. 7.30问题及bug修复
---
rsf-admin/src/page/orders/purchase/PurchaseItemList.jsx | 2
rsf-admin/src/page/histories/asnOrderLog/AsnOrderItemLogList.jsx | 4
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryServiceImpl.java | 2
rsf-admin/src/page/orders/purchase/PurchaseEdit.jsx | 25 ++++
rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx | 6 -
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java | 106 ++++++++++++---------
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java | 2
rsf-admin/src/page/histories/asnOrderLog/AsnOrderLogList.jsx | 123 +++++++++++++-----------
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 2
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryItemServiceImpl.java | 5 +
rsf-admin/src/page/orders/transfer/TransferOrders.jsx | 2
11 files changed, 162 insertions(+), 117 deletions(-)
diff --git a/rsf-admin/src/page/histories/asnOrderLog/AsnOrderItemLogList.jsx b/rsf-admin/src/page/histories/asnOrderLog/AsnOrderItemLogList.jsx
index 8e4d183..dc87470 100644
--- a/rsf-admin/src/page/histories/asnOrderLog/AsnOrderItemLogList.jsx
+++ b/rsf-admin/src/page/histories/asnOrderLog/AsnOrderItemLogList.jsx
@@ -144,8 +144,8 @@
omit={['id', 'orderId', 'poDetlId', 'poCode', 'qrcode', 'packName', 'createTime', 'memo', 'fieldsIndex', 'matnrId', 'splrCode', 'status', 'createBy$']}
>
<NumberField source="id" />
- <NumberField source="asnId" label="table.field.asnOrderItemLog.asnId" />
- <TextField source="asnCode" label="table.field.asnOrderItemLog.asnCode" />
+ <NumberField source="asnId" label="table.field.asnOrderItemLog.orderId" />
+ <TextField source="asnCode" label="table.field.asnOrderItemLog.orderCode" />
<TextField source="platItemId" label="table.field.asnOrderItemLog.platItemId" />
<NumberField source="poDetlId" label="table.field.asnOrderItemLog.poDetlId" />
<TextField source="poCode" label="table.field.asnOrderItemLog.poCode" />
diff --git a/rsf-admin/src/page/histories/asnOrderLog/AsnOrderLogList.jsx b/rsf-admin/src/page/histories/asnOrderLog/AsnOrderLogList.jsx
index e0369b6..8eb27ae 100644
--- a/rsf-admin/src/page/histories/asnOrderLog/AsnOrderLogList.jsx
+++ b/rsf-admin/src/page/histories/asnOrderLog/AsnOrderLogList.jsx
@@ -35,19 +35,22 @@
useRecordSelection,
useRefresh,
} from 'react-admin';
-import { Box, Typography, Card, Stack } from '@mui/material';
-import { styled } from '@mui/material/styles';
-import AsnOrderLogCreate from "./AsnOrderLogCreate";
-import AsnOrderLogPanel from "./AsnOrderLogPanel";
-import EmptyData from "../../components/EmptyData";
+import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import DictionarySelect from "../../components/DictionarySelect";
import MyCreateButton from "../../components/MyCreateButton";
import MyExportButton from '../../components/MyExportButton';
+import { Box, Typography, Card, Stack } from '@mui/material';
+import ConfirmButton from '../../components/ConfirmButton';
import PageDrawer from "../../components/PageDrawer";
-import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import AsnOrderLogCreate from "./AsnOrderLogCreate";
+import CachedIcon from '@mui/icons-material/Cached';
+import EmptyData from "../../components/EmptyData";
+import AsnOrderLogPanel from "./AsnOrderLogPanel";
+import { styled } from '@mui/material/styles';
import * as Common from '@/utils/common';
import request from '@/utils/request';
-import ConfirmButton from '../../components/ConfirmButton';
-import CachedIcon from '@mui/icons-material/Cached';
+
+
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
'& .css-1vooibu-MuiSvgIcon-root': {
height: '.9em'
@@ -61,53 +64,59 @@
width: 150
},
'& .MuiTableCell-root': {
- whiteSpace: 'nowrap',
- overflow: 'visible',
- textOverflow: 'unset'
- }
+ whiteSpace: 'nowrap',
+ overflow: 'visible',
+ textOverflow: 'unset'
+ }
}));
-const filters = [
- <SearchInput source="condition" alwaysOn />,
- <TextInput source="code" label="table.field.asnOrderLog.code" />,
- <TextInput source="poCode" label="table.field.asnOrderLog.poCode" />,
- <NumberInput source="poId" label="table.field.asnOrderLog.poId" />,
- <TextInput source="type" label="table.field.asnOrderLog.type" />,
- <TextInput source="wkType" label="table.field.asnOrderLog.wkType" />,
- <NumberInput source="anfme" label="table.field.asnOrderLog.anfme" />,
- <NumberInput source="qty" label="table.field.asnOrderLog.qty" />,
- <TextInput source="logisNo" label="table.field.asnOrderLog.logisNo" />,
- <DateInput source="arrTime" label="table.field.asnOrderLog.arrTime" />,
- <SelectInput source="rleStatus" label="table.field.asnOrderLog.rleStatus"
- choices={[
- { id: 0, name: ' 姝e父' },
- { id: 1, name: ' 宸查噴鏀�' },
- ]}
- />,
- <SelectInput source="ntyStatus" label="table.field.asnOrderLog.ntyStatus"
- choices={[
- { id: 0, name: ' 鏈笂鎶�' },
- { id: 1, name: ' 宸蹭笂鎶�' },
- { id: 2, name: ' 閮ㄥ垎涓婃姤' },
- ]}
- />,
- <TextInput label="common.field.memo" source="memo" />,
- <SelectInput
- label="common.field.status"
- source="status"
- choices={[
- { id: '1', name: 'common.enums.statusTrue' },
- { id: '0', name: 'common.enums.statusFalse' },
- ]}
- resettable
- />,
-]
const AsnOrderLogList = () => {
const translate = useTranslate();
const [createDialog, setCreateDialog] = useState(false);
const [drawerVal, setDrawerVal] = useState(false);
+ const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_order_type')) || [];
+
+ const filters = [
+ <SearchInput source="condition" alwaysOn />,
+ <TextInput source="code" label="table.field.asnOrderLog.code" />,
+ <TextInput source="poCode" label="table.field.asnOrderLog.poCode" />,
+ <NumberInput source="poId" label="table.field.asnOrderLog.poId" />,
+ // <TextInput source="type" label="table.field.asnOrderLog.type" />,
+ // <TextInput source="wkType" label="table.field.asnOrderLog.wkType" />,
+ <NumberInput source="anfme" label="table.field.asnOrderLog.anfme" />,
+ <NumberInput source="qty" label="table.field.asnOrderLog.qty" />,
+ <TextInput source="logisNo" label="table.field.asnOrderLog.logisNo" />,
+ <DateInput source="arrTime" label="table.field.asnOrderLog.arrTime" />,
+ // <SelectInput source="ntyStatus" label="table.field.asnOrderLog.ntyStatus"
+ // choices={[
+ // { id: 0, name: ' 鏈笂鎶�' },
+ // { id: 1, name: ' 宸蹭笂鎶�' },
+ // { id: 2, name: ' 閮ㄥ垎涓婃姤' },
+ // ]}
+ // />,
+ <AutocompleteInput
+ choices={dicts}
+ optionText="label"
+ label="table.field.asnOrder.type"
+ source="type"
+ // defaultValue="in"
+ optionValue="value"
+ parse={v => v}
+ alwaysOn
+ />,
+ <ReferenceInput source="wkType" reference="dictData" filter={{ dictTypeCode: 'sys_business_type', group: "1" }} label="table.field.asnOrder.wkType" alwaysOn>
+ <AutocompleteInput label="table.field.asnOrder.wkType" optionValue="value" />
+ </ReferenceInput>,
+ <DictionarySelect
+ label='table.field.asnOrder.exceStatus'
+ name="exceStatus"
+ group="1"
+ dictTypeCode="sys_asn_exce_status"
+ alwaysOn
+ />,
+ ]
return (
<Box display="flex">
@@ -139,7 +148,7 @@
rowClick={'edit'}
expand={false}
expandSingle={true}
- omit={['id', 'createTime', 'createBy', 'memo','logisNo', 'poId', 'rleStatus$','statusBool','createBy$']}
+ omit={['id', 'createTime', 'createBy', 'memo', 'logisNo', 'poId', 'rleStatus$', 'statusBool', 'createBy$']}
>
<NumberField source="id" />
<TextField source="code" label="table.field.asnOrderLog.code" />
@@ -186,16 +195,16 @@
const record = useRecordContext();
const notify = useNotify();
const continueReceipt = async () => {
- const { data: { code, data, msg } } = await request.post(`/asnOrderLog/continue/${record.id}`);
- if (code === 200) {
- notify(msg);
- } else {
- notify(msg);
- }
- refresh();
+ const { data: { code, data, msg } } = await request.post(`/asnOrderLog/continue/${record.id}`);
+ if (code === 200) {
+ notify(msg);
+ } else {
+ notify(msg);
+ }
+ refresh();
}
return (
- <ConfirmButton label={"toolbar.continue"} startIcon={<CachedIcon />} onConfirm={continueReceipt} />
+ record.type == 'in' ? <ConfirmButton label={"toolbar.continue"} startIcon={<CachedIcon />} onConfirm={continueReceipt} /> : <></>
)
- }
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
index c5457c1..1a1913e 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
@@ -95,12 +95,6 @@
<NumberInput source="qty" label="table.field.asnOrder.qty" />,
<TextInput source="logisNo" label="table.field.asnOrder.logisNo" />,
<DateInput source="arrTime" label="table.field.asnOrder.arrTime" />,
- <SelectInput source="rleStatus" label="table.field.asnOrder.rleStatus"
- choices={[
- { id: 0, name: ' 姝e父' },
- { id: 1, name: ' 宸查噴鏀�' },
- ]}
- />,
<TextInput label="common.field.memo" source="memo" />,
<DictionarySelect
label='table.field.asnOrder.exceStatus'
diff --git a/rsf-admin/src/page/orders/purchase/PurchaseEdit.jsx b/rsf-admin/src/page/orders/purchase/PurchaseEdit.jsx
index 3953ed2..1a0c2f7 100644
--- a/rsf-admin/src/page/orders/purchase/PurchaseEdit.jsx
+++ b/rsf-admin/src/page/orders/purchase/PurchaseEdit.jsx
@@ -55,9 +55,23 @@
<SimpleForm
shouldUnregister
warnWhenUnsavedChanges
- toolbar={<FormToolbar />}
+ toolbar={false}
mode="onTouched"
defaultValues={{}}
+ sx={{
+ "& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled": {
+ bgcolor: 'white',
+ WebkitTextFillColor: "rgba(0, 0, 0)"
+ },
+
+ "& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled": {
+ bgcolor: 'white',
+ WebkitTextFillColor: "rgba(0, 0, 0)"
+ },
+ "& .MuiFilledInput-root.MuiInputBase-sizeSmall": {
+ bgcolor: 'white',
+ }
+ }}
// validate={(values) => { }}
>
<Grid container width={{ xs: '100%', xl: '100%' }} rowSpacing={3} columnSpacing={3}>
@@ -81,6 +95,7 @@
source="type"
optionValue="value"
parse={v => v}
+ readOnly
/>
<AutocompleteInput
choices={business}
@@ -89,16 +104,19 @@
source="wkType"
optionValue="value"
parse={v => v}
+ readOnly
/>
<TextInput
label="table.field.purchase.source"
source="source"
parse={v => v}
+ readOnly
validate={required()}
/>
<NumberInput
label="table.field.purchase.anfme"
source="anfme"
+ readOnly
validate={required()}
/>
</Stack>
@@ -106,25 +124,30 @@
<TextInput
label="table.field.purchase.project"
source="project"
+ readOnly
parse={v => v}
/>
<TextInput
label="table.field.purchase.channel"
source="channel"
parse={v => v}
+ readOnly
/>
<TextInput
label="table.field.purchase.platCode"
source="platCode"
parse={v => v}
+ readOnly
/>
<DateInput
label="table.field.purchase.startTime"
source="startTime"
+ readOnly
/>
<DateInput
label="table.field.purchase.endTime"
source="endTime"
+ readOnly
/>
</Stack>
</Grid>
diff --git a/rsf-admin/src/page/orders/purchase/PurchaseItemList.jsx b/rsf-admin/src/page/orders/purchase/PurchaseItemList.jsx
index ba27383..e6ff1af 100644
--- a/rsf-admin/src/page/orders/purchase/PurchaseItemList.jsx
+++ b/rsf-admin/src/page/orders/purchase/PurchaseItemList.jsx
@@ -108,7 +108,7 @@
actions={(
<TopToolbar>
<FilterButton />
- <MyCreateButton onClick={() => { setCreateDialog(true) }} />
+ {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */}
<SelectColumnsButton preferenceKey='purchaseItem' />
{/* <MyExportButton /> */}
</TopToolbar>
diff --git a/rsf-admin/src/page/orders/transfer/TransferOrders.jsx b/rsf-admin/src/page/orders/transfer/TransferOrders.jsx
index ba4d7f7..be8eac0 100644
--- a/rsf-admin/src/page/orders/transfer/TransferOrders.jsx
+++ b/rsf-admin/src/page/orders/transfer/TransferOrders.jsx
@@ -81,7 +81,7 @@
omit={['id', 'memo']}
>
<NumberField source="id" />
- <TextField source="code" label="table.field.transferOrder.code" />
+ <TextField source="code" label="table.field.transferOrder.code"/>
<TextField source="poCode" label="table.field.transferOrder.poCode" />
<TextField source="type$" label="table.field.transferOrder.type" />
<TextField cellClassName="wkType" source="wkType$" label="table.field.transferOrder.wkType" />
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
index 109120c..c8b78f0 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -243,7 +243,7 @@
throw new CoolException("鏁版嵁閿欒锛侊紒");
}
if (!one.getExceStatus().equals(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val)) {
- throw new CoolException("鍑哄簱鍗曟湭瀹屾垚锛屾棤娉曞畬鎴愭敹璐э紒锛�");
+ throw new CoolException("璋冩嫈鍑哄簱鍗曟湭瀹屾垚锛屼笉鍙墽琛屾敹璐ф搷浣滐紒锛�");
}
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
index 5ad4d08..ffb2dd6 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
@@ -1,17 +1,13 @@
package com.vincent.rsf.server.manager.schedules;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.vincent.rsf.framework.exception.CoolException;
-import com.vincent.rsf.server.manager.entity.WkOrder;
-import com.vincent.rsf.server.manager.entity.WkOrderItem;
-import com.vincent.rsf.server.manager.entity.AsnOrderItemLog;
-import com.vincent.rsf.server.manager.entity.AsnOrderLog;
+import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.enums.AsnExceStatus;
import com.vincent.rsf.server.manager.enums.OrderType;
-import com.vincent.rsf.server.manager.service.AsnOrderItemLogService;
-import com.vincent.rsf.server.manager.service.AsnOrderItemService;
-import com.vincent.rsf.server.manager.service.AsnOrderLogService;
-import com.vincent.rsf.server.manager.service.AsnOrderService;
+import com.vincent.rsf.server.manager.enums.POExceStatus;
+import com.vincent.rsf.server.manager.service.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
@@ -20,6 +16,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
@@ -34,69 +31,66 @@
public class AsnOrderLogSchedule {
@Autowired
+ private PurchaseService purchaseService;
+ @Autowired
+ private DeliveryService deliveryService;
+ @Autowired
private AsnOrderService asnOrderService;
@Autowired
private AsnOrderItemService asnOrderItemService;
-
@Autowired
private AsnOrderLogService asnOrderLogService;
-
@Autowired
private AsnOrderItemLogService asnOrderItemLogService;
/**
- * @author Ryan
- * @description 鍒犻櫎宸插畬鎴愯鍗曞姞鍏og琛�
* @param
* @return
+ * @author Ryan
+ * @description 鍒犻櫎宸插畬鎴愯鍗曞姞鍏og琛�
* @time 2025/3/19 19:09
*/
- @Scheduled(cron = "0 0/05 * * * ? ")
+ @Scheduled(cron = "0/35 * * * * ? ")
@Transactional(rollbackFor = Exception.class)
public void moveOrderToLog() {
List<WkOrder> wkOrders = asnOrderService.list(new LambdaQueryWrapper<WkOrder>()
- .eq(WkOrder::getType, OrderType.ORDER_IN.type)
+ .eq(WkOrder::getType, OrderType.ORDER_IN.type)
.eq(WkOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val));
if (wkOrders.isEmpty()) {
return;
}
- moveOrderToLog(wkOrders, OrderType.ORDER_IN.type);
+ try {
+ moveOrderToLog(wkOrders, OrderType.ORDER_IN.type);
+ } catch (Exception e) {
+ throw new CoolException(e.getMessage());
+ }
}
/**
- * @author Ryan
- * @description 鍑哄簱鍗曞畬鎴愬悗锛岀姸鎬佷慨鏀�
- * @param
- * @return
- * @time 2025/6/16 08:35
- */
-// @Scheduled(cron = "0/30 * * * * ? ")
+ * @param
+ * @return
+ * @author Ryan
+ * @description 鍑哄簱鍗曞畬鎴愬悗锛岀姸鎬佷慨鏀�
+ * @time 2025/6/16 08:35
+ */
+ @Scheduled(cron = "0/30 * * * * ? ")
@Transactional(rollbackFor = Exception.class)
public void outStockComplete() {
List<WkOrder> wkOrders = asnOrderService.list(new LambdaQueryWrapper<WkOrder>()
- .eq(WkOrder::getType, OrderType.ORDER_OUT.type)
- .eq(WkOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val)
+ .eq(WkOrder::getType, OrderType.ORDER_OUT.type)
+ .eq(WkOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val)
.apply("anfme = work_qty")
);
if (wkOrders.isEmpty()) {
return;
}
- moveOrderToLog(wkOrders, OrderType.ORDER_OUT.type);
+ try {
+ moveOrderToLog(wkOrders, OrderType.ORDER_OUT.type);
+ } catch (Exception e) {
+ throw new CoolException(e.getMessage());
+ }
}
-
-// /**
-// * @author Ryan
-// * @date 2025/7/30
-// * @description: 鏇存柊璋冩嫈鍗曠姸鎬�
-// * @version 1.0
-// */
-// @Scheduled(cron = "0/30 * * * * ? ")
-// @Transactional(rollbackFor = Exception.class)
-// public void updateTransferExc() {
-//
-// }
-
/**
@@ -107,7 +101,8 @@
* @description 娣诲姞鍘嗗彶鍗曟嵁
* @time 2025/6/16 08:56
*/
- private void moveOrderToLog(List<WkOrder> wkOrders, String type) {
+ @Transactional(rollbackFor = Exception.class)
+ public void moveOrderToLog(List<WkOrder> wkOrders, String type) throws Exception{
Set<Long> longSet = wkOrders.stream().map(WkOrder::getId).collect(Collectors.toSet());
List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>()
.in(WkOrderItem::getOrderId, longSet));
@@ -145,15 +140,34 @@
if (!asnOrderItemLogService.saveBatch(logs)) {
throw new CoolException("鍗曟嵁鏄庣粏鍘嗗彶妗d繚瀛樺け璐ワ紒锛�");
}
+
+ //鏇存柊PO/DO鍗曟墽琛岀姸鎬�
+ if (type.equals(OrderType.ORDER_IN.type)) {
+ if (!Objects.isNull(order.getPoId())) {
+ if (!purchaseService.update(new LambdaUpdateWrapper<Purchase>()
+ .set(Purchase::getExceStatus, POExceStatus.PO_EXCE_STATUS_ALL_DONE.val)
+ .eq(Purchase::getId, order.getPoId()))) {
+ throw new CoolException("PO鍗曟洿鏂扮姸鎬佹洿鏂板け璐ワ紒锛�");
+ }
+ }
+ } else {
+ if (!Objects.isNull(order.getPoId())) {
+ if (!deliveryService.update(new LambdaUpdateWrapper<Delivery>()
+ .eq(Delivery::getId, order.getPoId())
+ .set(Delivery::getExceStatus, POExceStatus.PO_EXCE_STATUS_ALL_DONE.val))) {
+ throw new CoolException("DO鍗曟洿鏂扮姸鎬佹洿鏂板け璐�");
+ }
+ }
+ }
}
- if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>()
- .in(WkOrderItem::getOrderId, longSet))) {
- throw new CoolException("鍘熷崟鎹槑缁嗗垹闄ゅけ璐ワ紒锛�");
- }
- if (!this.asnOrderService.removeByIds(longSet)) {
- throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
- }
+// if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>()
+// .in(WkOrderItem::getOrderId, longSet))) {
+// throw new CoolException("鍘熷崟鎹槑缁嗗垹闄ゅけ璐ワ紒锛�");
+// }
+// if (!this.asnOrderService.removeByIds(longSet)) {
+// throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
+// }
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java
index 2b7b816..688e732 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java
@@ -53,7 +53,7 @@
.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val);
WkOrder wkOrder = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getCode, orderLog.getCode()));
- if (Objects.isNull(wkOrder)) {
+ if (!Objects.isNull(wkOrder)) {
throw new CoolException("鏀惰揣鍗曟嵁宸叉坊鍔狅紝鍒锋柊鍚庡啀鎿嶄綔锛侊紒");
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryItemServiceImpl.java
index dbaeed5..0a64954 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryItemServiceImpl.java
@@ -22,6 +22,7 @@
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
@@ -50,6 +51,7 @@
* @return
*/
@Override
+ @Transactional(rollbackFor = Exception.class)
public R excelImport(MultipartFile file, Map<String, Object> hashMap, Long loginUserId) throws Exception {
ExcelImportResult result = ExcelImportUtil.importExcelMore(file.getInputStream(), DeliveryTemplate.class, ExcelUtil.getDefaultImportParams());
if (result.getList().isEmpty()) {
@@ -116,6 +118,9 @@
sbFaild.append(orderTemplate.getMatnrCode()).append("鐗╂枡涓嶅瓨鍦�");
throw new CoolException(sbFaild.toString());
}
+ if (!matnr.getName().equals(orderTemplate.getMaktx())) {
+ throw new CoolException("瀵煎叆鐗╂枡鍚嶇О涓庡簱鍐呭悕绉颁笉涓�鑷达紒锛�");
+ }
orderItem.setDeliveryId(order.getId())
.setDeliveryCode(order.getCode())
.setSplrBatch(orderTemplate.getSplrBatch())
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryServiceImpl.java
index b34fdcb..13530da 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryServiceImpl.java
@@ -23,7 +23,7 @@
@Override
public Delivery removeDo(List<Long> list) {
- List<Delivery> deliveries = this.list(new LambdaQueryWrapper<Delivery>().eq(Delivery::getId, list));
+ List<Delivery> deliveries = this.list(new LambdaQueryWrapper<Delivery>().in(Delivery::getId, list));
if (deliveries.isEmpty()) {
throw new BusinessException("鏁版嵁閿欒锛氬崟鎹俊鎭笉瀛樺湪锛侊紒");
}
--
Gitblit v1.9.1