wu
2025-02-18 69983d407ce1d271d7c67474490b1b2717558bd0
Merge branch 'master' of http://10.153.19.25:10105/r/YiWuProject
11个文件已修改
188 ■■■■ 已修改文件
UI-Project/src/lang/en.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/py.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/zh.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/GlassStorage/rawfilmstorage.vue 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Returns/upreturns.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Returns/upreturns2.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/en.js
@@ -34,6 +34,8 @@
          quit:"Exit",
      },
      basicData:{
          rackreset:'架子复位',
          prackreset:'是否架子复位?',
          printing:'自动打印',
          laserprinting:'Laser printing machine ready status:',
          cuttingmachine:'Cutting machine ready status:',
UI-Project/src/lang/py.js
@@ -34,6 +34,8 @@
        quit: "Выход",
    },
    basicData: {
        rackreset:'架子复位',
        prackreset:'是否架子复位?',
        deletemessage: 'Удалить эту информацию или нет?',
        laserprinting: 'Машина лазерной маркировки готова:',
        cuttingmachine: 'Машина для резки готова:',
UI-Project/src/lang/zh.js
@@ -34,7 +34,8 @@
          quit:"退出",
      },
      basicData:{
          printing:'自动打印',
          rackreset:'架子复位',
          prackreset:'是否架子复位?',
          laserprinting:'打标机就绪状态:',
          cuttingmachine:'切割机就绪状态:',
          machine:'上片机联机状态:',
UI-Project/src/views/GlassStorage/rawfilmstorage.vue
@@ -76,7 +76,7 @@
  }
};
const handleEdit = (row) => {
  window.localStorage.setItem('slotId', row.slotId)
  window.localStorage.setItem('slotId', row.slot)
  Edit.value = true;
};
const handleBinda = (row) => {
@@ -222,8 +222,8 @@
  const response = await request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest", {
    beginDate: (timeRange.value && timeRange.value[0]) || '',
    endDate: (timeRange.value && timeRange.value[1]) || '',
    taskState: stateList,
    taskType: celllist
    taskState: celllist,
    taskType: stateList
  })
  if (response.code === 200) {
    // tableDataa.value = response.data;
@@ -241,7 +241,7 @@
  }  
  const newState = row.state === 1 ? 0 : 1;
  try {
    var url="/glassStorage/rawGlassStorageStation/updateSlotState?slot="+row.deviceId + "&state=" + newState;
    var url="/glassStorage/rawGlassStorageStation/updateSlotState?slot="+row.slot + "&state=" + newState;
    const response = await request.post(url)
    if (response.code === 200) {  
      ElMessage.success(response.message);  
@@ -261,12 +261,21 @@
    const response = await request.post('/glassStorage/rawGlassStorageDetails/updateQuantity', {
      slotId: slotId,
      remainQuantity: remainQuantity.value,
      filmsId: filmsId.value,
      patternThickness: patternThickness.value,
      patternHeight: patternHeight.value,
      patternWidth: patternWidth.value,
  }
  ); 
    if (response.code === 200) {
      ElMessage.success(response.message);
      Edit.value = false;
      tableDatab.value = response.data;
      patternWidth.value = '';
      patternHeight.value = '';
      patternThickness.value = '';
      filmsId.value = '';
      remainQuantity.value = '';
    } else {
      ElMessage.error(response.message);
    }
@@ -429,7 +438,7 @@
          </el-table-column>
          <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="270">
            <template #default="scope">
              <el-button :disabled="!scope.row.remainQuantity" size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('film.exit') }}</el-button>
              <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('film.exit') }}</el-button>
              <el-button :disabled="!scope.row.remainQuantity" size="mini" type="text" plain @click="deleteWarehousing(scope.row)">{{ $t('film.delete') }}</el-button>
              <el-button :disabled="!scope.row.remainQuantity || scope.row.remainQuantity === 0" size="mini" type="text" plain @click="openc(scope.row)">{{ $t('film.outbound') }}</el-button>
            </template>
@@ -548,22 +557,65 @@
      </div>
    </template>
  </el-dialog>
  <el-dialog v-model="Edit" top="21vh" width="40%">
    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
      <el-form size="mini" label-width="100px">
        <el-form label-width="210px" label-position="right">
          <el-form-item :label="$t('film.thickremainquantity')" :required="true" style="width: 25vw">
            <el-input v-model="remainQuantity" autocomplete="off" />
  <el-dialog v-model="Edit" top="23vh" width="55%" :title="$t('film.addglass')" >
    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
            <el-form  size="mini" label-width="150px">
      <el-form label-width="100px" label-position="right">
        <el-row style="margin-top: -15px;margin-bottom: -2px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('film.widtha')" :required="true" style="width: 17vw;">
                <el-input :placeholder="$t('film.inwidth')" v-model="patternWidth" autocomplete="off" />
          </el-form-item>
              </div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('film.heighta')" :required="true" style="width: 17vw;">
                <el-input :placeholder="$t('film.inheight')" v-model="patternHeight" autocomplete="off" />
              </el-form-item></div>
              </div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('film.thicknessa')" :required="true" style="width: 17vw;">
                <el-input :placeholder="$t('film.inthickness')" v-model="patternThickness" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('film.filmsa')" :required="true" style="width: 17vw;">
                <el-input :placeholder="$t('film.infilms')" v-model="filmsId" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
        <el-form label-width="210px">
          <el-form-item :label="$t('film.thickremainquantity')" :required="true" style="width: 44.5vw;margin-left: -40px;">
            <el-input v-model="remainQuantity" autocomplete="off" :placeholder="$t('film.inquantity')"/>
          </el-form-item>
        </el-form>
            </div></div>
          </el-col>
        </el-row>
        </el-form>
      </el-form>
    </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="Editclick">
          {{ $t('reportWork.sure') }}
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="Edit = false">{{ $t('reportWork.cancel') }}</el-button>
        <el-button @click="Edit = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
UI-Project/src/views/Returns/upreturns.vue
@@ -26,8 +26,7 @@
const cuttingMachineStatusColor = ref('#911005');
const tableDataa = ref<any[]>([]);
const tableDatab = ref<any[]>([]);
// const tableData = ref([])
const tableData = reactive([]);
const tableData = ref([])
const filteredData = computed(() => {
  // applyFilters 函数应该在某处定义,用于根据当前筛选条件过滤数据
  return applyFilters(tableData, currentFilters);
@@ -35,7 +34,6 @@
// 当前筛选条件,应该是一个响应式变量,用于存储用户选择的筛选值
const currentFilters = ref<{ state?: string }>({});
const filterTag = (value: string, row: any) => {
  // return String(row.state) === value;
  return row.state === value
};
// 应用筛选条件的函数
@@ -75,7 +73,8 @@
  try {
    const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
    if (response.code === 200) {
      tableData.splice(0, tableData.length, ...response.data);
      tableData.value = response.data
      // tableData.splice(0, tableData.length, ...response.data);
      ElMessage.error(response.message);
     window.localStorage.setItem('engineeringIda', tableData[0].engineeringId)
}
@@ -89,7 +88,6 @@
  tableDataa.value = data.list[0].slice(0, 2);
  if(data.loadTask1.length !=0){
  tableData.value = data.loadTask1[0]
  // tableData.splice(0, tableData.length, ...data.loadTask1[0]);
  window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId)
  canSelectProjecta.value = false;
  canSelectProjectb.value = false;
@@ -363,6 +361,31 @@
    console.error('发生错误:', error);  
  }  
}; 
// 架子复位
const handleptask = async() => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('basicData.prackreset'),
      t('workOrder.prompt'),
      {
        confirmButtonText: t('workOrder.yes'),
        cancelButtonText: t('workOrder.cancel'),
        type: 'warning',
      }
    );
 if (confirmResult === 'confirm') {
  var url="/loadGlass/rawGlassStorageDetails/shelfReset?slot="+ 1;
      const response = await request.post(url)
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
      ElMessage.error(response.msg);
      }
    }
  } catch (error) {
    console.error('发生错误:', error);
  }
};
function getStatusType2(filmRemove) {
  switch (filmRemove) {
    case 0:
@@ -463,6 +486,11 @@
            <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80"/>
            <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80"/>
            <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80"/>
            <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="70">
            <template #default="scope">
          <el-button size="mini" type="text" plain @click="handleptask()">{{ $t('basicData.rackreset') }}</el-button>
            </template>
        </el-table-column>
          </el-table>
    </div>
  </div>
UI-Project/src/views/Returns/upreturns2.vue
@@ -26,8 +26,7 @@
const cuttingMachineStatusColor = ref('#911005');
const tableDataa = ref<any[]>([]);
const tableDatab = ref<any[]>([]);
// const tableData = ref([])
const tableData = reactive([]);
const tableData = ref([])
const filteredData = computed(() => {
  // applyFilters 函数应该在某处定义,用于根据当前筛选条件过滤数据
  return applyFilters(tableData, currentFilters);
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -247,12 +247,14 @@
     * 准备出笼102
     * 执行中103
     * 在车上104
     * 准备复位105
     */
    public static final Integer RAW_GLASS_STATE_IN = 100;
    public static final Integer RAW_GLASS_STATE_OUT = 101;
    public static final Integer RAW_GLASS_STATE_WAIT_OUT = 102;
    public static final Integer RAW_GLASS_STATE_RUNNING = 103;
    public static final Integer RAW_GLASS_STATE_CAR = 104;
    public static final Integer RAW_GLASS_STATE_RESET = 105;
    public static final List<Integer> RAW_GLASS_STATE_IN_ALL = Arrays.asList(100, 102, 103);
    public static final Integer RAW_GLASS_TASK_NEW = 0;
hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
@@ -42,4 +42,6 @@
    String outWarehousingRequest(int leftingStation);
    boolean generateTask(int startSlot, int endSlot, int shelf, int patternQuantity, int taskType) throws Exception;
    String shelfReset(Long slot);
}
hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
@@ -106,8 +106,11 @@
        update(
                new LambdaUpdateWrapper<RawGlassStorageDetails>()
                        .set(RawGlassStorageDetails::getRemainQuantity, request.getRemainQuantity())
                        .eq(RawGlassStorageDetails::getSlot, request.getSlot())
                        .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN));
                        .set(RawGlassStorageDetails::getPatternWidth, request.getPatternWidth())
                        .set(RawGlassStorageDetails::getPatternHeight, request.getPatternHeight())
                        .set(RawGlassStorageDetails::getPatternThickness, request.getPatternThickness())
                        .set(RawGlassStorageDetails::getFilmsId, request.getFilmsId())
                        .eq(RawGlassStorageDetails::getSlot, request.getSlot()));
        return "success";
    }
@@ -190,4 +193,13 @@
        readWriteEntity.setValue(value);
        return readWriteEntity;
    }
    @Override
    public String shelfReset(Long slot) {
        update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlot, slot)
                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RESET));
        //生成一条详情数据  仅记录架子状态
        return "success";
    }
}
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
@@ -117,6 +117,11 @@
            log.info("执行入库任务");
            return;
        }
        flag = shelfResetTask();
        if (flag) {
            log.info("执行复位任务");
            return;
        }
        log.info("无任务执行,结束");
    }
@@ -280,6 +285,37 @@
        return Boolean.TRUE;
    }
    /**
     * 复位任务:1、点复位,立马生成复位任务 2、点出库修改工位详情内的状态为架子复位,定时任务扫描生成复位任务
     */
    public boolean shelfResetTask() throws Exception {
        List<RawGlassStorageDetails> rawGlassList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RESET)
                .inSql(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1"));
        if (CollectionUtil.isEmpty(rawGlassList)) {
            log.info("系统没有需要复位的原片信息");
            return Boolean.FALSE;
        }
        //生成复位任务
        rawGlassStorageDetailsService.generateTask(rawGlassList.get(0).getSlot(), rawGlassList.get(0).getShelf(), rawGlassList.get(0).getShelf(), rawGlassList.get(0).getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
//        List<ReadWriteEntity> list = new ArrayList<>();
//        list.add(generateReadWriteEntity("CC.CC.taskWord", 1));
//        list.add(generateReadWriteEntity("CC.CC.taskSending", 1));
//        list.add(generateReadWriteEntity("CC.CC.startSlot", startSlot));
//        list.add(generateReadWriteEntity("CC.CC.endSlot", lefting));
//        miloService.writeToOpcWord(list);
        //修改复位任务状态
        rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                .eq(RawGlassStorageDetails::getSlot, rawGlassList.get(0).getSlot())
                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RESET)
                .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
        return Boolean.TRUE;
    }
    /**
     * 入库任务:吊装位有玻璃,先去工位表查询空格子,生成入库任务从吊装位到目标格子
     *
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java
@@ -62,4 +62,10 @@
    return Result.build(
            200, "入库已完成,等待任务执行", rawGlassStorageDetailsService.outWarehousingRequest(leftingStation));
  }
  @ApiOperation("架子复位")
  @PostMapping("/shelfReset")
  public Result<String> shelfReset(Long slot) {
    return Result.success(rawGlassStorageDetailsService.shelfReset(slot));
  }
}