From b5e4bbec339bf3858338deece026a20bc40b8923 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 06 五月 2025 15:45:32 +0800 Subject: [PATCH] no message --- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/PurchaseController.java | 20 ++++++ rsf-admin/src/page/waitPakin/SelectSiteModel.jsx | 2 rsf-admin/src/page/waitPakin/WaitPakinList.jsx | 24 +++++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java | 8 ++ rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx | 13 +++ rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java | 2 rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java | 3 + rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java | 4 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 34 ++++++++--- rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java | 6 ++ rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx | 35 +++++++---- rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java | 2 12 files changed, 122 insertions(+), 31 deletions(-) diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx index 19c2d3f..88563f3 100644 --- a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx +++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx @@ -205,6 +205,15 @@ } export default AsnOrderList; +const ODeleteButton = () => { + const record = useRecordContext(); + + return ( + record.exceStatus === 0 ? <DeleteButton /> : <></> + ) + +} + const MyButton = ({ setCreateDialog, setmodalType }) => { const record = useRecordContext(); const handleEditClick = (btn) => { @@ -247,7 +256,7 @@ } return ( - <ConfirmButton label={"toolbar.inspection"} color="secondary" startIcon={<ConstructionIcon />} onConfirm={inspection} /> + <ConfirmButton label={"toolbar.inspection"} color="secondary" startIcon={<ConstructionIcon />} onConfirm={inspection} /> ) } @@ -351,7 +360,7 @@ // record.exceStatus === 1 && (record.anfme === record.qty ? <Button onClick={requestComplete} label={"toolbar.complete"} color="secondary"> // <TaskIcon /> // </Button> : ) - <ConfirmButton label={"toolbar.complete"} color="secondary" startIcon={<TaskIcon />} onConfirm={requestComplete} /> + record.exceStatus === 1 ? <ConfirmButton label={"toolbar.complete"} color="secondary" startIcon={<TaskIcon />} onConfirm={requestComplete} /> : <></> ) diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx index 796ed9e..bbba6ff 100644 --- a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx +++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx @@ -462,17 +462,17 @@ ), headerClassName: "custom", }, - { - field: 'splrName', - headerName: translate('table.field.asnOrderItem.splrName') + "*", - minWidth: 100, - flex: 1, - editable: true, - renderEditCell: (params) => ( - <SelectInputSplrNameEditCell {...params} /> - ), - headerClassName: "custom", - }, + // { + // field: 'splrName', + // headerName: translate('table.field.asnOrderItem.splrName') + "*", + // minWidth: 100, + // flex: 1, + // editable: true, + // renderEditCell: (params) => ( + // <SelectInputSplrNameEditCell {...params} /> + // ), + // headerClassName: "custom", + // }, // { // field: 'packName', // headerName: translate('table.field.asnOrderItem.packName'), @@ -487,14 +487,23 @@ // flex: 1, // }, { - field: 'poCode', - headerName: translate('table.field.asnOrderItem.poDetlCode') + "*", + field: 'platItemId', + headerName: translate('table.field.asnOrderItem.platItemId') + "*", minWidth: 100, flex: 1, editable: true, headerClassName: "custom", }, + // { + // field: 'poCode', + // headerName: translate('table.field.asnOrderItem.poDetlCode') + "*", + // minWidth: 100, + // flex: 1, + // editable: true, + // headerClassName: "custom", + // }, + { field: 'stockUnit', headerName: translate('table.field.asnOrderItem.stockUnit'), diff --git a/rsf-admin/src/page/waitPakin/SelectSiteModel.jsx b/rsf-admin/src/page/waitPakin/SelectSiteModel.jsx index bf21873..d152bb5 100644 --- a/rsf-admin/src/page/waitPakin/SelectSiteModel.jsx +++ b/rsf-admin/src/page/waitPakin/SelectSiteModel.jsx @@ -110,7 +110,7 @@ <BooleanField source="statusBool" label="common.field.status" sortable={false} /> <TextField source="memo" label="common.field.memo" sortable={false} /> <WrapperField cellClassName="opt" label="common.field.opt"> - <SelectSiteButton source={source} setOpen={setOpen} refresh={refresh} notify={notify} /> + <SelectSiteButton source={source} setOpen={setOpen} refresh={refresh} notify={notify} /> </WrapperField> </StyledDatagrid> </List> diff --git a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx index 362885e..43aa899 100644 --- a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx +++ b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx @@ -93,7 +93,7 @@ const [drawerVal, setDrawerVal] = useState(false); const CreateTaskButton = () => { - const record = useRecordContext(); + const record = useRecordContext(); const notify = useNotify(); const refresh = useRefresh(); const { selectedIds, onUnselectItems, data } = useListContext(); @@ -114,9 +114,26 @@ ) } - const BulkActionButtons = () => { + const CreateTaskRowButton = () => { + const record = useRecordContext(); + const refresh = useRefresh(); + const createTask = (event) => { + event.stopPropagation(); + setSiteDialog(true) + setSource([record]) + refresh() + } + + return ( + <> + <Button onClick={(event) => createTask(event)} label={"toolbar.createTask"}> + <AddIcon /> + </Button> + </> + ) } + return ( <Box display="flex"> <List @@ -164,6 +181,7 @@ <TextField source="memo" label="common.field.memo" sortable={false} /> <WrapperField cellClassName="opt" label="common.field.opt"> <EditButton label="toolbar.detail" sx={{ padding: '1px', fontSize: '.75rem' }} /> + <CreateTaskRowButton /> {/* <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */} </WrapperField> </StyledDatagrid> @@ -186,3 +204,5 @@ export default WaitPakinList; + + 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 7cbc8e9..d0df993 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 @@ -23,6 +23,7 @@ import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.enums.AsnExceStatus; import com.vincent.rsf.server.manager.enums.PakinIOStatus; +import com.vincent.rsf.server.manager.enums.QlyIsptResult; import com.vincent.rsf.server.manager.enums.QlyIsptStatus; import com.vincent.rsf.server.manager.mapper.*; import com.vincent.rsf.server.manager.service.*; @@ -293,15 +294,9 @@ if (asnOrderItemMapper.updateById(orderItem) < 1) { throw new CoolException("閫氱煡鍗曟槑缁嗘暟閲忎慨鏀瑰け璐ワ紒锛�"); } + /**淇濆瓨鏄庣粏鑷虫敹璐у尯**/ + extracted(loginUserId, dto, areasItem, orderItem, asnOrder, matnr); - List<QlyIsptItem> isptItems = qlyIsptItemService.list(new LambdaQueryWrapper<QlyIsptItem>().eq(QlyIsptItem::getAsnItemId, dto.getId())); - if (isptItems.isEmpty()) { - extracted(loginUserId, dto, areasItem, orderItem, asnOrder, matnr); - } else { - for (QlyIsptItem isptItem : isptItems) { - extracted(loginUserId, dto, areasItem, orderItem, asnOrder, matnr); - } - } } AsnOrder order = asnOrderMapper.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getCode, asnCode)); @@ -340,19 +335,38 @@ .setFieldsIndex(orderItem.getFieldsIndex()) .setShipperId(matnr.getShipperId()); //TODO 渚涘簲鍟嗘爣璇嗘湭璁剧疆锛屾爣璇嗙敱PO鍗曚緵搴斿晢缂栫爜杞崲 - WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>() .eq(WarehouseAreasItem::getAsnItemId, item.getAsnItemId()) .eq(WarehouseAreasItem::getTrackCode, item.getTrackCode()) .eq(StringUtils.isNotBlank(item.getSplrBatch()), WarehouseAreasItem::getSplrBatch, item.getSplrBatch())); if (!Objects.isNull(serviceOne)) { item.setAnfme(item.getAnfme() + serviceOne.getAnfme()); - item.setId(serviceOne.getId()); } + //鏈川妫� if (!warehouseAreasItemService.saveOrUpdate(item)) { throw new CoolException("鏀惰揣澶辫触锛侊紒"); } + +// if (null != orderItem.getSafeQty() || null != orderItem.getDisQty() ) { +// +// } +// else { +// //涓嶅悎鏍兼暟閲� +// if (orderItem.getDisQty().compareTo(0.00) > 0) { +// item.setIsptQty(orderItem.getDisQty()).setFlagNorm(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val); +// if (!warehouseAreasItemService.saveOrUpdate(item)) { +// throw new CoolException("鏀惰揣澶辫触锛侊紒"); +// } +// } +// +// item.setIsptQty(orderItem.getSafeQty()).setFlagNorm(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val); +// if (!warehouseAreasItemService.saveOrUpdate(item)) { +// throw new CoolException("鏀惰揣澶辫触锛侊紒"); +// } +// } + + } /** diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/PurchaseController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/PurchaseController.java index 946f56a..2865546 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/PurchaseController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/PurchaseController.java @@ -9,21 +9,30 @@ import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.KeyValVo; import com.vincent.rsf.server.common.domain.PageParam; +import com.vincent.rsf.server.manager.entity.AsnOrderItem; import com.vincent.rsf.server.manager.entity.Purchase; +import com.vincent.rsf.server.manager.service.AsnOrderItemService; import com.vincent.rsf.server.manager.service.PurchaseService; +import com.vincent.rsf.server.system.constant.SerialRuleCode; import com.vincent.rsf.server.system.controller.BaseController; +import com.vincent.rsf.server.system.utils.SerialRuleUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.*; +import java.util.stream.Collectors; @RestController public class PurchaseController extends BaseController { @Autowired private PurchaseService purchaseService; + + @Autowired + private AsnOrderItemService asnOrderItemService; @PreAuthorize("hasAuthority('manager:purchase:list')") @PostMapping("/purchase/page") @@ -59,6 +68,11 @@ purchase.setCreateTime(new Date()); purchase.setUpdateBy(getLoginUserId()); purchase.setUpdateTime(new Date()); + if (StringUtils.isBlank(purchase.getCode())) { + String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ORDER_PO_CODE, purchase); + purchase.setCode(ruleCode); + } + if (!purchaseService.save(purchase)) { return R.error("Save Fail"); } @@ -81,6 +95,12 @@ @OperationLog("Delete ERP閲囪喘鍗�") @PostMapping("/purchase/remove/{ids}") public R remove(@PathVariable Long[] ids) { + List<Purchase> purchases = purchaseService.listByIds(Arrays.asList(ids)); + Set<String> stringSet = purchases.stream().map(Purchase::getCode).collect(Collectors.toSet()); + List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getPoCode, stringSet)); + if (!orderItems.isEmpty()) { + return R.error("鍗曟嵁鏈夊凡鐢熸垚鐨勬敹璐у崟鏄庣粏锛屼笉鍙墽琛屽垹闄ゆ搷浣滐紒锛�"); + } if (!purchaseService.removeByIds(Arrays.asList(ids))) { return R.error("Delete Fail"); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java index d3fc19e..f896cf4 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java @@ -202,9 +202,11 @@ @ApiModelProperty("鍚堟牸鏁伴噺") + @TableField(exist = false) private Double safeQty; @ApiModelProperty("涓嶅悎鏍兼暟閲�") + @TableField(exist = false) private Double disQty; /** diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java index 5527dbe..0fdda32 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java @@ -198,6 +198,12 @@ @ApiModelProperty(value= "淇敼浜哄憳") private Long updateBy; + @ApiModelProperty("鏄惁鍚堟牸") + private Short flagNorm; + + @ApiModelProperty("璐ㄦ鏁伴噺") + private Double isptQty; + /** * 淇敼鏃堕棿 */ diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java index 3598f07..b00e101 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java @@ -13,7 +13,7 @@ QLY_ISPT_RESULT_DEFECT("2", "涓嶅悎鏍�"), QLY_ISPT_RESULT_PENDING("3", "寰呭畾"), QLY_ISPT_RESULT_SECTION("4", "閮ㄥ垎鍚堟牸"), - QLY_ISPT_RESULT_HOLD("0", "鍏跺畠") + QLY_ISPT_RESULT_HOLD("0", "鏈川妫�") ; QlyIsptResult(String val, String desc) { 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 43ef3b5..9255348 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 @@ -199,6 +199,14 @@ String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, asnOrderItem); asnOrderItem.setTrackCode(ruleCode).setBarcode(ruleCode); } + if (StringUtils.isNoneBlank(asnOrderItem.getSplrCode())) { + Companys companys = companysService.getOne(new LambdaQueryWrapper<Companys>() + .eq(Companys::getId, asnOrderItem.getSplrCode()) + .eq(Companys::getType, CompanysType.COMPANYS_TYPE_SUPPLIER.val)); + if (!Objects.isNull(companys)) { + asnOrderItem.setSplrCode(companys.getCode()).setSplrName(companys.getName()); + } + } if (Objects.isNull(asnOrderItem.getAnfme()) || Double.compare(asnOrderItem.getAnfme(), 0.0) <= 0) { throw new CoolException("璁″垝鏁颁笉鑳戒负绌猴紒锛�"); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java index 3546c5c..04dc68c 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java @@ -74,4 +74,7 @@ */ public final static String SYS_WAVE_TYPE = "sys_wave_type"; + /**PO鍗曠紪鐮�*/ + public final static String SYS_ORDER_PO_CODE = "sys_order_po_code"; + } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java index 4e67c2f..d7b494e 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java @@ -64,9 +64,9 @@ if (serialRule.getReset().equals(SerialRuleReset.SERIAL_REST_TYPE_YEAR.type)) { format = DateUtils.format(new Date(), "yyyy"); } else if (serialRule.getReset().equals(SerialRuleReset.SERIAL_REST_TYPE_MONTH.type)) { - format = DateUtils.format(new Date(), "yyyyMM"); + format = DateUtils.format(new Date(), "yyMM"); } else if (serialRule.getReset().equals(SerialRuleReset.SERIAL_REST_TYPE_DAYS.type)){ - format = DateUtils.format(new Date(), "yyyyMMdd"); + format = DateUtils.format(new Date(), "yyMMdd"); } //褰撳墠鍊艰嚜鍔ㄥ姞1 Integer curVal = serialRule.getCurrValue() + 1; -- Gitblit v1.9.1