rsf-admin/src/page/histories/taskLog/TaskLogEdit.jsx
@@ -20,7 +20,8 @@ const { getValues } = useFormContext(); return ( <Toolbar sx={{ justifyContent: 'end' }}> <SaveButton /> <></> {/* <SaveButton /> */} {/* <DeleteButton mutationMode="optimistic" /> */} </Toolbar> ) @@ -42,6 +43,17 @@ toolbar={<FormToolbar />} 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)" } }} > <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}> <Grid item xs={24} md={16}> rsf-admin/src/page/histories/waitPakinLog/WaitPakinLogEdit.jsx
@@ -35,8 +35,9 @@ return ( <Toolbar sx={{ justifyContent: 'end' }}> <SaveButton /> <DeleteButton mutationMode="optimistic" /> <></> {/* <SaveButton /> <DeleteButton mutationMode="optimistic" /> */} </Toolbar> ) } @@ -53,25 +54,24 @@ aside={<EditBaseAside />} > <SimpleForm sx={{ '& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled': { bgcolor: "white", color: "black", '-webkit-text-fill-color': "rgba(0, 0, 0)" }, '& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled': { color: 'rgba(0, 0, 0, 0.77)' } }} shouldUnregister warnWhenUnsavedChanges toolbar={<FormToolbar />} mode="onTouched" defaultValues={{}} // validate={(values) => { }} > <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}> <Grid item xs={24} md={12}> <Grid item xs={24} md={12} 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)" } }}> <Typography variant="h6" gutterBottom> {translate('common.edit.title.main')} </Typography> @@ -79,25 +79,30 @@ <NumberInput label="table.field.waitPakinLog.pakinId" source="pakinId" readOnly autoFocus /> <TextInput label="table.field.waitPakinLog.code" source="code" readOnly parse={v => v} /> <TextInput label="table.field.waitPakinLog.barcode" source="barcode" readOnly parse={v => v} /> <NumberInput label="table.field.waitPakinLog.anfme" readOnly source="anfme" /> <SelectInput label="table.field.waitPakinLog.ioStatus" source="ioStatus" readOnly choices={[ { id: 0, name: '待入库' }, { id: 1, name: ' 入库中' }, rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx
@@ -125,7 +125,7 @@ <MyCreateButton onClick={() => { setCreateDialog(true) }} /> <SelectColumnsButton preferenceKey='asnOrderItem' /> <ImportButton value={'asnOrderItem'} parmas={{ asnId: asnId }} /> <MyExportButton /> {/* <MyExportButton /> */} </TopToolbar> )} perPage={DEFAULT_ITEM_PAGE_SIZE} rsf-admin/src/page/task/TaskEdit.jsx
@@ -20,7 +20,8 @@ const { getValues } = useFormContext(); return ( <Toolbar sx={{ justifyContent: 'end' }}> <SaveButton /> <></> {/* <SaveButton /> */} {/* <DeleteButton mutationMode="optimistic" /> */} </Toolbar> ) @@ -42,6 +43,17 @@ toolbar={<FormToolbar />} 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)" } }} > <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}> <Grid item xs={24} md={16}> rsf-admin/src/page/task/TaskList.jsx
@@ -122,7 +122,7 @@ <BulkDeleteButton mutationMode={OPERATE_MODE} /> </> } rowClick={false} rowClick={'edit'} expand={false} expandSingle={true} omit={['id', 'createTime', 'createBy', 'memo', 'robotCode', 'exceStatus', 'expDesc', 'expCode', 'status', 'sort']} @@ -175,8 +175,8 @@ const record = useRecordContext(); const notify = useNotify(); const refresh = useRefresh(); const clickComplete = () => { console.log('------->'); const clickComplete = (event) => { event.stopPropagation(); completeTask([record]) }; //完成任务 rsf-admin/src/page/waitPakin/WaitPakinCreate.jsx
@@ -93,19 +93,6 @@ /> </Grid> <Grid item xs={6} display="flex" gap={1}> <NumberInput label="table.field.waitPakin.ansId" source="ansId" /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput label="table.field.waitPakin.asnCode" source="asnCode" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput label="table.field.waitPakin.barcode" source="barcode" rsf-admin/src/page/waitPakin/WaitPakinEdit.jsx
@@ -71,22 +71,14 @@ parse={v => v} autoFocus /> <NumberInput label="table.field.waitPakin.ansId" readOnly source="ansId" /> <TextInput label="table.field.waitPakin.asnCode" readOnly source="asnCode" parse={v => v} /> <SelectInput label="table.field.waitPakin.flagDefect" readOnly source="flagDefect" parse={v => v} choices={[ { id: 0, name: '否' }, { id: 1, name: ' 是' }, ]} /> </Stack> <Stack direction='row' gap={2}> rsf-admin/src/page/waitPakin/WaitPakinList.jsx
@@ -65,8 +65,6 @@ const filters = [ <SearchInput source="condition" alwaysOn />, <TextInput source="code" label="table.field.waitPakin.code" />, <NumberInput source="ansId" label="table.field.waitPakin.ansId" />, <TextInput source="asnCode" label="table.field.waitPakin.asnCode" />, <TextInput source="barcode" label="table.field.waitPakin.barcode" />, <NumberInput source="anfme" label="table.field.waitPakin.anfme" />, <SelectInput source="ioStatus" label="table.field.waitPakin.ioStatus" @@ -118,8 +116,6 @@ const BulkActionButtons = () => { } return ( <Box display="flex"> <List @@ -157,8 +153,6 @@ > <NumberField source="id" /> <TextField source="code" label="table.field.waitPakin.code" /> {/* <NumberField source="ansId" label="table.field.waitPakin.ansId" /> */} {/* <TextField source="asnCode" label="table.field.waitPakin.asnCode" /> */} <TextField source="barcode" label="table.field.waitPakin.barcode" /> <NumberField source="anfme" label="table.field.waitPakin.anfme" /> <TextField source="ioStatus$" label="table.field.waitPakin.ioStatus" sortable={false} /> rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/OrderType.java
@@ -40,4 +40,19 @@ return null; } public static String getValType(String type) { if (type.equals(OrderType.ORDER_IN.type)) { return OrderType.ORDER_IN.desc; } else if (type.equals(OrderType.ORDER_OUT.type)) { return OrderType.ORDER_OUT.desc; } else if (type.equals(OrderType.ORDER_PLAT_IN.type)) { return OrderType.ORDER_PLAT_IN.desc; } else if (type.equals(OrderType.ORDER_RECEIPT.type)) { return OrderType.ORDER_RECEIPT.desc; } else if (type.equals(OrderType.ORDER_PURCHASE_IN.type)) { return OrderType.ORDER_PURCHASE_IN.desc; } return null; } } rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/OrderWorkType.java
@@ -45,5 +45,24 @@ return null; } public static String getWorkDesc(String type) { if (type.equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) { return OrderWorkType.ORDER_WORK_TYPE_DONE_IN.desc; } else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_PROD.type)) { return OrderWorkType.ORDER_WORK_TYPE_PROD.desc; } else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE.type)) { return OrderWorkType.ORDER_WORK_TYPE_PURCHASE.desc; } else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_SALE.type)) { return OrderWorkType.ORDER_WORK_TYPE_SALE.desc; } else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_RETURN.type)) { return OrderWorkType.ORDER_WORK_TYPE_RETURN.desc; } else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_SUPPLIER.type)) { return OrderWorkType.ORDER_WORK_TYPE_SUPPLIER.desc; }else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.type)) { return OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.desc; } return null; } } rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java
@@ -7,6 +7,8 @@ import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.api.entity.enums.OrderType; import com.vincent.rsf.server.api.entity.enums.OrderWorkType; import com.vincent.rsf.server.common.utils.ExcelUtil; import com.vincent.rsf.server.common.annotation.OperationLog; import com.vincent.rsf.server.common.domain.BaseParam; @@ -15,7 +17,11 @@ import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams; import com.vincent.rsf.server.manager.controller.params.BatchUpdateParam; import com.vincent.rsf.server.manager.entity.AsnOrder; import com.vincent.rsf.server.manager.entity.AsnOrderItem; import com.vincent.rsf.server.manager.entity.Matnr; import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate; import com.vincent.rsf.server.manager.enums.AsnExceStatus; import com.vincent.rsf.server.manager.service.AsnOrderItemService; import com.vincent.rsf.server.manager.service.AsnOrderService; import com.vincent.rsf.server.system.constant.SerialRuleCode; import com.vincent.rsf.server.system.controller.BaseController; @@ -30,6 +36,7 @@ import javax.mail.Multipart; import javax.servlet.http.HttpServletResponse; import java.util.*; import java.util.stream.Collectors; @RestController @Api(tags = "ASN入库通知单") @@ -37,6 +44,8 @@ @Autowired private AsnOrderService asnOrderService; @Autowired private AsnOrderItemService asnOrderItemService; @PreAuthorize("hasAuthority('manager:asnOrder:list')") @PostMapping("/asnOrder/page") @@ -130,16 +139,44 @@ if (!ids.isEmpty()) { orders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().in(AsnOrder::getId, ids)); } else { orders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>()); orders = asnOrderService.list(new LambdaQueryWrapper<>()); } } else { orders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>()); orders = asnOrderService.list(); } ExcelUtil.build(ExcelUtil.create(orders, AsnOrder.class), response); List<AsnOrderTemplate> orderTemplates = new ArrayList<>(); for (AsnOrder order : orders) { List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, order.getId())); for (AsnOrderItem item : orderItems) { if (Objects.isNull(item)) { continue; } AsnOrderTemplate template = new AsnOrderTemplate(); template.setCode(order.getCode()) .setType(OrderType.getValType(order.getType())) .setWkType(OrderWorkType.getWorkDesc(order.getWkType())) .setExceStatus(AsnExceStatus.getExceStatus(order.getExceStatus())) .setAnfme(item.getAnfme() + "") .setMaktx(item.getMaktx()).setMemo(item.getMemo()) .setMatnrCode(item.getMatnrCode()) .setPoCode(item.getPoCode()) .setPoId(order.getPoId() + "") .setPackName(item.getPackName()) .setPlatItemId(item.getPlatItemId()) .setSplrBatch(item.getSplrBatch()) .setSplrCode(item.getSplrCode()) .setStockUnit(item.getStockUnit()) .setPurQty(item.getPurQty() + "") .setPurUnit(item.getPurUnit()); orderTemplates.add(template); } } ExcelUtil.build(ExcelUtil.create(orderTemplates, AsnOrderTemplate.class), response); } /** * 质检上报 * * @param orders * @return */ @@ -160,7 +197,7 @@ @PostMapping("/asnOrder/matnr/list") @ApiOperation("物料获取订单") @PreAuthorize("hasAuthority('manager:asnOrder:list')") public R getListByMatnr(@RequestBody Map<String, String> params){ public R getListByMatnr(@RequestBody Map<String, String> params) { if (Objects.isNull(params)) { return R.error("查询条件不能为空!!"); } @@ -173,7 +210,7 @@ @PreAuthorize("hasAuthority('manager:asnOrder:save')") public R orderAndItem(@RequestBody AsnOrderAndItemsParams params) throws Exception { if (Objects.isNull(params)) { return R.error("参数不能为空!!"); return R.error("参数不能为空!!"); } return asnOrderService.saveOrderAndItems(params, getLoginUserId()); } rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java
@@ -24,4 +24,36 @@ public Short val; public String desc; public static String getExceStatus(Short val) { if (val.equals(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)) { return AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.desc; } else if (val.equals(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val)) { return AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.desc; } else if (val.equals(AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val)) { return AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.desc; } else if (val.equals(AsnExceStatus.ASN_EXCE_STATUS_TASK_CANCEL.val)) { return AsnExceStatus.ASN_EXCE_STATUS_TASK_CANCEL.desc; } else if (val.equals(AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.val)) { return AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.desc; } else { return null; } } public static Short getExcelStatusDesc(String desc) { if (desc.equals(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.desc)) { return AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val; } else if (desc.equals(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.desc)) { return AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val; } else if (desc.equals(AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.desc)) { return AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val; } else if (desc.equals(AsnExceStatus.ASN_EXCE_STATUS_TASK_CANCEL.desc)) { return AsnExceStatus.ASN_EXCE_STATUS_TASK_CANCEL.val; } else if (desc.equals(AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.desc)) { return AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.val; } else { return null; } } } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java
@@ -51,6 +51,12 @@ order.setId(orderLog.getAsnId()) .setDeleted(0) .setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val); AsnOrder asnOrder = asnOrderService.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getCode, orderLog.getCode())); if (Objects.isNull(asnOrder)) { throw new CoolException("收货单据已添加,刷新后再操作!!"); } if (!asnOrderService.saveOrUpdate(order)) { throw new CoolException("单据保存失败!!"); }