jiangping
2024-08-19 c52a53fdb6d250f7136ec23f88d6b253c4473e84
最新版本
已添加2个文件
已修改3个文件
255 ■■■■■ 文件已修改
admin/src/components/business/OperaPlatformGroupWindow.vue 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/platform.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/platformGroup.vue 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaPlatformGroupWindow.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,118 @@
<template>
  <GlobalWindow
    :title="title"
    width="50%"
    :visible.sync="visible"
    :confirm-working="isWorking"
    @confirm="confirm"
  >
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="分组名称:" prop="name">
        <el-input v-model="form.name" placeholder="请输入分组名称" v-trim/>
      </el-form-item>
      <el-form-item label="业务类型:" prop="type">
        <el-radio-group v-model="form.type" >
          <el-radio  :label="0"  >安泰物流卸货</el-radio>
          <el-radio  :label="1"  >安泰物流装货</el-radio>
          <el-radio  :label="2"  >市公司卸货</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="工作时间:" prop="startTime">
        <div style=" display: inline-block">
          <el-time-picker
              style="width: 150px;display: inline-block"
              v-model="form.startTime"
              format="HH:mm"
              value-format="HH:mm"
              placeholder="请选择开始时间"
          >
          </el-time-picker> è‡³
          <el-time-picker
              style="width: 150px;display: inline-block"
              v-model="form.endTime"
              format="HH:mm"
              value-format="HH:mm"
              placeholder="请选择结束时间"
          >
          </el-time-picker>
        </div>
      </el-form-item>
      <el-form-item label="叫号等待时间(分钟):" prop="waitCallTime">
        <el-input type="number"  v-model="form.waitCallTime" placeholder="请输入叫号等待时间(分钟)" v-trim/>
      </el-form-item>
    </el-form>
  </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { numRuleGtZero } from '@/utils/form'
import { allList } from '@/api/platform/platformGroup'
import { getList as deviceList } from '@/api/business/device'
export default {
  name: 'OperaPlatformWindow',
  extends: BaseOpera,
  components: { GlobalWindow },
  data () {
    return {
      // è¡¨å•数据
      groupList: [],
      broadcastList: [],
      ledList: [],
      form: {
        id: null,
        name: '',
        type: 0,
        startTime: '',
        endTime: '',
        waitCallTime: ''
      },
      // éªŒè¯è§„则
      rules: {
        name: [{ required: true, message: '请输入分组名称 ', trigger: 'blur' }],
        type: [{ required: true, message: '请选择业务类型 '}]
      }
    }
  },
  created () {
    this.config({
      api: '/platform/platformGroup',
      'field.id': 'id'
    })
  },
  methods: {
    seleTime(){},
    /**
     * æ‰“开窗口
     * @title çª—口标题
     * @target ç¼–辑的对象
     */
    open (title, target) {
      this.title = title
      this.visible = true
      // æ–°å»º
      if (target == null) {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
          this.form[this.configData['field.id']] = null
        })
        return
      }
      // ç¼–辑
      this.$nextTick(() => {
        for (const key in this.form) {
          this.form[key] = target[key]
        }
      })
    }
  }
}
</script>
<style scoped>
.labelTip{
  font-size: 12px;
  color: #666666;
}
</style>
admin/src/views/platform/platform.vue
@@ -4,7 +4,17 @@
    <SearchFormCollapse slot="search-form" :need-more="false">
      <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
        <el-form-item label="" prop="name">
          <el-input v-model="searchForm.name" placeholder="请输入月台名称" @keypress.enter.native="search"></el-input>
          <el-input v-model="searchForm.name" clearable placeholder="请输入月台名称" @keypress.enter.native="search"></el-input>
        </el-form-item>
        <el-form-item label="" >
          <el-select v-model="searchForm.groupId"     placeholder="请选择月台分组" @change="search" clearable>
            <el-option
                v-for="item in groupList"
                :key="item.id"
                :label="item.name"
                :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
        <section>
          <el-button type="primary" @click="search">搜索</el-button>
@@ -16,7 +26,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:hksync:platforms']">
        <li><el-button type="primary" :loading="working" @click="syncData" icon="el-icon-plus" v-permissions="['business:hksync:platforms']">同步</el-button></li>
        <li><el-button type="primary" :loading="working1" @click="syncStatus" icon="el-icon-plus" v-permissions="['business:hksync:platforms']">同步状态</el-button></li>
        <li><el-button type="primary" :loading="working1" @click="syncStatus" icon="el-icon-plus" v-permissions="['business:hksync:platforms']">同步实时状态</el-button></li>
      </ul>
      <el-table
        v-loading="isWorking.search"
@@ -27,7 +37,7 @@
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="name" label="月台名称" fixed min-width="100px"></el-table-column>
        <el-table-column prop="code" label="月台编码" fixed min-width="100px"></el-table-column>
        <el-table-column prop="groupName" label="所属月台组" fixed min-width="100px"></el-table-column>
        <el-table-column prop="groupName" label="所属月台组" fixed min-width="150px"></el-table-column>
        <el-table-column prop="workingNum" label="同时叫号车辆数" min-width="120px"></el-table-column>
        <el-table-column prop="stayTmeoutAlarmTime" label="停留超时报警时间(分钟)" min-width="180px">
          <template scope="{row}">{{row.stayTmeoutAlarmTime?(row.stayTmeoutAlarmTime):'-'}}</template>
@@ -36,18 +46,6 @@
          <template scope="{row}"> {{row.workTimeoutAlarmTime?(row.workTimeoutAlarmTime):'-'}}</template>
        </el-table-column>
        <el-table-column prop="workRate" label="月台作业效率(万只/小时)" min-width="180px"></el-table-column>
          <el-table-column label="是否园区入口">
            <template slot-scope="{row}">
              <el-switch
                  @change="changeStatus($event, row)"
                  v-model="row.status"
                  active-color="#13ce66"
                  inactive-color="#ff4949"
                  :active-value="0"
                  :inactive-value="1">
              </el-switch>
            </template>
          </el-table-column>
        <el-table-column prop="platformStatus" label="月台状态" min-width="100px">
          <template scope="{row}">
            <span v-if="row.platformStatus == 0">无车</span>
@@ -89,17 +87,20 @@
import SearchFormCollapse from '@/components/common/SearchFormCollapse'
import Pagination from '@/components/common/Pagination'
import OperaPlatformWindow from '@/components/business/OperaPlatformWindow'
import {allList} from "@/api/platform/platformGroup";
export default {
  name: 'Platform',
  extends: BaseTable,
  components: { SearchFormCollapse, TableLayout, Pagination, OperaPlatformWindow },
  data () {
    return {
      groupList:[],
      // æœç´¢
      working: false,
      working1: false,
      searchForm: {
        name: ''
        name: '',
        groupId:null
      }
    }
  },
@@ -111,8 +112,15 @@
      'field.main': 'id'
    })
    this.search()
    this.loadGroupList()
  },
  methods: {
    loadGroupList () {
      allList({})
          .then(res => {
            this.groupList = res || []
          })
    },
    changeStatus (e, row) {
      this.api.updateStatusById({
        id: row.id,
admin/src/views/platform/platformGroup.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
<template>
  <TableLayout :permissions="['business:platformgroup:query']">
    <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:platformgroup:create','business:platformgroup:delete']">
        <li><el-button type="primary" @click="$refs.operaPlatformGroupWindow.open('新建月台分组')" icon="el-icon-plus" v-permissions="['business:platformgroup:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:platformgroup:delete']">删除</el-button></li>
      </ul>
      <el-table
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="name" label="月台组名称" fixed min-width="150px" align="center"></el-table-column>
        <el-table-column prop="startTime" label="工作时间" min-width="150px"  align="center">
          <template scope="{row}">
            {{row.startTime || ' '}} - {{row.endTime || ' '}}
          </template>
        </el-table-column>
        <el-table-column prop="type" label="业务类型"  align="center" min-width="150px">
          <template scope="{row}">
            <span v-if="row.type == 0">安泰物流卸货</span>
            <span v-if="row.type == 1">安泰物流装货</span>
            <span v-if="row.type == 2">市公司卸货</span>
          </template>
        </el-table-column>
        <el-table-column prop="waitCallTime" label="叫号等待时间(分钟)" min-width="100px"  align="center"></el-table-column>
        <el-table-column prop="editDate" label="最近更新时间" min-width="140px"  align="center"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:platformgroup:update', 'business:platformgroup:delete'])"
          label="操作"
          min-width="120"
          align="center"
          fixed="right"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaPlatformGroupWindow.open('编辑月台分组', row)" icon="el-icon-edit" v-permissions="['business:platformgroup:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:platformgroup:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination
        @size-change="handleSizeChange"
        @current-change="handlePageChange"
        :pagination="tableData.pagination"
      >
      </pagination>
    </template>
    <!-- æ–°å»º/修改 -->
    <OperaPlatformGroupWindow ref="operaPlatformGroupWindow" @success="handlePageChange"/>
  </TableLayout>
</template>
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaPlatformGroupWindow from '@/components/business/OperaPlatformGroupWindow'
export default {
  name: 'Platform',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaPlatformGroupWindow },
  data () {
    return {
      // æœç´¢
      working: false,
      working1: false,
      searchForm: {
        name: ''
      }
    }
  },
  created () {
    this.config({
      module: '月台信息表',
      api: '/platform/platformGroup',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
  },
  methods: {
  }
}
</script>
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
@@ -58,11 +58,11 @@
        )>0){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该类型分组已经创建,请返回刷新页面查看!");
        }
        platformGroup.setStatus(Constants.ZERO);
        platformGroup.setIsdeleted(Constants.ZERO);
        platformGroup.setCreator(platformGroup.getLoginUserInfo().getId());
        platformGroup.setCreateDate(new Date());
        platformGroup.setEditDate(platformGroup.getEditDate());
        platformGroup.setEditDate(platformGroup.getCreateDate());
        platformGroup.setEditor(platformGroup.getCreator());
        platformGroupMapper.insert(platformGroup);
        return platformGroup.getId();
@@ -125,8 +125,8 @@
        )>0){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该类型分组已经创建,请返回刷新页面查看!");
        }
        platformGroup.setEditDate(platformGroup.getEditDate());
        platformGroup.setEditor(platformGroup.getCreator());
        platformGroup.setEditDate(new Date());
        platformGroup.setEditor(platformGroup.getLoginUserInfo().getId());
        platformGroupMapper.updateById(platformGroup);
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java
@@ -128,6 +128,7 @@
        job.setIsdeleted(Constants.ZERO);
        job.setType(Constants.platformJobType.wxcxh);//默认是外协车卸货
        job.setStatus(Constants.PlatformJobStatus.WAIT_CONFIRM.getKey());//默认待确认状态
        //查询车辆是否自有车,以及jobNum表示但求作业数量(非已离园的作业数)
        Cars car = carsMapper.selectOne(new QueryWrapper<Cars>()
                .select("*,(select count(1) from platform_job b where b.plate_num='"+param.getPlateNumber()+"' and b.status in("+
                        Constants.PlatformJobStatus.LEAVED+")) as jobNum")
@@ -157,6 +158,7 @@
        job.setIsdeleted(Constants.ZERO);
        job.setType(Constants.platformJobType.wxczh);//默认是外协车装好
        job.setStatus(Constants.PlatformJobStatus.WAIT_CONFIRM.getKey());//默认待确认状态
        //查询车辆是否自有车,以及jobNum表示但求作业数量(非已离园的作业数)
        Cars car = carsMapper.selectOne(new QueryWrapper<Cars>()
                .select("*,(select count(1) from platform_job b where b.plate_num='"+param.getPlateNumber()+"' and b.status in("+
                        Constants.PlatformJobStatus.LEAVED+")) as jobNum")