From 91b2da2c3a42656e842f7c9e0c4af6aa02dbaa3a Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期一, 04 九月 2023 09:23:29 +0800
Subject: [PATCH] MOM系统-9-04 生产报工

---
 system-run/src/main/resources/application-dev.yml                                                    |    4 
 production-server/src/main/java/com/yuanchu/mom/service/ManufactureSchedulingService.java            |    2 
 production-server/src/main/java/com/yuanchu/mom/controller/ProductionPlanController.java             |   16 ++---
 production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderProcessServiceImpl.java |   40 +++++++++++--
 production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureSchedulingMapper.java              |    2 
 production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderServiceImpl.java        |    2 
 production-server/src/main/resources/mapper/ManufactureOrderProcessMapper.xml                        |   28 +++++++++
 production-server/src/main/resources/mapper/ManufactureSchedulingMapper.xml                          |    4 +
 production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureOrderProcessMapper.java            |    7 ++
 production-server/src/main/java/com/yuanchu/mom/controller/ProductionReportController.java           |   55 ++++++++++++++++++
 production-server/src/main/java/com/yuanchu/mom/service/ManufactureOrderProcessService.java          |    4 +
 production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureSchedulingServiceImpl.java   |    5 +
 12 files changed, 148 insertions(+), 21 deletions(-)

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 00b2450..2b77136 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
@@ -46,7 +46,6 @@
         return Result.success(manufactureOrderService.sePros(schedulingId));
     }
 
-
     @ApiOperation(value = "鏍规嵁鐢熶骇璁㈠崟鏌ョ湅鐢熶骇璁″垝")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "manOrdId", value = "鐢熶骇璁㈠崟id", dataTypeClass = Integer.class, required = true),
@@ -59,19 +58,16 @@
         return Result.success(manufactureSchedulingService.selectProduceTable(manOrdId, productName, startTime, endTime));
     }
 
-
-    @ApiOperation(value = "鏌ョ湅鎺掍骇璇︽儏-->澶辩劍淇敼鏃堕棿")
+    @ApiOperation(value = "鏌ョ湅鎺掍骇璇︽儏-->鍒囨崲淇敼鏃堕棿涓庡懆鏈�")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "technologyId", value = "宸ュ簭Id", dataTypeClass = Integer.class, required = true),
             @ApiImplicitParam(name = "schedulingId", value = "鎺掍骇Id", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(name = "startTime", value = "寮�濮嬫椂闂�", dataTypeClass = String.class, required = true, dataType = "date")
+            @ApiImplicitParam(name = "startTime", value = "寮�濮嬫椂闂�", dataTypeClass = String.class, required = true, dataType = "date"),
+            @ApiImplicitParam(name = "period", value = "鍛ㄦ湡", dataTypeClass = Integer.class, required = true)
     })
     @GetMapping("/update_time")
-    public Result<?> updateTime(Integer technologyId, Integer schedulingId, String startTime) {
-        Integer isUpdateSuccess = manufactureOrderProcessService.updateTime(technologyId, schedulingId, startTime);
-        if (isUpdateSuccess >= 1) {
-            return Result.success("鏇存柊鎴愬姛锛�");
-        }
-        return Result.fail("鏇存柊澶辫触锛�");
+    public Result<?> updateTime(Integer technologyId, Integer schedulingId, String startTime, Integer period) {
+        manufactureOrderProcessService.updateTime(technologyId, schedulingId, startTime, period);
+        return Result.success("鏇存柊鎴愬姛锛�");
     }
 }
diff --git a/production-server/src/main/java/com/yuanchu/mom/controller/ProductionReportController.java b/production-server/src/main/java/com/yuanchu/mom/controller/ProductionReportController.java
new file mode 100644
index 0000000..9f55189
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/controller/ProductionReportController.java
@@ -0,0 +1,55 @@
+package com.yuanchu.mom.controller;
+
+import com.yuanchu.mom.service.ManufactureSchedulingService;
+import com.yuanchu.mom.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 鐢熶骇璁㈠崟琛�(ManufactureOrder)琛ㄦ帶鍒跺眰
+ *
+ * @author XiaoRuby
+ * @since 2023-09-3 14:16:24
+ */
+@Api(tags = "鐢熶骇绠$悊-->鐢熶骇鎶ュ伐")
+@RestController
+@RequestMapping("/productionReport")
+public class ProductionReportController {
+    @Autowired
+    private ManufactureSchedulingService manufactureSchedulingService;
+
+    @ApiOperation(value = "鏌ヨ鐢熶骇璁㈠崟鍒楄〃")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "pageSize", value = "椤垫暟", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "countSize", value = "鏉℃暟/椤�", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "customerName", value = "瀹㈡埛鍚嶇О", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "orderNumber", value = "璁㈠崟缂栧彿", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "productName", value = "浜у搧鍚嶇О", dataTypeClass = String.class)
+    })
+    @GetMapping("/selectAllManord")
+    public Result<?> selectAllManord(Integer pageSize, Integer countSize, String customerName, String orderNumber, String productName, Integer type) {
+
+        return Result.success();
+    }
+
+    @ApiOperation(value = "鐐瑰嚮鏂板-->鏌ヨ鎵�鏈夋帓浜ц鍒�")
+    @PostMapping("add_show_scheduling")
+    public Result<?> reportSelectScheduling() {
+        manufactureSchedulingService.reportSelectScheduling();
+        return Result.success();
+    }
+
+    @ApiOperation(value = "鎶ュ伐澧炲姞")
+    @PostMapping("add")
+    public Result<?> productionReportAdd() {
+
+        return Result.success();
+    }
+}
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
index 2ec6f20..2b05edb 100644
--- a/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureOrderProcessMapper.java
+++ b/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureOrderProcessMapper.java
@@ -2,7 +2,9 @@
 
 import com.yuanchu.mom.mybatis_config.MyBaseMapper;
 import com.yuanchu.mom.pojo.ManufactureOrderProcess;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -14,4 +16,7 @@
  */
 public interface ManufactureOrderProcessMapper extends MyBaseMapper<ManufactureOrderProcess> {
 
+    Integer updateTime(List<ManufactureOrderProcess> list);
+
+    Date selectSchedulingStartTime(Integer schedulingId);
 }
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
index a8fd83c..dabe360 100644
--- a/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureSchedulingMapper.java
+++ b/production-server/src/main/java/com/yuanchu/mom/mapper/ManufactureSchedulingMapper.java
@@ -21,4 +21,6 @@
     List<Map<String, Object>> selectProduceTable(Integer manOrdId, String productName, String startTime, String endTime);
 
     Map<String, Object> sePros(Integer schedulingId);
+
+    List<Map<String, Object>> reportSelectScheduling();
 }
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
index 6481410..223870b 100644
--- a/production-server/src/main/java/com/yuanchu/mom/service/ManufactureOrderProcessService.java
+++ b/production-server/src/main/java/com/yuanchu/mom/service/ManufactureOrderProcessService.java
@@ -2,6 +2,7 @@
 
 import com.yuanchu.mom.pojo.ManufactureOrderProcess;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -22,5 +23,6 @@
      * @param startTime 寮�濮嬫椂闂�
      * @return
      */
-    Integer updateTime(Integer technologyId, Integer schedulingId, String startTime);
+    @Transactional(rollbackFor = Exception.class)
+    void updateTime(Integer technologyId, Integer schedulingId, String startTime, Integer period);
 }
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
index 2372551..b28d7d3 100644
--- a/production-server/src/main/java/com/yuanchu/mom/service/ManufactureSchedulingService.java
+++ b/production-server/src/main/java/com/yuanchu/mom/service/ManufactureSchedulingService.java
@@ -22,4 +22,6 @@
     List<Map<String, Object>> selectProduceTable(Integer manOrdId, String productName, String startTime, String endTime);
 
     Map<String, Object> sePros(Integer schedulingId);
+
+    List<Map<String, Object>> reportSelectScheduling();
 }
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
index a74f557..e1f426a 100644
--- 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
@@ -2,12 +2,18 @@
 
 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.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.yuanchu.mom.pojo.ManufactureOrderProcess;
 import com.yuanchu.mom.mapper.ManufactureOrderProcessMapper;
+import com.yuanchu.mom.pojo.ManufactureScheduling;
 import com.yuanchu.mom.service.ManufactureOrderProcessService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.service.ManufactureSchedulingService;
 import com.yuanchu.mom.utils.MyUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -29,22 +35,32 @@
     @Resource
     private ManufactureOrderProcessMapper manufactureOrderProcessMapper;
 
+    @Autowired
+    private ManufactureSchedulingService manufactureSchedulingService;
+
     @Override
     public void batchInsert(List<ManufactureOrderProcess> manufactureOrderProcessesDate) {
         manufactureOrderProcessMapper.insertBatchSomeColumn(manufactureOrderProcessesDate);
     }
 
     @Override
-    public Integer updateTime(Integer technologyId, Integer schedulingId, String startTime) {
-//        // Hutool 宸ュ叿绫昏绠楅棿闅斿皬鏃�
+    public void updateTime(Integer technologyId, Integer schedulingId, String startTime, Integer period) {
+        // 鍏堟洿鏂板懆鏈�
+        LambdaUpdateWrapper<ManufactureOrderProcess> updateWrapper = Wrappers.<ManufactureOrderProcess>lambdaUpdate()
+                .eq(ManufactureOrderProcess::getId, technologyId)
+                .set(ManufactureOrderProcess::getPeriod, period);
+        manufactureOrderProcessMapper.update(new ManufactureOrderProcess(), updateWrapper);
+
+
+        // 濡傛灉鍛ㄦ湡鏇存柊瀹屾垚锛屾牴鎹帓浜d鏌ヨ鎵�鏈夌殑宸ュ簭Id涓庢瘡閬撳伐搴忓懆鏈燂紝缁忚繃澶勭悊鐒跺悗鎵归噺鏇存柊寮�濮嬫椂闂翠笌缁撴潫鏃堕棿
+        // Hutool 宸ュ叿绫昏绠楅棿闅斿皬鏃�
         Date startTime1 = DateUtil.parse(startTime);
         // 鏍规嵁鎺掍骇Id鏌ヨ鎵�鏈夊搴旂殑宸ュ簭鏁版嵁
         LambdaQueryWrapper<ManufactureOrderProcess> queryWrapper = Wrappers.<ManufactureOrderProcess>lambdaQuery()
                 .eq(ManufactureOrderProcess::getManufactureSchedulingId, schedulingId)
                 .select(ManufactureOrderProcess::getId, ManufactureOrderProcess::getPeriod);
         List<ManufactureOrderProcess> list = manufactureOrderProcessMapper.selectList(queryWrapper);
-
-        //
+        // 寮�濮嬪鐞嗘棩鏈�
         for (int i = 0; i < list.size(); i++) {
             if (Objects.equals(list.get(i).getId(), technologyId)){
                 list.get(i).setStartTime(startTime1);
@@ -58,8 +74,18 @@
                 break;
             }
         }
-        MyUtil.PrintLog(list.toString());
-        return null;
-//        return manufactureOrderProcessMapper.updateTime(list);
+        manufactureOrderProcessMapper.updateTime(list);
+
+
+        // 濡傛灉鎵归噺鏇存柊鏃堕棿鎴愬姛锛屽紑濮嬫洿鏂版帓浜ц〃涓殑寮�濮嬫椂闂翠笌缁撴潫鏃堕棿
+        // 鑾峰彇宸ヨ壓鐨勮鍒掑紑濮嬫椂闂�
+        Date startDate = manufactureOrderProcessMapper.selectSchedulingStartTime(schedulingId);
+        // 鑾峰彇宸ヨ壓鐨勬渶鏅氬畬鎴愭椂闂�
+        Date endDate = list.get(list.size() - 1).getEndTime();
+        LambdaUpdateWrapper<ManufactureScheduling> updateWrapper1 = Wrappers.<ManufactureScheduling>lambdaUpdate()
+                .eq(ManufactureScheduling::getId, schedulingId)
+                .set(ManufactureScheduling::getStartTime, startDate)
+                .set(ManufactureScheduling::getEndTime, endDate);
+        manufactureSchedulingService.update(new ManufactureScheduling(), updateWrapper1);
     }
 }
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 d60aed4..b99ce24 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
@@ -13,6 +13,7 @@
 import com.yuanchu.mom.pojo.ManufactureScheduling;
 import com.yuanchu.mom.service.ManufactureOrderService;
 import com.yuanchu.mom.service.ManufactureSchedulingService;
+import com.yuanchu.mom.utils.MyUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -50,6 +51,7 @@
     public Map<String, Object> sePros(Integer schedulingId) {
         //鍩烘湰淇℃伅
         Map<String, Object> manufactureOrder = manufactureSchedulingService.sePros(schedulingId);
+        MyUtil.PrintLog(manufactureOrder.toString());
         //璁″垝缂栧埗
         List<Map<String, Object>> mapList = manualTechnologyMapper.selectListTowTree(schedulingId);
         manufactureOrder.put("message",mapList);
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
index 2165666..803e7d4 100644
--- 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
@@ -40,4 +40,9 @@
     public Map<String, Object> sePros(Integer schedulingId) {
         return manufactureSchedulingMapper.sePros(schedulingId);
     }
+
+    @Override
+    public List<Map<String, Object>> reportSelectScheduling() {
+        return manufactureSchedulingMapper.reportSelectScheduling();
+    }
 }
diff --git a/production-server/src/main/resources/mapper/ManufactureOrderProcessMapper.xml b/production-server/src/main/resources/mapper/ManufactureOrderProcessMapper.xml
index 6a3a0d1..9d64c2c 100644
--- a/production-server/src/main/resources/mapper/ManufactureOrderProcessMapper.xml
+++ b/production-server/src/main/resources/mapper/ManufactureOrderProcessMapper.xml
@@ -2,4 +2,32 @@
 <!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">
 
+    <update id="updateTime" parameterType="integer">
+        UPDATE manufacture_order_process p
+        <trim prefix="set" suffixOverrides=",">
+            <trim prefix="start_time =case" suffix="end,">
+                <foreach collection="list" item="list" index="index">
+                    WHEN p.id=#{list.id} THEN #{list.startTime}
+                </foreach>
+            </trim>
+            <trim prefix="end_time =case" suffix="end,">
+                <foreach collection="list" item="list" index="index">
+                    WHEN p.id=#{list.id} THEN #{list.endTime}
+                </foreach>
+            </trim>
+        </trim>
+        WHERE p.id in
+        <foreach collection="list" item="list" index="index" separator="," open="(" close=")">
+            <if test="list.startTime != null and list.endTime != null">
+                #{list.id, jdbcType=BIGINT}
+            </if>
+        </foreach>
+    </update>
+
+    <select id="selectSchedulingStartTime" resultType="date">
+        SELECT DATE_FORMAT(p.`start_time`, '%Y-%m-%d')
+        FROM manufacture_order_process p
+        WHERE p.`manufacture_scheduling_id` = #{schedulingId}
+            LIMIT 1
+    </select>
 </mapper>
diff --git a/production-server/src/main/resources/mapper/ManufactureSchedulingMapper.xml b/production-server/src/main/resources/mapper/ManufactureSchedulingMapper.xml
index c837fdb..fbb0c11 100644
--- a/production-server/src/main/resources/mapper/ManufactureSchedulingMapper.xml
+++ b/production-server/src/main/resources/mapper/ManufactureSchedulingMapper.xml
@@ -36,4 +36,8 @@
         WHERE s.`manufacture_order_id` = o.`id`
           AND s.`id` = #{schedulingId}
     </select>
+
+    <select id="reportSelectScheduling" resultType="map">
+
+    </select>
 </mapper>
diff --git a/system-run/src/main/resources/application-dev.yml b/system-run/src/main/resources/application-dev.yml
index 6af638d..f6f3fa1 100644
--- a/system-run/src/main/resources/application-dev.yml
+++ b/system-run/src/main/resources/application-dev.yml
@@ -34,7 +34,7 @@
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     driverClassName: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.110.209:3306/mom_ocean?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
+    url: jdbc:mysql://192.168.191.113:3306/mom_ocean?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
     username: user
     password: 123456
     druid:
@@ -59,7 +59,7 @@
     # redis鏁版嵁搴撶储寮�(榛樿涓�0)锛屾垜浠娇鐢ㄧ储寮曚负3鐨勬暟鎹簱锛岄伩鍏嶅拰鍏朵粬鏁版嵁搴撳啿绐�
     database: 0
     # redis鏈嶅姟鍣ㄥ湴鍧�锛堥粯璁や负localhost锛�
-    host: 192.168.110.209
+    host: 192.168.191.113
     # redis绔彛锛堥粯璁や负6379锛�
     port: 6379
     # redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級

--
Gitblit v1.9.3