From aeacc7f80e3ae74cc56be90bb761e9a6b935f643 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 13 五月 2025 14:49:31 +0800
Subject: [PATCH] 收货流程修改 质检流程修改
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java | 33 +++++++---
rsf-server/src/main/java/com/vincent/rsf/server/system/controller/FieldsController.java | 2
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java | 8 +-
rsf-admin/src/i18n/zh.js | 2
rsf-admin/src/page/orders/qlyInspect/QlyIsptItemResult.jsx | 2
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java | 19 ++++--
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 45 +++++++++++++-
rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx | 31 ++++++----
rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java | 2
rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx | 2
10 files changed, 105 insertions(+), 41 deletions(-)
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 84f4197..1e4d55c 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -486,7 +486,7 @@
},
qlyIsptItem: {
ispectId: "涓诲崟ID",
- matnrCode: "鐗╂枡缂栧彿",
+ matnrCode: "鐗╂枡缂栫爜",
maktx: "鐗╂枡鍚嶇О",
label: "鏍囩",
splrName: "渚涘簲鍟�",
diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
index 177fce8..6899c39 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
@@ -123,7 +123,7 @@
const setFinally = () => {
const rows = tableRef.current.state.editRows;
for (const key in rows) {
- const find = tabelData.find(item => item.matnrId === +key);
+ const find = tabelData.find(item => item.id === +key);
find.anfme = rows[key].anfme.value;
}
setTableData([...tabelData]);
@@ -201,7 +201,7 @@
const handleDeleteItem = () => {
- const newTableData = _.filter(tabelData, (item) => !selectedRows.includes(item.matnrId));
+ const newTableData = _.filter(tabelData, (item) => !selectedRows.includes(item.id));
setTableData(newTableData);
}
@@ -370,7 +370,6 @@
value: selectedSupplier.id,
});
}
-
}
}
@@ -598,9 +597,6 @@
flex: 1,
editable: false,
},
-
-
-
])
const action = {
@@ -615,7 +611,6 @@
</IconButton>
</Tooltip>
),
-
}
let cdata = useRef([]);
@@ -636,7 +631,17 @@
} = await request.get("/fields/enable/list");
if (code === 200) {
const cols = data.map(el => ({
- field: el.fields,
+ field: el.fields,
+ valueGetter: (value, row) => {
+ if (value != null && value != undefined) {
+ return value;
+ }
+ if (row.extendFields == null ||row.extendFields[el.fields] == null) {
+ return ''
+ } else {
+ return `${row.extendFields[el.fields] == null ? '' : row.extendFields[el.fields]}`;
+ }
+ },
headerName: el.fieldsAlise,
minWidth: 100,
flex: 1,
@@ -648,17 +653,15 @@
}
}
-
-
const handleDelete = (row) => {
- const newData = _.filter(cdata.current, (item) => item.matnrId !== row.matnrId);
+ const newData = _.filter(cdata.current, (item) => item.id !== row.id);
setTableData(newData);
};
const processRowUpdate = (newRow, oldRow) => {
const rows = tabelData.map((r) =>
- r.matnrId === newRow.matnrId ? { ...newRow } : r
+ r.id === newRow.id ? { ...newRow } : r
)
setTableData(rows)
// setTableData((prevData) =>
@@ -673,6 +676,8 @@
const handleSelectionChange = (ids) => {
+ console.log(ids);
+
setSelectedRows(ids)
};
@@ -687,7 +692,7 @@
rows={tabelData}
columns={columns}
disableRowSelectionOnClick
- getRowId={(row) => row.matnrId}
+ getRowId={(row) => row.id}
disableColumnFilter
disableColumnSelector
disableColumnSorting
diff --git a/rsf-admin/src/page/orders/qlyInspect/QlyIsptItemResult.jsx b/rsf-admin/src/page/orders/qlyInspect/QlyIsptItemResult.jsx
index fbccc69..2192223 100644
--- a/rsf-admin/src/page/orders/qlyInspect/QlyIsptItemResult.jsx
+++ b/rsf-admin/src/page/orders/qlyInspect/QlyIsptItemResult.jsx
@@ -97,7 +97,7 @@
<List
storeKey="IsptItem"
resource="qlyIsptItem/ispt/result"
- filter={{ id: record?.id, type: '1' }}
+ filter={{ id: record?.id}}
empty={false}
filters={false}
sort={{ field: "create_time", order: "desc" }}
diff --git a/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx b/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx
index 0201f0e..13e72c0 100644
--- a/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx
+++ b/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx
@@ -64,8 +64,8 @@
const filters = [
<SearchInput source="condition" alwaysOn />,
-
<NumberInput source="areaId" label="table.field.warehouseAreasItem.areaId" />,
+ <TextInput source="asnCode" label="table.field.warehouseAreasItem.asnCode" />,
<TextInput source="areaName" label="table.field.warehouseAreasItem.areaName" />,
<NumberInput source="matnrId" label="table.field.warehouseAreasItem.matnrId" />,
<TextInput source="matnrName" label="table.field.warehouseAreasItem.matnrName" />,
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 3b87f18..5f955a8 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
@@ -21,12 +21,14 @@
import com.vincent.rsf.server.manager.mapper.*;
import com.vincent.rsf.server.manager.service.*;
import com.vincent.rsf.server.system.constant.CodeRes;
+import com.vincent.rsf.server.system.constant.GlobalConfigCode;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.controller.param.LoginParam;
import com.vincent.rsf.server.system.controller.result.LoginResult;
import com.vincent.rsf.server.system.entity.*;
import com.vincent.rsf.server.system.mapper.FieldsMapper;
import com.vincent.rsf.server.system.mapper.TenantMapper;
+import com.vincent.rsf.server.system.service.ConfigService;
import com.vincent.rsf.server.system.service.FieldsItemService;
import com.vincent.rsf.server.system.service.UserLoginService;
import com.vincent.rsf.server.system.service.UserService;
@@ -40,6 +42,8 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -120,6 +124,8 @@
private LocAreaMapper locAreaMapper;
@Autowired
private DeviceSiteMapper deviceSiteMapper;
+ @Autowired
+ private ConfigService configService;
/**
* @return
@@ -230,11 +236,15 @@
}
//TODO /**鏀惰揣鏁伴噺绱姞锛�1. 浼氬嚭瓒呮敹鎯呭喌 2. 浼氭湁鏀惰揣涓嶈冻鎯呭喌*/
Double rcptedQty = asnOrder.getQty() + receiptQty;
- asnOrder.setQty(rcptedQty).setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val);
+ asnOrder.setQty(rcptedQty).setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val);
if (!asnOrderMapper.updateById(asnOrder)) {
throw new CoolException("宸叉敹璐ф暟閲忎慨鏀瑰け璐ワ紒锛�");
}
+
+ Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.ALLOW_OVER_CHANGE));
+
+
List<Map<String, Object>> receipts1 = (List<Map<String, Object>>) params.get("receipts");
for (Map<String, Object> rcpt : receipts1) {
if (null == rcpt || Objects.isNull(rcpt)) {
@@ -266,7 +276,27 @@
if (Objects.isNull(dto.getReceiptQty()) || Double.compare(dto.getReceiptQty(), 0.0) == 0) {
throw new CoolException("鐗╂枡:" + dto.getMaktx() + "鏀惰揣鏁伴噺涓嶈兘涓洪浂锛侊紒");
}
+
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ try {
+ if (!Objects.isNull(dto.getProdTime())) {
+ sdf.parse(dto.getProdTime());
+ }
+ } catch (ParseException e) {
+ throw new CoolException("璇疯緭鍏ユ纭殑鏃堕棿鏍煎紡锛侊紒");
+ }
+
Double itemRcptQty = dto.getReceiptQty() + orderItem.getQty();
+ Boolean allowOver = false;
+ if (!Objects.isNull(config)) {
+ if (Boolean.parseBoolean(config.getVal())) {
+ allowOver = true;
+ }
+ }
+ if (itemRcptQty.compareTo(orderItem.getAnfme()) > 0 && !allowOver) {
+ throw new CoolException("鏀惰揣鏁伴噺涓嶈兘澶т簬璁″垝鏁伴噺锛侊紒");
+ }
+
orderItem.setQty(itemRcptQty)
// .setSplrBatch(dto.getSplrBatch())
.setUpdateBy(loginUserId)
@@ -342,13 +372,20 @@
.setFieldsIndex(orderItem.getFieldsIndex())
.setShipperId(matnr.getShipperId());
//TODO 渚涘簲鍟嗘爣璇嗘湭璁剧疆锛屾爣璇嗙敱PO鍗曚緵搴斿晢缂栫爜杞崲
- WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>()
+
+ LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new LambdaQueryWrapper<WarehouseAreasItem>()
// .eq(WarehouseAreasItem::getAsnItemId, item.getAsnItemId())
.eq(WarehouseAreasItem::getMatnrCode, item.getMatnrCode())
.eq(!Cools.isEmpty(item.getFieldsIndex()), WarehouseAreasItem::getFieldsIndex, item.getFieldsIndex())
.eq(WarehouseAreasItem::getAsnCode, item.getAsnCode())
- .eq(!Cools.isEmpty(item.getIsptResult()), WarehouseAreasItem::getIsptResult, item.getIsptResult())
- .eq(StringUtils.isNotBlank(item.getSplrBatch()), WarehouseAreasItem::getSplrBatch, item.getSplrBatch()));
+ .eq(StringUtils.isNotBlank(item.getSplrBatch()), WarehouseAreasItem::getSplrBatch, item.getSplrBatch());
+ if (Objects.isNull(orderItem.getIsptResult())) {
+ queryWrapper.isNull(WarehouseAreasItem::getIsptResult);
+ } else {
+ queryWrapper.eq(WarehouseAreasItem::getIsptResult, orderItem.getIsptResult());
+ }
+
+ WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(queryWrapper);
if (!Objects.isNull(serviceOne)) {
item.setId(serviceOne.getId());
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
index 45e1fee..626dbd8 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
@@ -161,15 +161,22 @@
.setMatnrId(matnr.getId())
.setIsptResult(orderItem.getIsptResult())
.setMaktx(matnr.getName())
+ .setSplrBatch(orderItem.getSplrBatch())
.setWeight(matnr.getWeight())
.setFieldsIndex(orderItem.getFieldsIndex())
.setShipperId(matnr.getShipperId());
- WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>()
- .eq(WarehouseAreasItem::getMatnrCode, item.getMatnrCode())
- .eq(!Cools.isEmpty(item.getFieldsIndex()), WarehouseAreasItem::getFieldsIndex, item.getFieldsIndex())
- .eq(WarehouseAreasItem::getAsnCode, item.getAsnCode())
- .eq(!Cools.isEmpty(item.getIsptResult()), WarehouseAreasItem::getIsptResult, item.getIsptResult())
- .eq(StringUtils.isNotBlank(item.getSplrBatch()), WarehouseAreasItem::getSplrBatch, item.getSplrBatch()));
+
+ 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(StringUtils.isNotBlank(orderItem.getSplrBatch()), WarehouseAreasItem::getSplrBatch, orderItem.getSplrBatch());
+ if (Objects.isNull(orderItem.getIsptResult())) {
+ queryWrapper.isNull(WarehouseAreasItem::getIsptResult);
+ } else {
+ queryWrapper.eq(WarehouseAreasItem::getIsptResult, orderItem.getIsptResult());
+ }
+ WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(queryWrapper);
if (!Objects.isNull(serviceOne)) {
item.setId(serviceOne.getId());
item.setAnfme(item.getAnfme() + serviceOne.getAnfme());
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
index 1e74587..44c66d2 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
@@ -248,8 +248,8 @@
// }
//淇濆瓨鎵╁睍瀛楁
try {
+ StringBuffer sb = new StringBuffer();
if (Objects.isNull(asnOrderItem.getFieldsIndex()) || StringUtils.isBlank(asnOrderItem.getFieldsIndex())) {
- StringBuffer sb = new StringBuffer();
if (!Objects.isNull(asnOrderItem.getExtendFields()) && !asnOrderItem.getExtendFields().isEmpty()) {
Map<String, String> fields = asnOrderItem.getExtendFields();
asnOrderItem.getExtendFields().keySet().forEach(key -> {
@@ -260,10 +260,10 @@
//鑾峰彇16浣島uid
String uuid16 = Cools.md5Chinese(sb.toString());
asnOrderItem.setFieldsIndex(uuid16);
- if (FieldsUtils.saveFields(params, uuid16)) {
- asnOrderItem.setFieldsIndex(uuid16);
- }
+ params.put("index", uuid16);
}
+ //淇濆瓨鎴栨洿鏂板姩鎬佸瓧娈靛��
+ FieldsUtils.updateFieldsValue(params);
} catch (Exception e) {
throw new RuntimeException(e);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java
index d78953b..d375c92 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java
@@ -16,6 +16,7 @@
import com.vincent.rsf.server.manager.service.QlyInspectService;
import com.vincent.rsf.server.manager.service.QlyIsptItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -122,10 +123,9 @@
throw new CoolException("鏀惰揣鍖哄簱瀛樹俊鎭洿鏂板け璐ワ紒锛�");
}
+ //鏂板缓璐ㄦ鍗曪紝璐ㄦ缁撴灉涓嶄細鏈夎川妫�缁撴灉
if (Objects.isNull(orderItem.getIsptResult())) {
operateReceipt(item, orderItem);
- } else {
-
}
}
}
@@ -141,7 +141,6 @@
.eq(QlyInspect::getId, isptItem.stream().findFirst().get().getIspectId()));
}
-// qlyIsptItemService.pageByIsptResult(null, new QueryWrapper<QlyIsptItem>())
return true;
}
@@ -158,37 +157,51 @@
if (sum.compareTo(orderItem.getAnfme()) >= 0) {
//瀹屾垚璐ㄦ,鍋氭洿鏂版搷浣�
if (safeQty.compareTo(0.0) > 0) {
- orderItem.setIsptQty(safeQty);
+ orderItem.setIsptQty(safeQty).setAnfme(safeQty);
orderItem.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val);
if (!warehouseAreasItemService.updateById(orderItem)) {
throw new CoolException("鏀惰揣鍖哄簱瀛樻槑缁嗘洿鏂板け璐ワ紒锛�");
}
}
+ WarehouseAreasItem areasItem = new WarehouseAreasItem();
+ BeanUtils.copyProperties(orderItem, areasItem);
if (disQty.compareTo(0.0) > 0) {
- orderItem.setIsptQty(disQty)
+ areasItem.setIsptQty(disQty)
+ .setAnfme(disQty)
.setId(null)
.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val);
- if (!warehouseAreasItemService.saveOrUpdate(orderItem)) {
+ if (!warehouseAreasItemService.saveOrUpdate(areasItem)) {
throw new CoolException("鏀惰揣鍖哄簱瀛樻槑缁嗘洿鏂板け璐ワ紒锛�");
}
}
} else {
+ orderItem.setAnfme(orderItem.getAnfme() - sum);
+ if (!warehouseAreasItemService.updateById(orderItem)) {
+ throw new CoolException("鏀惰揣鍖哄簱瀛樻槑缁嗘洿鏂板け璐ワ紒锛�");
+ }
+
+ WarehouseAreasItem areasItem = new WarehouseAreasItem();
+ BeanUtils.copyProperties(orderItem, areasItem);
//鏈畬鎴愬仛娣诲姞鎿嶄綔
if (safeQty.compareTo(0.0) > 0) {
- orderItem.setIsptQty(safeQty)
+ areasItem.setIsptQty(safeQty)
+ .setAnfme(safeQty)
.setId(null)
.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val);
- if (!warehouseAreasItemService.saveOrUpdate(orderItem)) {
+ if (!warehouseAreasItemService.saveOrUpdate(areasItem)) {
throw new CoolException("鏀惰揣鍖哄簱瀛樻槑缁嗘洿鏂板け璐ワ紒锛�");
}
}
+ WarehouseAreasItem items = new WarehouseAreasItem();
+ BeanUtils.copyProperties(orderItem, items);
if (disQty.compareTo(0.0) > 0) {
- orderItem.setIsptQty(disQty)
+ items.setIsptQty(disQty)
+ .setAnfme(disQty)
.setId(null)
.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val);
- if (!warehouseAreasItemService.saveOrUpdate(orderItem)) {
+ if (!warehouseAreasItemService.saveOrUpdate(items)) {
throw new CoolException("鏀惰揣鍖哄簱瀛樻槑缁嗘洿鏂板け璐ワ紒锛�");
}
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java
index 15ea16e..615ca93 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java
@@ -13,5 +13,7 @@
/**鐩存帴缁勬墭*/
public final static String DIRECT_WAIT_PAKIN = "DirectWaitPakin";
+ /**鏀惰揣鏃舵槸鍚﹀厑璁歌秴鏀�*/
+ public final static String ALLOW_OVER_CHANGE = "AllowOverchange";
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/FieldsController.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/FieldsController.java
index 5d55317..e52f73f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/FieldsController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/FieldsController.java
@@ -46,7 +46,7 @@
@GetMapping("/fields/enable/list")
@ApiOperation("鑾峰彇宸插紑鍚墿灞曞瓧娈�")
public R getEnableList() {
- return R.ok(fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getFlagEnable, 1).eq(Fields::getStatus, 1)));
+ return R.ok(fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getFlagEnable, 1)));
}
@PreAuthorize("hasAuthority('system:fields:list')")
--
Gitblit v1.9.1