fix:1.修复输送线命令下发是否校验库存;

2.组盘导入增加新物料;
    3.删除组盘信息,关联删除载具物料表;
This commit is contained in:
2025-02-10 22:13:28 +08:00
parent d4bcbf78f6
commit 33ad2a0d7e
10 changed files with 147 additions and 99 deletions

View File

@@ -55,9 +55,8 @@ public class EndDecisionChainer extends DecisionerChain<List> {
IStIvtStructattrService iStIvtStructattrService = SpringContextHolder.getBean(IStIvtStructattrService.class); IStIvtStructattrService iStIvtStructattrService = SpringContextHolder.getBean(IStIvtStructattrService.class);
IMdPbVehicleMaterService iMdPbVehicleMaterService = SpringContextHolder.getBean(IMdPbVehicleMaterService.class); IMdPbVehicleMaterService iMdPbVehicleMaterService = SpringContextHolder.getBean(IMdPbVehicleMaterService.class);
List<String> structs = new ArrayList<>(); List<String> structs = new ArrayList<>();
StIvtStructattr structattr = (StIvtStructattr) transfers.get(0);
try {
if (in_storage) { if (in_storage) {
StIvtStructattr structattr = (StIvtStructattr) transfers.get(0);
UpdateWrapper<StIvtStructattr> updateWrapper = new UpdateWrapper<StIvtStructattr>() UpdateWrapper<StIvtStructattr> updateWrapper = new UpdateWrapper<StIvtStructattr>()
.set("vehicle_code", startParam.getString("vehicle_code")) .set("vehicle_code", startParam.getString("vehicle_code"))
.set("lock_type", StatusEnum.LOCK.code("入库锁")) .set("lock_type", StatusEnum.LOCK.code("入库锁"))
@@ -78,6 +77,7 @@ public class EndDecisionChainer extends DecisionerChain<List> {
for (StructattrVechielDto vechielDto : vechielDtos) { for (StructattrVechielDto vechielDto : vechielDtos) {
iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>() iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
.set("frozen_qty", vechielDto.getFrozen_qty()) .set("frozen_qty", vechielDto.getFrozen_qty())
.set("update_time", DateUtil.now())
.eq("id", vechielDto.getVm_id())); .eq("id", vechielDto.getVm_id()));
} }
List<String> structCodes = vechielDtos.stream().map(StructattrVechielDto::getStruct_code).collect(Collectors.toList()); List<String> structCodes = vechielDtos.stream().map(StructattrVechielDto::getStruct_code).collect(Collectors.toList());
@@ -90,9 +90,6 @@ public class EndDecisionChainer extends DecisionerChain<List> {
System.out.println("载具绑定成功" + collect); System.out.println("载具绑定成功" + collect);
structs = collect; structs = collect;
} }
} catch (Exception e) {
log.error("库位:" + structattr.getStruct_code() + "异常:" + e.getMessage());
}
return structs; return structs;
} }

View File

@@ -7,6 +7,9 @@
FROM FROM
`sch_base_task` t `sch_base_task` t
<where> <where>
<if test="whereJson.task_id != null">
AND t.id = #{whereJson.task_id}
</if>
<if test="whereJson.task_code != null"> <if test="whereJson.task_code != null">
AND t.task_code = #{whereJson.task_code} AND t.task_code = #{whereJson.task_code}
</if> </if>

View File

@@ -10,6 +10,7 @@ import java.io.Serializable;
**/ **/
@Data @Data
public class SchBaseTaskQuery implements Serializable { public class SchBaseTaskQuery implements Serializable {
private String task_id;
private String task_code; private String task_code;
private String vehicle_code; private String vehicle_code;
private String point_code; private String point_code;

View File

@@ -67,7 +67,7 @@ public class MdGruopDickController {
@Log("删除桶记录表") @Log("删除桶记录表")
public ResponseEntity<Object> delete(@RequestBody String[] ids) { public ResponseEntity<Object> delete(@RequestBody String[] ids) {
if (ids != null && ids.length >0){ if (ids != null && ids.length >0){
iMdGruopDickService.removeByIds(Arrays.asList(ids)); iMdGruopDickService.delete(ids);
} }
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }

View File

@@ -6,6 +6,7 @@ import org.nl.wms.md_manage.group_dick.service.dao.MdGruopDick;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.md_manage.group_dick.service.dto.GroupDickQuery; import org.nl.wms.md_manage.group_dick.service.dto.GroupDickQuery;
import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo; import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@@ -26,6 +27,8 @@ public interface IMdGruopDickService extends IService<MdGruopDick> {
Object queryAll(GroupDickQuery query, PageQuery page); Object queryAll(GroupDickQuery query, PageQuery page);
void groupDick(JSONObject form); void groupDick(JSONObject form);
void delete(@RequestBody String[] ids);
/** /**
* 导入组盘信息 * 导入组盘信息

View File

@@ -1,6 +1,7 @@
package org.nl.wms.md_manage.group_dick.service.impl; package org.nl.wms.md_manage.group_dick.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
@@ -45,10 +46,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.InputStream; import java.io.InputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -62,8 +60,6 @@ import java.util.stream.Collectors;
@Service @Service
public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGruopDick> implements IMdGruopDickService { public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGruopDick> implements IMdGruopDickService {
@Autowired
private SyncFormMappingServiceImpl syncFormMappingServiceImpl;
@Autowired @Autowired
private IMdPbVehicleMaterService iMdPbVehicleMaterService; private IMdPbVehicleMaterService iMdPbVehicleMaterService;
@Autowired @Autowired
@@ -76,6 +72,8 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
private ErpServiceUtils erpServiceUtils; private ErpServiceUtils erpServiceUtils;
@Autowired @Autowired
private SyncErpBillsScheduleService syncErpBillsScheduleService; private SyncErpBillsScheduleService syncErpBillsScheduleService;
@Autowired
private SyncFormMappingServiceImpl syncFormMappingServiceImpl;
@Override @Override
public Object queryAll(GroupDickQuery query, PageQuery pageQuery) { public Object queryAll(GroupDickQuery query, PageQuery pageQuery) {
@@ -215,6 +213,22 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
} }
} }
@Override
@Transactional
public void delete(String[] ids) {
if (ids != null && ids.length > 0) {
this.removeByIds(Arrays.asList(ids));
List<MdPbVehicleMater> vehicleMaterList = iMdPbVehicleMaterService.list(new QueryWrapper<MdPbVehicleMater>().select("id").in("group_id", ids));
if (ObjectUtil.isNotEmpty(vehicleMaterList)) {
iMdPbVehicleMaterService.removeByIds(vehicleMaterList.stream().map(MdPbVehicleMater::getId).collect(Collectors.toList()));
}
}
}
/**
* 组盘导入
*/
@Override @Override
@Transactional @Transactional
public void excelImport(MultipartFile file, HttpServletRequest request, HttpServletResponse response) { public void excelImport(MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
@@ -253,7 +267,7 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
if (!queryMaterialInfo) { if (!queryMaterialInfo) {
throw new BadRequestException("" + (i + 1) + "行," + material_code + "在ERP系统上检索不到相关物料信息请检查"); throw new BadRequestException("" + (i + 1) + "行," + material_code + "在ERP系统上检索不到相关物料信息请检查");
} }
materialCode = mdMeMaterialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_code", material_code)); materialCode = mdMeMaterialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_code", material_code));
} }
materialCode.setSingle_weight(new BigDecimal(single_weight)); materialCode.setSingle_weight(new BigDecimal(single_weight));
//更新单重 //更新单重

View File

@@ -2,10 +2,8 @@ package org.nl.wms.pda_manage.devicemanage;
import cn.dev33.satoken.annotation.SaIgnore; import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
@@ -13,24 +11,18 @@ import org.apache.commons.lang3.StringUtils;
import org.nl.common.TableDataInfo; import org.nl.common.TableDataInfo;
import org.nl.common.anno.Log; import org.nl.common.anno.Log;
import org.nl.common.domain.exception.BadRequestException; import org.nl.common.domain.exception.BadRequestException;
import org.nl.common.domain.exception.handler.ApiError;
import org.nl.common.enums.StatusEnum; import org.nl.common.enums.StatusEnum;
import org.nl.common.utils.*; import org.nl.common.utils.MapOf;
import org.nl.common.utils.RedissonUtils;
import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService; import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService;
import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo; import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo;
import org.nl.wms.dispatch_manage.point.service.ISchBasePointService; import org.nl.wms.dispatch_manage.point.service.ISchBasePointService;
import org.nl.wms.dispatch_manage.point.service.dao.SchBasePoint; import org.nl.wms.dispatch_manage.point.service.dao.SchBasePoint;
import org.nl.wms.dispatch_manage.task.handler.impl.TranforTask; import org.nl.wms.dispatch_manage.task.handler.impl.TranforTask;
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
import org.nl.wms.external_system.acs.service.AcsToWmsService;
import org.nl.wms.external_system.acs.service.WmsToAcsService; import org.nl.wms.external_system.acs.service.WmsToAcsService;
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService; import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo; import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo;
import org.nl.wms.pda_manage.devicemanage.dto.ComTp; import org.nl.wms.pda_manage.devicemanage.dto.ComTp;
import org.nl.wms.pda_manage.palletio.service.PalletIostorinvService;
import org.nl.wms.pda_manage.palletio.service.dto.LabelValueVo;
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -42,7 +34,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.text.Format;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@@ -112,40 +103,46 @@ public class DeviceManageController {
@SaIgnore @SaIgnore
@Log("下发输送线运动命令") @Log("下发输送线运动命令")
public ResponseEntity<TableDataInfo> toCommandTP(@RequestBody ComTp form) { public ResponseEntity<TableDataInfo> toCommandTP(@RequestBody ComTp form) {
Assert.noNullElements(new Object[]{form.getDevice_code(),form.getVehicle_code()},"请求参数不能为空"); Assert.noNullElements(new Object[]{form.getDevice_code(), form.getVehicle_code()}, "请求参数不能为空");
String device_code = form.getDevice_code(); String device_code = form.getDevice_code();
String vehicleCode = form.getVehicle_code(); String vehicleCode = form.getVehicle_code();
String is_check = form.getIs_check();
if (StringUtils.isBlank(is_check)) {
is_check = "1";
}
SchBasePoint code = iSchBasePointService.getOne(new QueryWrapper<SchBasePoint>().eq("code", device_code)); SchBasePoint code = iSchBasePointService.getOne(new QueryWrapper<SchBasePoint>().eq("code", device_code));
if (code!=null && !code.getIs_used()){ if (code != null && !code.getIs_used()) {
throw new BadRequestException(String.format("输送线%s模式不正确不允许下发运动",device_code)); throw new BadRequestException(String.format("输送线%s模式不正确不允许下发运动", device_code));
} }
BmVehicleInfo vehicleInfo = iBmVehicleInfoService.getOne(new QueryWrapper<BmVehicleInfo>() BmVehicleInfo vehicleInfo = iBmVehicleInfoService.getOne(new QueryWrapper<BmVehicleInfo>()
.eq("vehicle_code", vehicleCode)); .eq("vehicle_code", vehicleCode));
if (vehicleInfo == null ){ if (vehicleInfo == null) {
throw new BadRequestException(String.format(vehicleCode+"载具信息不存在")); throw new BadRequestException(String.format(vehicleCode + "载具信息不存在"));
} }
List<MdPbVehicleMaterVo> item = iMdPbVehicleMaterService.getVehicleMaters(vehicleCode); List<MdPbVehicleMaterVo> item = iMdPbVehicleMaterService.getVehicleMaters(vehicleCode);
if (CollectionUtils.isEmpty(item)){ if (CollectionUtils.isEmpty(item)) {
throw new BadRequestException(String.format(vehicleCode+"载具组盘信息不存在")); throw new BadRequestException(String.format(vehicleCode + "载具组盘信息不存在"));
} }
for (MdPbVehicleMaterVo materVo : item) { for (MdPbVehicleMaterVo materVo : item) {
if (materVo.getQty().intValue() == 0){ if (materVo.getQty().intValue() == 0) {
throw new BadRequestException(String.format(vehicleCode+"组盘异常,确认是否出库后组盘")); throw new BadRequestException(String.format(vehicleCode + "组盘异常,确认是否出库后组盘"));
} }
} }
//校验料箱是否还存在库存 if ("1".equals(is_check)) {
RedissonUtils.lock(() -> { //校验料箱是否还存在库存
QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>() RedissonUtils.lock(() -> {
.eq("is_used", true) QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>()
.eq("lock_type", StatusEnum.LOCK.code("无锁")) .eq("is_used", true)
.eq("vehicle_code", vehicleCode); .eq("lock_type", StatusEnum.LOCK.code("无锁"))
List<StIvtStructattr> list = iStIvtStructattrService.list(query); .eq("vehicle_code", vehicleCode);
if (ObjectUtils.isNotEmpty(list)) { List<StIvtStructattr> list = iStIvtStructattrService.list(query);
throw new BadRequestException(String.format("扫码失败:当前载具号在立库的库位中未出库:%s中请核查库存记录!", list.get(0).getStruct_code())); if (ObjectUtils.isNotEmpty(list)) {
} throw new BadRequestException(String.format("扫码失败:当前载具号在立库的库位中未出库:%s中请核查库存记录!", list.get(0).getStruct_code()));
}, StatusEnum.STRATEGY_TYPE.code("入库") + vehicleCode, 5); }
wmsToAcsService.toCommand(device_code,"1",vehicleInfo.getH()); }, StatusEnum.STRATEGY_TYPE.code("入库") + vehicleCode, 5);
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); }
wmsToAcsService.toCommand(device_code, "1", vehicleInfo.getH());
return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK);
} }
@PostMapping("transf") @PostMapping("transf")
@SaIgnore @SaIgnore

View File

@@ -16,4 +16,9 @@ public class ComTp {
* 载具编码 * 载具编码
*/ */
private String vehicle_code ; private String vehicle_code ;
/**
* 是否库存检查
*/
private String is_check ;
} }

View File

@@ -197,6 +197,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
} }
} }
private List<MdPbVehicleMater> groupVehicle(JSONObject form, List<Map> tmpItemO, StIvtIostorinvdtl dtl) { private List<MdPbVehicleMater> groupVehicle(JSONObject form, List<Map> tmpItemO, StIvtIostorinvdtl dtl) {
String now = DateUtil.now(); String now = DateUtil.now();
String user = SecurityUtils.getCurrentNickName(); String user = SecurityUtils.getCurrentNickName();

View File

@@ -10,8 +10,6 @@
label-width="80px" label-width="80px"
label-suffix=":" label-suffix=":"
> >
<el-form-item label="任务号"> <el-form-item label="任务号">
<label slot="label">&nbsp;&nbsp;&nbsp;:</label> <label slot="label">&nbsp;&nbsp;&nbsp;:</label>
<el-input <el-input
@@ -22,6 +20,16 @@
@keyup.enter.native="crud.toQuery" @keyup.enter.native="crud.toQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="任务ID">
<label slot="label">&nbsp;&nbsp;&nbsp;ID:</label>
<el-input
v-model="query.task_id"
clearable
style="width: 240px"
placeholder="任务ID"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="载具号"> <el-form-item label="载具号">
<label slot="label">&nbsp;&nbsp;&nbsp;:</label> <label slot="label">&nbsp;&nbsp;&nbsp;:</label>
<el-input <el-input
@@ -49,8 +57,8 @@
range-separator="" range-separator=""
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@change="crud.toQuery"> @change="crud.toQuery"
</el-date-picker> />
</el-form-item> </el-form-item>
<el-form-item label="任务状态"> <el-form-item label="任务状态">
<el-select <el-select
@@ -70,7 +78,7 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<rrOperation/> <rrOperation />
</el-form> </el-form>
</div> </div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'--> <!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
@@ -83,44 +91,57 @@
/> />
<el-button type="primary" @click="taskScheduler()">任务调度</el-button> <el-button type="primary" @click="taskScheduler()">任务调度</el-button>
</span> </span>
<crudOperation :permission="permission"/> <crudOperation :permission="permission" />
<!--表单组件--> <!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" <el-dialog
:title="crud.status.title" width="800px"> :close-on-click-modal="false"
<el-form ref="form" style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;" :inline="true" :before-close="crud.cancelCU"
:model="form" :rules="rules" size="mini" label-width="115px" label-suffix=":"> :visible.sync="crud.status.cu > 0"
:title="crud.status.title"
width="800px"
>
<el-form
ref="form"
style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;"
:inline="true"
:model="form"
:rules="rules"
size="mini"
label-width="115px"
label-suffix=":"
>
<el-form-item label="任务编码"> <el-form-item label="任务编码">
<el-input v-model="form.task_code" style="width: 240px;"/> <el-input v-model="form.task_code" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="任务状态"> <el-form-item label="任务状态">
<el-input v-model="form.status" style="width: 240px;"/> <el-input v-model="form.status" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="点位1"> <el-form-item label="点位1">
<el-input v-model="form.point_code1" style="width: 240px;"/> <el-input v-model="form.point_code1" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="点位2"> <el-form-item label="点位2">
<el-input v-model="form.point_code2" style="width: 240px;"/> <el-input v-model="form.point_code2" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="点位3"> <el-form-item label="点位3">
<el-input v-model="form.point_code3" style="width: 240px;"/> <el-input v-model="form.point_code3" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="点位4"> <el-form-item label="点位4">
<el-input v-model="form.point_code4" style="width: 240px;"/> <el-input v-model="form.point_code4" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="载具类型"> <el-form-item label="载具类型">
<el-input v-model="form.vehicle_type" style="width: 240px;"/> <el-input v-model="form.vehicle_type" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="载具编码"> <el-form-item label="载具编码">
<el-input v-model="form.vehicle_code" style="width: 240px;"/> <el-input v-model="form.vehicle_code" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="优先级"> <el-form-item label="优先级">
<el-input v-model="form.priority" style="width: 240px;"/> <el-input v-model="form.priority" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item v-if="false" label="处理类"> <el-form-item v-if="false" label="处理类">
<el-input v-model="form.handle_class" style="width: 240px;"/> <el-input v-model="form.handle_class" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="form.remark" style="width: 240px;"/> <el-input v-model="form.remark" style="width: 240px;" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@@ -129,11 +150,18 @@
</div> </div>
</el-dialog> </el-dialog>
<!--表格渲染--> <!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" <el-table
@selection-change="crud.selectionChangeHandler"> ref="table"
<el-table-column type="selection" width="55"/> v-loading="crud.loading"
<el-table-column prop="product_area" show-overflow-tooltip show-tooltip-when-overflow label="生产区域"/> :data="crud.data"
<el-table-column prop="task_code" show-overflow-tooltip show-tooltip-when-overflow label="任务编码"/> size="mini"
style="width: 100%;"
@selection-change="crud.selectionChangeHandler"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="product_area" show-overflow-tooltip show-tooltip-when-overflow label="生产区域" />
<el-table-column prop="id" show-overflow-tooltip show-tooltip-when-overflow label="任务ID" />
<el-table-column prop="task_code" show-overflow-tooltip show-tooltip-when-overflow label="任务编码" />
<el-table-column prop="task_type" show-overflow-tooltip show-tooltip-when-overflow label="任务类型"> <el-table-column prop="task_type" show-overflow-tooltip show-tooltip-when-overflow label="任务类型">
<template slot-scope="scope"> <template slot-scope="scope">
{{ statusEnum.label.TASK_TYPE[scope.row.task_type] }} {{ statusEnum.label.TASK_TYPE[scope.row.task_type] }}
@@ -144,80 +172,79 @@
{{ scope.row.vehicle_code ? scope.row.vehicle_code : '-' }} {{ scope.row.vehicle_code ? scope.row.vehicle_code : '-' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="acs_type" show-overflow-tooltip show-tooltip-when-overflow width="130" label="ACS任务类型"/> <el-table-column prop="acs_type" show-overflow-tooltip show-tooltip-when-overflow width="130" label="ACS任务类型" />
<el-table-column prop="status" show-overflow-tooltip show-tooltip-when-overflow label="任务状态"> <el-table-column prop="status" show-overflow-tooltip show-tooltip-when-overflow label="任务状态">
<template slot-scope="scope"> <template slot-scope="scope">
{{ statusEnum.label.FORM_STATUS[scope.row.status] }} {{ statusEnum.label.FORM_STATUS[scope.row.status] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="task_step" show-overflow-tooltip show-tooltip-when-overflow width="130" label="任务执行步骤"/> <el-table-column prop="task_step" show-overflow-tooltip show-tooltip-when-overflow width="130" label="任务执行步骤" />
<el-table-column prop="group_code" show-overflow-tooltip show-tooltip-when-overflow label="任务组"/> <el-table-column prop="group_code" show-overflow-tooltip show-tooltip-when-overflow label="任务组" />
<el-table-column prop="point_code1" show-overflow-tooltip show-tooltip-when-overflow width="130" label="起点1"/> <el-table-column prop="point_code1" show-overflow-tooltip show-tooltip-when-overflow width="130" label="起点1" />
<el-table-column prop="point_code2" show-overflow-tooltip show-tooltip-when-overflow width="130" label="终点1"/> <el-table-column prop="point_code2" show-overflow-tooltip show-tooltip-when-overflow width="130" label="终点1" />
<el-table-column prop="point_code3" show-overflow-tooltip show-tooltip-when-overflow width="130" label="起点2"/> <el-table-column prop="point_code3" show-overflow-tooltip show-tooltip-when-overflow width="130" label="起点2" />
<el-table-column prop="point_code4" show-overflow-tooltip show-tooltip-when-overflow width="130" label="终点2"/> <el-table-column prop="point_code4" show-overflow-tooltip show-tooltip-when-overflow width="130" label="终点2" />
<el-table-column prop="priority" show-overflow-tooltip show-tooltip-when-overflow label="优先级"/> <el-table-column prop="priority" show-overflow-tooltip show-tooltip-when-overflow label="优先级" />
<el-table-column prop="handle_class" show-overflow-tooltip show-tooltip-when-overflow width="150" label="处理类"/> <el-table-column prop="handle_class" show-overflow-tooltip show-tooltip-when-overflow width="150" label="处理类" />
<el-table-column prop="is_send" show-overflow-tooltip show-tooltip-when-overflow label="立即下发"/> <el-table-column prop="is_send" show-overflow-tooltip show-tooltip-when-overflow label="立即下发" />
<el-table-column prop="remark" show-overflow-tooltip show-tooltip-when-overflow label="备注"/> <el-table-column prop="remark" show-overflow-tooltip show-tooltip-when-overflow label="备注" />
<el-table-column prop="form_data" show-overflow-tooltip show-tooltip-when-overflow width="130" label="自定义参数"/> <el-table-column prop="form_data" show-overflow-tooltip show-tooltip-when-overflow width="130" label="自定义参数" />
<el-table-column prop="create_time" show-overflow-tooltip show-tooltip-when-overflow label="创建时间"/> <el-table-column prop="create_time" show-overflow-tooltip show-tooltip-when-overflow label="创建时间" />
<el-table-column prop="update_name" show-overflow-tooltip show-tooltip-when-overflow label="修改人"/> <el-table-column prop="update_name" show-overflow-tooltip show-tooltip-when-overflow label="修改人" />
<el-table-column prop="update_time" show-overflow-tooltip show-tooltip-when-overflow label="修改时间"/> <el-table-column prop="update_time" show-overflow-tooltip show-tooltip-when-overflow label="修改时间" />
<el-table-column v-permission="[]" label="操作" width="250px" align="center" fixed="right"> <el-table-column v-permission="[]" label="操作" width="250px" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
type="text" type="text"
icon="el-icon-success" icon="el-icon-success"
@click="doOperate(scope.row, 'c')"
:disabled="scope.row.status!=='10' && scope.row.status!=='30' " :disabled="scope.row.status!=='10' && scope.row.status!=='30' "
@click="doOperate(scope.row, 'c')"
>下发 >下发
</el-button> </el-button>
<el-button <el-button
type="text" type="text"
icon="el-icon-success" icon="el-icon-success"
@click="doOperate(scope.row, 'a')"
:disabled="scope.row.status==='80' || scope.row.status==='82' || scope.row.status==='90'" :disabled="scope.row.status==='80' || scope.row.status==='82' || scope.row.status==='90'"
@click="doOperate(scope.row, 'a')"
>完成 >完成
</el-button> </el-button>
<el-button <el-button
type="text" type="text"
icon="el-icon-success" icon="el-icon-success"
@click="doOperate(scope.row, 'e')"
:disabled="scope.row.status==='80' || scope.row.status==='82' || scope.row.status==='90'" :disabled="scope.row.status==='80' || scope.row.status==='82' || scope.row.status==='90'"
@click="doOperate(scope.row, 'e')"
>强制完成 >强制完成
</el-button> </el-button>
<el-button <el-button
type="text" type="text"
icon="el-icon-error" icon="el-icon-error"
@click="doOperate(scope.row, 'b')"
:disabled="scope.row.status==='80' || scope.row.status==='82' || scope.row.status==='90'" :disabled="scope.row.status==='80' || scope.row.status==='82' || scope.row.status==='90'"
@click="doOperate(scope.row, 'b')"
>取消 >取消
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!--分页组件--> <!--分页组件-->
<pagination/> <pagination />
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import crudSchBaseTask, {scheduler} from './schBaseTask' import crudSchBaseTask, { scheduler } from './schBaseTask'
// import crudSchBaseTaskconfig from './config/schBaseTaskconfig' // import crudSchBaseTaskconfig from './config/schBaseTaskconfig'
import CRUD, {crud, form, header, presenter} from '@crud/crud' import CRUD, { crud, form, header, presenter } from '@crud/crud'
import rrOperation from '@crud/RR.operation' import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation' import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
import crudDict from '@/views/system/dict/dict' import crudDict from '@/views/system/dict/dict'
const defaultForm = { const defaultForm = {
id: null,
product_area: null, product_area: null,
task_id: null,
task_code: null, task_code: null,
task_type: null, task_type: null,
acs_type: null, acs_type: null,
@@ -241,7 +268,7 @@ const defaultForm = {
} }
export default { export default {
name: 'Task', name: 'Task',
components: {pagination, crudOperation, rrOperation, udOperation}, components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()], mixins: [presenter(), header(), form(defaultForm), crud()],
statusEnums: ['TASK_TYPE', 'FORM_STATUS'], statusEnums: ['TASK_TYPE', 'FORM_STATUS'],
cruds() { cruds() {
@@ -257,7 +284,7 @@ export default {
download: false, download: false,
reset: true reset: true
}, },
crudMethod: {...crudSchBaseTask} crudMethod: { ...crudSchBaseTask }
}) })
}, },
data() { data() {
@@ -265,7 +292,7 @@ export default {
undo: 0, undo: 0,
permission: {}, permission: {},
rules: {}, rules: {},
taskStatusList: [], taskStatusList: []
} }
}, },
created() { created() {