From 05d42506f6eda85cc93060b1b4d6b779061bf24a Mon Sep 17 00:00:00 2001
From: cl <418351270@qq.com>
Date: 星期一, 15 一月 2024 18:27:27 +0800
Subject: [PATCH] 生成

---
 jcdm-ui/src/views/main/om/productionOrde/index.vue                                                     |  129 +++++++++++++++++++------------
 jcdm-ui/src/api/main/om/productionOrde/productionOrde.js                                               |    9 ++
 jcdm-ui/src/api/main/bs/orderScheduling/orderScheduling.js                                             |    2 
 jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/domain/OmProductionOrdeInfo.java               |   22 +++++
 jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java |   31 +++++++
 5 files changed, 143 insertions(+), 50 deletions(-)

diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
index 44858ae..7e9648d 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
@@ -2,9 +2,13 @@
 
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
+
+import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
+import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService;
 import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
 import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
 import com.jcdm.main.webservice.service.ReceivingServices;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -34,6 +38,9 @@
 {
     @Autowired
     private IOmProductionOrdeInfoService omProductionOrdeInfoService;
+
+    @Autowired
+    private IBsOrderSchedulingService bsOrderSchedulingService;
 
     /**
      * 鏌ヨ鐢熶骇宸ュ崟鍒楄〃
@@ -82,6 +89,30 @@
     }
 
     /**
+     * 鏂板鐢熶骇宸ュ崟
+     */
+    @PostMapping("/orderSchedulingForBoxCode")
+    public AjaxResult addOrderSchedulingForBoxCode(@RequestBody OmProductionOrdeInfo omProductionOrdeInfo)
+    {
+        Integer startCode = Integer.parseInt(omProductionOrdeInfo.getStartCode());//寮�濮嬬紪鍙�
+        Integer planQty = Math.toIntExact(omProductionOrdeInfo.getPlanQty());//璁″垝鏁伴噺
+        String dateTimeRule = omProductionOrdeInfo.getDateTimeRule();
+
+        for(int i=0;i<planQty;i++){
+            BsOrderScheduling bsOrderScheduling = new BsOrderScheduling();
+            bsOrderScheduling.setOrderNo(omProductionOrdeInfo.getWorkOrderNo());
+            bsOrderScheduling.setModel(omProductionOrdeInfo.getTypeZ());
+            bsOrderScheduling.setEngineNo(omProductionOrdeInfo.getTypeZ() + " "+dateTimeRule+ StringUtils.leftPad(String.valueOf(startCode),3, "0"));
+            bsOrderScheduling.setStatus("1");
+            bsOrderSchedulingService.insertBsOrderScheduling(bsOrderScheduling);
+            startCode ++;
+        }
+
+        omProductionOrdeInfo.setOrderStatus("2");//鏇存柊宸ュ崟鐘舵��
+        return toAjax(omProductionOrdeInfoService.updateOmProductionOrdeInfo(omProductionOrdeInfo));
+    }
+
+    /**
      * 淇敼鐢熶骇宸ュ崟
      */
     @PreAuthorize("@ss.hasPermi('om:productionOrde:edit')")
diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/domain/OmProductionOrdeInfo.java b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/domain/OmProductionOrdeInfo.java
index 88409e3..f0307dd 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/domain/OmProductionOrdeInfo.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/domain/OmProductionOrdeInfo.java
@@ -164,6 +164,28 @@
 
     private String flag;
 
+
+
+    private String dateTimeRule;
+    private String startCode;
+
+
+    public String getDateTimeRule() {
+        return dateTimeRule;
+    }
+
+    public void setDateTimeRule(String dateTimeRule) {
+        this.dateTimeRule = dateTimeRule;
+    }
+
+    public String getStartCode() {
+        return startCode;
+    }
+
+    public void setStartCode(String startCode) {
+        this.startCode = startCode;
+    }
+
     /** 鐢熶骇閫氱煡鍗曞彿 */
     @Excel(name = "鐢熶骇閫氱煡鍗曞彿")
     private String productionNotice;
diff --git a/jcdm-ui/src/api/main/bs/orderScheduling/orderScheduling.js b/jcdm-ui/src/api/main/bs/orderScheduling/orderScheduling.js
index 4129e13..8727d5c 100644
--- a/jcdm-ui/src/api/main/bs/orderScheduling/orderScheduling.js
+++ b/jcdm-ui/src/api/main/bs/orderScheduling/orderScheduling.js
@@ -17,6 +17,8 @@
   })
 }
 
+
+
 // 鏂板璁㈠崟鎺掍骇
 export function addOrderScheduling(data) {
   return request({
diff --git a/jcdm-ui/src/api/main/om/productionOrde/productionOrde.js b/jcdm-ui/src/api/main/om/productionOrde/productionOrde.js
index 76bdb18..5e64466 100644
--- a/jcdm-ui/src/api/main/om/productionOrde/productionOrde.js
+++ b/jcdm-ui/src/api/main/om/productionOrde/productionOrde.js
@@ -33,6 +33,15 @@
   })
 }
 
+// 鏂板璁㈠崟鎺掍骇
+export function addOrderSchedulingForBoxCode(data) {
+  return request({
+    url: '/om/productionOrde/orderSchedulingForBoxCode',
+    method: 'post',
+    data: data
+  })
+}
+
 // 鏂板鐢熶骇宸ュ崟
 export function addProductionOrde(data) {
   return request({
diff --git a/jcdm-ui/src/views/main/om/productionOrde/index.vue b/jcdm-ui/src/views/main/om/productionOrde/index.vue
index 4f1359c..97d14a7 100644
--- a/jcdm-ui/src/views/main/om/productionOrde/index.vue
+++ b/jcdm-ui/src/views/main/om/productionOrde/index.vue
@@ -345,39 +345,27 @@
         <el-form-item   label="绉嶇被" prop="typeZ">
           <el-input disabled v-model="form.typeZ"  placeholder="璇疯緭鍏ョ绫�" />
         </el-form-item>
-        <el-form-item label="骞翠唤" prop="year">
-          <el-select @change="changeYear(form.year)" v-model="form.year"  placeholder="璇烽�夋嫨骞翠唤" clearable>
-            <el-option v-for="dict in dict.type.year"
-                       :key="dict.value"
-                       :label="dict.label"
-                       :value="dict.value"/>
-          </el-select>
+        <el-form-item  label="鏃ユ湡" prop="dateTime">
+          <el-date-picker clearable
+                          v-model="form.dateTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="璇烽�夋嫨鏃ユ湡" @input="handleCodeChange">
+          </el-date-picker>
         </el-form-item>
-        <el-form-item label="鏈堜唤" prop="month">
-          <el-select @change="changeMonth(form.month)"  v-model="form.month"  placeholder="璇烽�夋嫨鏈堜唤" clearable>
-            <el-option v-for="dict in dict.type.month"
-                       :key="dict.value"
-                       :label="dict.label"
-                       :value="dict.value"/>
-          </el-select>
+        <el-form-item   label="鏃ユ湡瑙勫垯" prop="dateTimeRule" hidden>
+          <el-input  v-model="form.dateTimeRule"/>
         </el-form-item>
-        <el-form-item label="鏃ユ湡" prop="day">
-          <el-select @change="changeDay(form.day)" v-model="form.day"  placeholder="璇烽�夋嫨鏃ユ湡" clearable>
-            <el-option v-for="dict in dict.type.day"
-                       :key="dict.value"
-                       :label="dict.label"
-                       :value="dict.value"/>
-          </el-select>
+
+        <el-form-item   label="璧峰缂栧彿" prop="startCode">
+          <el-input  v-model="form.startCode"  placeholder="璇疯緭鍏ヨ捣濮嬬紪鍙�" @input="handleCodeChange"/>
         </el-form-item>
-        <el-form-item  label="鏁伴噺" prop="actualQty">
-          <el-input  disabled v-model="form.actualQty" placeholder="璇疯緭鍏ユ暟閲�" />
-        </el-form-item>
-        <el-form-item  label="缂栫爜" prop="adds">
-          <el-input  disabled v-model="form.adds"  placeholder="璇风敓鎴愮紪鐮�" />
+        <el-form-item   label="璧锋缂栧彿" prop="startEndCode">
+          <el-input disabled v-model="form.startEndCode"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="CreateSubmitForm">纭� 瀹�</el-button>
+        <el-button type="primary" @click="submitFormForBoxCode">纭� 瀹�</el-button>
         <el-button @click="cancel">鍙� 娑�</el-button>
       </div>
     </el-dialog>
@@ -391,8 +379,15 @@
 import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom";
 import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute";
 import ItemSelect  from "@/components/itemSelect/single.vue";
-import { getProductionNotice, upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
-import { listOrderScheduling, getOrderScheduling, delOrderScheduling, addOrderScheduling, updateOrderScheduling,generateNumbers } from "@/api/main/bs/orderScheduling/orderScheduling";
+import {  addOrderSchedulingForBoxCode,getProductionNotice, upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
+import {
+  listOrderScheduling,
+  getOrderScheduling,
+  delOrderScheduling,
+  addOrderScheduling,
+  updateOrderScheduling,
+  generateNumbers
+} from "@/api/main/bs/orderScheduling/orderScheduling";
 
 export default {
   name: "ProductionOrde",
@@ -493,6 +488,44 @@
     this.initWorkshop();
   },
   methods: {
+    //鏃ユ湡鎴栧紑濮嬬紪鍙疯緭鍏ユ椂
+    handleCodeChange(data){
+      let dateTime = this.form.dateTime;
+      let planQty = this.form.planQty;
+      let startCode = this.form.startCode
+      if(dateTime !== null && dateTime !== undefined
+        && startCode !== null && startCode !== undefined) {
+        let dateTimes = dateTime.split("-");
+        let year = dateTimes[0];
+        let month = dateTimes[1];
+        let day = dateTimes[2];
+        let dictYear = this.dict.type.year;
+        let dictMonth = this.dict.type.month;
+        let startCode = this.form.startCode
+        let dateTimeRule = "";
+
+        //骞�
+        for (let i = 0; i < dictYear.length; i++) {
+          if (year === dictYear[i].label) {
+            dateTimeRule = dictYear[i].value
+            // this.form.startEndCode = startEndCode;
+          }
+        }
+        //鏈�
+        for (let i = 0; i < dictMonth.length; i++) {
+          if (month === dictMonth[i].label) {
+            dateTimeRule = dateTimeRule + dictMonth[i].value;
+          }
+        }
+        //鏃�
+        dateTimeRule = dateTimeRule + day;
+        this.form.dateTimeRule = dateTimeRule;
+        //璧嬪�艰捣濮嬬紪鐮�
+        this.form.startEndCode = dateTimeRule + startCode + "----" + dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ;
+      }
+    },
+
+
     getProductionNotice(){
       getProductionNotice(this.queryParams).then(response => {
         this.$modal.msgSuccess("鎺ユ敹鎴愬姛");
@@ -673,7 +706,7 @@
         console.log(response.data)
         this.form = response.data;
         this.Createopen = true;
-        this.titleName = "鐢熸垚璁㈠崟";
+        this.titleName = "鐢熸垚绠变綋鏉$爜";
         // return Array.from({ length: parseInt(this.actualQty) }, (_, index) => index + 1);
       });
       this.$modal.msgSuccess(Row.actualQty);
@@ -712,6 +745,22 @@
         }
       });
     },
+
+    /** 鐢熸垚绠变綋鏉$爜鎻愪氦鎸夐挳 */
+    submitFormForBoxCode() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            addOrderSchedulingForBoxCode(this.form).then(response => {
+              this.$modal.msgSuccess("淇濆瓨鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
       const ids = row.id || this.ids;
@@ -727,26 +776,6 @@
       this.download('om/productionOrde/export', {
         ...this.queryParams
       }, `productionOrde_${new Date().getTime()}.xlsx`)
-    },
-    /** 鎻愪氦鎸夐挳 */
-    CreateSubmitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.orderNumber != null) {
-            updateOrderScheduling(this.form).then(response => {
-              this.$modal.msgSuccess("淇敼鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addOrderScheduling(this.form).then(response => {
-              this.$modal.msgSuccess("鏂板鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
     },
 
   }

--
Gitblit v1.9.3