From 8e39c9bbf8a8bb4707f2a766295b40497ae96706 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期五, 01 九月 2023 13:46:54 +0800
Subject: [PATCH] MOM系统-9-01 生产订单 生产计划完成

---
 system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java                               |   18 
 inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java                   |    2 
 production-server/src/main/java/com/yuanchu/mom/mapper/ManualTechnologyMapper.java                   |    4 
 production-server/src/main/java/com/yuanchu/mom/service/impl/ManualTechnologyServiceImpl.java        |  108 +++++-
 pom.xml                                                                                              |    8 
 production-server/src/main/resources/mapper/ManufactureOrderMapper.xml                               |   38 --
 production-server/src/main/java/com/yuanchu/mom/pojo/ManufactureScheduling.java                      |   72 ++++
 production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureOrderMapper.java                   |    7 
 production-server/src/main/java/com/yuanchu/mom/pojo/dto/ManualTechnologyDto1.java                   |   48 --
 production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java                           |   32 -
 production-server/src/main/java/com/yuanchu/mom/service/ManufactureSchedulingService.java            |   25 +
 production-server/src/main/java/com/yuanchu/mom/pojo/ManufactureOrderProcess.java                    |   71 ++++
 production-server/src/main/java/com/yuanchu/mom/pojo/ManufactureOrder.java                           |    8 
 production-server/src/main/java/com/yuanchu/mom/pojo/dto/ManualTechnologyDto.java                    |   22 
 production-server/src/main/java/com/yuanchu/mom/service/ManualTechnologyService.java                 |    9 
 production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureSchedulingMapper.java              |   24 +
 production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureSchedulingServiceImpl.java   |   43 ++
 production-server/src/main/resources/mapper/ManualTechnologyMapper.xml                               |   61 +--
 /dev/null                                                                                            |   23 -
 production-server/src/main/java/com/yuanchu/mom/controller/ProductionPlanController.java             |   58 ++-
 production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderProcessServiceImpl.java |   30 +
 production-server/src/main/java/com/yuanchu/mom/controller/ManufactureOrderController.java           |   45 +
 production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderServiceImpl.java        |   84 +++-
 production-server/src/main/resources/mapper/ManufactureOrderProcessMapper.xml                        |    5 
 production-server/src/main/resources/mapper/ManufactureSchedulingMapper.xml                          |   39 ++
 system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java                                          |    2 
 production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureOrderProcessMapper.java            |   17 +
 production-server/src/main/java/com/yuanchu/mom/service/ManufactureOrderProcessService.java          |   19 +
 production-server/src/main/java/com/yuanchu/mom/service/ManufactureOrderService.java                 |   17 
 29 files changed, 649 insertions(+), 290 deletions(-)

diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java
index dab1184..1b945e8 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java
@@ -85,7 +85,7 @@
                     .techfather(technology.getFather())
                     .deviceGroup(technology.getDeviceGroup())
                     .manufactureOrderId(manufactureOrder.getId())
-                    .technologyId(technology.getId())
+                    .productionQuota(technology.getProductionQuota())
                     .build();
             //鏂板缂栧埗宸ュ簭琛�
             manualTechnologyMapper.insert(manualTechnology);
diff --git a/pom.xml b/pom.xml
index 5522b16..d372146 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,7 +38,7 @@
         <openfeign.version>3.1.3</openfeign.version>
         <feign-okhttp.version>11.0</feign-okhttp.version>
         <shiro.version>1.5.3</shiro.version>
-        <freemwork.version>2.3.32</freemwork.version>
+        <hutool.version>5.8.16</hutool.version>
         <!--鎻愪氦鍓�-->
         <!-- 鎵撳寘鍚庡鍑虹殑璺緞 -->
         <package.path>${project.build.directory}/BLOG</package.path>
@@ -88,6 +88,12 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-validation</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>${hutool.version}</version>
+        </dependency>
     </dependencies>
 
     <dependencyManagement>
diff --git a/production-server/src/main/java/com/yuanchu/mom/controller/ManufactureOrderController.java b/production-server/src/main/java/com/yuanchu/mom/controller/ManufactureOrderController.java
index dd36134..5fbc557 100644
--- a/production-server/src/main/java/com/yuanchu/mom/controller/ManufactureOrderController.java
+++ b/production-server/src/main/java/com/yuanchu/mom/controller/ManufactureOrderController.java
@@ -6,6 +6,8 @@
 import com.yuanchu.mom.pojo.dto.ManualTechnologyDto;
 import com.yuanchu.mom.service.DeviceService;
 import com.yuanchu.mom.service.ManualTechnologyService;
+import com.yuanchu.mom.service.ManufactureSchedulingService;
+import com.yuanchu.mom.utils.MyUtil;
 import com.yuanchu.mom.vo.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -39,11 +41,15 @@
     @Autowired
     private ManufactureOrderService manufactureOrderService;
 
+    @Autowired
+    private ManufactureSchedulingService manufactureSchedulingService;
+
     @Resource
     ManualTechnologyService manualTechnologyService;
 
     @Resource
     DeviceService deviceService;
+
 
     @ApiOperation(value = "鏌ヨ鐢熶骇璁㈠崟鍒楄〃")
     @ApiImplicitParams(value = {
@@ -72,6 +78,15 @@
         return Result.success(manualTechnologyService.seleDatil(manOrdId));
     }
 
+    @ApiOperation(value = "鐐瑰嚮鏌ョ湅鎺掍骇")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "manOrdId", value = "鐢熶骇璁㈠崟id", dataTypeClass = Integer.class, required = true)
+    })
+    @GetMapping("/select_Scheduling")
+    public Result<?> selectScheduling(Integer manOrdId) {
+        return Result.success(manufactureSchedulingService.selectScheduling(manOrdId));
+    }
+
     @ApiOperation(value = "鐐瑰嚮鎺掍骇-->浜岀骇鏍戦�夋嫨璁惧")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "deviceGroup", value = "璁惧缁�", dataTypeClass = String.class, required = true)
@@ -82,28 +97,28 @@
     }
 
     @ApiOperation(value = "鐐瑰嚮鎺掍骇-->纭畾鎸夐挳")
-    @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "date", value = "鎺掍骇寮�濮嬫棩鏈�", dataTypeClass = String.class, required = true),
-            @ApiImplicitParam(name = "manOrdId", value = "鐢熶骇璁㈠崟Id", dataTypeClass = String.class, required = true),
-            @ApiImplicitParam(name = "schedulingNumber", value = "鎺掍骇鏁伴噺", dataTypeClass = Integer.class, required = true),
-    })
     @PostMapping("/output")
-    public Result<?> output(@RequestParam(value = "date") @NotBlank(message = "鎺掍骇寮�濮嬫棩鏈熶笉鑳戒负绌�") String date,
-                            @RequestParam(value = "manOrdId") @NotNull(message = "鐢熶骇璁㈠崟Id涓嶈兘涓虹┖") Integer manOrdId,
-                            @RequestParam(value = "schedulingNumber") @NotNull(message = "鎺掍骇鏁伴噺涓嶈兘涓虹┖") Integer schedulingNumber,
-                            @Validated @RequestBody List<ManualTechnologyDto> manualTechnologyDtoList
-    ) throws ParseException {
-        manualTechnologyService.output(date, manOrdId, schedulingNumber, manualTechnologyDtoList);
-        return Result.success("鎺掍骇鎴愬姛锛�");
+    public Result<?> output(@Validated @RequestBody ManualTechnologyDto manualTechnologyDto) throws ParseException {
+        // 鍒ゆ柇杈撳叆鏁伴噺鏄惁瓒呭嚭
+        Integer isExceed = manufactureOrderService.checkScheduled(manualTechnologyDto.getManOrdId(), manualTechnologyDto.getSchedulingNumber());
+        if (isExceed >= 0){
+            manualTechnologyService.output(manualTechnologyDto);
+            return Result.success("鎺掍骇鎴愬姛锛�");
+        } else {
+            MyUtil.PrintLog(isExceed.toString());
+            int i = manualTechnologyDto.getSchedulingNumber() + isExceed;
+            return Result.fail("鎺掍骇閿欒锛屽綋鍓嶅墿浣欐帓浜т负锛�" + i);
+        }
     }
 
     @ApiOperation(value = "涓嬭揪")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "manOrdId", value = "鐢熶骇璁㈠崟id", dataTypeClass = Integer.class, required = true)
+            @ApiImplicitParam(name = "manufactureOrderId", value = "璁㈠崟id", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "schedulingId", value = "鎺掍骇Id", dataTypeClass = Integer.class, required = true)
     })
     @PostMapping("/down")
-    public Result<?> down(Integer manOrdId) {
-        manufactureOrderService.down(manOrdId);
+    public Result<?> down(Integer manufactureOrderId, Integer schedulingId) {
+        manufactureOrderService.down(manufactureOrderId, schedulingId);
         return Result.success("涓嬭揪鎴愬姛!");
     }
 
diff --git a/production-server/src/main/java/com/yuanchu/mom/controller/ProductionPlanController.java b/production-server/src/main/java/com/yuanchu/mom/controller/ProductionPlanController.java
index 2b0cf45..ea39bc1 100644
--- a/production-server/src/main/java/com/yuanchu/mom/controller/ProductionPlanController.java
+++ b/production-server/src/main/java/com/yuanchu/mom/controller/ProductionPlanController.java
@@ -1,7 +1,8 @@
 package com.yuanchu.mom.controller;
 
+import com.yuanchu.mom.service.ManualTechnologyService;
 import com.yuanchu.mom.service.ManufactureOrderService;
-import com.yuanchu.mom.service.ProductionPlanService;
+import com.yuanchu.mom.service.ManufactureSchedulingService;
 import com.yuanchu.mom.vo.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -12,31 +13,20 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import javax.annotation.Resource;
-
 @Api(tags = "鐢熶骇绠$悊-->鐢熶骇璁″垝")
 @RestController
 @RequestMapping("/productionPlan")
 public class ProductionPlanController {
 
-    @Resource
-    ProductionPlanService productionPlanService;
+    @Autowired
+    private ManualTechnologyService manualTechnologyService;
 
     @Autowired
     private ManufactureOrderService manufactureOrderService;
 
-    @ApiOperation(value = "鏌ヨ鐢熶骇璁″垝鍒楄〃")
-    @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "deviceId", value = "璁惧id", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(name = "orderCode", value = "璁㈠崟鍙�", dataTypeClass = String.class),
-            @ApiImplicitParam(name = "name", value = "浜у搧鍚嶇О", dataTypeClass = String.class),
-            @ApiImplicitParam(name = "startTime", value = "璁″垝寮�濮嬫棩鏈�", dataTypeClass = String.class),
-            @ApiImplicitParam(name = "endTime", value = "璁″垝缁撴潫鏃ユ湡", dataTypeClass = String.class)
-    })
-    @GetMapping("/selectAllPlan")
-    public Result selectAllPlan(Integer deviceId, String orderCode, String name, String startTime, String endTime) {
-        return Result.success(productionPlanService.selectAllPlan(deviceId,orderCode,name,startTime,endTime));
-    }
+    @Autowired
+    private ManufactureSchedulingService manufactureSchedulingService;
+
 
     @ApiOperation(value = "浜岀骇鏍�")
     @GetMapping("/tow_tree")
@@ -46,10 +36,38 @@
 
     @ApiOperation(value = "鏌ョ湅鎺掍骇璇︽儏")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "manOrdId", value = "鐢熶骇璁㈠崟id", dataTypeClass = Integer.class, required = true)
+            @ApiImplicitParam(name = "schedulingId", value = "鎺掍骇id", dataTypeClass = Integer.class, required = true)
     })
     @GetMapping("/sePros")
-    public Result sePros(Integer manOrdId) {
-        return Result.success(manufactureOrderService.sePros(manOrdId));
+    public Result<?> sePros(Integer schedulingId) {
+        return Result.success(manufactureOrderService.sePros(schedulingId));
+    }
+
+
+    @ApiOperation(value = "鏍规嵁鐢熶骇璁㈠崟鏌ョ湅鐢熶骇璁″垝")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "manOrdId", value = "鐢熶骇璁㈠崟id", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "productName", value = "浜у搧鍚嶇О", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "startTime", value = "寮�濮嬫棩鏈�", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "endTime", value = "缁撴潫鏃ユ湡", dataTypeClass = String.class)
+    })
+    @GetMapping("/produceTable")
+    public Result<?> selectProduceTable(Integer manOrdId, String productName, String startTime, String endTime) {
+        return Result.success(manufactureSchedulingService.selectProduceTable(manOrdId, productName, startTime, endTime));
+    }
+
+
+    @ApiOperation(value = "鏌ョ湅鎺掍骇璇︽儏-->澶辩劍淇敼鏃堕棿")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "technologyId", value = "宸ュ簭Id", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "startTime", value = "寮�濮嬫椂闂�", dataTypeClass = String.class, required = true, dataType = "date"),
+    })
+    @GetMapping("/update_time")
+    public Result<?> updateTime(Integer technologyId, String startTime) {
+        Integer isUpdateSuccess = manualTechnologyService.updateTime(technologyId, startTime);
+        if (isUpdateSuccess >= 1) {
+            return Result.success("鏇存柊鎴愬姛锛�");
+        }
+        return Result.fail("鏇存柊澶辫触锛�");
     }
 }
diff --git a/production-server/src/main/java/com/yuanchu/mom/mapper/ManualTechnologyMapper.java b/production-server/src/main/java/com/yuanchu/mom/mapper/ManualTechnologyMapper.java
index 90ff5ea..5a063a4 100644
--- a/production-server/src/main/java/com/yuanchu/mom/mapper/ManualTechnologyMapper.java
+++ b/production-server/src/main/java/com/yuanchu/mom/mapper/ManualTechnologyMapper.java
@@ -17,8 +17,6 @@
     //鎺掍骇-->鏌ョ湅
     List<Map<String, Object>> seleDatil(Integer manOrdId);
 
-    //鎵归噺鏇存柊
-    void updateBatchManualTechnology(Integer schedulingNumber, List<ManualTechnology> manualTechnologies);
-
+    List<Map<String, Object>> selectListTowTree(Integer schedulingId);
 }
 
diff --git a/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureOrderMapper.java b/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureOrderMapper.java
index e8f9c09..d87eaed 100644
--- a/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureOrderMapper.java
+++ b/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureOrderMapper.java
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.pojo.ManufactureOrder;
-import com.yuanchu.mom.pojo.dto.ManufactureOrderDto;
 
 import java.util.List;
 import java.util.Map;
@@ -20,14 +19,10 @@
     //鏌ヨ鐢熶骇璁㈠崟鍒楄〃
     IPage<Map<String, Object>> selectAllManord(Page<Object> page, String downTime, String delTime, String customerCode, Integer type);
 
-
-    //鏌ョ湅鐢熶骇璁″垝
-    List<Map<String, Object>> selectAllPlan(Integer deviceId, String orderCode, String name, String startTime, String endTime);
-
     void deleteManufacture(List<String> manOrdId);
 
     List<Map<String, Object>> towTree();
 
-    void updateManufacture(Integer manufactureOrderId, Integer manufactureOrder);
+    void updateManufacture(Integer manufactureOrderId, Integer schedulingNumber);
 }
 
diff --git a/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureOrderProcessMapper.java b/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureOrderProcessMapper.java
new file mode 100644
index 0000000..2ec6f20
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureOrderProcessMapper.java
@@ -0,0 +1,17 @@
+package com.yuanchu.mom.mapper;
+
+import com.yuanchu.mom.mybatis_config.MyBaseMapper;
+import com.yuanchu.mom.pojo.ManufactureOrderProcess;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 鎺掍骇瀵瑰簲宸ュ簭 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-31 02:46:48
+ */
+public interface ManufactureOrderProcessMapper extends MyBaseMapper<ManufactureOrderProcess> {
+
+}
diff --git a/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureSchedulingMapper.java b/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureSchedulingMapper.java
new file mode 100644
index 0000000..a8fd83c
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureSchedulingMapper.java
@@ -0,0 +1,24 @@
+package com.yuanchu.mom.mapper;
+
+import com.yuanchu.mom.pojo.ManufactureScheduling;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鎺掍骇琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-31 11:54:28
+ */
+public interface ManufactureSchedulingMapper extends BaseMapper<ManufactureScheduling> {
+
+    List<Map<String, Object>> selectScheduling(Integer manOrdId);
+
+    List<Map<String, Object>> selectProduceTable(Integer manOrdId, String productName, String startTime, String endTime);
+
+    Map<String, Object> sePros(Integer schedulingId);
+}
diff --git a/production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java b/production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java
index 012bca4..3373482 100644
--- a/production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java
+++ b/production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java
@@ -47,13 +47,8 @@
      **/
     private String deviceGroup;
 
-    /**
-     * 鍏宠仈 璁惧id
-     **/
-    private Integer deviceId;
-
-    @ApiModelProperty(value = "鍏宠仈 宸ヨ壓Id")
-    private Integer technologyId;
+    @ApiModelProperty(value = "鐢熶骇瀹氶(涓�/澶�)")
+    private Integer productionQuota;
 
     /**
      * 鍏宠仈 鐢熶骇璁㈠崟id
@@ -61,6 +56,7 @@
     private Integer manufactureOrderId;
 
     @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    @TableLogic(value = "1", delval = "0")
     private Integer state;
 
     @TableField(fill = FieldFill.INSERT)
@@ -72,27 +68,5 @@
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date updateTime;
-
-    /**
-     * 寮�濮嬫棩鏈�(璁″垝)
-     */
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date startTime;
-
-    /**
-     * 缁撴潫鏃ユ湡(璁″垝)
-     */
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date endTime;
-
-    /**
-     * 鍛ㄦ湡
-     **/
-    private Integer period;
-
-    @ApiModelProperty(value = "鎺掍骇鏁伴噺")
-    private Integer schedulingNumber;
 }
 
diff --git a/production-server/src/main/java/com/yuanchu/mom/pojo/ManufactureOrder.java b/production-server/src/main/java/com/yuanchu/mom/pojo/ManufactureOrder.java
index da81b15..47dc066 100644
--- a/production-server/src/main/java/com/yuanchu/mom/pojo/ManufactureOrder.java
+++ b/production-server/src/main/java/com/yuanchu/mom/pojo/ManufactureOrder.java
@@ -72,6 +72,8 @@
      **/
     private Integer number;
 
+    @ApiModelProperty(value = "宸叉帓浜ф暟閲�")
+    private Integer scheduledProduction;
     /**
      * 涓嬪崟鏃ユ湡
      **/
@@ -87,16 +89,12 @@
     private Date deltime;
 
     /**
-     * 鐘舵��0:寰呮帓浜�;1:宸叉帓浜�
-     **/
-    private Integer type;
-
-    /**
      * 璐ㄩ噺杩芥函鍙�
      **/
     private String qualityTraceability;
 
     @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    @TableLogic(value = "1", delval = "0")
     private Integer state;
 
     @TableField(fill = FieldFill.INSERT)
diff --git a/production-server/src/main/java/com/yuanchu/mom/pojo/ManufactureOrderProcess.java b/production-server/src/main/java/com/yuanchu/mom/pojo/ManufactureOrderProcess.java
new file mode 100644
index 0000000..5a9d806
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/pojo/ManufactureOrderProcess.java
@@ -0,0 +1,71 @@
+package com.yuanchu.mom.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * <p>
+ * 鎺掍骇瀵瑰簲宸ュ簭
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-31 02:46:48
+ */
+@Data
+@Accessors(chain = true)
+@TableName("manufacture_order_process")
+@ApiModel(value = "ManufactureOrderProcess瀵硅薄", description = "鎺掍骇瀵瑰簲宸ュ簭")
+public class ManufactureOrderProcess implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("涓婚敭Id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("鍏宠仈 璁惧Id")
+    private Integer deviceId;
+
+    @ApiModelProperty("寮�濮嬫椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date startTime;
+
+    @ApiModelProperty("缁撴潫鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date endTime;
+
+    @ApiModelProperty("鍛ㄦ湡")
+    private Integer period;
+
+    @ApiModelProperty("鍏宠仈 缂栧埗宸ュ簭琛↖d")
+    private Integer manualTechnologyId;
+
+    @ApiModelProperty("鍏宠仈 鎺掍骇琛� Id")
+    private Integer manufactureSchedulingId;
+
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    @TableLogic(value = "1", delval = "0")
+    private Integer state;
+
+    @TableField(fill = FieldFill.INSERT)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createTime;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date updateTime;
+}
diff --git a/production-server/src/main/java/com/yuanchu/mom/pojo/ManufactureScheduling.java b/production-server/src/main/java/com/yuanchu/mom/pojo/ManufactureScheduling.java
new file mode 100644
index 0000000..273efb6
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/pojo/ManufactureScheduling.java
@@ -0,0 +1,72 @@
+package com.yuanchu.mom.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * <p>
+ * 鎺掍骇琛�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-31 11:54:28
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "ManufactureScheduling瀵硅薄", description = "鎺掍骇琛�")
+public class ManufactureScheduling implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("涓婚敭Id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("寮�濮嬫椂闂�")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date startTime;
+
+    @ApiModelProperty("缁撴潫鏃堕棿")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date endTime;
+
+    @ApiModelProperty("涓嬭揪鐘舵��")
+    private Integer goState;
+
+    @ApiModelProperty("宸叉帓浜ф暟閲�")
+    private Integer scheduled;
+
+    @ApiModelProperty("鍏宠仈鐢熶骇璁㈠崟Id")
+    private Integer manufactureOrderId;
+
+    @TableField(fill = FieldFill.INSERT)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createTime;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty("閫昏緫鍒犻櫎")
+    @TableLogic(value = "1", delval = "0")
+    private Integer state;
+}
diff --git a/production-server/src/main/java/com/yuanchu/mom/pojo/dto/ManualTechnologyDto.java b/production-server/src/main/java/com/yuanchu/mom/pojo/dto/ManualTechnologyDto.java
index 55e7a94..56d28d7 100644
--- a/production-server/src/main/java/com/yuanchu/mom/pojo/dto/ManualTechnologyDto.java
+++ b/production-server/src/main/java/com/yuanchu/mom/pojo/dto/ManualTechnologyDto.java
@@ -3,21 +3,25 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
+import java.util.List;
 
 @Data
 //鏇存柊鎺掍骇(閫夋嫨璁惧)
 public class ManualTechnologyDto {
 
-    //宸ュ簭id
-    @NotNull(message = "宸ュ簭Id涓嶈兘涓虹┖")
-    @ApiModelProperty(value = "宸ュ簭Id", example = "1", required = true)
-    private Integer id;
+    @NotBlank(message = "鎺掍骇寮�濮嬫棩鏈熶笉鑳戒负绌�")
+    @ApiModelProperty(value = "鎺掍骇寮�濮嬫棩鏈�", example = "2023-08-31", required = true, dataType = "date")
+    private String date;
 
-    @ApiModelProperty(value = "宸ヨ壓Id", example = "2", required = true)
-    private Integer technologyId;
+    @NotNull(message = "鐢熶骇璁㈠崟Id涓嶈兘涓虹┖")
+    @ApiModelProperty(value = "鐢熶骇璁㈠崟Id", example = "3", required = true)
+    private Integer manOrdId;
 
-    @NotNull(message = "璁惧id涓嶈兘涓虹┖")
-    @ApiModelProperty(value = "璁惧Id", example = "1", required = true)
-    private Integer  deviceId;
+    @NotNull(message = "鎺掍骇鏁伴噺涓嶈兘涓虹┖")
+    @ApiModelProperty(value = "鎺掍骇鏁伴噺", example = "20", required = true)
+    private Integer schedulingNumber;
+
+    private List<ManualTechnologyDto1> orderProcess;
 }
diff --git a/production-server/src/main/java/com/yuanchu/mom/pojo/dto/ManualTechnologyDto1.java b/production-server/src/main/java/com/yuanchu/mom/pojo/dto/ManualTechnologyDto1.java
index 776a451..45f0bcd 100644
--- a/production-server/src/main/java/com/yuanchu/mom/pojo/dto/ManualTechnologyDto1.java
+++ b/production-server/src/main/java/com/yuanchu/mom/pojo/dto/ManualTechnologyDto1.java
@@ -2,52 +2,22 @@
 
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotNull;
 import java.util.Date;
 
 //鏌ョ湅鎺掍骇璇︽儏涓殑璁″垝缂栧埗
 @Data
 public class ManualTechnologyDto1 {
 
-    /**
-     * 宸ュ簭id
-     **/
-    private Integer mtechId;
+    @NotNull(message = "宸ュ簭Id涓嶈兘涓虹┖")
+    @ApiModelProperty(value = "宸ュ簭Id", example = "1", required = true)
+    private Integer manualTechnologyId;
 
-    /**
-     * 宸ュ簭鍚嶇О
-     **/
-    private String techname;
-
-    /**
-     * 宸ュ簭鐖剁被
-     **/
-    private String techfather;
-
-
-    /**
-     * 璁惧鍚�(鏈哄彴)
-     **/
-    private String deviceName;
-
-
-    /**
-     * 寮�濮嬫棩鏈�(璁″垝)
-     */
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date startTime;
-
-    /**
-     * 缁撴潫鏃ユ湡(璁″垝)
-     */
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date endTime;
-
-    /**
-     * 鍛ㄦ湡
-     **/
-    private Integer period;
+    @NotNull(message = "璁惧id涓嶈兘涓虹┖")
+    @ApiModelProperty(value = "璁惧Id", example = "1", required = true)
+    private Integer  deviceId;
 }
diff --git a/production-server/src/main/java/com/yuanchu/mom/pojo/dto/ManufactureOrderDto.java b/production-server/src/main/java/com/yuanchu/mom/pojo/dto/ManufactureOrderDto.java
deleted file mode 100644
index d58bcb6..0000000
--- a/production-server/src/main/java/com/yuanchu/mom/pojo/dto/ManufactureOrderDto.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.yuanchu.mom.pojo.dto;
-
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-import java.util.List;
-
-@Data
-//鏌ョ湅鎺掍骇璇︽儏
-public class ManufactureOrderDto {
-
-    /**
-     * 璁㈠崟id
-     **/
-    private Integer id;
-
-    /**
-     * 璁㈠崟缂栧彿
-     **/
-    private String orderCode;
-
-    /**
-     * 鍚堝悓缂栧彿(瀹㈡埛璁㈠崟鍙�)
-     **/
-    private String customerCode;
-
-    /**
-     * 浜у搧鍚嶇О
-     **/
-    private String name;
-
-    /**
-     * 瑙勬牸鍨嬪彿
-     **/
-    private String specifications;
-
-    /**
-     * 鏁伴噺
-     **/
-    private Integer number;
-
-    /**
-     * 涓嬪崟鏃ユ湡
-     **/
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date downtime;
-
-    /**
-     * 浜よ揣鏃ユ湡
-     **/
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date deltime;
-
-    /*璁″垝缂栧埗*/
-    private List<ManualTechnologyDto1> message;
-
-}
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/ManualTechnologyService.java b/production-server/src/main/java/com/yuanchu/mom/service/ManualTechnologyService.java
index 6356072..d4af76f 100644
--- a/production-server/src/main/java/com/yuanchu/mom/service/ManualTechnologyService.java
+++ b/production-server/src/main/java/com/yuanchu/mom/service/ManualTechnologyService.java
@@ -26,9 +26,14 @@
 
     /**
      * 鎺掍骇==>鏇存柊
-     * @param manualTechnologyDtoList
      */
-    void output(String date, Integer manufactureOrderId, Integer schedulingNumber, List<ManualTechnologyDto> manualTechnologyDtoList) throws ParseException;
+    void output(ManualTechnologyDto manualTechnologyDto) throws ParseException;
 
+    /**
+     * 鏌ョ湅鎺掍骇璇︽儏-->澶辩劍淇敼鏃堕棿
+     * @param startTime 寮�濮嬫椂闂�
+     * @return
+     */
+    Integer updateTime(Integer technologyId, String startTime);
 }
 
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/ManufactureOrderProcessService.java b/production-server/src/main/java/com/yuanchu/mom/service/ManufactureOrderProcessService.java
new file mode 100644
index 0000000..47fbb53
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/service/ManufactureOrderProcessService.java
@@ -0,0 +1,19 @@
+package com.yuanchu.mom.service;
+
+import com.yuanchu.mom.pojo.ManufactureOrderProcess;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鎺掍骇瀵瑰簲宸ュ簭 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-31 02:46:48
+ */
+public interface ManufactureOrderProcessService extends IService<ManufactureOrderProcess> {
+
+    void batchInsert(List<ManufactureOrderProcess> manufactureOrderProcessesDate);
+}
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/ManufactureOrderService.java b/production-server/src/main/java/com/yuanchu/mom/service/ManufactureOrderService.java
index 1690edd..d8ccf01 100644
--- a/production-server/src/main/java/com/yuanchu/mom/service/ManufactureOrderService.java
+++ b/production-server/src/main/java/com/yuanchu/mom/service/ManufactureOrderService.java
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yuanchu.mom.pojo.ManufactureOrder;
-import com.yuanchu.mom.pojo.dto.ManufactureOrderDto;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
@@ -31,16 +30,17 @@
 
     /**
      * 鏌ョ湅鎺掍骇璇︽儏
-     * @param manOrdId
+     * @param schedulingId
      * @return
      */
-    ManufactureOrderDto sePros(Integer manOrdId);
+    Map<String, Object> sePros(Integer schedulingId);
 
     /**
      * 涓嬭揪
-     * @param manOrdId
+     * @param manufactureOrderId 璁㈠崟Id
+     * @param schedulingId 鎺掍骇Id
      */
-    void down(Integer manOrdId);
+    void down(Integer manufactureOrderId, Integer schedulingId);
 
     /**
      * 鎵归噺鍒犻櫎
@@ -54,5 +54,12 @@
      * @return
      */
     List<Map<String, Object>> towTree();
+
+    /**
+     * 鍒ゆ柇杈撳叆鏁伴噺鏄惁瓒呭嚭
+     * @param manOrdId 璁㈠崟Id
+     * @param schedulingNumber 鐢ㄦ埛杈撳叆鏁伴噺
+     */
+    Integer checkScheduled(Integer manOrdId, Integer schedulingNumber);
 }
 
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/ManufactureSchedulingService.java b/production-server/src/main/java/com/yuanchu/mom/service/ManufactureSchedulingService.java
new file mode 100644
index 0000000..2372551
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/service/ManufactureSchedulingService.java
@@ -0,0 +1,25 @@
+package com.yuanchu.mom.service;
+
+import com.yuanchu.mom.pojo.ManufactureOrder;
+import com.yuanchu.mom.pojo.ManufactureScheduling;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鎺掍骇琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-31 11:54:28
+ */
+public interface ManufactureSchedulingService extends IService<ManufactureScheduling> {
+
+    List<Map<String, Object>> selectScheduling(Integer manOrdId);
+
+    List<Map<String, Object>> selectProduceTable(Integer manOrdId, String productName, String startTime, String endTime);
+
+    Map<String, Object> sePros(Integer schedulingId);
+}
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/ProductionPlanService.java b/production-server/src/main/java/com/yuanchu/mom/service/ProductionPlanService.java
deleted file mode 100644
index d9ee940..0000000
--- a/production-server/src/main/java/com/yuanchu/mom/service/ProductionPlanService.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.yuanchu.mom.service;
-
-
-import java.util.List;
-import java.util.Map;
-
-public interface ProductionPlanService {
-
-    /**
-     * 鏌ヨ鐢熶骇璁″垝鍒楄〃
-     * @param deviceId
-     * @param orderCode
-     * @param name
-     * @param startTime
-     * @param endTime
-     * @return
-     */
-    List<Map<String,Object>> selectAllPlan(Integer deviceId, String orderCode, String name, String startTime, String endTime);
-
-
-
-}
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualTechnologyServiceImpl.java b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualTechnologyServiceImpl.java
index 7b48b05..a3ce511 100644
--- a/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualTechnologyServiceImpl.java
+++ b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualTechnologyServiceImpl.java
@@ -1,16 +1,21 @@
 package com.yuanchu.mom.service.impl;
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.mapper.DeviceMapper;
 import com.yuanchu.mom.mapper.ManualTechnologyMapper;
 import com.yuanchu.mom.mapper.ManufactureOrderMapper;
-import com.yuanchu.mom.pojo.ManualTechnology;
-import com.yuanchu.mom.pojo.ManufactureOrder;
-import com.yuanchu.mom.pojo.Technology;
+import com.yuanchu.mom.pojo.*;
 import com.yuanchu.mom.pojo.dto.ManualTechnologyDto;
+import com.yuanchu.mom.pojo.dto.ManualTechnologyDto1;
 import com.yuanchu.mom.service.ManualTechnologyService;
+import com.yuanchu.mom.service.ManufactureOrderProcessService;
+import com.yuanchu.mom.service.ManufactureSchedulingService;
 import com.yuanchu.mom.service.TechnologyService;
 import com.yuanchu.mom.utils.MyUtil;
 import org.springframework.beans.BeanUtils;
@@ -22,6 +27,7 @@
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -43,36 +49,92 @@
     @Autowired
     private TechnologyService technologyService;
 
+    @Autowired
+    private ManufactureSchedulingService manufactureSchedulingService;
+
+    @Autowired
+    private ManufactureOrderProcessService manufactureOrderProcessService;
+
     //鎺掍骇-->鏌ョ湅
     @Override
     public List<Map<String, Object>> seleDatil(Integer manOrdId) {
-
         return manualTechnologyMapper.seleDatil(manOrdId);
     }
 
     //鎺掍骇-->鏇存柊
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void output(String date, Integer manufactureOrderId, Integer schedulingNumber, List<ManualTechnologyDto> manualTechnologyDtoList) throws ParseException {
-        // 鏌ヨ宸ヨ壓锛岀敤浜庡尮閰嶆瘡涓鍗曠殑宸ュ簭鍛ㄦ湡
-        LambdaQueryWrapper<Technology> wrapper = new LambdaQueryWrapper<>();
-        wrapper.select(Technology::getId, Technology::getProductionQuota);
-        List<Technology> technologies = technologyService.list(wrapper);
+    public void output(ManualTechnologyDto manualTechnologyDto) throws ParseException {
 
+        // 鏍规嵁鎺掍骇鏁伴噺璁$畻宸ヨ壓鍛ㄦ湡
+        List<ManufactureOrderProcess> manufactureOrderProcessesPeriod = matchingCycle(
+                manualTechnologyDto.getSchedulingNumber(),
+                manualTechnologyDto.getManOrdId(),
+                manualTechnologyDto.getOrderProcess());
+
+
+        // 鏍规嵁宸ュ簭鐢熶骇瀹氶鍖归厤鏃堕棿
+        List<ManufactureOrderProcess> manufactureOrderProcessesDate = datePeriodCalculate(
+                manualTechnologyDto.getDate(),
+                manufactureOrderProcessesPeriod);
+
+
+        // 娣诲姞涓�鏉℃帓浜ц褰曞埌manufacture_scheduling琛ㄦ牸锛岃繑鍥炰富閿甀d
+        Date endTime = manufactureOrderProcessesDate.get(manufactureOrderProcessesDate.size() - 1).getEndTime();
+        ManufactureScheduling manufactureScheduling = new ManufactureScheduling()
+                .setScheduled(manualTechnologyDto.getSchedulingNumber())
+                .setStartTime(DateUtil.parse(manualTechnologyDto.getDate()))
+                .setEndTime(endTime)
+                .setManufactureOrderId(manualTechnologyDto.getManOrdId())
+                .setGoState(0); // 0 琛ㄧず寰呬笅杈�
+        manufactureSchedulingService.save(manufactureScheduling);
+
+
+        // 灏嗘帓琛↖d鎻掑叆鍒癿anufactureOrderProcessesDate涓�, 寮�濮嬫壒閲忔彃鍏anufactureOrderProcesses琛ㄦ牸
+        manufactureOrderProcessesDate.forEach(i -> i.setManufactureSchedulingId(manufactureScheduling.getId()));
+        manufactureOrderProcessService.batchInsert(manufactureOrderProcessesDate);
+
+
+        // 鏇存柊璁㈠崟鐨勫凡鎺掍骇鏁伴噺
+        manufactureOrderMapper.updateManufacture(manualTechnologyDto.getManOrdId(), manualTechnologyDto.getSchedulingNumber());
+    }
+
+    @Override
+    public Integer updateTime(Integer technologyId, String startTime) {
+//        // Hutool 宸ュ叿绫昏绠楅棿闅斿皬鏃�
+//        DateTime startTime1 = DateUtil.parse(startTime);
+//        DateTime endTime1 = DateUtil.parse(endTime);
+//        long between = DateUtil.between(startTime1, endTime1, DateUnit.HOUR);
+//        // 鏇存柊
+//        LambdaUpdateWrapper<ManualTechnology> updateWrapper = Wrappers.<ManualTechnology>lambdaUpdate()
+//                .eq(ManualTechnology::getId, technologyId);
+//        return manualTechnologyMapper.update(new ManualTechnology(), updateWrapper);
+        return null;
+    }
+
+    // 鏍规嵁鎺掍骇鏁伴噺璁$畻宸ヨ壓鍛ㄦ湡
+    private List<ManufactureOrderProcess> matchingCycle(Integer schedulingNumber, Integer manOrdId, List<ManualTechnologyDto1> manualTechnologyDtoList){
+        // 鏌ヨ缂栧埗宸ヨ壓锛岀敤浜庡尮閰嶆瘡涓鍗曠殑宸ュ簭鍛ㄦ湡
+        LambdaQueryWrapper<ManualTechnology> queryWrapper = Wrappers.<ManualTechnology>lambdaQuery()
+                .eq(ManualTechnology::getManufactureOrderId, manOrdId);
+        List<ManualTechnology> technologies = manualTechnologyMapper.selectList(queryWrapper);
 
         //鍖归厤姣忎釜璁㈠崟鐨勫伐搴忓懆鏈�
-        List<ManualTechnology> manualTechnologies = manualTechnologyDtoList.stream().map(manualTechnologyDto -> {
-            ManualTechnology manualTechnology = new ManualTechnology();
-            BeanUtils.copyProperties(manualTechnologyDto, manualTechnology);
+        List<ManufactureOrderProcess> manufactureOrderProcessList = manualTechnologyDtoList.stream().map(manualTechnologyDto1 -> {
+            ManufactureOrderProcess manufactureOrderProcess = new ManufactureOrderProcess();
+            BeanUtils.copyProperties(manualTechnologyDto1, manufactureOrderProcess);
             technologies.forEach(i -> {
-                if (Objects.equals(manualTechnology.getTechnologyId(), i.getId())){
-                    manualTechnology.setPeriod((int) Math.ceil((double)schedulingNumber/i.getProductionQuota()));
+                if (Objects.equals(manufactureOrderProcess.getManualTechnologyId(), i.getId())){
+                    manufactureOrderProcess.setPeriod((int) Math.ceil((double)schedulingNumber/i.getProductionQuota()));
                 }
             });
-            return manualTechnology;
+            return manufactureOrderProcess;
         }).collect(Collectors.toList());
+        return manufactureOrderProcessList;
+    }
 
-
+    // 鏍规嵁宸ュ簭鐢熶骇瀹氶鍖归厤鏃堕棿
+    private List<ManufactureOrderProcess> datePeriodCalculate(String date, List<ManufactureOrderProcess> manualTechnologies) throws ParseException {
         // 璁$畻宸ュ簭鐨勫紑濮嬫棩鏈熶互鍙婄粨鏉熸棩鏈�
         DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
         Date parse = dateFormat.parse(date);
@@ -80,29 +142,21 @@
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(parse);
         //绗竴涓伐搴�
-        ManualTechnology manualTechnology = manualTechnologies.get(0);
+        ManufactureOrderProcess manualTechnology = manualTechnologies.get(0);
         calendar.add(Calendar.DATE, manualTechnology.getPeriod());
-
 
         manualTechnology.setStartTime(parse).setEndTime(calendar.getTime());
         //寰幆璧嬪�兼椂闂�
         for (int i = 0; i < manualTechnologies.size()-1 ; i++) {
             Calendar calendar1 = Calendar.getInstance();
             calendar1.setTime(manualTechnologies.get(i).getEndTime());
-            ManualTechnology technology = manualTechnologies.get(i + 1);
+            ManufactureOrderProcess technology = manualTechnologies.get(i + 1);
             calendar1.add(Calendar.DATE,1);
             technology.setStartTime(calendar1.getTime());
             calendar1.add(Calendar.DATE,technology.getPeriod());
             technology.setEndTime(calendar1.getTime());
         }
-
-
-        // 鏁版嵁澶勭悊瀹屾垚寮�濮嬫壒閲忔洿鏂癕ysql
-        manualTechnologyMapper.updateBatchManualTechnology(schedulingNumber, manualTechnologies);
-
-
-        // 宸ュ簭鏇存柊瀹屾瘯锛屾洿鏂拌鍗曠殑鐘舵�侊紝灏嗗叾鏇存柊涓哄凡鎺掍骇锛�1锛岃繕鏈夊緟涓嬭揪锛�0
-        manufactureOrderMapper.updateManufacture(manufactureOrderId, schedulingNumber);
+        return manualTechnologies;
     }
 }
 
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderProcessServiceImpl.java b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderProcessServiceImpl.java
new file mode 100644
index 0000000..cac0cbb
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderProcessServiceImpl.java
@@ -0,0 +1,30 @@
+package com.yuanchu.mom.service.impl;
+
+import com.yuanchu.mom.pojo.ManufactureOrderProcess;
+import com.yuanchu.mom.mapper.ManufactureOrderProcessMapper;
+import com.yuanchu.mom.service.ManufactureOrderProcessService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ * 鎺掍骇瀵瑰簲宸ュ簭 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-31 02:46:48
+ */
+@Service
+public class ManufactureOrderProcessServiceImpl extends ServiceImpl<ManufactureOrderProcessMapper, ManufactureOrderProcess> implements ManufactureOrderProcessService {
+
+    @Resource
+    private ManufactureOrderProcessMapper manufactureOrderProcessMapper;
+
+    @Override
+    public void batchInsert(List<ManufactureOrderProcess> manufactureOrderProcessesDate) {
+        manufactureOrderProcessMapper.insertBatchSomeColumn(manufactureOrderProcessesDate);
+    }
+}
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderServiceImpl.java b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderServiceImpl.java
index b5b0a77..d60aed4 100644
--- a/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderServiceImpl.java
+++ b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderServiceImpl.java
@@ -1,26 +1,25 @@
 package com.yuanchu.mom.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.yuanchu.mom.mapper.DeviceMapper;
 import com.yuanchu.mom.mapper.ManualTechnologyMapper;
 import com.yuanchu.mom.mapper.ManufactureOrderMapper;
-import com.yuanchu.mom.pojo.ManualTechnology;
 import com.yuanchu.mom.pojo.ManufactureOrder;
-import com.yuanchu.mom.pojo.dto.ManualTechnologyDto1;
-import com.yuanchu.mom.pojo.dto.ManufactureOrderDto;
+import com.yuanchu.mom.pojo.ManufactureScheduling;
 import com.yuanchu.mom.service.ManufactureOrderService;
-import com.yuanchu.mom.utils.MyUtil;
+import com.yuanchu.mom.service.ManufactureSchedulingService;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * 鐢熶骇璁㈠崟琛�(ManufactureOrder)琛ㄦ湇鍔″疄鐜扮被
@@ -37,8 +36,8 @@
     @Resource
     ManualTechnologyMapper manualTechnologyMapper;
 
-    @Resource
-    DeviceMapper deviceMapper;
+    @Autowired
+    private ManufactureSchedulingService manufactureSchedulingService;
 
     //鏌ヨ鐢熶骇璁㈠崟鐨勫垪琛�
     @Override
@@ -46,34 +45,50 @@
         return manufactureOrderMapper.selectAllManord(page,downTime,delTime,customerCode,type);
     }
 
-
     //鏌ョ湅鎺掍骇璇︽儏
     @Override
-    public ManufactureOrderDto sePros(Integer manOrdId) {
-        ManufactureOrderDto manufactureOrderDto = new ManufactureOrderDto();
+    public Map<String, Object> sePros(Integer schedulingId) {
         //鍩烘湰淇℃伅
-        ManufactureOrder manufactureOrder = manufactureOrderMapper.selectById(manOrdId);
-        BeanUtils.copyProperties(manufactureOrder,manufactureOrderDto);
+        Map<String, Object> manufactureOrder = manufactureSchedulingService.sePros(schedulingId);
         //璁″垝缂栧埗
-        List<ManualTechnology> manualTechnologies = manualTechnologyMapper.selectList(Wrappers.<ManualTechnology>query().eq("manufacture_order_id", manOrdId));
-        MyUtil.PrintLog(manualTechnologies.toString());
-
-//        List<ManualTechnologyDto1> manualTechnologyDto1s = manualTechnologies.stream().map(manualTechnology -> {
-//            ManualTechnologyDto1 manualTechnologyDto1 = new ManualTechnologyDto1();
-//            BeanUtils.copyProperties(manualTechnology, manualTechnologyDto1);
-//            manualTechnologyDto1.setMtechId(manualTechnology.getId());
-//            manualTechnologyDto1.setDeviceName(deviceMapper.selectById(manualTechnology.getDeviceId()).getName());
-//            return manualTechnologyDto1;
-//        }).collect(Collectors.toList());
-//        manufactureOrderDto.setMessage(manualTechnologyDto1s);
-        return manufactureOrderDto;
+        List<Map<String, Object>> mapList = manualTechnologyMapper.selectListTowTree(schedulingId);
+        manufactureOrder.put("message",mapList);
+        return manufactureOrder;
     }
 
     //涓嬭揪
     @Override
-    public void down(Integer manOrdId) {
-        ManufactureOrder manufactureOrder = new ManufactureOrder().setId(manOrdId).setGoState(1).setType(0);
-        manufactureOrderMapper.updateById(manufactureOrder);
+    public void down(Integer manufactureOrderId, Integer schedulingId) {
+        // 鍏堟洿鏂版帓浜�
+        LambdaUpdateWrapper<ManufactureScheduling> updateWrapperScheduling = Wrappers.<ManufactureScheduling>lambdaUpdate()
+                .eq(ManufactureScheduling::getId, schedulingId)
+                .set(ManufactureScheduling::getGoState, 1);
+        manufactureSchedulingService.update(updateWrapperScheduling);
+
+
+        // 鐒跺悗鏇存柊璁㈠崟琛ㄧ殑鐘舵��
+        LambdaQueryWrapper<ManufactureScheduling> queryWrapper = Wrappers.<ManufactureScheduling>lambdaQuery()
+                .eq(ManufactureScheduling::getManufactureOrderId, manufactureOrderId)
+                .select(ManufactureScheduling::getGoState);
+        List<ManufactureScheduling> list = manufactureSchedulingService.list(queryWrapper);
+        boolean goStateAll = false;
+        for (int i = 0; i <= list.size() - 1; i++){
+            if (list.get(i).getGoState() == 0) {
+                goStateAll = true;
+                break;
+            }
+        }
+        LambdaUpdateWrapper<ManufactureOrder> updateWrapperOrder = new LambdaUpdateWrapper<>();
+        updateWrapperOrder.eq(ManufactureOrder::getId, manufactureOrderId);
+        // 濡傛灉鎺掍骇琛ㄤ腑鏈変竴涓槸寰呬笅杈撅紝閭d箞璁㈠崟琛ㄤ腑灏变负寰呬笅杈�
+        if (goStateAll){
+            // 寰呬笅杈�
+            updateWrapperOrder.set(ManufactureOrder::getGoState, 0);
+        } else {
+            // 宸蹭笅杈�
+            updateWrapperOrder.set(ManufactureOrder::getGoState, 1);
+        }
+        manufactureOrderMapper.update(new ManufactureOrder(), updateWrapperOrder);
     }
 
     @Override
@@ -85,5 +100,18 @@
     public List<Map<String, Object>> towTree() {
         return manufactureOrderMapper.towTree();
     }
+
+    @Override
+    public Integer checkScheduled(Integer manOrdId, Integer schedulingNumber) {
+        LambdaQueryWrapper<ManufactureOrder> queryWrapper = Wrappers.<ManufactureOrder>lambdaQuery()
+                .eq(ManufactureOrder::getId, manOrdId)
+                .eq(ManufactureOrder::getState, 1)
+                .select(ManufactureOrder::getNumber, ManufactureOrder::getScheduledProduction);
+        ManufactureOrder manufactureOrder = manufactureOrderMapper.selectOne(queryWrapper);
+        if (ObjectUtils.isEmpty(manufactureOrder.getScheduledProduction())){
+            manufactureOrder.setScheduledProduction(0);
+        }
+        return manufactureOrder.getNumber() - (manufactureOrder.getScheduledProduction() + schedulingNumber);
+    }
 }
 
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureSchedulingServiceImpl.java b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureSchedulingServiceImpl.java
new file mode 100644
index 0000000..2165666
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureSchedulingServiceImpl.java
@@ -0,0 +1,43 @@
+package com.yuanchu.mom.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.yuanchu.mom.pojo.ManufactureScheduling;
+import com.yuanchu.mom.mapper.ManufactureSchedulingMapper;
+import com.yuanchu.mom.service.ManufactureSchedulingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鎺掍骇琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-31 11:54:28
+ */
+@Service
+public class ManufactureSchedulingServiceImpl extends ServiceImpl<ManufactureSchedulingMapper, ManufactureScheduling> implements ManufactureSchedulingService {
+
+    @Resource
+    private ManufactureSchedulingMapper manufactureSchedulingMapper;
+
+    @Override
+    public List<Map<String, Object>> selectScheduling(Integer manOrdId) {
+        return manufactureSchedulingMapper.selectScheduling(manOrdId);
+    }
+
+    @Override
+    public List<Map<String, Object>> selectProduceTable(Integer manOrdId, String productName, String startTime, String endTime) {
+        return manufactureSchedulingMapper.selectProduceTable(manOrdId, productName, startTime, endTime);
+    }
+
+    @Override
+    public Map<String, Object> sePros(Integer schedulingId) {
+        return manufactureSchedulingMapper.sePros(schedulingId);
+    }
+}
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/impl/ProductionPlanServiceImpl.java b/production-server/src/main/java/com/yuanchu/mom/service/impl/ProductionPlanServiceImpl.java
deleted file mode 100644
index 338bc74..0000000
--- a/production-server/src/main/java/com/yuanchu/mom/service/impl/ProductionPlanServiceImpl.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.yuanchu.mom.service.impl;
-
-import com.yuanchu.mom.mapper.ManualTechnologyMapper;
-import com.yuanchu.mom.mapper.ManufactureOrderMapper;
-import com.yuanchu.mom.service.ProductionPlanService;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.List;
-import java.util.Map;
-
-@Service
-public class ProductionPlanServiceImpl implements ProductionPlanService {
-
-    @Resource
-    ManufactureOrderMapper manufactureOrderMapper;
-
-    //鏌ヨ鐢熶骇璁″垝鍒楄〃
-    @Override
-    public List<Map<String, Object>> selectAllPlan(Integer deviceId, String orderCode, String name, String startTime, String endTime) {
-        return manufactureOrderMapper.selectAllPlan(deviceId,orderCode,name,startTime,endTime);
-    }
-}
diff --git a/production-server/src/main/resources/mapper/ManualTechnologyMapper.xml b/production-server/src/main/resources/mapper/ManualTechnologyMapper.xml
index 4613a5a..34626e7 100644
--- a/production-server/src/main/resources/mapper/ManualTechnologyMapper.xml
+++ b/production-server/src/main/resources/mapper/ManualTechnologyMapper.xml
@@ -1,37 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.yuanchu.mom.mapper.ManualTechnologyMapper">
-    <!--鎵归噺鏇存柊-->
-    <update id="updateBatchManualTechnology">
-        UPDATE mom_ocean.manual_technology
-        <trim prefix="set" suffixOverrides=",">
-            <trim prefix="device_id=case" suffix="end,">
-                <foreach collection="manualTechnologies" item="manualTechnologie">
-                    WHEN id =#{manualTechnologie.id} THEN #{manualTechnologie.deviceId}
-                </foreach>
-            </trim>
-            <trim prefix="start_time=case" suffix="end,">
-                <foreach collection="manualTechnologies" item="manualTechnologie">
-                    WHEN id =#{manualTechnologie.id} THEN #{manualTechnologie.startTime}
-                </foreach>
-            </trim>
-            <trim prefix="end_time=case" suffix="end,">
-                <foreach collection="manualTechnologies" item="manualTechnologie">
-                    WHEN id =#{manualTechnologie.id} THEN #{manualTechnologie.endTime}
-                </foreach>
-            </trim>
-            <trim prefix="scheduling_number=case" suffix="end,">
-                <foreach collection="manualTechnologies" item="manualTechnologie">
-                    WHEN id =#{manualTechnologie.id} THEN #{schedulingNumber}
-                </foreach>
-            </trim>
-        </trim>
-        <where>
-            <foreach collection="manualTechnologies" separator="or" item="manualTechnologie">
-                id =#{manualTechnologie.id}
-            </foreach>
-        </where>
-    </update>
 
     <resultMap id="seleDatilMap" type="map">
         <id property="lable" column="techfather"/>
@@ -42,7 +11,6 @@
         <id property="lable" column="techname"/>
         <result property="id" column="id"/>
         <result property="deviceGroup" column="device_group"/>
-        <result property="deviceName" column="name"/>
         <result property="technologyId" column="manufacture_order_id"/>
     </resultMap>
 
@@ -50,12 +18,31 @@
         select manual_technology.id,
                techfather,
                techname,
-               device_group,
-               name,
-               manufacture_order_id
+               device_group
         from mom_ocean.manual_technology
-                 left join mom_ocean.device
-                           on device.id = device_id
         where manufacture_order_id = #{manOrdId}
     </select>
+
+    <resultMap id="selectListTowTreeFirstMap" type="map">
+        <id property="techfather" column="techfather"/>
+        <collection property="children" javaType="list" resultMap="selectListTowTreeSecondMap"/>
+    </resultMap>
+
+    <resultMap id="selectListTowTreeSecondMap" type="map">
+        <id property="id" column="id"/>
+        <result property="techname" column="techname"/>
+        <result property="deviceName" column="name"/>
+        <result property="startTime" column="start_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="period" column="period"/>
+    </resultMap>
+    <select id="selectListTowTree" resultMap="selectListTowTreeFirstMap">
+        SELECT p.`id`, t.`techfather`, t.`techname`, d.`name`, DATE_FORMAT(p.`start_time`, '%Y-%m-%d') start_time,
+               DATE_FORMAT(p.`end_time`, '%Y-%m-%d') end_time, p.`period`
+        FROM manufacture_order_process p
+                 LEFT JOIN device d ON d.`id` = p.`device_id`
+                 LEFT JOIN manual_technology t ON t.`id` = p.`manual_technology_id`
+        WHERE p.`state` = 1
+          AND p.`manufacture_scheduling_id` = #{schedulingId}
+    </select>
 </mapper>
diff --git a/production-server/src/main/resources/mapper/ManufactureOrderMapper.xml b/production-server/src/main/resources/mapper/ManufactureOrderMapper.xml
index 945a533..3cbca96 100644
--- a/production-server/src/main/resources/mapper/ManufactureOrderMapper.xml
+++ b/production-server/src/main/resources/mapper/ManufactureOrderMapper.xml
@@ -12,10 +12,10 @@
         specifications,
         unit,
         number,
-        DATE_FORMAT(downTime, '%Y-%m-%d') '涓嬪崟鏃ユ湡',
-        DATE_FORMAT(delTime, '%Y-%m-%d') '浜よ揣鏃ユ湡',
+        scheduled_production,
+        DATE_FORMAT(downTime, '%Y-%m-%d') downTime,
+        DATE_FORMAT(delTime, '%Y-%m-%d') delTime,
         go_state,
-        type
         from mom_ocean.manufacture_order
         where state=1
         <if test="downTime!=null and downTime!=''">
@@ -30,36 +30,6 @@
         <if test="type!=null">
             and type=#{type}
         </if>
-    </select>
-    <!--鏌ョ湅鐢熶骇璁″垝-->
-    <select id="selectAllPlan" resultType="java.util.Map">
-        select order_code,
-               name,
-               specifications,
-               unit,
-               number,
-               proname,
-               saleman,
-               downman,
-               techname,
-               DATE_FORMAT(start_time, '%Y-%m-%d') '璁″垝寮�濮嬫棩鏈�',
-               DATE_FORMAT(end_time, '%Y-%m-%d') '璁″垝缁撴潫鏃ユ湡'
-        from mom_ocean.manual_technology mt
-                 left join mom_ocean.manufacture_order mo
-                           on mt.manufacture_order_id = mo.id
-        where mo.state=1
-        and go_state=1
-        and device_id=#{deviceId}
-        <if test="orderCode!=null and orderCode!=''">
-            and order_code like concat('%',#{orderCode},'%')
-        </if>
-        <if test="startTime!=null and startTime!=''">
-            and DATE_FORMAT(start_time, '%Y-%m-%d')=#{startTime}
-        </if>
-        <if test="endTime!=null and endTime!=''">
-            and DATE_FORMAT(end_time, '%Y-%m-%d')=#{endTime}
-        </if>
-        order by start_time
     </select>
 
     <update id="deleteManufacture">
@@ -89,7 +59,7 @@
 
     <update id="updateManufacture">
         UPDATE manufacture_order m
-        SET m.`type` = 1, m.`go_state` = 0, m.`scheduled_production` = m.`scheduled_production` + #{schedulingNumber}
+        SET m.`go_state` = 0, m.`scheduled_production` = IFNULL(m.`scheduled_production`, 0) + #{schedulingNumber}
         where m.id = #{manufactureOrderId}
     </update>
 </mapper>
diff --git a/production-server/src/main/resources/mapper/ManufactureOrderProcessMapper.xml b/production-server/src/main/resources/mapper/ManufactureOrderProcessMapper.xml
new file mode 100644
index 0000000..6a3a0d1
--- /dev/null
+++ b/production-server/src/main/resources/mapper/ManufactureOrderProcessMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yuanchu.mom.mapper.ManufactureOrderProcessMapper">
+
+</mapper>
diff --git a/production-server/src/main/resources/mapper/ManufactureSchedulingMapper.xml b/production-server/src/main/resources/mapper/ManufactureSchedulingMapper.xml
new file mode 100644
index 0000000..0e292c0
--- /dev/null
+++ b/production-server/src/main/resources/mapper/ManufactureSchedulingMapper.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yuanchu.mom.mapper.ManufactureSchedulingMapper">
+
+    <select id="selectScheduling" resultType="map">
+        SELECT m.`id`, DATE_FORMAT(m.`create_time`, '%Y-%m-%d') createTime,
+               DATE_FORMAT(m.`end_time`, '%Y-%m-%d') endTime, m.`scheduled`, m.`go_state`,
+               DATE_FORMAT(m.`start_time`, '%Y-%m-%d') startTime
+        FROM manufacture_scheduling m
+        WHERE m.`manufacture_order_id` = 3
+          AND m.`state` = 1
+    </select>
+
+    <select id="selectProduceTable" resultType="map">
+        SELECT m.`id`, o.`name`, o.`specifications`, o.`unit`, m.`scheduled`, o.`proname`, o.`saleman`,
+               o.`downman`, DATE_FORMAT(m.`start_time`, '%Y-%m-%d') startTime, DATE_FORMAT(m.`end_time`, '%Y-%m-%d') endTime
+        FROM manufacture_scheduling m, manufacture_order o
+        WHERE m.`manufacture_order_id` = #{manOrdId}
+          AND m.`manufacture_order_id` = o.`id`
+          AND m.`state` = 1
+        <if test="productName != null and productName != ''">
+            AND o.`name` LIKE CONCAT('%', #{productName}, '%')
+        </if>
+        <if test="startTime != null and startTime != ''">
+            AND m.`start_time` >= #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND m.`end_time` <![CDATA[ <= ]]> #{endTime}
+        </if>
+    </select>
+
+    <select id="sePros" resultType="map">
+        SELECT s.`scheduled`, o.`order_code`, o.`customer_code`, o.`name`, o.`specifications`, o.`unit`,
+               DATE_FORMAT(o.`downTime`, '%Y-%m-%d') downTime, DATE_FORMAT(o.`delTime`, '%Y-%m-%d') delTime
+        FROM manufacture_scheduling s, manufacture_order o
+        WHERE s.`manufacture_order_id` = o.`id`
+          AND s.`id` = #{schedulingId}
+    </select>
+</mapper>
diff --git a/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java b/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java
index 48f2da3..eff1884 100644
--- a/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java
+++ b/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java
@@ -19,7 +19,7 @@
     public static String database_username = "user";
     public static String database_password= "123456";
     public static String author = "姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃";
-    public static String model_name = "/inspect-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲
+    public static String model_name = "/production-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲
     public static String setParent = "com.yuanchu.mom"; // 鍖呰矾寰�
     public static void main(String[] args) {
         String projectPath = System.getProperty("user.dir");
diff --git a/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java b/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java
index 19beec6..0e4b42b 100644
--- a/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java
+++ b/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java
@@ -1,20 +1,28 @@
 package com.yuanchu.mom;
 
-import com.yuanchu.mom.mapper.ManufactureOrderMapper;
-import com.yuanchu.mom.utils.MyUtil;
+import com.yuanchu.mom.mapper.ManualTechnologyMapper;
+import com.yuanchu.mom.pojo.ManualTechnology;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
+
 
 @SpringBootTest
 class SystemRunApplicationTest {
 
     @Resource
-    private ManufactureOrderMapper manufactureOrderMapper;
+    private ManualTechnologyMapper manualTechnologyMapper;
     @Test
     void contextLoads() {
+        ManualTechnology manualTechnology = new ManualTechnology()
+                .setTechname("tets")
+                .setTechfather("test")
+                .setDeviceGroup("grop")
+                .setDeviceId(1)
+                .setTechnologyId(2)
+                .setManufactureOrderId(1)
+                .setSchedulingNumber(12);
+        manualTechnologyMapper.insert(manualTechnology);
     }
 }

--
Gitblit v1.9.3