doum
2025-09-12 5e5a317f936e4e333809298930fb771fc0bdc9ac
最新版本541200007
已修改13个文件
184 ■■■■■ 文件已修改
admin/src/api/business/deviceRole.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/platform/platformGroup.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaPlatformGroupWindow.vue 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/platformGroup.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/deviceRole.js
@@ -21,7 +21,6 @@
export function updateStatusById (data) {
  return request.post('/visitsAdmin/cloudService/business/deviceRole/updateStatusById', data)
}
// 【海康】全量同步访客权限组接口
export function syncPrivilege (data) {
  return request.post('/visitsAdmin/cloudService/business/hksync/syncPrivilege', data)
admin/src/api/platform/platformGroup.js
@@ -24,6 +24,10 @@
export function create (data) {
  return request.post('/visitsAdmin/cloudService/business/platformGroup/create', data)
}
// 创建
export function updateAutoCallById (data) {
  return request.post('/visitsAdmin/cloudService/business/platformGroup/updateAutoCallById', data)
}
// 修改
export function updateById (data) {
admin/src/components/business/OperaPlatformGroupWindow.vue
@@ -10,6 +10,12 @@
      <el-form-item label="分组名称:" prop="name">
        <el-input v-model="form.name" placeholder="请输入分组名称" v-trim/>
      </el-form-item>
      <el-form-item label="是否虚拟月台组" prop="isVirtual" >
        <el-radio-group v-model="form.isVirtual" @change="chagneVirtural">
          <el-radio :label="0">否</el-radio>
          <el-radio :label="1">是</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="业务类型:" prop="type">
        <el-radio-group v-model="form.type" >
          <el-radio  :label="0"  >安泰物流卸货</el-radio>
@@ -29,16 +35,17 @@
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="工作时间:" prop="startTime">
        <div style=" display: inline-block">
      <div style=" display: inline-block">
      <el-form-item label="工作时间:" prop="startTime"  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>
        </el-form-item>至
        <el-form-item label="" prop="endTime"  style=" display: inline-block">
          <el-time-picker
              style="width: 150px;display: inline-block"
              v-model="form.endTime"
@@ -47,9 +54,35 @@
              placeholder="请选择结束时间"
          >
          </el-time-picker>
        </div>
      </el-form-item>
        </div>
      <el-form-item label="是否自动叫号" prop="autoCall">
        <el-radio-group v-model="form.autoCall">
          <el-radio :label="0" :value="0">否</el-radio>
          <el-radio :label="1" :value="1">是</el-radio>
        </el-radio-group>
      </el-form-item>
      <div>
      <el-form-item label="自动叫号时间:" prop="autoCallStartTime"  style=" display: inline-block">
          <el-time-picker
              style="width: 150px;display: inline-block"
              v-model="form.autoCallStartTime"
              format="HH:mm"
              value-format="HH:mm"
              placeholder="请选择开始时间"
          >
          </el-time-picker> </el-form-item>至
        <el-form-item label="" prop="autoCallEndTime"  style=" display: inline-block">
          <el-time-picker
              style="width: 150px;display: inline-block"
              v-model="form.autoCallEndTime"
              format="HH:mm"
              value-format="HH:mm"
              placeholder="请选择结束时间"
          >
          </el-time-picker>
       </el-form-item>
      </div>
      <el-form-item label="叫号等待时间(分钟):" prop="waitCallTime">
        <el-input type="number"  v-model="form.waitCallTime" placeholder="请输入叫号等待时间(分钟)" v-trim/>
      </el-form-item>
@@ -77,8 +110,12 @@
        id: null,
        name: '',
        type: 0,
        autoCall: 0,
        isVirtual: 0,
        startTime: '',
        endTime: '',
        autoCallStartTime: '',
        autoCallEndTime: '',
        waitCallTime: '',
        signInNoticeUsers: [],
        unFinishNoticeUsers: []
@@ -86,9 +123,11 @@
      // 验证规则
      rules: {
        name: [{ required: true, message: '请输入分组名称 ', trigger: 'blur' }],
        type: [{ required: true, message: '请选择业务类型 '}],
        type: [{ required: true, message: '请选择业务类型' }],
        signInNoticeUsers: [{ required: true, message: '请选择签到通知人员', trigger: 'blur' }],
        unFinishNoticeUsers: [{ required: true, message: '请选择作业未完成通知人员', trigger: 'blur' }]
        unFinishNoticeUsers: [{ required: true, message: '请选择作业未完成通知人员', trigger: 'blur' }],
        isVirtual: [{ required: true, message: '请选择是否虚拟月台', trigger: 'change' }],
        autoCall: [{ required: true, message: '请选择是否自动叫号', trigger: 'change' }]
      },
      memberList: []
    }
@@ -100,6 +139,11 @@
    })
  },
  methods: {
    chagneVirtural(){
      /*if(this.form.isVirtual ==1){
        this.form.type=1
      }*/
    },
    changeSignInNoticeUsers(e) {
      if (this.form.signInNoticeUsers.length > 5) {
        this.form.signInNoticeUsers.splice(this.form.signInNoticeUsers.length - 1, 1)
admin/src/views/index.vue
@@ -396,6 +396,7 @@
    },
    getWorkBody () {
      getWorkbenchData({ queryType: 2 }).then(res => {
        console.log(res)
        this.staticData = res || {}
        this.initEchart2()
        this.initEchart21()
@@ -517,6 +518,7 @@
      if (!document.getElementById('echart2')) {
        return
      }
      echarts.dispose(document.getElementById('echart2'))
      const myChart = echarts.init(document.getElementById('echart2'))
      const that = this
      var ydata = that.staticData.internalList.map(i => i.num)
@@ -621,11 +623,11 @@
      })
    },
    initEchart21 () {
      console.log('initEchart21')
      console.log('initEchart21',this.staticData.lwList)
      if (!document.getElementById('echart21')) {
        return
      }
      echarts.dispose(document.getElementById('echart21'))
      const myChart = echarts.init(document.getElementById('echart21'))
      const that = this
      var le1 = that.staticData.internalList.length
admin/src/views/platform/platformGroup.vue
@@ -15,12 +15,12 @@
      >
        <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">
        <el-table-column prop="startTime" label="工作时间" min-width="100px"  align="center">
          <template scope="{row}">
            {{row.startTime || ' '}} - {{row.endTime || ' '}}
          </template>
        </el-table-column>
        <el-table-column prop="type" label="业务类型"  align="center" min-width="150px">
        <el-table-column prop="type" label="业务类型"  align="center" min-width="100px">
          <template scope="{row}">
            <span v-if="row.type == 0">安泰物流卸货</span>
            <span v-if="row.type == 1">安泰物流装货</span>
@@ -30,6 +30,24 @@
        <el-table-column prop="waitCallTime" label="叫号等待时间(分钟)" min-width="140px"  align="center"></el-table-column>
        <el-table-column prop="signInNoticeUserNames" label="签到通知人员" min-width="200px"  align="center"></el-table-column>
        <el-table-column prop="unFinishNoticeUserNames" label="未完成作业通知人员" min-width="200px"  align="center"></el-table-column>
        <el-table-column prop="waitCallTime" label="自动叫号时间" min-width="140px"  align="center">
          <template scope="{row}">
            {{row.autoCallStartTime || ' '}} - {{row.autoCallEndTime || ' '}}
          </template>
        </el-table-column>
        <el-table-column prop="type" label="虚拟月台组"  align="center" min-width="100px">
          <template scope="{row}">
            <span v-if="row.isVirtual == 1" class="red">是</span>
            <span v-else class="green">否</span>
          </template>
        </el-table-column>
        <el-table-column label="是否自动叫号"  width="100px" fixed="right" align="center">
          <template slot-scope="{row}">
            <el-switch @change="changeAutoCall($event, row)" v-model="row.autoCall" active-color="#13ce66"
                       inactive-color="#ff4949" :active-value="1" :inactive-value="0"  >
            </el-switch>
          </template>
        </el-table-column>
        <el-table-column prop="editDate" label="最近更新时间" min-width="150px"  align="center"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:platformgroup:update', 'business:platformgroup:delete'])"
@@ -85,6 +103,12 @@
    this.search()
  },
  methods: {
    changeAutoCall(e, row) {
      this.api.updateAutoCallById({
        id: row.id,
        autoCall: e
      })
    }
  }
}
</script>
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -862,6 +862,7 @@
        AUTHED_LEAVE(9, "下发授权离园","下发授权离园" ),
        LEAVED(10, "已离园 ","车辆从{data}离场 " ),
        OVER_NUMBER(11, "已过号","超时未到指定月台自动过号" ),
        CHANGE_GROUP(12, "更换月台组","从【{data}】更换到【{data1}】" ),
        ;
        // 成员变量
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
@@ -109,7 +109,6 @@
        return ApiResponse.success(platformService.platformWorkReportList(platform));
    }
    @ApiOperation("根据月台组获取月台列表信息")
    @GetMapping("/listByGroupId")
    @CloudRequiredPermission("business:platform:query")
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java
@@ -158,9 +158,17 @@
    @ApiOperation("手动完成作业")
    @PostMapping("/dealJobFinish")
    @CloudRequiredPermission("business:platformjob:update")
    public ApiResponse  dealJobFinish (@RequestBody List<Integer> list, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        platformJobService.dealJobFinish(list,getLoginUser(token));
        return ApiResponse.success("操作成功");
    }
    @ApiOperation("更换月台分组")
    @PostMapping("/changPlatformGroup")
    @CloudRequiredPermission("business:platformjob:update")
    public ApiResponse  changPlatformGroup (@RequestBody PlatformJob param, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        platformJobService.changPlatformGroup(param,getLoginUser(token));
        return ApiResponse.success("操作成功");
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
@@ -72,7 +72,7 @@
    @ExcelColumn(name="状态 0正常 1禁用")
    private Integer status;
    @ApiModelProperty(value = "类型  0整托盘 1散件", example = "1")
    @ExcelColumn(name="类型  0整托盘 1散件")
    @ExcelColumn(name="类型  0散件 1散件")
    private Integer type;
    @ApiModelProperty(value = "月台状态 0-无车 1-有车 2-超时停靠 3-错误停靠", example = "1")
    @ExcelColumn(name="月台状态 0-无车 1-有车 2-超时停靠 3-错误停靠")
@@ -97,6 +97,9 @@
    @ApiModelProperty(value = "同时作业数量", example = "1")
    @ExcelColumn(name="同时作业数量")
    private Integer workingNum;
    @ApiModelProperty(value = "同时准备作业数量", example = "1")
    @ExcelColumn(name="同时准备作业数量")
    private Integer callReadyNum;
    @ApiModelProperty(value = "作业超时报警时间(秒)", example = "1")
    @ExcelColumn(name="作业超时报警时间(秒)")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -411,9 +411,9 @@
    @TableField(exist = false)
    private Date beginDoneDateEnd;
    @ApiModelProperty(value = "月台组名称")
    @TableField(exist = false)
    @ExcelColumn(name="作业月台组",index =22,width = 10)
    private String platformGroupName ;
    @ApiModelProperty(value = "月台工作时长" ,hidden = true)
@@ -427,7 +427,6 @@
    @ApiModelProperty(value = "多状态查询 多个以,分割")
    @TableField(exist = false)
    private String queryStatus;
    @ApiModelProperty(value = "多状态查询 多个以,分割")
    @TableField(exist = false)
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -265,4 +265,6 @@
     * @return
     */
    PlatformJob restoreWork(JobOperateDTO jobOperateDTO);
    void changPlatformGroup(PlatformJob param, LoginUserInfo loginUser);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -247,7 +247,7 @@
                .selectAs(PlatformBooks::getId,PlatformJob::getBookId)
                .select("s.REALNAME",PlatformJob::getEditUserName)
                .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                .leftJoin(PlatformGroup.class,PlatformGroup::getId,Platform::getGroupId)
                .leftJoin(PlatformGroup.class,PlatformGroup::getId,PlatformJob::getPlatformGroupId)
                .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode)
                .leftJoin(SystemUser.class,SystemUser::getId,PlatformJob::getOutUserId)
                .leftJoin(PlatformBooks.class,PlatformBooks::getJobId,PlatformJob::getId)
@@ -2447,6 +2447,68 @@
    /**
     * 更换月台分钟
     * @param param
     */
    @Override
    public void changPlatformGroup(PlatformJob param, LoginUserInfo loginUser){
        if(param.getId() ==null || param.getPlatformGroupId()==null) {
            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        PlatformJob model  = platformJobMapper.selectById(param.getId());
        if(model ==null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(Constants.equalsInteger(model.getType(),Constants.platformJobType.sgscxh)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"【市公司外协车卸货】作业类型不支持月台组切换");
        }
        //   WAIT_CONFIRM(0, "待确认","待确认" ),
        //        WART_SIGN_IN(1, "待签到","待签到" ),
        //        WAIT_CALL(2, "已签到","已签到"),
        if(!Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WAIT_CONFIRM.getKey())
                &&!Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())
                &&!Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,业务状态已流转,不支持月台组切换!");
        }
        PlatformGroup group = platformGroupMapper.selectById(param.getPlatformGroupId());
        if(Objects.isNull(group)|| Constants.equalsInteger(group.getIsdeleted(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到月台组信息");
        }
        if(Constants.equalsInteger(model.getType(),Constants.platformJobType.zycxh)
                ||Constants.equalsInteger(model.getType(),Constants.platformJobType.wxcxh)){
            if( ! Constants.equalsInteger(group.getType(),Constants.ZERO)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"该作业只能在【安泰物流卸货】类型的月台组下作业");
            }
        }
        if(Constants.equalsInteger(model.getType(),Constants.platformJobType.zyczh)
                ||Constants.equalsInteger(model.getType(),Constants.platformJobType.wxczh)){
            if( ! Constants.equalsInteger(group.getType(),Constants.ONE)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"该作业只能在【安泰物流装货】类型的月台组下作业");
            }
        }
        if(Constants.equalsInteger(model.getType(),Constants.platformJobType.sgscxh)
                && !Constants.equalsInteger(group.getType(),Constants.TWO)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"该作业只能在【市公司卸货】类型的月台组下作业");
        }
        PlatformJob platformJob = new PlatformJob();
        BeanUtils.copyProperties(model,platformJob);
        platformJob.setPlatformGroupId(param.getPlatformGroupId());
        platformJob.setEditDate(new Date());
        platformJob.setEditor(loginUser.getId());
       int flag =  platformJobMapper.update(null,new UpdateWrapper<PlatformJob>().lambda()
                .set(PlatformJob::getEditDate,platformJob.getEditDate())
                .set(PlatformJob::getEditor,platformJob.getEditor())
                .set(PlatformJob::getPlatformGroupId,param.getPlatformGroupId())
                .set(PlatformJob::getPlatformId,null)//置空分配的月台信息
                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CONFIRM.getKey(),
                        Constants.PlatformJobStatus.WART_SIGN_IN.getKey(),
                        Constants.PlatformJobStatus.WAIT_CALL.getKey())
                .eq(PlatformJob::getId,param.getId()));
        //存储操作日志
        savePlatformLog(Constants.PlatformJobLogType.CHANGE_GROUP.getKey(),model,platformJob,
                Constants.PlatformJobLogType.CHANGE_GROUP.getInfo().replace("{data}",param.getPlatformGroupName()).replace("{data1}",group.getName()));
    }
    /**
     * 手动完成作业
     * @param jobIdList
     */
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
@@ -293,6 +293,7 @@
                .eq(pageWrap.getModel().getWidth() != null, Platform::getWidth, pageWrap.getModel().getWidth())
                .eq(pageWrap.getModel().getHeight() != null, Platform::getHeight, pageWrap.getModel().getHeight())
                .eq(pageWrap.getModel().getAngle() != null, Platform::getAngle, pageWrap.getModel().getAngle())
                .eq(pageWrap.getModel().getType() != null, Platform::getType, pageWrap.getModel().getType())
                .orderByAsc(Platform::getSortnum)
        ;
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {