695593266@qq.com 10 місяців тому
батько
коміт
b315f13f8a

+ 108 - 9
src/api/aps/index.js

@@ -3,7 +3,7 @@ import request from '@/utils/request';
 /**
  * aps计划工单
  */
-export async function getList (data) {
+export async function getList(data) {
   const res = await request.post('/aps/productionplan/page', data);
   if (res.data.code == 0) {
     return res.data.data;
@@ -13,7 +13,7 @@ export async function getList (data) {
 /**
  * 工单发布
  */
-export async function getDeviceList ({ productionId }) {
+export async function getDeviceList({ productionId }) {
   const res = await request.get(
     `/aps/batchingworkorder/getDeviceList/${productionId}`
   );
@@ -24,8 +24,10 @@ export async function getDeviceList ({ productionId }) {
 }
 
 // 生产计划添加工单列表
-export async function getPlanDeviceList ({ produceVersionId }) {
-  const res = await request.get(`/aps/workorder/getDeviceList/${produceVersionId}`);
+export async function getPlanDeviceList({ produceVersionId }) {
+  const res = await request.get(
+    `/aps/workorder/getDeviceList/${produceVersionId}`
+  );
   if (res.data.code == 0) {
     return res.data.data;
   }
@@ -40,17 +42,19 @@ export async function routeList(params) {
 }
 // 工序
 export async function getProduceTaskList(params) {
-  const res = await request.post('/main/producerouting/taskinstance/page',params);
+  const res = await request.post(
+    '/main/producerouting/taskinstance/page',
+    params
+  );
   if (res.data.code == 0) {
     return res.data.data;
   }
 }
 
-
 /**
  * 生产订单
  */
- export async function workOrder(params) {
+export async function workOrder(params) {
   const res = await request.post('/aps/workorder/page', params);
   if (res.data.code == 0) {
     return res.data.data;
@@ -61,7 +65,7 @@ export async function getProduceTaskList(params) {
 /**
  * 生产工单
  */
- export async function produceOrder (params) {
+export async function produceOrder(params) {
   const res = await request.post('/mes/workorder/page', params);
   if (res.data.code == 0) {
     return res.data.data;
@@ -75,4 +79,99 @@ export async function getUpdateInfoById(id) {
     return res.data.data;
   }
   return Promise.reject(new Error(res.data.message));
-}
+}
+
+/**
+ * 生产计划
+ */
+export async function getPlanList(data) {
+  const res = await request.post('/aps/productionplan/page', data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+/**
+ * 入库申请
+ */
+export async function warehousing(data) {
+  const res = await request.get('/mes/applystorage/page', {
+    params: data
+  });
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// 工厂列表
+export async function getFactoryList(params) {
+  const res = await request.get(`/main/factoryarea/getFactoryList`, { params });
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// aps生产计划获取产品的多个bom版本
+export async function bomListByPlan(params) {
+  const res = await request.get(`/main/bomCategory/bomListByPlan`, { params });
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// 根据bom 获取工艺路线
+
+export async function bomRoutingList(id) {
+  const res = await request.get(`/main/bomCategory/bomRoutingList/${id}`);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// 保存返工返修
+export async function temporaryPlanSave(data) {
+  const res = await request.post(`/aps/productionplan/temporaryPlanSave`, data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// 生成编码
+export async function getCode(code) {
+  const res = await request.get(`/main/codemanage/getCode/` + code, {});
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// 查询工厂列表-分页
+export async function getFactoryarea(params) {
+  const res = await request.get(`/main/factoryarea/page`, {
+    params
+  });
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+/**
+ * 修改处置状态
+ */
+export async function updateDisposalStatus(data) {
+  const res = await request.post(
+    '/qms/qmsreturnrepairwork/updateDisposalStatus',
+    data
+  );
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 7 - 0
src/enum/dict.js

@@ -27,3 +27,10 @@ export default {
   处置状态: 'dispose_status'
 };
 export const numberList = ['date_method'];
+
+export const reviewStatus = {
+  0: '未提交',
+  1: '审核中',
+  2: '已审核',
+  3: '审核不通过'
+};

+ 19 - 12
src/views/produce/components/feeding/components/workOrderBom.vue

@@ -50,11 +50,25 @@
               item.productionCodes
             }}</div>
           </div>
-          <div class="rx ww30">
+          <!-- <div class="rx ww30">
             <div class="lable rx-cc">最新工单状态</div>
             <div class="content rx-sc">
               <div>{{ sumStatus(item) }}</div>
             </div>
+          </div> -->
+
+          <div class="rx ww30">
+            <div class="lable rx-cc">委外状态</div>
+            <div v-if="item.outsourceStatus">
+              <div class="content" v-if="item.outsourceStatus == 1">未委外</div>
+              <div class="content" v-if="item.outsourceStatus == 2">委外中</div>
+              <div class="content" v-if="item.outsourceStatus == 3"
+                >完成委外-未质检</div
+              >
+            </div>
+            <div v-else>
+              <div class="content">{{ '' }}</div>
+            </div>
           </div>
 
           <div class="rx ww20">
@@ -69,18 +83,11 @@
             <span v-if="row.outsourceStatus == 2">委外中</span>
             <span v-if="row.outsourceStatus == 3">完成委外-未质检</span> -->
 
-        <div class="item rx-sc">
+        <div class="item rx-sc" v-if="!isDetails">
           <div class="rx ww50">
-            <div class="lable rx-cc">委外状态</div>
-            <div v-if="item.outsourceStatus">
-              <div class="content" v-if="item.outsourceStatus == 1">未委外</div>
-              <div class="content" v-if="item.outsourceStatus == 2">委外中</div>
-              <div class="content" v-if="item.outsourceStatus == 3"
-                >完成委外-未质检</div
-              >
-            </div>
-            <div v-else>
-              <div class="content">{{ '' }}</div>
+            <div class="lable rx-cc">最新工单状态</div>
+            <div class="content rx-sc">
+              <div>{{ sumStatus(item) }}</div>
             </div>
           </div>
         </div>

+ 2 - 2
src/views/produce/components/new_produceOrder.vue

@@ -290,8 +290,8 @@
             sortable: true
           },
           {
-            prop: 'endTime',
-            label: '实际结束时间',
+            prop: 'completeTime',
+            label: '实际完成时间',
             align: 'center',
             showOverflowTooltip: true,
             minWidth: 130,

+ 1 - 1
src/views/produce/components/picking/pickingList.vue

@@ -428,9 +428,9 @@
         }
 
         const res = await URL(param);
-
         if (this.rootCategoryLevelId == '11') {
           let _res = res;
+          console.log(res, 'res');
           let _list = [];
           _res.list.forEach((e) => {
             if (e.aridRegionList && e.aridRegionList.length != 0) {

+ 8 - 8
src/views/produce/components/workPlan/components/baseInfo.vue

@@ -159,9 +159,8 @@
         </el-col>
       </el-row>
       <el-row>
-        <el-col :span="6">
+        <!-- <el-col :span="6">
           <el-form-item label="合格数:" prop="qualifiedNumber">
-            <!--  :disabled="btnType == 'detail'" -->
             <el-input
               type="number"
               :min="0"
@@ -175,7 +174,6 @@
         </el-col>
         <el-col :span="6">
           <el-form-item label="不合格数:" prop="noQualifiedNumber">
-            <!--  :disabled="btnType == 'detail'" -->
             <el-input
               type="number"
               :min="0"
@@ -186,7 +184,7 @@
               placeholder="请输入"
             ></el-input>
           </el-form-item>
-        </el-col>
+        </el-col> -->
         <el-col :span="6">
           <el-form-item label="合格率:" prop="qualificationRate">
             <el-input v-model="form.qualificationRate" disabled />
@@ -197,8 +195,7 @@
             <el-input v-model="form.noQualificationRate" disabled />
           </el-form-item>
         </el-col>
-      </el-row>
-      <el-row>
+
         <el-col :span="6">
           <el-form-item label="总重量:" prop="totalWeight">
             <el-input
@@ -218,6 +215,8 @@
             />
           </el-form-item>
         </el-col>
+      </el-row>
+      <el-row>
         <el-col :span="6">
           <el-form-item label="检验方式:" prop="qualityMode">
             <!-- <DictSelection dictName="取样类型" v-model="form.qualityMode" :disabled="qualityType == 1"></DictSelection> -->
@@ -296,8 +295,7 @@
             </el-select>
           </el-form-item>
         </el-col>
-      </el-row>
-      <el-row>
+
         <el-col :span="6" v-if="parseInt(qualityType1) == 2">
           <el-form-item label="工艺路线:">
             <el-input
@@ -328,6 +326,8 @@
             </el-select>
           </el-form-item>
         </el-col>
+      </el-row>
+      <el-row>
         <!-- <el-col :span="6">
           <el-form-item label="质检类型:">
             <el-input

+ 6 - 3
src/views/produce/components/workPlan/components/newQualityContentTabs.vue

@@ -472,9 +472,9 @@
       schemeList: {
         handler(newVal, oldVal) {
           this.templateList = newVal;
-          // console.log(newVal, 'schemeList');
         },
-        deep: true
+        deep: true,
+        immediate: true
       },
       activeName: {
         handler(newVal) {
@@ -772,13 +772,15 @@
         const { currentPage, pageSize } = this.schemePagination;
         const start = (currentPage - 1) * pageSize;
         const end = start + pageSize;
-
+        console.log(this.templateList, 'this.templateList');
         return this.templateList?.slice(start, end);
         // return this.schemeList?.slice(start, end);
       }
     },
 
     created() {
+      // console.log(this.schemeList, 'schemeList');
+
       this.activeNameKK = this.activeName;
       this.reload({ qualityWorkerId: this.ids });
       let direction = this.$getDirection();
@@ -1069,6 +1071,7 @@
         this.$refs.inspectionTemplateRef.open(type);
       },
       async inspectionTemplateSuccess(select) {
+        console.log('222222222222222');
         let data = await getQualityTemplateByIds({
           templateIds: select.map((item) => item.id)
         });

+ 17 - 15
src/views/produce/components/workPlan/components/sampleListDialog.vue

@@ -127,7 +127,7 @@
           </template> -->
         </el-table-column>
       </template>
-      <el-table-column label="操作" align="center" width="80">
+      <!-- <el-table-column label="操作" align="center" width="80">
         <template slot-scope="scope">
           <el-link
             :underline="false"
@@ -137,7 +137,7 @@
             处置
           </el-link>
         </template>
-      </el-table-column>
+      </el-table-column> -->
     </el-table>
     <template v-slot:footer v-if="type == 'report'">
       <el-button @click="handleClose">取消</el-button>
@@ -190,18 +190,18 @@
             label: '质检结果',
             prop: 'qualityResults',
             align: 'center',
-            slot: 'qualityResults'
-            // formatter: (row, column) => {
-            //   if (row.qualityResults) {
-            //     return row.qualityResults == 1
-            //       ? '合格'
-            //       : row.qualityResults == 2
-            //       ? '不合格'
-            //       : row.qualityResults == 3
-            //       ? '让步接收'
-            //       : '';
-            //   }
-            // }
+            slot: 'qualityResults',
+            formatter: (row, column) => {
+              if (row.qualityResults) {
+                return row.qualityResults == 1
+                  ? '合格'
+                  : row.qualityResults == 2
+                  ? '不合格'
+                  : row.qualityResults == 3
+                  ? '让步接收'
+                  : '';
+              }
+            }
           }
           // { label: '货区', prop: 'areaName', align: 'center', },
           // { label: '货架', prop: 'goodsShelfName', align: 'center', },
@@ -242,7 +242,9 @@
               list[0].qualityResults;
           }
         }
-        this.tableData = list;
+        this.tableData = JSON.parse(JSON.stringify(list));
+        console.log(this.tableData, '33333333333333333');
+
         this.visible = true;
       },
       qualityResultsListChange() {

+ 6 - 1
src/views/produce/components/workPlan/edit.vue

@@ -314,7 +314,7 @@
         // 计算合格率和不合格率(百分比形式)
         let sampleQualificationRate = '';
         let sampleNoQualificationRate = '';
-        if (sampleQualifiedNumber) {
+        if (sampleQualifiedNumber || sampleQualifiedNumber == 0) {
           sampleQualificationRate =
             ((sampleQualifiedNumber / sampleQuantity) * 100).toFixed(2) || '';
           sampleNoQualificationRate =
@@ -326,6 +326,7 @@
         if (sampleNoQualificationRate || sampleNoQualificationRate == '0.00') {
           sampleNoQualificationRate = sampleNoQualificationRate + '%';
         }
+
         let resultsTotal = this.form.total - sampleQuantity;
         if (sampleQuantity == sampleQualifiedNumber) {
           this.$set(this.form, 'qualifiedNumber', resultsTotal);
@@ -341,6 +342,9 @@
           this.$set(this.form, 'qualityResults', 2);
         }
         // this.$set(this.form, 'resultsTotal', resultsTotal);
+
+        console.log(sampleQualificationRate, 'sampleQualificationRate');
+        console.log(sampleNoQualificationRate, 'sampleNoQualificationRate');
         this.$set(
           this.form,
           'sampleQualificationRate',
@@ -1065,6 +1069,7 @@
         const res = await queryQualityTempleContent({
           qualityWorkerId: this.dataWork.id
         });
+        console.log(res, 'resresresres');
         this.schemeList = res.list;
       },
       // 取样

+ 7 - 7
src/views/produce/components/workPlan/index.vue

@@ -482,13 +482,13 @@
       },
 
       async openEdit(type, row) {
-        // if (type == 'edit') {
-        //   const code = await verificationQualityInspector(row.id);
-        //   if (code == '-1') {
-        //     console.log('不是报工人');
-        //     return;
-        //   }
-        // }
+        if (type == 'edit') {
+          const code = await verificationQualityInspector(row.id);
+          if (code == '-1') {
+            console.log('不是报工人');
+            return;
+          }
+        }
 
         const req = {
           workOrderId: row.id,

+ 6 - 4
src/views/produceOrder/index.vue

@@ -120,7 +120,6 @@
             <el-link
               type="primary"
               :underline="false"
-              icon="el-icon-truck"
               v-if="row.status == 6"
               @click="toCancel(row)"
             >
@@ -143,7 +142,10 @@
           >
           <template v-if="activeName != 'second'">
             <el-link
-              v-if="(row.status == 4 || row.status == 5) && row.isSplit == 0"
+              v-if="
+                (row.status == 4 || row.status == 5 || row.status == 7) &&
+                row.isSplit == 0
+              "
               type="primary"
               :underline="false"
               @click="handleOrderPublish(row)"
@@ -597,8 +599,8 @@
             sortable: 'custom'
           },
           {
-            prop: 'endTime',
-            label: '实际结束时间',
+            prop: 'completeTime',
+            label: '实际完成时间',
             align: 'center',
             showOverflowTooltip: true,
             minWidth: 150,

+ 2 - 2
src/views/produceOrder/info.vue

@@ -176,8 +176,8 @@
 
       <div class="item rx-sc">
         <div class="rx ww25">
-          <div class="lable rx-cc">实际结束时间</div>
-          <div class="content">{{ workOrderInfo.endTime }}</div>
+          <div class="lable rx-cc">实际完成时间</div>
+          <div class="content">{{ workOrderInfo.completeTime }}</div>
         </div>
       </div>
 

+ 2 - 0
src/views/produceOrder/workReport.vue

@@ -94,6 +94,7 @@
                 @click.native="handIdx(index, item)"
                 :description="desIndex == index ? '此处' : ''"
                 :class="desIndex == index ? 'active' : ''"
+                :status="errorIndex == index ? 'error' : ''"
               ></el-step>
             </el-steps>
           </div>
@@ -358,6 +359,7 @@
         routeList: [],
         activeIndex: 0,
         desIndex: 0,
+        errorIndex: 10000,
         drawer: false,
         workData: {},
         isFullscreen: false,

+ 2 - 1
vue.config.js

@@ -35,13 +35,14 @@ module.exports = {
         // target: 'http://192.168.1.116:18086',
         // target: 'http://192.168.1.251:18086',
         // target: 'http://192.168.1.103:18086',192.168.1.116
-        target: 'http://192.168.1.125:18086',
+        // target: 'http://192.168.1.125:18086',
         // target: 'http://192.168.1.116:18086',
         // target: 'http://192.168.1.144:18086',
         // target: 'http://192.168.1.30:18086',
         // target: 'http://192.168.1.211:18086',
         // target: 'http://192.168.1.33:18086',
         // target: 'http://192.168.1.251:18186',
+        target: 'http://192.168.1.251:18087',
         changeOrigin: true, // 只有这个值为true的情况下 才表示开启跨域
         pathRewrite: {
           '^/api': ''