liuhairui 1 年間 前
コミット
3e9a4fcbb3

+ 9 - 9
src/api/yunyin/yunying.js

@@ -92,21 +92,21 @@ export const setProductStatus = (data) => {
     })
 }
 //8.1获取产品工艺数量
-export const getGyTotal = (data) => {
+export const getGyTotal = (params) => {
     return service({
         url: '/mes_server/product/getGyTotal',
         method: 'get',
+        params
+    })
+}
+// 8.2产品工艺复制(数据库不支持插入数据)
+export const copyProductGy = (data) => {
+    return service({
+        url: '/mes_server/product/copyProductGy',
+        method: 'post',
         data
     })
 }
-//8.2产品工艺复制(数据库不支持插入数据)
-// export const copyProductGy = (data) => {
-//     return service({
-//         url: '/mes_server/product/copyProductGy',
-//         method: 'post',
-//         data
-//     })
-// }
 //9.工艺方案更名
 export const editGyName = (data) => {
     return service({

+ 229 - 15
src/view/yunyin/chanpinziliao/chanpinziliao.vue

@@ -9,7 +9,7 @@
               <el-input v-model="searchInfo" placeholder="搜索产品编号或产品名称"  style="width: 180px;"></el-input>
               <el-button type="primary" icon="search" @click="onSubmit" class="search"></el-button>
               <el-button type="primary" icon="edit" @click="onStatusClick" class="bt"><i class="el-icon-edit"></i>状态设置</el-button>
-<!--              <el-button type="primary" class="bt" icon="edit"  @click="cpgyfzclick">产品工艺复制</el-button>-->
+              <el-button type="primary" class="bt" icon="edit"  @click="cpgyfzclick">产品工艺复制</el-button>
               <el-button type="primary" class="bt" icon="edit"  @click="gygmClick" >工艺方案更名</el-button>
               <el-button type="primary" class="bt" icon="edit"  @click="fjClick" >工艺方案附加</el-button>
               <el-button type="primary" class="bt" icon="edit"  @click="jsssxzClick" >计损色数修正</el-button>
@@ -42,31 +42,54 @@
           <!-- 产品工艺复制-->
           <el-dialog v-model="cpgyfzlist" title="产品工艺复制"  style="width: 35%;top: 15%;">
               <el-form-item label="参照产品代号:" prop="process" class="mab">
-                <el-input v-model="cpgyfzformData['process']"  placeholder="" style="width: 160px;"/>
-                <el-input v-model="cpgyfzformData['processName']" placeholder="" style="width: 360px;"/>
-              </el-form-item>
-              <el-form-item label="参照工艺方案:" prop="process" class="mab">
-                <el-input v-model="cpgyfzformData['gongyifa']" placeholder="" style="width: 160px;"/>
+                <el-input disabled v-model="cpgyfzformData['process']" id="process" @keydown="add_cpgyfzent($event, 'fzybzl', 'process', 'processName')"  placeholder="" style="width: 160px;"/>
+                <el-input disabled v-model="cpgyfzformData['processName']" id="processName" @keydown="add_cpgyfzent($event, 'process', 'processName', 'gongyifa')" placeholder="" style="width: 360px;"/>
               </el-form-item>
 
-            <el-form-item label="目标产品代号:" prop="process" class="mab">
-              <el-input v-model="cpgyfzformData['mubprocess']"  placeholder="" style="width: 160px;"/>
-              <el-input v-model="cpgyfzformData['mubprocessName']" placeholder="" style="width: 360px;"/>
+            <el-form-item label="参照工艺方案:" prop="originalName" class="mab">
+              <el-select v-model="cpgyfzformData.gongyifa" placeholder="请选择" id="gongyifa" @keydown="add_cpgyfzent($event, 'processName', 'gongyifa', 'mubprocess')" style="width: 160px;">
+                <el-option v-for="option in cpgyfzformData.gongyifaNameOptions" :key="option" :label="option" style="width: 160px;" :value="option" />
+              </el-select>
             </el-form-item>
 
+            <el-form-item label="目标产品代号:" prop="process" class="mab">
+              <el-input v-model="cpgyfzformData['mubprocess']" id="mubprocess" @keydown="add_cpgyfzent($event, 'gongyifa', 'mubprocess', 'mubprocessName')"  placeholder="" style="width: 160px;"/>
+              <el-input disabled v-model="cpgyfzformData['mubprocessName']" id="mubprocessName" @keydown="add_cpgyfzent($event, 'mubprocess', 'mubprocessName', 'fzgyzl')" placeholder="" style="width: 360px;"/>
+            </el-form-item>
+<!--            cpgyfzformData.fzgyzl === true-->
             <el-form-item label="" class="mab" >
-              <el-checkbox  v-model="cpgyfzformData['fzgyzl']">复制工艺资料</el-checkbox>
+              <el-checkbox  v-model="cpgyfzformData['fzgyzl']" id="fzgyzl" @keydown="add_cpgyfzent($event, 'mubprocessName', 'fzgyzl', 'fzybzl')"  >复制工艺资料</el-checkbox>
+              <el-input v-model="cpgyfzformData['to_pro']" id="to_pro" v-if="cpgyfzformData['fzgyzl'] !== false" placeholder="目标工艺方案" style="width: 160px;margin-left: 20px"/>
             </el-form-item>
             <el-form-item label="" class="mab" >
-              <el-checkbox  v-model="cpgyfzformData['fzybzl']">复制印版资料</el-checkbox>
+              <el-checkbox  v-model="cpgyfzformData['fzybzl']"  id="fzybzl" @keydown="add_cpgyfzent($event, 'fzgyzl', 'fzybzl', 'process')" >复制印版资料</el-checkbox>
             </el-form-item>
 
+
+
               <div class="dialog-footer" style="text-align: right ">
                 <el-button @click="cpgyfzhandleCancel">取消</el-button>
                 <el-button type="primary" @click="cpgyfzhandleConfirm">确定</el-button>
               </div>
           </el-dialog>
 
+          <!-- 产品工艺复制 目标产品代号弹窗-->
+          <el-dialog v-model="cpgyfzdisplay" :before-close="() => cpgyfzdisplay = false">
+            <el-form>
+              <div>
+                <el-form-item label="关键字:"  class="mab" prop="keyOrder">
+                  <el-space>
+                    <el-input v-model="cpgyfz_keyword" @keyup.enter="cpgyfz_ProductValue" style="width: 100%;"/>
+                    <el-button @click="cpgyfzSearchHandle(cpgyfz_keyword, '产品代号')">刷新</el-button>
+                  </el-space>
+                </el-form-item>
+                <div style="border:1px solid #eee; width:100%; height: 400px; overflow-y: auto">
+                  <el-tree :data="cpgyfzLists" :props="{children: 'children',label: 'name', value: '产品编号'}" @node-click="cpgyfzselectGongDanNode($event, '产品代号')" />
+                </div>
+              </div>
+            </el-form>
+          </el-dialog>
+
           <!--工艺方案更名-->
           <el-dialog v-model="gygmlist" title="工艺方案更名"  style="width: 35%;top: 15%;">
               <el-form-item label="产品代号:" prop="process" class="mab">
@@ -1476,9 +1499,34 @@ import { ElMessage, ElMessageBox } from 'element-plus'
 import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
 import { ref, reactive } from 'vue'
 import {
-  DataList,editGyName, editGyNo, editProduct,editProductYjInfo,getProductGyInfo,
-  getCustom,getDepartment,getProduct,editGy,getProductData,getProductYjInfo,
-  getProductGy,editGyWaste,editGyMs,getStaffList,setProductStatus,getProductYjList,getProductZzList,addProductYjInfo,getDepartName,getProcess,getProcessLoss,addProductGyInfo} from "@/api/yunyin/yunying";
+  DataList,
+  editGyName,
+  editGyNo,
+  editProduct,
+  editProductYjInfo,
+  getProductGyInfo,
+  getCustom,
+  getDepartment,
+  getProduct,
+  editGy,
+  getProductData,
+  getProductYjInfo,
+  getGyTotal,
+  ProductCodeList,
+  getProductGy,
+  editGyWaste,
+  editGyMs,
+  getStaffList,
+  setProductStatus,
+  getProductYjList,
+  getProductZzList,
+  addProductYjInfo,
+  getDepartName,
+  getProcess,
+  getProcessLoss,
+  addProductGyInfo,
+  copyProductGy,
+} from '@/api/yunyin/yunying'
 defineOptions({   name: 'Company'})
 
 // =========== 导出Excel表格 ===========
@@ -1788,9 +1836,11 @@ const cpgyfzformData = reactive({
   process: '',
   processName: '',
   gongyifa:'',
+  gongyifaNameOptions: [],
   mubprocess: '',
   mubprocessName: '',
-  fzgyzl: '',
+  to_pro:'',
+  fzgyzl: false,
   fzybzl: true,
 });
 const cpgyfzclick = async () => {
@@ -1803,10 +1853,170 @@ const cpgyfzclick = async () => {
   }else{
     cpgyfzlist.value = true;
     cpgyfzformData.process = _product_code.value;
+    await _getGyTotal();
+  }
+};
+//取消
+const cpgyfzhandleCancel = async () => {
+    cpgyfzlist.value = false;
+};
+//确定
+const is_copy_gy = ref(0);
+const is_copy_yb = ref(0);
+const toProUpperCase = ref('');
+const cpgyfzhandleConfirm = async () => {
+  // console.log(cpgyfzformData)
+  if(cpgyfzformData['process'] === ''){
+    ElMessage({type: 'warning',message: '参照产品代号不能为空' })
+    return false;
+  }
+  if(cpgyfzformData['mubprocess'] === ''){
+    ElMessage({type: 'warning',message: '目标产品编号不能为空' })
+    return false;
+  }
+  if(cpgyfzformData['gongyifa'] === '' ||  cpgyfzformData['gongyifa'] === undefined){
+    ElMessage({type: 'warning',message: '该产品未查询到工艺方案' })
+    return false;
+  }
+  if(cpgyfzformData['mubprocess'] === ''){
+    ElMessage({type: 'warning',message: '目标产品代号不能为空' })
+    return false;
+  }
+  //选择复制工艺资料
+  if (cpgyfzformData['fzgyzl'] === true) {
+    is_copy_gy.value = 1;
   }
+  //选择复制印版资料
+  if (cpgyfzformData['fzybzl'] === true) {
+    is_copy_yb.value = 1;
+  }
+  //选择复制工艺资料、不选择复制印版资料
+  if (cpgyfzformData['fzgyzl'] === true && cpgyfzformData['fzybzl'] === false) {
+    if(cpgyfzformData['to_pro'] === ''){
+      ElMessage({type: 'warning',message: '目标工艺方案不能为空' })
+      return false;
+    }
+    is_copy_gy.value = 1;
+    is_copy_yb.value = 0;
+  }
+  //选择复制印版资料、不选择复制工艺资料
+  if (cpgyfzformData['fzgyzl'] === false && cpgyfzformData['fzybzl'] === true) {
+    is_copy_gy.value = 0;
+    is_copy_yb.value = 1;
+    cpgyfzformData['to_pro'] = '';
+  }
+  //都不选择提示信息
+  if (cpgyfzformData['fzgyzl'] === false && cpgyfzformData['fzybzl'] === false) {
+    ElMessage({type: 'warning',message: '请选择复制工艺资料 或 复制印版资料' })
+    return false;
+  }
+  // 判断是否为大写字母
+  if (cpgyfzformData['to_pro'] === cpgyfzformData['to_pro'].toUpperCase()) {
+    toProUpperCase.value = cpgyfzformData['to_pro'];
+  } else {
+    // 如果不是大写字母,则将其转换为大写
+    toProUpperCase.value  = cpgyfzformData['to_pro'].toUpperCase();
+  }
+  const formattedData = {
+    from_code: cpgyfzformData['process'],
+    from_pro: cpgyfzformData['gongyifa'],
+    to_code: cpgyfzformData['mubprocess'],
+    is_copy_gy: is_copy_gy.value,
+    to_pro: toProUpperCase.value,
+    is_copy_yb: is_copy_yb.value,
+  };
+  console.log(formattedData);
+  const copyProductGy_add = await copyProductGy(formattedData);
+  if (copyProductGy_add.code === 0) {
+    xzhscslist.value = false;
+    ElMessage({ type: 'success', message: '更新成功' });
+    cpgyfzlist.value = false;
+  } else {
+    ElMessage({ type: 'error', message: '更新失败' });
+  }
+};
+
 
+
+
+cpgyfzhandleConfirm
+//101201052
+const _getGyTotal = async () => {
+  console.log(_product_code.value)
+  const getGyTotaldata = await getGyTotal({code:_product_code.value});
+  cpgyfzformData.processName = getGyTotaldata.data.name
+  cpgyfzformData.gongyifa = getGyTotaldata.data.gy[0]
+  cpgyfzformData.gongyifaNameOptions = getGyTotaldata.data.gy
 };
 
+const cpgyfzdisplay = ref(false)
+const cpgyfzLists = ref(false);
+const cpgyfz_keyword = ref('')
+//点击客户代号
+const cpgyfzselectGongDanNode = (node, type) => {
+  if (type === '产品代号') {
+    cpgyfzformData['mubprocess'] = node.产品编号
+    cpgyfzformData['mubprocessName'] = node.产品名称
+    cpgyfzdisplay.value = false
+  }
+}
+const cpgyfzSearchHandle = async (v, type) => {
+  if (type === '产品代号') {
+    await _ProductCodeList(v)
+  }
+}
+//【回车】
+const cpgyfz_ProductValue = async (v) => {
+  await _ProductCodeList(cpgyfz_keyword.value)
+};
+//产品代号列表
+const _ProductCodeList = async (v = '')=>{
+  try {
+    const ProductCodeListdata = await ProductCodeList({cilent: v});
+    cpgyfzLists.value = ProductCodeListdata.data
+  } catch (error) {
+    console.error(error);
+  }
+}
+const add_cpgyfzent = async (event,id1,id2,id3) => {
+  if (id2 === 'mubprocess' &&  event.key==='Tab' || id2 === 'mubprocess' && event.key=== 'Enter') {
+    // cpgyfz_keyword.value = '';
+    await _ProductCodeList(cpgyfzformData['mubprocess'])
+    if (cpgyfzLists.value != null) {
+      const row = cpgyfzLists.value.find(item => item.产品编号 === cpgyfzformData['mubprocess'])
+      if (row) {
+        cpgyfzformData['mubprocess'] = row.产品编号
+        cpgyfzformData['mubprocessName'] = row.产品名称
+      } else {
+        cpgyfzdisplay.value = true
+      }
+    } else {
+      cpgyfzdisplay.value = true
+    }
+  }
+  if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
+    if(id3!=''){
+      document.getElementById(id3).focus()
+    }
+  } else if (event.keyCode === 38) { // 向上箭头
+    if(id1!=''){
+      document.getElementById(id1).focus()
+    }
+  }else if (event.keyCode === 8) { // 删除箭头
+    if(id1!='' && document.getElementById(id2).value==''){
+      document.getElementById(id1).focus()
+    }
+    // console.log(document.getElementById(id2).value)
+  }else if (event.keyCode === 37) { // 向左箭头
+    if(id1!='' && document.getElementById(id2).selectionStart==0){
+      document.getElementById(id1).focus()
+    }
+  }else if (event.keyCode === 39) { // 向右箭头
+    if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
+      document.getElementById(id3).focus()
+    }
+  }
+}
 
 // =========== 工艺方案更名 ===========
 const gygmlist = ref(false);
@@ -1856,6 +2066,10 @@ const gygmhandleCancel = () => {gygmlist.value = false;};
 
 // 点击工艺方案更名【执行】按钮
 const gygmhandleConfirm = async () => {
+  if(gyformData.originalName === '' ||  gyformData.originalName === undefined){
+    ElMessage({type: 'warning',message: '该产品未查询到工艺方案原名' })
+    return false;
+  }
   if(gyformData.newName === ''){
     ElMessage({
       type: 'warning',

+ 6 - 1
src/view/yunyin/shengchanguanli/components/print.vue

@@ -2604,6 +2604,7 @@ const jsondata = {
 }
 hiprint.init()
 const hiprintTemplate = new hiprint.PrintTemplate({ template: jsondata })
+const _gdlx = ref('')
 const cp_print_handleConfirm = async () => {
   let params = {};
   //2310707
@@ -2616,6 +2617,8 @@ const cp_print_handleConfirm = async () => {
   //调用打印接口【打印作业通知单】
   const print_PrintJobOrder = await PrintJobOrder(params);
   console.log(print_PrintJobOrder)
+  _gdlx.value =  '★' +print_PrintJobOrder.data['工单类型']
+
   if(print_PrintJobOrder.data === null){
     ElMessage({type: 'error',message: print_PrintJobOrder.msg})
   }
@@ -2629,7 +2632,9 @@ const cp_print_handleConfirm = async () => {
   const seconds = String(today.getSeconds()).padStart(2, '0');
   const currentDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
   const printdata  = {
-    "minong": "https://shangbiaopic.11467.com/13/85/13855845.jpg",
+    // "minong": "https://shangbiaopic.11467.com/13/85/13855845.jpg",
+    "minong": "https://www.zjminong.com/static/web/images/logo.png?v=v2",
+    "ztlx":_gdlx.value,
     "printcode":print_PrintJobOrder.data['生产批次号'],
     "dysj":currentDate,
     "scpch":print_PrintJobOrder.data['生产批次号'],

+ 12 - 4
src/view/yunyin/shengchanguanli/gongdanshengchan.vue

@@ -140,7 +140,7 @@
                 </el-form-item>
 
                 <el-form-item label="" prop="" style="margin-left: 25px;">
-                  <el-button type="" icon="edit" disabled @click="oneditpcClick">更新排程</el-button>
+                  <el-button type="" icon="edit"  @click="oneditpcClick">更新排程</el-button>
                 </el-form-item>
               </div>
 
@@ -477,6 +477,7 @@ import {
   getOrderProcessLeft,
   getOrderProcessRight,
   gdzl_MachineList,
+  EquipmentSchedulingEdit,
   MachineTeamEdit
 } from "@/api/yunyin/yunying";
 
@@ -1358,6 +1359,7 @@ const pd_gdprintonClick = () => {
 //车间设备排程【按钮】
 const oncjsbpcClick = () => {
   cjsbpcformData['sbdh'] = _machine.value;
+  paichengData.value = [];
   _EquipmentSchedulingdata();
   _ScheduleSelectiondata();
   cjsbpclist.value = true;
@@ -1420,14 +1422,20 @@ const oneditpcClick = async () => {
       AuxiliaryHours: item.辅助工时,
       shift: item.班次安排,
       remark: item.排单备注,
-      start: item.计划开工时间,
-      projectTime: item.计划工时间,
+      start: item.最早开工时间,
+      projectTime: item.计划工时间,
       UniqId: item.UniqId
     };
   });
   console.log(formattedData)
-  // const EquipmentSchedulingEdit_edit = await EquipmentSchedulingEdit(formattedData);
+  const EquipmentSchedulingEdit_edit = await EquipmentSchedulingEdit(formattedData);
   // console.log(EquipmentSchedulingEdit_edit)
+  if (EquipmentSchedulingEdit_edit.code === 0) {
+    ElMessage({ type: 'success', message: '更新成功' });
+    // cjsbpclist.value = false;
+  } else {
+    ElMessage({ type: 'error', message: '更新失败' });
+  }
   // cjsbpclist.value = true;
 };
 //车间设备制程【退出】