rsf-admin/src/page/orders/check/MatnrInfoModal.jsx
@@ -12,6 +12,7 @@ Paper, styled } from '@mui/material'; import { EDIT_MODE, DEFAULT_START_PAGE, DEFAULT_PAGE_SIZE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; import DialogCloseButton from "../../components/DialogCloseButton"; import { useTranslate, useNotify, useRefresh } from 'react-admin'; import request from '@/utils/request'; @@ -35,7 +36,9 @@ const [tableData, setTableData] = useState([]); const [dyFields, setDyFields] = useState([]); const [selectedRows, setSelectedRows] = useState([]); const [page, setPage] = useState({ page: DEFAULT_START_PAGE, pageSize: DEFAULT_PAGE_SIZE }); const [rowCount, setRowCount] = useState(0); const [isLoading, setIsLoading] = useState(false); const handleChange = (e) => { const { name, value } = e.target; setFormData(() => ({ @@ -74,22 +77,26 @@ }; const getData = async () => { setIsLoading(true) const res = await request.post(`/matnr/page`, { ...formData, current: 1, pageSize: 100, current: page?.page, pageSize: page?.pageSize, orderBy: "create_time desc" }); if (res?.data?.code === 200) { setTableData(res.data.data.records); setRowCount(res.data?.data?.total); } else { notify(res.data.msg); } setIsLoading(false) }; useEffect(() => { getData(); }, [open]); }, [open, page]); const handleSearch = () => { getData() @@ -159,6 +166,10 @@ setTableData={setTableData} dyFields={dyFields} setDyFields={setDyFields} page={page} rowCount={rowCount} setPage={setPage} isLoading={isLoading} selectedRows={selectedRows} setSelectedRows={setSelectedRows} /> @@ -177,7 +188,7 @@ export default MatnrInfoModal; const AsnWareModalTable = ({ tableData, setTableData, selectedRows, setSelectedRows, dyFields, setDyFields }) => { const AsnWareModalTable = ({ tableData, page, isLoading, pageSize, setPage, rowCount, setTableData, selectedRows, setSelectedRows, dyFields, setDyFields }) => { const translate = useTranslate(); const notify = useNotify(); @@ -241,7 +252,17 @@ disableColumnMenu={true} disableColumnSorting disableMultipleColumnsSorting /> rowCount={rowCount} paginationMode="server" paginationModel={page} onPaginationModelChange={setPage} loading={isLoading} slotProps={{ loadingOverlay: { variant: 'linear-progress', noRowsVariant: 'linear-progress', }, }} /> </div> ); }; rsf-admin/src/page/orders/outStock/MatnrInfoModal.jsx
@@ -169,6 +169,7 @@ page={page} rowCount={rowCount} setPage={setPage} isLoading={isLoading} setDyFields={setDyFields} selectedRows={selectedRows} setSelectedRows={setSelectedRows} @@ -211,7 +212,6 @@ const handleSelectionChange = (ids) => { setSelectedRows(ids) }; useEffect(() => { rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java
@@ -104,7 +104,7 @@ * @time 2025/3/18 15:00 */ @Transactional(rollbackFor = Exception.class) public static boolean saveFields(Map<String, ?> template, String uuid) throws Exception { public static boolean saveFields(Map<String, ?> template, String uuid) { List<Fields> fields = getFieldsSta(); FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class); List<FieldsItem> fieldsItems = new ArrayList<>(); rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Transfer.java
@@ -248,7 +248,7 @@ } DictDataService dictDataService = SpringUtils.getBean(DictDataService.class); DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>() .eq(DictData::getDictTypeCode, DictTypeCode.SYS_CHECK_EXCE_STATUS) .eq(DictData::getDictTypeCode, DictTypeCode.DICT_ASN_EXCE_STATUS) .eq(DictData::getValue, this.exceStatus)); if (Objects.isNull(dictData)) { return null; rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/MatnrsTemplate.java
@@ -19,6 +19,8 @@ * @create 2025/3/3 08:40 */ @Data @ExcelAutoColumnSize @Accessors(chain = true) public class MatnrsTemplate { @NotNull rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
@@ -46,6 +46,8 @@ private AsnOrderItemLogService asnOrderItemLogService; @Autowired private TransferOrderService transferOrderService; @Autowired private TransferService transferService; /** * @param @@ -155,19 +157,23 @@ if (!asnOrderService.updateById(order)) { throw new CoolException("单据状态更新失败!!"); } List<TransferOrder> orders = transferOrderService.list(new LambdaQueryWrapper<TransferOrder>().eq(TransferOrder::getTransferId, order.getPoId())); if (orders.isEmpty()) { throw new CoolException("数据错误:关联表信息不存在!!"); } Set<Long> orderIds = orders.stream().map(TransferOrder::getOrderId).collect(Collectors.toSet()); if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>() .in(WkOrderItem::getOrderId, orderIds))) { throw new CoolException("原单据明细删除失败!!"); } if (!this.asnOrderService.removeByIds(orderIds)) { throw new CoolException("原单据删除失败!!"); } // List<TransferOrder> orders = transferOrderService.list(new LambdaQueryWrapper<TransferOrder>().eq(TransferOrder::getTransferId, order.getPoId())); // if (orders.isEmpty()) { // throw new CoolException("数据错误:关联表信息不存在!!"); // } // Set<Long> orderIds = orders.stream().map(TransferOrder::getOrderId).collect(Collectors.toSet()); // if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>() // .in(WkOrderItem::getOrderId, orderIds))) { // throw new CoolException("原单据明细删除失败!!"); // } // if (!this.asnOrderService.removeByIds(orderIds)) { // throw new CoolException("原单据删除失败!!"); // } if (!transferService.update(new LambdaUpdateWrapper<Transfer>() .eq(Transfer::getId, order.getPoId()) .set(Transfer::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val))) { throw new CoolException("调拔单状态修改失败!!"); } return; } else { if (!Objects.isNull(order.getPoId())) { @@ -182,7 +188,7 @@ if (!asnOrderService.updateById(order)) { throw new CoolException("单据状态更新失败!!"); } //如果为调拔单执行完成,需检查调拔入库单是否完成,完成后才能删除单据信息 //如果为调拔单据保留 return; } else { if (!Objects.isNull(order.getPoId())) { rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
@@ -57,39 +57,43 @@ throw new CoolException("物料导入失败!!"); } List<Matnr> matnrs = new ArrayList<>(); List<Map<String, String>> list = result.getList(); List<MatnrsTemplate> list = result.getList(); list.forEach(template -> { Matnr matnr = new Matnr(); matnr.setBarcode(template.get("barcode")) .setCode(template.get("code")) .setDescrible(template.get("describle")) .setColor(template.get("color")) .setFlagCheck(!Objects.isNull(template.get("flagCheck")) ? Short.parseShort(template.get("flagCheck")) : 0) .setWeight(!Objects.isNull(template.get("weight")) ? Double.parseDouble(template.get("weight")) : 0.0) .setValidWarn(!Objects.isNull(template.get("validWarn")) ? Integer.parseInt(template.get("validWarn")): 0) .setValid(!Objects.isNull(template.get("valid")) ? Integer.parseInt( template.get("valid")) : 0) .setUnit(template.get("unit")) .setStockUnit(template.get("purUnit")) .setSpec(template.get("spec")) .setStagn(!Objects.isNull(template.get("stagn")) ? Integer.parseInt(template.get("stagn")) : 0) .setModel(template.get("model")) .setGroupCode(template.get("groupCode")) .setPurUnit(template.get("purUnit")) .setStockLevel(!Objects.isNull(template.get("stockLevel")) ? Short.parseShort(template.get("stockLevel")) : 0) .setSafeQty(!Objects.isNull(template.get("safeQty")) ? Double.parseDouble(template.get("safeQty")) : 0) .setMinQty(!Objects.isNull(template.get("safeQty")) ? Double.parseDouble(template.get("minQty")) : 0); if (Objects.isNull(template.get("groupCode")) && Objects.isNull(template.get("groupName"))) { matnr.setBarcode(template.getBarcode()) .setCode(template.getCode()) .setName(template.getName()) .setDescrible(template.getDescrible()) .setColor(template.getColor()) .setFlagCheck(!Objects.isNull(template.getFlagCheck()) ? Short.parseShort(template.getFlagCheck()) : 0) .setWeight(!Objects.isNull(template.getWeight()) ? Double.parseDouble(template.getWeight()) : 0.0) .setValidWarn(!Objects.isNull(template.getValidWarn()) ? Integer.parseInt(template.getValidWarn()): 0) .setValid(!Objects.isNull(template.getValid()) ? Integer.parseInt( template.getValid()) : 0) .setUnit(template.getUnit()) .setStockUnit(template.getPurUnit()) .setShipperId(template.getShipperId()) .setSize(template.getSize()) .setSpec(template.getSpec()) .setStagn(!Objects.isNull(template.getStagn()) ? Integer.parseInt(template.getStagn()) : 0) .setModel(template.getModel()) .setGroupCode(template.getGroupCode()) .setPurUnit(template.getPurUnit()) .setStockLevel(!Objects.isNull(template.getStockLevel()) ? Short.parseShort(template.getStockLevel()) : 0) .setSafeQty(!Objects.isNull(template.getSafeQty()) ? Double.parseDouble(template.getSafeQty()) : 0) .setMinQty(!Objects.isNull(template.getMinQty()) ? Double.parseDouble(template.getMinQty()) : 0); if (Objects.isNull(template.getGroupCode()) && Objects.isNull(template.getGroupName())) { MatnrGroup matnrGroups = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>() .eq(!Objects.isNull(template.get("groupCode")), MatnrGroup::getCode, template.get("groupCode")) .eq(!Objects.isNull(template.get("groupName")),MatnrGroup::getName, template.get("groupName"))); .eq(!Objects.isNull(template.getGroupCode()), MatnrGroup::getCode, template.getGroupCode()) .eq(!Objects.isNull(template.getGroupName()),MatnrGroup::getName, template.getGroupName())); matnr.setGroupId(matnrGroups.getId()); } //获取动态字段,并保存明细内容 if (!FieldsUtils.getFieldsSta().isEmpty()) { //保存物料扩展属性值 try { Map<String, Object> map = JSONObject.parseObject(JSONObject.toJSONString(template), Map.class); String uuid = CommonUtil.randomUUID16(); boolean b = FieldsUtils.saveFields(template, uuid); boolean b = FieldsUtils.saveFields(map, uuid); if (b) { matnr.setFieldsIndex(uuid); } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -411,18 +411,18 @@ public void complateInTask(List<Task> tasks) throws Exception { Long loginUserId = SystemAuthUtils.getLoginUserId(); for (Task task : tasks) { // if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)) { // // } else if (task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type) || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)) { // //53.拣料再入库 // //57.盘点再入库 // pickComplateInStock(task, loginUserId); // } else if (task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) { // //移库 // moveInStock(task, loginUserId); // } //1.入库 complateInstock(task, loginUserId); if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)) { //1.入库 complateInstock(task, loginUserId); } else if (task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type) || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)) { //53.拣料再入库 //57.盘点再入库 pickComplateInStock(task, loginUserId); } else if (task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) { //移库 moveInStock(task, loginUserId); } } } @@ -1491,8 +1491,8 @@ WkOrder order = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getCode, code)); if (!Objects.isNull(order)) { Double qty = Math.round((order.getQty() + sum) * 10000) / 10000.0; order.setQty(qty).setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_EXCE.val); // Double qty = Math.round((order.getQty() + sum) * 10000) / 10000.0; order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_EXCE.val); if (!asnOrderService.updateById(order)) { throw new CoolException("入库单状态修改失败!!"); }