rev:优化修改
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package org.nl.wms.basedata_manage.service.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
@@ -129,4 +130,10 @@ public class MdPbStoragevehicleinfo implements Serializable {
|
||||
*/
|
||||
private String ext_id;
|
||||
|
||||
/**
|
||||
* 料箱类型(手持返回前端使用)
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String box_type;
|
||||
|
||||
}
|
||||
|
||||
@@ -130,6 +130,19 @@ public class MdPbStoragevehicleextServiceImpl extends ServiceImpl<MdPbStorageveh
|
||||
break;
|
||||
}
|
||||
|
||||
// 判断是大料箱还是小料箱
|
||||
if (attrDao.getSect_code().equals(IOSEnum.SECT_CODE.code("大料箱区"))) {
|
||||
// 更新组盘记录品质类型
|
||||
iMdPbGroupplateService.update(
|
||||
new UpdateWrapper<GroupPlate>().lambda()
|
||||
.set(GroupPlate::getQuality_type, quality_type)
|
||||
.eq(GroupPlate::getMaterial_id, extDao.getMaterial_id())
|
||||
.eq(GroupPlate::getStoragevehicle_code, extDao.getStoragevehicle_code())
|
||||
.eq(GroupPlate::getPcsn, extDao.getPcsn())
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
// 分配相同库区且有空托盘的仓位
|
||||
JSONObject jsonParam = new JSONObject();
|
||||
jsonParam.put("stor_id", attrDao.getStor_id());
|
||||
@@ -181,6 +194,7 @@ public class MdPbStoragevehicleextServiceImpl extends ServiceImpl<MdPbStorageveh
|
||||
*/
|
||||
private Structattr divStruct(JSONObject jsonParam) {
|
||||
|
||||
List<Structattr> attrList = new ArrayList<>();
|
||||
Structattr structattr = new Structattr();
|
||||
|
||||
List<Structattr> vehicleAttrList = iStructattrService.list(
|
||||
@@ -192,13 +206,13 @@ public class MdPbStoragevehicleextServiceImpl extends ServiceImpl<MdPbStorageveh
|
||||
.eq(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq(Structattr::getIs_emptyvehicle, IOSConstant.ONE)
|
||||
.and(wrapper -> wrapper.isNotNull(Structattr::getStoragevehicle_code).or().ne(Structattr::getStoragevehicle_code, ""))
|
||||
.orderByAsc(Structattr::getPlacement_type)
|
||||
.orderByDesc(Structattr::getPlacement_type)
|
||||
.orderByAsc(Structattr::getStruct_code)
|
||||
);
|
||||
if (ObjectUtil.isNotEmpty(vehicleAttrList)) {
|
||||
structattr = vehicleAttrList.get(0);
|
||||
attrList = vehicleAttrList;
|
||||
} else {
|
||||
List<Structattr> attrList = iStructattrService.list(
|
||||
attrList = iStructattrService.list(
|
||||
new QueryWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStor_id, jsonParam.getString("stor_id"))
|
||||
.eq(Structattr::getSect_code, jsonParam.getString("sectc_code"))
|
||||
@@ -210,14 +224,56 @@ public class MdPbStoragevehicleextServiceImpl extends ServiceImpl<MdPbStorageveh
|
||||
.orderByAsc(Structattr::getPlacement_type)
|
||||
.orderByAsc(Structattr::getStruct_code)
|
||||
);
|
||||
if (ObjectUtil.isNotEmpty(attrList)) {
|
||||
structattr = attrList.get(0);
|
||||
}
|
||||
|
||||
// 校验
|
||||
for (Structattr attr : attrList) {
|
||||
// 判断深浅货位
|
||||
if (attr.getPlacement_type().equals(IOSEnum.PLACEMENT_TYPE.code("深货位"))) {
|
||||
// 判断浅货位是否锁定
|
||||
Structattr shallowStartAttr = iStructattrService.getOne(
|
||||
new QueryWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getBlock_num, attr.getBlock_num())
|
||||
.eq(Structattr::getCol_num, attr.getCol_num())
|
||||
.eq(Structattr::getLayer_num, attr.getLayer_num())
|
||||
.eq(Structattr::getPlacement_type, IOSEnum.PLACEMENT_TYPE.code("浅货位"))
|
||||
);
|
||||
if (ObjectUtil.isEmpty(shallowStartAttr)) {
|
||||
throw new BadRequestException("仓位【"+attr.getStruct_code()+"】对应的浅货位不存在!");
|
||||
}
|
||||
|
||||
if (shallowStartAttr.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
structattr = attr;
|
||||
break;
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
// 浅货位
|
||||
Structattr shallowStartAttr = iStructattrService.getOne(
|
||||
new QueryWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getBlock_num, attr.getBlock_num())
|
||||
.eq(Structattr::getCol_num, attr.getCol_num())
|
||||
.eq(Structattr::getLayer_num, attr.getLayer_num())
|
||||
.eq(Structattr::getPlacement_type, IOSEnum.PLACEMENT_TYPE.code("深货位"))
|
||||
);
|
||||
if (ObjectUtil.isEmpty(shallowStartAttr)) {
|
||||
throw new BadRequestException("仓位【"+attr.getStruct_code()+"】对应的深货位不存在!");
|
||||
}
|
||||
|
||||
if (shallowStartAttr.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
structattr = attr;
|
||||
break;
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (ObjectUtil.isEmpty(structattr)) {
|
||||
if (ObjectUtil.isEmpty(structattr.getStruct_code())) {
|
||||
throw new BadRequestException("当前库区【" + jsonParam.getString("sectc_code") + "】没有可用仓位");
|
||||
}
|
||||
|
||||
return structattr;
|
||||
}
|
||||
|
||||
|
||||
@@ -82,4 +82,11 @@ public class PdaGeneralPublicController {
|
||||
return new ResponseEntity<>(pdaGeneralPublicService.queryVehicleType(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/queryNowVehicle")
|
||||
@Log("查询当前载具类型")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> queryNowVehicle(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(pdaGeneralPublicService.queryNowVehicle(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -74,4 +74,13 @@ public interface PdaGeneralPublicService {
|
||||
* @return PdaResponse
|
||||
*/
|
||||
PdaResponse queryVehicleType();
|
||||
|
||||
/**
|
||||
* 查询当前载具类型
|
||||
* @param whereJson {
|
||||
* vehicle_code:载具编码
|
||||
* }
|
||||
* @return PdaResponse
|
||||
*/
|
||||
PdaResponse queryNowVehicle(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -6,8 +6,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.nl.wms.basedata_manage.service.IMdCsSupplierbaseService;
|
||||
import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService;
|
||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdCsSupplierbase;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
|
||||
import org.nl.wms.pda.general_management.service.PdaGeneralPublicService;
|
||||
import org.nl.wms.pda.util.PDAEnum;
|
||||
import org.nl.wms.pda.util.PdaResponse;
|
||||
@@ -54,6 +56,12 @@ public class PdaGeneralPublicServiceImpl implements PdaGeneralPublicService {
|
||||
@Autowired
|
||||
private PdmBomCallMaterialMapper pdmBomCallMaterialMapper;
|
||||
|
||||
/**
|
||||
* 载具信息服务
|
||||
*/
|
||||
@Autowired
|
||||
private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService;
|
||||
|
||||
@Override
|
||||
public PdaResponse queryGroupQuality() {
|
||||
return PdaResponse.requestParamOk(PDAEnum.QUALITY_TYPE.getDict());
|
||||
@@ -110,4 +118,16 @@ public class PdaGeneralPublicServiceImpl implements PdaGeneralPublicService {
|
||||
public PdaResponse queryVehicleType() {
|
||||
return PdaResponse.requestParamOk(PDAEnum.TASK_TYPE.getDict());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PdaResponse queryNowVehicle(JSONObject whereJson) {
|
||||
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne(
|
||||
new QueryWrapper<MdPbStoragevehicleinfo>().lambda()
|
||||
.eq(MdPbStoragevehicleinfo::getStoragevehicle_code, whereJson.getString("vehicle_code"))
|
||||
);
|
||||
if (ObjectUtil.isNotEmpty(vehicleDao)) {
|
||||
vehicleDao.setBox_type(vehicleDao.getStoragevehicle_type());
|
||||
}
|
||||
return PdaResponse.requestParamOk(vehicleDao);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,4 +95,18 @@ public class SchBasePointController {
|
||||
public ResponseEntity<Object> getPointDtl(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(schBasePointService.getPointDtl(whereJson),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("清载具")
|
||||
@PostMapping("/cleanVehicle")
|
||||
public ResponseEntity<Object> cleanVehicle(@RequestBody SchBasePoint dao) {
|
||||
schBasePointService.cleanVehicle(dao);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("清物料")
|
||||
@PostMapping("/cleanMaterial")
|
||||
public ResponseEntity<Object> cleanMaterial(@RequestBody SchBasePoint dao) {
|
||||
schBasePointService.cleanMaterial(dao);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,4 +112,16 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
||||
* @return
|
||||
*/
|
||||
JSONObject getPointDtl(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 清载具
|
||||
* @param dao 实体类
|
||||
*/
|
||||
void cleanVehicle(SchBasePoint dao);
|
||||
|
||||
/**
|
||||
* 清物料
|
||||
* @param dao 实体类
|
||||
*/
|
||||
void cleanMaterial(SchBasePoint dao);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
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.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -29,6 +30,8 @@ import org.nl.wms.sch_manage.service.dto.SchBasePointQuery;
|
||||
import org.nl.wms.sch_manage.service.util.PointUtils;
|
||||
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
|
||||
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -59,6 +62,9 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
@Autowired
|
||||
private ISchBaseTaskService iSchBaseTaskService;
|
||||
|
||||
@Autowired
|
||||
private IMdPbGroupplateService iMdPbGroupplateService;
|
||||
|
||||
@Override
|
||||
public IPage<SchBasePoint> queryAll(SchBasePointQuery whereJson, PageQuery page) {
|
||||
IPage<SchBasePoint> pages = new Page<>(page.getPage() + 1, page.getSize());
|
||||
@@ -272,4 +278,35 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
public JSONObject getPointDtl(JSONObject whereJson) {
|
||||
return pointMapper.getPointDtl(whereJson).get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void cleanVehicle(SchBasePoint dao) {
|
||||
dao.setVehicle_code("");
|
||||
dao.setPoint_status(IOSEnum.POINT_STATUS.code("空位"));
|
||||
dao.setIng_task_code("");
|
||||
this.updateById(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void cleanMaterial(SchBasePoint dao) {
|
||||
if (ObjectUtil.isEmpty(dao.getVehicle_code())) {
|
||||
throw new BadRequestException("点位载具编码不能为空!");
|
||||
}
|
||||
// 查询组盘信息
|
||||
GroupPlate plateDao = iMdPbGroupplateService.getOne(
|
||||
new QueryWrapper<GroupPlate>().lambda()
|
||||
.eq(GroupPlate::getStoragevehicle_code, dao.getVehicle_code())
|
||||
);
|
||||
if (ObjectUtil.isEmpty(plateDao)) {
|
||||
throw new BadRequestException("当前点位载具信息不存在组盘信息!");
|
||||
}
|
||||
iMdPbGroupplateService.removeById(plateDao);
|
||||
|
||||
// 更新点位信息
|
||||
dao.setPoint_status(IOSEnum.POINT_STATUS.code("空载具"));
|
||||
dao.setIng_task_code("");
|
||||
this.updateById(dao);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -197,10 +197,14 @@ public class CheckMoveTask extends AbstractTask {
|
||||
@Override
|
||||
public void taskConfirm(String task_code) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
StIvtCheckdtl dtlDao = iStIvtCheckdtlService.getOne(
|
||||
new QueryWrapper<StIvtCheckdtl>().lambda()
|
||||
.eq(StIvtCheckdtl::getTask_id, taskObj.getTask_id())
|
||||
);
|
||||
// 更新起点
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
|
||||
.eq(Structattr::getStruct_code, dtlDao.getStruct_code())
|
||||
.set(Structattr::getStoragevehicle_code, null)
|
||||
);
|
||||
// 更新终点
|
||||
@@ -213,10 +217,6 @@ public class CheckMoveTask extends AbstractTask {
|
||||
);
|
||||
|
||||
// 更新盘点明细状态
|
||||
StIvtCheckdtl dtlDao = iStIvtCheckdtlService.getOne(
|
||||
new QueryWrapper<StIvtCheckdtl>().lambda()
|
||||
.eq(StIvtCheckdtl::getTask_id, taskObj.getTask_id())
|
||||
);
|
||||
dtlDao.setStatus(IOSEnum.CHECK_DTL_STATUS.code("盘点中"));
|
||||
iStIvtCheckdtlService.updateById(dtlDao);
|
||||
|
||||
|
||||
@@ -226,7 +226,7 @@ public class CombinedBoxMoveTask extends AbstractTask {
|
||||
// 更新起点
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
|
||||
.eq(Structattr::getStruct_code, dtlDao.getTurnout_struct_code())
|
||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.set(Structattr::getStoragevehicle_code, null)
|
||||
);
|
||||
|
||||
@@ -74,6 +74,7 @@ public class EmpVehicleOutTask extends AbstractTask {
|
||||
task.setPoint_code1(json.getString("point_code1"));
|
||||
task.setPoint_code2(json.getString("point_code2"));
|
||||
task.setPoint_code3(json.getString("point_code3"));
|
||||
task.setPoint_code4(json.getString("point_code4"));
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
@@ -177,7 +178,7 @@ public class EmpVehicleOutTask extends AbstractTask {
|
||||
// 更新起点
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code4())
|
||||
.set(Structattr::getStoragevehicle_code, null)
|
||||
.set(Structattr::getIs_emptyvehicle, IOSConstant.IS_DELETE_NO)
|
||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
@@ -203,10 +204,10 @@ public class EmpVehicleOutTask extends AbstractTask {
|
||||
|
||||
@Transactional
|
||||
public void cancelTask(SchBaseTask taskObj) {
|
||||
// 更新终点
|
||||
// 更新起点
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code4())
|
||||
.set(Structattr::getTaskdtl_id, null)
|
||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
);
|
||||
|
||||
@@ -0,0 +1,191 @@
|
||||
package org.nl.wms.sch_manage.service.util.tasks;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.config.IdUtil;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.util.ACSTaskTypeEnum;
|
||||
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
|
||||
import org.nl.wms.sch_manage.service.util.TaskType;
|
||||
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_management.service.IStIvtMoveinvService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 库内移库任务类子任务
|
||||
* </p>
|
||||
*
|
||||
* @author Liuxy
|
||||
* @since 2025-10-17
|
||||
*/
|
||||
@Component(value = "InsideDtlMoveTask")
|
||||
@TaskType("InsideDtlMoveTask")
|
||||
public class InsideDtlMoveTask extends AbstractTask {
|
||||
|
||||
/**
|
||||
* 任务服务类
|
||||
*/
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
|
||||
/**
|
||||
* 移库主表服务类
|
||||
*/
|
||||
@Autowired
|
||||
private IStIvtMoveinvService iStIvtMoveinvService;
|
||||
|
||||
/**
|
||||
* 库内移库任务类
|
||||
*/
|
||||
@Autowired
|
||||
private InsideMoveTask insideMoveTask;
|
||||
|
||||
@Override
|
||||
public String create(JSONObject json) {
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setTask_id(IdUtil.getStringId());
|
||||
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.setTask_status(TaskStatus.CREATE.getCode());
|
||||
task.setConfig_code(InsideDtlMoveTask.class.getSimpleName());
|
||||
task.setPoint_code1(json.getString("point_code1"));
|
||||
task.setPoint_code2(json.getString("point_code2"));
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setVehicle_code2(json.getString("vehicle_code2"));
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setContact_task(json.getString("contact_task"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setIs_wait(json.getString("is_wait"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
taskService.save(task);
|
||||
|
||||
// 下发任务
|
||||
this.sendTaskOne(task.getTask_id());
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AcsTaskDto sendAcsParam(String taskId) {
|
||||
SchBaseTask taskDao = taskService.getById(taskId);
|
||||
|
||||
// 组织下发给acs的数据
|
||||
AcsTaskDto acsTaskDto = new AcsTaskDto();
|
||||
acsTaskDto.setExt_task_id(taskDao.getTask_id());
|
||||
acsTaskDto.setTask_code(taskDao.getTask_code());
|
||||
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
|
||||
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
|
||||
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
|
||||
|
||||
acsTaskDto.setVehicle_type(IOSConstant.ONE);
|
||||
acsTaskDto.setIs_wait(IOSConstant.ZERO);
|
||||
acsTaskDto.setTask_type(ACSTaskTypeEnum.CTU_TASK.getCode());
|
||||
|
||||
acsTaskDto.setPriority(IOSConstant.ONE);
|
||||
acsTaskDto.setAgv_system_type(IOSConstant.THREE);
|
||||
acsTaskDto.setIs_get_pause(IOSConstant.ZERO);
|
||||
acsTaskDto.setIs_put_pause(IOSConstant.ZERO);
|
||||
|
||||
return acsTaskDto;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
protected void updateStatus(String task_code, TaskStatus status) {
|
||||
// 校验任务
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("该任务已完成!");
|
||||
}
|
||||
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
||||
throw new BadRequestException("该任务已取消!");
|
||||
}
|
||||
// 根据传来的类型去对任务进行操作
|
||||
if (status.equals(TaskStatus.EXECUTING)) {
|
||||
// 更新明细状态
|
||||
SchBaseTask dtlTask = taskService.getById(taskObj.getContact_task());
|
||||
iStIvtMoveinvService.executing(dtlTask);
|
||||
|
||||
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||
taskObj.setRemark("执行中");
|
||||
taskService.updateById(taskObj);
|
||||
}
|
||||
if (status.equals(TaskStatus.FINISHED)) {
|
||||
this.finishTask(taskObj);
|
||||
}
|
||||
if (status.equals(TaskStatus.CANCELED)) {
|
||||
this.cancelTask(taskObj);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void forceFinish(String task_code) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
if (ObjectUtil.isEmpty(taskObj)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
this.finishTask(taskObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void cancel(String task_code) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
if (ObjectUtil.isEmpty(taskObj)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
this.cancelTask(taskObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void taskConfirm(String task_code) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject resultWeigh(SchBaseTask taskObj) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void finishTask(SchBaseTask taskObj) {
|
||||
// 更新任务状态
|
||||
taskObj.setRemark("已完成");
|
||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
taskService.updateById(taskObj);
|
||||
|
||||
// 查询所有任务都是否为完成
|
||||
List<SchBaseTask> taskList = taskService.list(
|
||||
new QueryWrapper<SchBaseTask>().lambda()
|
||||
.eq(SchBaseTask::getContact_task, taskObj.getContact_task())
|
||||
);
|
||||
boolean all_finished = taskList.stream()
|
||||
.allMatch(row -> row.getTask_status().equals(TaskStatus.FINISHED.getCode()));
|
||||
|
||||
if (all_finished) {
|
||||
insideMoveTask.finishTask(taskService.getById(taskObj.getContact_task()));
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void cancelTask(SchBaseTask taskObj) {
|
||||
// 更新任务状态
|
||||
taskObj.setRemark("已取消");
|
||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||
taskService.updateById(taskObj);
|
||||
}
|
||||
}
|
||||
@@ -82,7 +82,7 @@ public class InsideMoveTask extends AbstractTask {
|
||||
taskService.save(task);
|
||||
|
||||
// 下发任务
|
||||
this.sendTaskOne(task.getTask_id());
|
||||
// this.sendTaskOne(task.getTask_id());
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
|
||||
@@ -234,7 +234,7 @@ public class PieceBoxMoveTask extends AbstractTask {
|
||||
// 更新起点
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
|
||||
.eq(Structattr::getStruct_code, dtlDao.getTurnout_struct_code())
|
||||
.set(Structattr::getStoragevehicle_code, null)
|
||||
);
|
||||
// 更新终点
|
||||
|
||||
@@ -23,6 +23,7 @@ public interface StIvtCheckdtlMapper extends BaseMapper<StIvtCheckdtl> {
|
||||
*
|
||||
* @param whereJson {
|
||||
* check_id 主表标识
|
||||
* vehicle_code 载具编码
|
||||
* }
|
||||
* @return List<JSONObject>
|
||||
*/
|
||||
|
||||
@@ -29,6 +29,10 @@
|
||||
AND
|
||||
ios.check_id = #{param.check_id}
|
||||
</if>
|
||||
<if test="param.vehicle_code != null and param.vehicle_code != ''">
|
||||
AND
|
||||
dtl.storagevehicle_code = #{param.vehicle_code}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
AND
|
||||
mst.id = #{param.id}
|
||||
</if>
|
||||
|
||||
ORDER BY qty
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -1157,6 +1157,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv>
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void createTask(IOStorInvDis ioStorInvDis, String point_code, IOStorInv ioStorInv) {
|
||||
/*
|
||||
* 判断是否是深浅货位
|
||||
@@ -1168,7 +1169,8 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv>
|
||||
* 如果不是则报错提示
|
||||
*/
|
||||
// 调用校验方法
|
||||
String struct_code = iOutBillService.checkIsHinder(ioStorInvDis);
|
||||
String struct_code = ioStorInvDis.getStruct_code();
|
||||
iOutBillService.checkIsHinder(ioStorInvDis);
|
||||
|
||||
//创建任务
|
||||
JSONObject task_form = new JSONObject();
|
||||
|
||||
@@ -210,6 +210,7 @@ public class SelectOutServiceImpl extends ServiceImpl<IOStorInvDtlMapper, IOStor
|
||||
groupPlate.setProduce_time(oldGroup.getProduce_time());
|
||||
groupPlate.setExecution_stand(oldGroup.getExecution_stand());
|
||||
groupPlate.setBake_num(oldGroup.getBake_num());
|
||||
groupPlate.setOut_type(dto.getBill_type());
|
||||
groupPlate.setQuality_type(oldGroup.getQuality_type());
|
||||
iMdPbGroupplateService.create(groupPlate);
|
||||
|
||||
|
||||
@@ -402,7 +402,7 @@ public class StIvtCheckmstServiceImpl extends ServiceImpl<StIvtCheckmstMapper, S
|
||||
jsonTask.put("vehicle_code2", outAttr.getStoragevehicle_code());
|
||||
|
||||
String task_id = moveOutMoveTask.create(jsonTask);
|
||||
result.put("out_point", shallowAttr.getStruct_code());
|
||||
result.put("out_point", outAttr.getStruct_code());
|
||||
result.put("task_id", task_id);
|
||||
|
||||
// 锁定起点
|
||||
|
||||
@@ -21,6 +21,7 @@ import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.TaskFactory;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.InsideDtlMoveTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.MoveOutMoveTask;
|
||||
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
||||
@@ -87,6 +88,12 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl<StIvtMoveinvMapper, StI
|
||||
@Autowired
|
||||
private MoveOutMoveTask moveOutMoveTask;
|
||||
|
||||
/**
|
||||
* 库内移库任务类子任务
|
||||
*/
|
||||
@Autowired
|
||||
private InsideDtlMoveTask insideDtlMoveTask;
|
||||
|
||||
@Override
|
||||
public IPage<JSONObject> queryAll(Map whereJson, PageQuery page) {
|
||||
return this.baseMapper.queryAllByPage(new Page<>(page.getPage() + 1, page.getSize()),
|
||||
@@ -305,26 +312,33 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl<StIvtMoveinvMapper, StI
|
||||
String task_id = "";
|
||||
AbstractTask task = taskFactory.getTask(IOSEnum.MOVE_CONFIG_CODE.code(mstDao.getBill_type()));
|
||||
for (StIvtMoveinvdtl dtlDao : dtlList) {
|
||||
// 判断是否阻挡
|
||||
JSONObject result = checkMove(dtlDao);
|
||||
if(mstDao.getBill_type().equals(IOSEnum.MOVE_BILL_TYPE.code("库内移库"))) {
|
||||
// 库内移库任务下发
|
||||
task_id = checkMoveInside(dtlDao,task);
|
||||
} else {
|
||||
// 判断是否阻挡
|
||||
JSONObject result = checkMove(dtlDao);
|
||||
|
||||
JSONObject jsonTask = new JSONObject();
|
||||
jsonTask.put("point_code1", result.getString("out_point"));
|
||||
jsonTask.put("point_code2", dtlDao.getTurnin_struct_code());
|
||||
jsonTask.put("vehicle_code", dtlDao.getStoragevehicle_code());
|
||||
jsonTask.put("vehicle_code2", dtlDao.getStoragevehicle_code2());
|
||||
task_id = task.create(jsonTask);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(result.getString("task_id"))) {
|
||||
// 更新关联任务标识
|
||||
iSchBaseTaskService.update(
|
||||
new UpdateWrapper<SchBaseTask>().lambda()
|
||||
.set(SchBaseTask::getContact_task, task_id)
|
||||
.eq(SchBaseTask::getTask_id, result.getString("task_id"))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
JSONObject jsonTask = new JSONObject();
|
||||
jsonTask.put("point_code1", result.getString("out_point"));
|
||||
jsonTask.put("point_code2", dtlDao.getTurnin_struct_code());
|
||||
jsonTask.put("vehicle_code", dtlDao.getStoragevehicle_code());
|
||||
jsonTask.put("vehicle_code2", dtlDao.getStoragevehicle_code2());
|
||||
task_id = task.create(jsonTask);
|
||||
// 更新明细任务标识
|
||||
dtlDao.setTask_id(task_id);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(result.getString("task_id"))) {
|
||||
// 更新关联任务标识
|
||||
iSchBaseTaskService.update(
|
||||
new UpdateWrapper<SchBaseTask>().lambda()
|
||||
.set(SchBaseTask::getContact_task, task_id)
|
||||
.eq(SchBaseTask::getTask_id, result.getString("task_id"))
|
||||
);
|
||||
}
|
||||
}
|
||||
iStIvtMoveinvdtlService.updateBatchById(dtlList);
|
||||
|
||||
@@ -335,6 +349,115 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl<StIvtMoveinvMapper, StI
|
||||
return task_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 库内移库任务下发
|
||||
* @param dtlDao 移库明细
|
||||
* @param task 任务类
|
||||
* @return task_id
|
||||
*/
|
||||
private String checkMoveInside(StIvtMoveinvdtl dtlDao, AbstractTask task) {
|
||||
// 生成主任务
|
||||
JSONObject jsonTask = new JSONObject();
|
||||
jsonTask.put("point_code1", dtlDao.getTurnout_struct_code());
|
||||
jsonTask.put("point_code2", dtlDao.getTurnin_struct_code());
|
||||
jsonTask.put("vehicle_code", dtlDao.getStoragevehicle_code());
|
||||
jsonTask.put("vehicle_code2", dtlDao.getStoragevehicle_code2());
|
||||
String task_id = task.create(jsonTask);
|
||||
|
||||
Structattr startAttr = iStructattrService.getByCode(dtlDao.getTurnout_struct_code());
|
||||
Structattr endAttr = iStructattrService.getByCode(dtlDao.getTurnin_struct_code());
|
||||
|
||||
// ---------- 判断是否是深浅货位互换 ----------
|
||||
if (startAttr.getBlock_num().equals(endAttr.getBlock_num())
|
||||
&& startAttr.getCol_num().equals(endAttr.getCol_num())
|
||||
&& startAttr.getLayer_num().equals(endAttr.getLayer_num())
|
||||
) {
|
||||
// 两个货位都必须有货
|
||||
if (ObjectUtil.isNotEmpty(startAttr.getStoragevehicle_code()) && ObjectUtil.isNotEmpty(endAttr.getStoragevehicle_code())) {
|
||||
// 子任务1
|
||||
createInsideDtlMoveTask(startAttr.getStruct_code(),endAttr.getStruct_code(),startAttr.getStoragevehicle_code(),task_id);
|
||||
// 子任务2
|
||||
createInsideDtlMoveTask(endAttr.getStruct_code(),startAttr.getStruct_code(),endAttr.getStoragevehicle_code(),task_id);
|
||||
return task_id;
|
||||
} else {
|
||||
throw new BadRequestException("当前仓位互换会造成仓位空洞,不允许互换!");
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- 判断起点是否阻挡 ----------
|
||||
// 判断起点深浅货位
|
||||
if (startAttr.getPlacement_type().equals(IOSEnum.PLACEMENT_TYPE.code("深货位"))) {
|
||||
// 查询对应浅货位
|
||||
Structattr shallowStartAttr = iStructattrService.getOne(
|
||||
new QueryWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getBlock_num, startAttr.getBlock_num())
|
||||
.eq(Structattr::getCol_num, startAttr.getCol_num())
|
||||
.eq(Structattr::getLayer_num, startAttr.getLayer_num())
|
||||
.eq(Structattr::getPlacement_type, IOSEnum.PLACEMENT_TYPE.code("浅货位"))
|
||||
);
|
||||
// 判断浅货位是否被锁定
|
||||
if (!shallowStartAttr.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
throw new BadRequestException("当前起点仓位对应的浅货位【"+shallowStartAttr.getStruct_code()+"】被锁定,无法下发任务");
|
||||
}
|
||||
|
||||
if (ObjectUtil.isNotEmpty(shallowStartAttr.getStoragevehicle_code())) {
|
||||
// 有货:创建子任务
|
||||
createInsideDtlMoveTask(shallowStartAttr.getStruct_code(),shallowStartAttr.getStruct_code(),shallowStartAttr.getStoragevehicle_code(),task_id);
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- 判断终点是否阻挡 ----------
|
||||
if (endAttr.getPlacement_type().equals(IOSEnum.PLACEMENT_TYPE.code("深货位"))) {
|
||||
// 查询对应浅货位
|
||||
Structattr shallowStartAttr = iStructattrService.getOne(
|
||||
new QueryWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getBlock_num, endAttr.getBlock_num())
|
||||
.eq(Structattr::getCol_num, endAttr.getCol_num())
|
||||
.eq(Structattr::getLayer_num, endAttr.getLayer_num())
|
||||
.eq(Structattr::getPlacement_type, IOSEnum.PLACEMENT_TYPE.code("浅货位"))
|
||||
);
|
||||
|
||||
// 判断浅货位是否被锁定
|
||||
if (!shallowStartAttr.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
throw new BadRequestException("当前终点仓位对应的浅货位【"+shallowStartAttr.getStruct_code()+"】被锁定,无法下发任务");
|
||||
}
|
||||
|
||||
if (ObjectUtil.isNotEmpty(shallowStartAttr.getStoragevehicle_code())) {
|
||||
// 有货:创建子任务
|
||||
createInsideDtlMoveTask(shallowStartAttr.getStruct_code(),shallowStartAttr.getStruct_code(),shallowStartAttr.getStoragevehicle_code(),task_id);
|
||||
}
|
||||
} else {
|
||||
// 查询对应深货位
|
||||
Structattr attr = iStructattrService.getOne(
|
||||
new QueryWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getBlock_num, endAttr.getBlock_num())
|
||||
.eq(Structattr::getCol_num, endAttr.getCol_num())
|
||||
.eq(Structattr::getLayer_num, endAttr.getLayer_num())
|
||||
.eq(Structattr::getPlacement_type, IOSEnum.PLACEMENT_TYPE.code("深货位"))
|
||||
);
|
||||
|
||||
// 判断深货位是否被锁定
|
||||
if (!attr.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
throw new BadRequestException("当前终点仓位对应的深货位【"+attr.getStruct_code()+"】被锁定,无法下发任务");
|
||||
}
|
||||
// 判断是否有货
|
||||
if (ObjectUtil.isEmpty(attr.getStoragevehicle_code())) {
|
||||
throw new BadRequestException("移库会造成仓位【"+attr.getStruct_code()+"】为空洞,无法下发任务");
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- 创建起点任务 ----------
|
||||
createInsideDtlMoveTask(startAttr.getStruct_code(),endAttr.getStruct_code(),startAttr.getStoragevehicle_code(),task_id);
|
||||
|
||||
// ---------- 创建终点任务 ----------
|
||||
if (ObjectUtil.isNotEmpty(endAttr.getStoragevehicle_code())) {
|
||||
// 终点不为空则需要创建终点到起点的任务
|
||||
createInsideDtlMoveTask(endAttr.getStruct_code(),startAttr.getStruct_code(),endAttr.getStoragevehicle_code(),task_id);
|
||||
}
|
||||
|
||||
return task_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否浅货位阻挡移库
|
||||
*
|
||||
@@ -401,7 +524,7 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl<StIvtMoveinvMapper, StI
|
||||
);
|
||||
|
||||
String task_id = moveOutMoveTask.create(jsonTask);
|
||||
result.put("out_point",shallowAttr.getStruct_code());
|
||||
result.put("out_point",outAttr.getStruct_code());
|
||||
result.put("task_id",task_id);
|
||||
} else {
|
||||
// 判断是否是当前移库单的移库
|
||||
@@ -444,4 +567,13 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl<StIvtMoveinvMapper, StI
|
||||
this.updateById(mstDao);
|
||||
}
|
||||
|
||||
private void createInsideDtlMoveTask(String point_code1, String point_code2, String vehicle_code, String contact_task) {
|
||||
JSONObject jsonTask = new JSONObject();
|
||||
jsonTask.put("point_code1", point_code1);
|
||||
jsonTask.put("point_code2", point_code2);
|
||||
jsonTask.put("vehicle_code", vehicle_code);
|
||||
jsonTask.put("contact_task", contact_task);
|
||||
insideDtlMoveTask.create(jsonTask);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ public class VehicleOutServiceImpl implements VehicleOutService {
|
||||
private IStructattrService iStructattrService;
|
||||
|
||||
/**
|
||||
* 空载具入库任务类
|
||||
* 空载具出库任务类
|
||||
*/
|
||||
@Resource
|
||||
private EmpVehicleOutTask empVehicleOutTask;
|
||||
@@ -81,11 +81,13 @@ public class VehicleOutServiceImpl implements VehicleOutService {
|
||||
List<Structattr> attrList = autoDivStruct(whereJson);
|
||||
|
||||
Structattr structattr = new Structattr();
|
||||
String point_code1 = "";
|
||||
for (Structattr attrDao : attrList) {
|
||||
// 判断是深浅货位
|
||||
if (attrDao.getPlacement_type().equals(IOSEnum.PLACEMENT_TYPE.code("浅货位"))) {
|
||||
// 直接创建出库任务
|
||||
structattr = attrDao;
|
||||
point_code1 = attrDao.getStruct_code();
|
||||
break;
|
||||
} else {
|
||||
// 深货位:判断浅货位是否有货
|
||||
@@ -106,6 +108,7 @@ public class VehicleOutServiceImpl implements VehicleOutService {
|
||||
if (shallowAttr.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
// 直接创建出库任务
|
||||
structattr = attrDao;
|
||||
point_code1 = attrDao.getStruct_code();
|
||||
break;
|
||||
} else {
|
||||
continue;
|
||||
@@ -116,6 +119,7 @@ public class VehicleOutServiceImpl implements VehicleOutService {
|
||||
if (shallowAttr.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
// 创建移库任务
|
||||
structattr = createMoveTask(attrDao, shallowAttr);
|
||||
point_code1 = attrDao.getStruct_code();
|
||||
break;
|
||||
} else {
|
||||
continue;
|
||||
@@ -137,12 +141,14 @@ public class VehicleOutServiceImpl implements VehicleOutService {
|
||||
|
||||
// 创建任务
|
||||
JSONObject jsonTask = new JSONObject();
|
||||
jsonTask.put("point_code1", structattr.getStruct_code());
|
||||
jsonTask.put("point_code1", point_code1);
|
||||
jsonTask.put("point_code2", IOSConstant.CZW_POINT);
|
||||
// 判断终点是否是称重位
|
||||
jsonTask.put("point_code3", whereJson.getString("point_code").equals(IOSConstant.CZW_POINT)
|
||||
? "" : whereJson.getString("point_code")
|
||||
);
|
||||
// 用于任务完成时更新原仓位
|
||||
jsonTask.put("point_code4", structattr.getStruct_code());
|
||||
jsonTask.put("vehicle_code", structattr.getStoragevehicle_code());
|
||||
String task_id = empVehicleOutTask.create(jsonTask);
|
||||
|
||||
|
||||
@@ -158,6 +158,28 @@
|
||||
>
|
||||
解锁
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="el-icon-circle-close"
|
||||
:disabled="crud.selections.length !== 1"
|
||||
@click="cleanVehicle"
|
||||
>
|
||||
清载具
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
size="mini"
|
||||
type="danger"
|
||||
icon="el-icon-circle-close"
|
||||
:disabled="crud.selections.length !== 1"
|
||||
@click="cleanMaterial"
|
||||
>
|
||||
清物料
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="540px">
|
||||
@@ -531,6 +553,20 @@ export default {
|
||||
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
})
|
||||
},
|
||||
cleanVehicle() {
|
||||
const data = this.$refs.table.selection[0]
|
||||
crudSchBasePoint.cleanVehicle(data).then(res => {
|
||||
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
})
|
||||
},
|
||||
cleanMaterial() {
|
||||
const data = this.$refs.table.selection[0]
|
||||
crudSchBasePoint.cleanMaterial(data).then(res => {
|
||||
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,4 +72,21 @@ export function getPointDtl(data) {
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del, changeUsed, getPointList, changeLock, getConfirm, putConfirm, getPointDtl }
|
||||
export function cleanVehicle(data) {
|
||||
return request({
|
||||
url: 'api/schBasePoint/cleanVehicle',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function cleanMaterial(data) {
|
||||
return request({
|
||||
url: 'api/schBasePoint/cleanMaterial',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del, changeUsed, getPointList, changeLock,
|
||||
getConfirm, putConfirm, getPointDtl, cleanVehicle, cleanMaterial }
|
||||
|
||||
@@ -79,7 +79,31 @@
|
||||
</el-form>
|
||||
</el-card>
|
||||
<div style="padding-bottom: 10px;padding-top: 10px">
|
||||
<span class="role-span">盘点明细</span>
|
||||
<el-form
|
||||
:inline="true"
|
||||
class="demo-form-inline"
|
||||
label-position="right"
|
||||
label-width="80px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item label="载具编码">
|
||||
<el-input
|
||||
v-model="vehicle_code"
|
||||
size="mini"
|
||||
clearable
|
||||
placeholder="查询载具编码"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
size="mini"
|
||||
@click="getDtl"
|
||||
>
|
||||
搜索
|
||||
</el-button>
|
||||
</el-form>
|
||||
<!-- <span class="role-span">盘点明细</span>-->
|
||||
</div>
|
||||
<!--表格渲染-->
|
||||
<el-table
|
||||
@@ -145,6 +169,7 @@ export default {
|
||||
nowrow: null,
|
||||
nowindex: '',
|
||||
storlist: [],
|
||||
vehicle_code: null,
|
||||
tableData: [],
|
||||
form1: {
|
||||
check_id: '',
|
||||
@@ -173,7 +198,8 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
open() {
|
||||
this.getDtl()
|
||||
// 查询所有明细
|
||||
// this.getDtl()
|
||||
// 查询原材料库的仓库
|
||||
crudStorattr.getStor({}).then(res => {
|
||||
this.storlist = res
|
||||
@@ -185,7 +211,12 @@ export default {
|
||||
this.crud.toQuery()
|
||||
},
|
||||
getDtl() {
|
||||
check.getDtl({ 'check_id': this.form1.check_id }).then(res => {
|
||||
check.getDtl({ 'check_id': this.form1.check_id, 'vehicle_code': this.vehicle_code }).then(res => {
|
||||
for (const dtl of res) {
|
||||
if (dtl.fac_qty === null) {
|
||||
dtl.fac_qty = dtl.base_qty
|
||||
}
|
||||
}
|
||||
this.tableData = res
|
||||
})
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user