From b3a57aab83e0e696707b1ffde99599c14b989b73 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 23 九月 2024 10:26:00 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java                |    4 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java        |   16 ++---
 zy-acs-flow/src/page/bus/BusCreate.jsx                                                       |   90 +++++++++++++++++++++--------
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/param/BusCreateParam.java |   19 ++++++
 4 files changed, 92 insertions(+), 37 deletions(-)

diff --git a/zy-acs-flow/src/page/bus/BusCreate.jsx b/zy-acs-flow/src/page/bus/BusCreate.jsx
index 1dc547e..f9f7af5 100644
--- a/zy-acs-flow/src/page/bus/BusCreate.jsx
+++ b/zy-acs-flow/src/page/bus/BusCreate.jsx
@@ -6,6 +6,7 @@
     NumberInput,
     BooleanInput,
     DateInput,
+    DateTimeInput,
     SaveButton,
     SelectInput,
     ReferenceInput,
@@ -17,6 +18,8 @@
     useNotify,
     Form,
     useCreateController,
+    ArrayInput,
+    SimpleFormIterator,
 } from 'react-admin';
 import {
     Dialog,
@@ -86,41 +89,76 @@
                             <Grid container rowSpacing={2} columnSpacing={2}>
                                 <Grid item xs={6} display="flex" gap={1}>
                                     <TextInput
-                                        label="table.field.bus.uuid"
-                                        source="uuid"
-                                        parse={v => v}
-                                        autoFocus
-                                    />
-                                </Grid>
-                                <Grid item xs={6} display="flex" gap={1}>
-                                    <TextInput
                                         label="table.field.bus.busNo"
                                         source="busNo"
                                         parse={v => v}
+                                        validate={required()}
                                     />
                                 </Grid>
                                 <Grid item xs={6} display="flex" gap={1}>
-                                    <ReferenceInput
-                                        source="busSts"
-                                        reference="busSts"
-                                    >
-                                        <AutocompleteInput
-                                            label="table.field.bus.busSts"
-                                            optionText="name"
-                                            filterToQuery={(val) => ({ name: val })}
-                                        />
-                                    </ReferenceInput>
-                                </Grid>
-                                <Grid item xs={6} display="flex" gap={1}>
-                                    <TextInput
-                                        label="table.field.bus.phase"
-                                        source="phase"
-                                        parse={v => v}
+                                    <DateTimeInput
+                                        label="table.field.bus.startTime"
+                                        source="startTime"
                                     />
                                 </Grid>
 
-                                <Grid item xs={6} display="flex" gap={1}>
-                                    <StatusSelectInput />
+                                <Grid item xs={12} display="flex" gap={1}>
+                                    <ArrayInput
+                                        source="taskList"
+                                        validate={[required()]}
+                                    >
+                                        <SimpleFormIterator fullWidth getItemLabel={index => `#${index + 1}`}>
+                                            <Box mt={1} />
+                                            <Stack direction="row" spacing={2}>
+                                                <TextInput source="seqNum" />
+                                                <NumberInput source="priority" defaultValue={1} />
+                                            </Stack>
+                                            <Stack direction="row" spacing={2}>
+                                                <ReferenceInput
+                                                    source="oriSta"
+                                                    reference="sta"
+                                                >
+                                                    <AutocompleteInput
+                                                        label="table.field.task.oriSta"
+                                                        optionText="staNo"
+                                                        filterToQuery={(val) => ({ staNo: val })}
+                                                    />
+                                                </ReferenceInput>
+                                                <ReferenceInput
+                                                    source="oriLoc"
+                                                    reference="loc"
+                                                >
+                                                    <AutocompleteInput
+                                                        label="table.field.task.oriLoc"
+                                                        optionText="locNo"
+                                                        filterToQuery={(val) => ({ locNo: val })}
+                                                    />
+                                                </ReferenceInput>
+                                            </Stack>
+                                            <Stack direction="row" spacing={2}>
+                                                <ReferenceInput
+                                                    source="destSta"
+                                                    reference="sta"
+                                                >
+                                                    <AutocompleteInput
+                                                        label="table.field.task.destSta"
+                                                        optionText="staNo"
+                                                        filterToQuery={(val) => ({ staNo: val })}
+                                                    />
+                                                </ReferenceInput>
+                                                <ReferenceInput
+                                                    source="destLoc"
+                                                    reference="loc"
+                                                >
+                                                    <AutocompleteInput
+                                                        label="table.field.task.destLoc"
+                                                        optionText="locNo"
+                                                        filterToQuery={(val) => ({ locNo: val })}
+                                                    />
+                                                </ReferenceInput>
+                                            </Stack>
+                                        </SimpleFormIterator>
+                                    </ArrayInput>
                                 </Grid>
                                 <Grid item xs={12} display="flex" gap={1}>
                                     <Stack direction="column" spacing={1} width={'100%'}>
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index fa70bef..38b2068 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -93,7 +93,7 @@
 
     @SuppressWarnings("all")
     @Transactional
-    public void generateBusAndTask(OpenBusSubmitParam busSubmitParam, String memo) {
+    public Bus generateBusAndTask(OpenBusSubmitParam busSubmitParam, String memo) {
         String batch = busSubmitParam.getBatch();
         List<TaskDto> taskDtoList = busSubmitParam.getTaskList();
         if (Cools.isEmpty(taskDtoList)) {
@@ -183,7 +183,7 @@
             }
 
         }
-
+        return bus;
     }
 
     /**
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java
index 94c0b6f..86046c5 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java
@@ -4,11 +4,13 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.framework.common.R;
-import com.zy.acs.manager.common.utils.ExcelUtil;
 import com.zy.acs.manager.common.annotation.OperationLog;
 import com.zy.acs.manager.common.domain.BaseParam;
 import com.zy.acs.manager.common.domain.KeyValVo;
 import com.zy.acs.manager.common.domain.PageParam;
+import com.zy.acs.manager.common.utils.ExcelUtil;
+import com.zy.acs.manager.core.service.MainService;
+import com.zy.acs.manager.manager.controller.param.BusCreateParam;
 import com.zy.acs.manager.manager.entity.Bus;
 import com.zy.acs.manager.manager.service.BusService;
 import com.zy.acs.manager.system.controller.BaseController;
@@ -25,6 +27,8 @@
 
     @Autowired
     private BusService busService;
+    @Autowired
+    private MainService mainService;
 
     @PreAuthorize("hasAuthority('manager:bus:list')")
     @PostMapping("/bus/page")
@@ -55,14 +59,8 @@
     @PreAuthorize("hasAuthority('manager:bus:save')")
     @OperationLog("Create Bus")
     @PostMapping("/bus/save")
-    public R save(@RequestBody Bus bus) {
-        bus.setCreateBy(getLoginUserId());
-        bus.setCreateTime(new Date());
-        bus.setUpdateBy(getLoginUserId());
-        bus.setUpdateTime(new Date());
-        if (!busService.save(bus)) {
-            return R.error("Save Fail");
-        }
+    public R save(@RequestBody BusCreateParam param) {
+        Bus bus = mainService.generateBusAndTask();
         return R.ok("Save Success").add(bus);
     }
 
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/param/BusCreateParam.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/param/BusCreateParam.java
new file mode 100644
index 0000000..73d6dcd
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/param/BusCreateParam.java
@@ -0,0 +1,19 @@
+package com.zy.acs.manager.manager.controller.param;
+
+import com.zy.acs.manager.common.domain.TaskDto;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by vincent on 2023/6/12
+ */
+@Data
+public class BusCreateParam {
+
+    private String batch;
+
+    private List<TaskDto> taskList = new ArrayList<>();
+
+}

--
Gitblit v1.9.1