opt:优化
This commit is contained in:
@@ -22,6 +22,11 @@ public interface PdaProductionService {
|
|||||||
*/
|
*/
|
||||||
PdaResponse getStockGroupInfo(JSONObject param);
|
PdaResponse getStockGroupInfo(JSONObject param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 托盘叫料
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
PdaResponse confirmCallMaterial(JSONObject param);
|
PdaResponse confirmCallMaterial(JSONObject param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -194,6 +194,9 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
|||||||
jsonObject.put("vehicle_code", param.getVehicle_code());
|
jsonObject.put("vehicle_code", param.getVehicle_code());
|
||||||
groupplateService.checkVehicle(jsonObject);
|
groupplateService.checkVehicle(jsonObject);
|
||||||
|
|
||||||
|
// 检测托盘的物料类型是否都是一致的
|
||||||
|
sectMaterialCheck.checkAllMaterialType(param.getGroup_plates());
|
||||||
|
|
||||||
// 判断库区是否一致
|
// 判断库区是否一致
|
||||||
sectMaterialCheck.chackAllMaterialAndSect(param);
|
sectMaterialCheck.chackAllMaterialAndSect(param);
|
||||||
|
|
||||||
|
|||||||
@@ -20,12 +20,15 @@ import org.nl.system.service.param.dao.Param;
|
|||||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||||
import org.nl.wms.basedata_manage.service.*;
|
import org.nl.wms.basedata_manage.service.*;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
|
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
|
||||||
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
||||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||||
import org.nl.wms.pda.general_management.service.PdaBuildParamService;
|
import org.nl.wms.pda.general_management.service.PdaBuildParamService;
|
||||||
import org.nl.wms.pda.general_management.service.PdaWarehouseService;
|
import org.nl.wms.pda.general_management.service.PdaWarehouseService;
|
||||||
import org.nl.wms.pda.general_management.service.PdaProductionService;
|
import org.nl.wms.pda.general_management.service.PdaProductionService;
|
||||||
|
import org.nl.wms.pda.general_management.service.dto.AssemblyPalletParam;
|
||||||
import org.nl.wms.pda.util.PdaResponse;
|
import org.nl.wms.pda.util.PdaResponse;
|
||||||
|
import org.nl.wms.pda.util.SectMaterialCheck;
|
||||||
import org.nl.wms.pda.util.ThresholdChecker;
|
import org.nl.wms.pda.util.ThresholdChecker;
|
||||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||||
@@ -112,6 +115,8 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
private ISysParamService paramService;
|
private ISysParamService paramService;
|
||||||
@Resource
|
@Resource
|
||||||
private SecondaryPackagingService secondaryPackagingService;
|
private SecondaryPackagingService secondaryPackagingService;
|
||||||
|
@Resource
|
||||||
|
private SectMaterialCheck sectMaterialCheck;
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse getGroupInfo(JSONObject param) {
|
public PdaResponse getGroupInfo(JSONObject param) {
|
||||||
// search;
|
// search;
|
||||||
@@ -153,9 +158,6 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
if (ObjectUtil.isEmpty(param.get("point_code"))) {
|
if (ObjectUtil.isEmpty(param.get("point_code"))) {
|
||||||
throw new BadRequestException("请输入要料点!");
|
throw new BadRequestException("请输入要料点!");
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isEmpty(param.get("row"))) {
|
|
||||||
throw new BadRequestException("请选择呼叫的物料!");
|
|
||||||
}
|
|
||||||
String pointCode = param.getString("point_code");
|
String pointCode = param.getString("point_code");
|
||||||
SchBasePoint endPoint = pointService.getByPointCode(pointCode, true);
|
SchBasePoint endPoint = pointService.getByPointCode(pointCode, true);
|
||||||
if (ObjectUtil.isEmpty(endPoint)) {
|
if (ObjectUtil.isEmpty(endPoint)) {
|
||||||
@@ -177,6 +179,9 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
secondaryPackagingService.wrappingCall(crParam);
|
secondaryPackagingService.wrappingCall(crParam);
|
||||||
return PdaResponse.requestOk();
|
return PdaResponse.requestOk();
|
||||||
}
|
}
|
||||||
|
if (ObjectUtil.isEmpty(param.get("row"))) {
|
||||||
|
throw new BadRequestException("请选择呼叫的物料!");
|
||||||
|
}
|
||||||
JSONObject row = param.getJSONObject("row");
|
JSONObject row = param.getJSONObject("row");
|
||||||
Structattr structattr = structattrService.getByCode(row.getString("struct_code"));
|
Structattr structattr = structattrService.getByCode(row.getString("struct_code"));
|
||||||
param.put("bill_type", IOSEnum.OUT_BILL_TYPE.code("批料出库"));
|
param.put("bill_type", IOSEnum.OUT_BILL_TYPE.code("批料出库"));
|
||||||
@@ -305,31 +310,28 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
if (ObjectUtil.isEmpty(startPoint.getVehicle_code())) {
|
if (ObjectUtil.isEmpty(startPoint.getVehicle_code())) {
|
||||||
throw new BadRequestException("该点位没有载具信息!");
|
throw new BadRequestException("该点位没有载具信息!");
|
||||||
}
|
}
|
||||||
// 查找之前的任务
|
// 根据托盘指定的区域回去
|
||||||
List<SchBaseTask> list = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
MdPbStoragevehicleinfo storagevehicleinfo = storagevehicleinfoService.getByCode(startPoint.getVehicle_code());
|
||||||
.eq(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
|
if (ObjectUtil.isEmpty(storagevehicleinfo)) {
|
||||||
.eq(SchBaseTask::getVehicle_code, startPoint.getVehicle_code())
|
throw new BadRequestException("找不到托盘信息!");
|
||||||
.in(SchBaseTask::getConfig_code, "PalletOutTask")
|
|
||||||
.orderByDesc(SchBaseTask::getTask_id));
|
|
||||||
if (list.size() == 0) {
|
|
||||||
throw new BadRequestException("找不到托盘原来的位置!");
|
|
||||||
}
|
}
|
||||||
SchBaseTask task = list.get(0);
|
|
||||||
Structattr structattr = structattrService.getByCode(task.getPoint_code1());
|
|
||||||
List<JSONObject> res = groupplateService.getPalletViewByVehicleCode(startPoint.getVehicle_code()
|
List<JSONObject> res = groupplateService.getPalletViewByVehicleCode(startPoint.getVehicle_code()
|
||||||
, Arrays.asList("2", "4"));
|
, Arrays.asList("2", "4"));
|
||||||
|
if (ObjectUtil.isEmpty(storagevehicleinfo.getSect_code())) {
|
||||||
|
throw new BadRequestException("托盘没有绑定库区,请检查托盘信息!");
|
||||||
|
}
|
||||||
|
Sectattr sectattr = sectattrService.findByCode(storagevehicleinfo.getSect_code(), false);
|
||||||
if (res.size() > 0) {
|
if (res.size() > 0) {
|
||||||
log.info("剩料回库");
|
log.info("剩料回库");
|
||||||
// 剩料回库
|
// 剩料回库
|
||||||
param.put("rows", res);
|
param.put("rows", res);
|
||||||
Sectattr sectattr = sectattrService.findByCode(structattr.getSect_code(), false);
|
|
||||||
param.put("bill_type", IOSEnum.IN_BILL_TYPE.code("剩料回库"));
|
param.put("bill_type", IOSEnum.IN_BILL_TYPE.code("剩料回库"));
|
||||||
// 1 创建入库单、明细、分配明细
|
// 1 创建入库单、明细、分配明细
|
||||||
Map<String, Object> invObj = defaultPdaBuildParam.doBuildInvObj(param, startPoint, sectattr);
|
Map<String, Object> invObj = defaultPdaBuildParam.doBuildInvObj(param, startPoint, sectattr);
|
||||||
String invId = rawAssistIStorService.insertDtl(invObj);
|
String invId = rawAssistIStorService.insertDtl(invObj);
|
||||||
// 2 调用手动分配
|
// 2 调用手动分配
|
||||||
param.put("sect_code", structattr.getSect_code());
|
param.put("sect_code", sectattr.getSect_code());
|
||||||
param.put("sect_name", structattr.getSect_name());
|
param.put("sect_name", sectattr.getSect_name());
|
||||||
Map<String, Object> divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId, true);
|
Map<String, Object> divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId, true);
|
||||||
rawAssistIStorService.divStruct(divObj);
|
rawAssistIStorService.divStruct(divObj);
|
||||||
// 3 创建任务
|
// 3 创建任务
|
||||||
@@ -339,8 +341,8 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
log.info("空载具回库");
|
log.info("空载具回库");
|
||||||
// 空载具回库
|
// 空载具回库
|
||||||
JSONObject vin = new JSONObject();
|
JSONObject vin = new JSONObject();
|
||||||
vin.put("storagevehicle_code", task.getVehicle_code());
|
vin.put("storagevehicle_code", startPoint.getVehicle_code());
|
||||||
vin.put("sect_code", structattr.getSect_code());
|
vin.put("sect_code", sectattr.getSect_code());
|
||||||
vin.put("point_code", startPoint.getPoint_code());
|
vin.put("point_code", startPoint.getPoint_code());
|
||||||
vehicleInService.create(vin);
|
vehicleInService.create(vin);
|
||||||
}
|
}
|
||||||
@@ -355,35 +357,70 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
return PdaResponse.requestOk();
|
return PdaResponse.requestOk();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse preProcessingDown(JSONObject param) {
|
public PdaResponse preProcessingDown(JSONObject param) {
|
||||||
log.info("加工下料:{}", param);
|
log.info("加工下料:{}", param);
|
||||||
// vehicle_code、 point_code, sect_code, 。。。rows
|
// vehicle_code、 point_code, sect_code, 。。。rows
|
||||||
assertNotBlankJson(param, "请求参数不能为空!", "vehicle_code", "point_code", "sect_code");
|
assertNotBlankJson(param, "请求参数不能为空!", "vehicle_code", "point_code", "sect_code");
|
||||||
String pointCode = param.getString("point_code");
|
RLock lock = redissonClient.getLock("lock:preProcessingDown");
|
||||||
SchBasePoint startPoint = pointService.getByPointCode(pointCode, false);
|
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||||
if (ObjectUtil.isEmpty(startPoint)) {
|
try {
|
||||||
throw new BadRequestException("当前点位不存在,请检查是否正确!");
|
if (tryLock) {
|
||||||
}
|
String pointCode = param.getString("point_code");
|
||||||
// 判断任务是否创建
|
SchBasePoint startPoint = pointService.getByPointCode(pointCode, false);
|
||||||
List<SchBaseTask> tasks = taskService.getTaskByQuery(new LambdaQueryWrapper<SchBaseTask>()
|
if (ObjectUtil.isEmpty(startPoint)) {
|
||||||
.eq(SchBaseTask::getPoint_code1, pointCode));
|
throw new BadRequestException("当前点位不存在,请检查是否正确!");
|
||||||
if (tasks.size() > 0) {
|
}
|
||||||
throw new BadRequestException("该点位已创建过任务!");
|
// 判断任务是否创建
|
||||||
}
|
List<SchBaseTask> tasks = taskService.getTaskByQuery(new LambdaQueryWrapper<SchBaseTask>()
|
||||||
String vehicleCode = param.getString("vehicle_code");
|
.eq(SchBaseTask::getPoint_code1, pointCode));
|
||||||
List<JSONObject> res = groupplateService.getPalletViewByVehicleCode(vehicleCode, Arrays.asList("1"));
|
if (tasks.size() > 0) {
|
||||||
if (res.size() == 0) {
|
throw new BadRequestException("该点位已创建过任务!");
|
||||||
throw new BadRequestException("当前托盘号【" + vehicleCode + "】不存在物料信息,请检查!");
|
}
|
||||||
}
|
String vehicleCode = param.getString("vehicle_code");
|
||||||
// 如果是仓位就需要走原辅料入库
|
List<JSONObject> res = groupplateService.getPalletViewByVehicleCode(vehicleCode, Arrays.asList("1"));
|
||||||
Sectattr sectCode = sectattrService.findByCode(param.getString("sect_code"), false);
|
if (res.size() == 0) {
|
||||||
if (ObjectUtil.isNotEmpty(sectCode)) {
|
throw new BadRequestException("当前托盘号【" + vehicleCode + "】不存在物料信息,请检查!");
|
||||||
// 辅料入库
|
}
|
||||||
param.put("rows", res);
|
// 如果是仓位就需要走原辅料入库
|
||||||
receivedIn(param);
|
Sectattr sectCode = sectattrService.findByCode(param.getString("sect_code"), false);
|
||||||
} else {
|
if (ObjectUtil.isNotEmpty(sectCode)) {
|
||||||
preProcessingInTask.create(param);
|
// 辅料入库
|
||||||
|
param.put("rows", res);
|
||||||
|
// 入库前检测
|
||||||
|
AssemblyPalletParam checkParam = new AssemblyPalletParam();
|
||||||
|
checkParam.setVehicle_code(vehicleCode);
|
||||||
|
// res中包含g.*(md_pb_groupplate字段),但也会额外带一些展示字段;这里只取校验必需字段即可
|
||||||
|
List<GroupPlate> groupPlates = res.stream().map(row -> {
|
||||||
|
GroupPlate gp = new GroupPlate();
|
||||||
|
gp.setGroup_id(row.getString("group_id"));
|
||||||
|
gp.setBag_code(row.getString("bag_code"));
|
||||||
|
gp.setVehicle_code(row.getString("vehicle_code"));
|
||||||
|
gp.setMaterial_id(row.getString("material_id"));
|
||||||
|
gp.setPcsn(row.getString("pcsn"));
|
||||||
|
gp.setQty(row.getBigDecimal("qty"));
|
||||||
|
gp.setQty_unit_id(row.getString("qty_unit_id"));
|
||||||
|
gp.setQty_unit_name(row.getString("qty_unit_name"));
|
||||||
|
gp.setSupp_code(row.getString("supp_code"));
|
||||||
|
gp.setRemark(row.getString("remark"));
|
||||||
|
gp.setStatus(row.getString("status"));
|
||||||
|
return gp;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
checkParam.setGroup_plates(groupPlates);
|
||||||
|
// 调用检测方法:校验托盘库区与物料类型映射关系
|
||||||
|
sectMaterialCheck.chackAllMaterialAndSect(checkParam);
|
||||||
|
receivedIn(param);
|
||||||
|
} else {
|
||||||
|
preProcessingInTask.create(param);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new BadRequestException("速度太快啦,稍后再试...");
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (tryLock) {
|
||||||
|
lock.unlock();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return PdaResponse.requestOk();
|
return PdaResponse.requestOk();
|
||||||
}
|
}
|
||||||
@@ -434,6 +471,14 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
productionInStorage(param, point);
|
productionInStorage(param, point);
|
||||||
return PdaResponse.requestOk();
|
return PdaResponse.requestOk();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 缠绕膜
|
||||||
|
if (point.getRegion_code().startsWith("CR")) {
|
||||||
|
JSONObject p = new JSONObject();
|
||||||
|
p.put("device_code", pointCode);
|
||||||
|
secondaryPackagingService.wrappingDown(p);
|
||||||
|
return PdaResponse.requestOk();
|
||||||
|
}
|
||||||
// 压片/包衣下料
|
// 压片/包衣下料
|
||||||
AbstractTask task = taskFactory.getTask(IOSEnum.DOWN_CONFIG_CODE.code(point.getRegion_code()));
|
AbstractTask task = taskFactory.getTask(IOSEnum.DOWN_CONFIG_CODE.code(point.getRegion_code()));
|
||||||
task.create(param);
|
task.create(param);
|
||||||
@@ -658,7 +703,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
String currentPoint = param.getString("current_point");
|
String currentPoint = param.getString("current_point");
|
||||||
String vehicleCode = param.getString("vehicle_code");
|
String vehicleCode = param.getString("vehicle_code");
|
||||||
// ACS 获取的重量
|
// ACS 获取的重量
|
||||||
String total = param.getString("total");
|
String total = param.getString("weight");
|
||||||
String taskId = row.getString("task_id");
|
String taskId = row.getString("task_id");
|
||||||
if (ObjectUtil.isNotEmpty(taskId)) {
|
if (ObjectUtil.isNotEmpty(taskId)) {
|
||||||
// 有任务直接任务完成
|
// 有任务直接任务完成
|
||||||
@@ -695,7 +740,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
String currentPoint = param.getString("current_point");
|
String currentPoint = param.getString("current_point");
|
||||||
String vehicleCode = param.getString("vehicle_code");
|
String vehicleCode = param.getString("vehicle_code");
|
||||||
// ACS 获取的重量
|
// ACS 获取的重量
|
||||||
BigDecimal currentTotal = param.getBigDecimal("total");
|
BigDecimal currentTotal = param.getBigDecimal("weight");
|
||||||
BigDecimal originalQty = row.getBigDecimal("qty");
|
BigDecimal originalQty = row.getBigDecimal("qty");
|
||||||
Param threshold = paramService.findByCode("weighing_threshold");
|
Param threshold = paramService.findByCode("weighing_threshold");
|
||||||
// 对比与组盘的重量是否大于阈值
|
// 对比与组盘的重量是否大于阈值
|
||||||
@@ -717,7 +762,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
return PdaResponse.requestOk();
|
return PdaResponse.requestOk();
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isEmpty(row.getString("station"))) {
|
if (ObjectUtil.isEmpty(row.getString("station"))) {
|
||||||
throw new BadRequestException("产线目标站为空");
|
throw new BadRequestException("请设置产线目标站!");
|
||||||
}
|
}
|
||||||
List<JSONObject> infoByBucket = groupbucketService.getBucketInfoByBucket(vehicleCode);
|
List<JSONObject> infoByBucket = groupbucketService.getBucketInfoByBucket(vehicleCode);
|
||||||
if (infoByBucket.size() == 0) {
|
if (infoByBucket.size() == 0) {
|
||||||
|
|||||||
@@ -20,7 +20,9 @@ import org.nl.wms.basedata_manage.service.dao.Structattr;
|
|||||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
|
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
|
||||||
import org.nl.wms.pda.general_management.service.PdaBuildParamService;
|
import org.nl.wms.pda.general_management.service.PdaBuildParamService;
|
||||||
import org.nl.wms.pda.general_management.service.PdaWarehouseService;
|
import org.nl.wms.pda.general_management.service.PdaWarehouseService;
|
||||||
|
import org.nl.wms.pda.general_management.service.dto.AssemblyPalletParam;
|
||||||
import org.nl.wms.pda.util.PdaResponse;
|
import org.nl.wms.pda.util.PdaResponse;
|
||||||
|
import org.nl.wms.pda.util.SectMaterialCheck;
|
||||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||||
@@ -68,6 +70,8 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
|||||||
private PdaBuildParamService defaultPdaBuildParam;
|
private PdaBuildParamService defaultPdaBuildParam;
|
||||||
@Resource
|
@Resource
|
||||||
private IStructattrService structattrService;
|
private IStructattrService structattrService;
|
||||||
|
@Resource
|
||||||
|
private SectMaterialCheck sectMaterialCheck;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 组盘mapper
|
* 组盘mapper
|
||||||
@@ -266,6 +270,30 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
|||||||
if (ObjectUtil.isEmpty(pointDao)) {
|
if (ObjectUtil.isEmpty(pointDao)) {
|
||||||
throw new BadRequestException("当前入库点位不存在【" + param.getString("point_code") + "】");
|
throw new BadRequestException("当前入库点位不存在【" + param.getString("point_code") + "】");
|
||||||
}
|
}
|
||||||
|
// 校验托盘数据与入库是否匹配
|
||||||
|
// 入库前检测
|
||||||
|
AssemblyPalletParam checkParam = new AssemblyPalletParam();
|
||||||
|
checkParam.setVehicle_code(param.getString("vehicel_code"));
|
||||||
|
// res中包含g.*(md_pb_groupplate字段),但也会额外带一些展示字段;这里只取校验必需字段即可
|
||||||
|
List<JSONObject> rows = param.getJSONArray("rows").toJavaList(JSONObject.class);
|
||||||
|
List<GroupPlate> groupPlates = rows.stream().map(row -> {
|
||||||
|
GroupPlate gp = new GroupPlate();
|
||||||
|
gp.setGroup_id(row.getString("group_id"));
|
||||||
|
gp.setBag_code(row.getString("bag_code"));
|
||||||
|
gp.setVehicle_code(row.getString("vehicle_code"));
|
||||||
|
gp.setMaterial_id(row.getString("material_id"));
|
||||||
|
gp.setPcsn(row.getString("pcsn"));
|
||||||
|
gp.setQty(row.getBigDecimal("qty"));
|
||||||
|
gp.setQty_unit_id(row.getString("qty_unit_id"));
|
||||||
|
gp.setQty_unit_name(row.getString("qty_unit_name"));
|
||||||
|
gp.setSupp_code(row.getString("supp_code"));
|
||||||
|
gp.setRemark(row.getString("remark"));
|
||||||
|
gp.setStatus(row.getString("status"));
|
||||||
|
return gp;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
checkParam.setGroup_plates(groupPlates);
|
||||||
|
// 调用检测方法:校验托盘库区与物料类型映射关系
|
||||||
|
sectMaterialCheck.chackAllMaterialAndSect(checkParam);
|
||||||
|
|
||||||
// 组织入库单创建
|
// 组织入库单创建
|
||||||
param.put("bill_type", IOSEnum.IN_BILL_TYPE.code("原辅料入库"));
|
param.put("bill_type", IOSEnum.IN_BILL_TYPE.code("原辅料入库"));
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.nl.wms.pda.util;
|
package org.nl.wms.pda.util;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.system.service.dict.ISysDictService;
|
import org.nl.system.service.dict.ISysDictService;
|
||||||
import org.nl.system.service.dict.dao.Dict;
|
import org.nl.system.service.dict.dao.Dict;
|
||||||
@@ -16,6 +17,7 @@ import org.nl.wms.warehouse_management.service.dao.GroupPlate;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -58,6 +60,70 @@ public class SectMaterialCheck {
|
|||||||
@Resource
|
@Resource
|
||||||
private CommonMapper commonMapper;
|
private CommonMapper commonMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验托盘的物料类型是否一致
|
||||||
|
* @param groupPlates
|
||||||
|
*/
|
||||||
|
public void checkAllMaterialType(List<GroupPlate> groupPlates) {
|
||||||
|
if (ObjectUtil.isEmpty(groupPlates)) {
|
||||||
|
throw new BadRequestException("托盘物料信息不能为空!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 仅取本托盘涉及到的物料ID(物料表数据量大也不会全表扫描)
|
||||||
|
Set<String> materialIdSet = groupPlates.stream()
|
||||||
|
.map(GroupPlate::getMaterial_id)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toCollection(HashSet::new));
|
||||||
|
if (ObjectUtil.isEmpty(materialIdSet)) {
|
||||||
|
throw new BadRequestException("托盘物料信息不能为空!");
|
||||||
|
}
|
||||||
|
if (materialIdSet.size() == 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 托盘明细本身不大:直接一次IN查询即可(只查必要字段,避免加载物料表大字段)
|
||||||
|
List<MdMeMaterialbase> materials = materialbaseService.list(
|
||||||
|
new QueryWrapper<MdMeMaterialbase>()
|
||||||
|
.select("material_id", "material_type_id")
|
||||||
|
.in("material_id", materialIdSet)
|
||||||
|
);
|
||||||
|
if (ObjectUtil.isEmpty(materials)) {
|
||||||
|
throw new BadRequestException("物料不存在或已被删除!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 校验物料是否都存在
|
||||||
|
Set<String> foundMaterialIds = materials.stream()
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.map(MdMeMaterialbase::getMaterial_id)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
if (foundMaterialIds.size() != materialIdSet.size()) {
|
||||||
|
Set<String> missing = new HashSet<>(materialIdSet);
|
||||||
|
missing.removeAll(foundMaterialIds);
|
||||||
|
throw new BadRequestException("物料不存在或已被删除:" + String.join(",", missing));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 校验物料类型是否一致
|
||||||
|
long typeCnt = materials.stream()
|
||||||
|
.map(MdMeMaterialbase::getMaterial_type_id)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.distinct()
|
||||||
|
.count();
|
||||||
|
if (typeCnt == 0) {
|
||||||
|
throw new BadRequestException("物料未配置物料类型(material_type_id),无法校验!");
|
||||||
|
}
|
||||||
|
if (typeCnt > 1) {
|
||||||
|
throw new BadRequestException("托盘物料类型不一致,禁止操作!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 若存在未配置类型的物料,也认为不允许通过
|
||||||
|
boolean hasEmptyType = materials.stream().anyMatch(m -> ObjectUtil.isEmpty(m) || ObjectUtil.isEmpty(m.getMaterial_type_id()));
|
||||||
|
if (hasEmptyType) {
|
||||||
|
throw new BadRequestException("存在未配置物料类型(material_type_id)的物料,无法校验!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取托盘对应的sect_code,比较所有param对应的物料的类型, 与字典表MATERIAL_SECT(label:物料类型,value:库区)是否匹配.
|
* 获取托盘对应的sect_code,比较所有param对应的物料的类型, 与字典表MATERIAL_SECT(label:物料类型,value:库区)是否匹配.
|
||||||
* @param param
|
* @param param
|
||||||
|
|||||||
@@ -85,6 +85,9 @@ public class CallMaterialTask extends AbstractTask {
|
|||||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
|
||||||
// 下发任务
|
// 下发任务
|
||||||
|
|||||||
@@ -68,6 +68,9 @@ public class CenterInTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
|
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
|
|||||||
@@ -58,7 +58,9 @@ public class CoatingUpTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
|
|||||||
@@ -61,6 +61,9 @@ public class EmptyDiskConveyTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
|
|||||||
@@ -67,6 +67,9 @@ public class EmptyDiskEnterTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
|
|||||||
@@ -93,9 +93,11 @@ public class IntermediateOutTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,6 +180,9 @@ public class IntermediateOutTask extends AbstractTask {
|
|||||||
taskObj.setRemark("已完成");
|
taskObj.setRemark("已完成");
|
||||||
taskService.updateById(taskObj);
|
taskService.updateById(taskObj);
|
||||||
outBillService.taskFinish(taskObj);
|
outBillService.taskFinish(taskObj);
|
||||||
|
if (true) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// 创建上料任务
|
// 创建上料任务
|
||||||
JSONObject request = JSONObject.parseObject(taskObj.getRequest_param());
|
JSONObject request = JSONObject.parseObject(taskObj.getRequest_param());
|
||||||
// "ext":{"iostorinv_id":"2009532623130595328","point_code":"ZJZCZ01","target":"YPDJW01"}
|
// "ext":{"iostorinv_id":"2009532623130595328","point_code":"ZJZCZ01","target":"YPDJW01"}
|
||||||
|
|||||||
@@ -71,7 +71,9 @@ public class MaterialBackTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
|
|||||||
@@ -103,9 +103,11 @@ public class PalletOutTask extends AbstractTask {
|
|||||||
structattrService.update(new LambdaUpdateWrapper<Structattr>()
|
structattrService.update(new LambdaUpdateWrapper<Structattr>()
|
||||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("出库锁"))
|
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("出库锁"))
|
||||||
.eq(Structattr::getStruct_code, task.getPoint_code1()));
|
.eq(Structattr::getStruct_code, task.getPoint_code1()));
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -60,6 +60,9 @@ public class PalletizingAddTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
|
|||||||
@@ -67,6 +67,9 @@ public class PalletizingDownTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
|
|||||||
@@ -69,7 +69,9 @@ public class PreProcessingInTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
|
|||||||
@@ -66,7 +66,9 @@ public class ProduceInTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
|
|||||||
@@ -72,7 +72,9 @@ public class RawInTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
|
|||||||
@@ -92,7 +92,9 @@ public class TabletingInTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
@@ -175,6 +177,9 @@ public class TabletingInTask extends AbstractTask {
|
|||||||
throw new BadRequestException("入库库区设置不能为空!");
|
throw new BadRequestException("入库库区设置不能为空!");
|
||||||
}
|
}
|
||||||
// todo: 获取重量
|
// todo: 获取重量
|
||||||
|
if (true) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
groupbucketService.upDateWeight("26.8", taskObj.getVehicle_code());
|
groupbucketService.upDateWeight("26.8", taskObj.getVehicle_code());
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
// 创建入库任务
|
// 创建入库任务
|
||||||
|
|||||||
@@ -75,6 +75,9 @@ public class WrappingDownTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
|
|||||||
@@ -74,6 +74,9 @@ public class WrappingUpTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
if (task.getPoint_code1().equals(task.getPoint_code2())) {
|
||||||
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// this.sendTaskOne(task.getTask_id());
|
// this.sendTaskOne(task.getTask_id());
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
@keyup.enter.native="crud.toQuery"
|
@keyup.enter.native="crud.toQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<rrOperation/>
|
<rrOperation />
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -78,6 +78,20 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="所属库区">
|
||||||
|
<el-select
|
||||||
|
v-model="form.sect_code"
|
||||||
|
placeholder=""
|
||||||
|
style="width: 200px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in this.sects"
|
||||||
|
:label="item.sect_name"
|
||||||
|
:value="item.sect_code"
|
||||||
|
:disabled="(form.storagevehicle_type === '4' && item.sect_code === 'ZZC01') || (form.storagevehicle_type !== '4' && item.sect_code !== 'ZZC01')"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="载具编码" prop="storagevehicle_code">
|
<el-form-item label="载具编码" prop="storagevehicle_code">
|
||||||
<el-input v-model="form.storagevehicle_code" style="width: 200px;" :disabled="crud.status.edit > 0" />
|
<el-input v-model="form.storagevehicle_code" style="width: 200px;" :disabled="crud.status.edit > 0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -112,6 +126,13 @@
|
|||||||
<el-table-column prop="storagevehicle_code" label="载具编码" />
|
<el-table-column prop="storagevehicle_code" label="载具编码" />
|
||||||
<el-table-column prop="storagevehicle_name" label="载具名称" />
|
<el-table-column prop="storagevehicle_name" label="载具名称" />
|
||||||
<el-table-column prop="pcsn" label="绑定物料" />
|
<el-table-column prop="pcsn" label="绑定物料" />
|
||||||
|
<el-table-column prop="sect_code" label="所属库区" :min-width="flexWidth('sect_code',crud.data,'载具类型', 30)">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span :class="{ 'text-danger': isSectMissing(scope.row.sect_code), 'blink': isSectMissing(scope.row.sect_code) }">
|
||||||
|
{{ getSectName(scope.row.sect_code) }}
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="weigth" label="托盘重量" />
|
<el-table-column prop="weigth" label="托盘重量" />
|
||||||
<el-table-column label="是否启用" align="center" prop="is_used">
|
<el-table-column label="是否启用" align="center" prop="is_used">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@@ -125,8 +146,8 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="create_name" label="创建人"/>
|
<el-table-column prop="create_name" label="创建人" />
|
||||||
<el-table-column prop="create_time" label="创建时间" width="150px"/>
|
<el-table-column prop="create_time" label="创建时间" width="150px" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-permission="['admin','storagevehicleinfo:edit','storagevehicleinfo:del']"
|
v-permission="['admin','storagevehicleinfo:edit','storagevehicleinfo:del']"
|
||||||
label="操作"
|
label="操作"
|
||||||
@@ -156,6 +177,7 @@ 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 { getLodop } from '@/assets/js/lodop/LodopFuncs'
|
import { getLodop } from '@/assets/js/lodop/LodopFuncs'
|
||||||
|
import crudSectattr from '@/views/wms/basedata/sectattr/sectattr'
|
||||||
|
|
||||||
const defaultForm = {
|
const defaultForm = {
|
||||||
storagevehicle_id: null,
|
storagevehicle_id: null,
|
||||||
@@ -163,6 +185,7 @@ const defaultForm = {
|
|||||||
storagevehicle_name: null,
|
storagevehicle_name: null,
|
||||||
one_code: null,
|
one_code: null,
|
||||||
two_code: null,
|
two_code: null,
|
||||||
|
sect_code: null,
|
||||||
rfid_code: null,
|
rfid_code: null,
|
||||||
create_id: null,
|
create_id: null,
|
||||||
create_name: null,
|
create_name: null,
|
||||||
@@ -241,9 +264,15 @@ export default {
|
|||||||
{ required: true, message: '不能为空', trigger: 'blur' },
|
{ required: true, message: '不能为空', trigger: 'blur' },
|
||||||
{ validator: numberOne }
|
{ validator: numberOne }
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
sects: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created() {
|
||||||
|
crudSectattr.getOneSect({ 'stor_id': '' }).then(res => {
|
||||||
|
this.sects = res
|
||||||
|
})
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||||
[CRUD.HOOK.beforeRefresh]() {
|
[CRUD.HOOK.beforeRefresh]() {
|
||||||
@@ -280,6 +309,15 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
getSectName(code) {
|
||||||
|
const sect = this.sects.find(item => item.sect_code === code)
|
||||||
|
return sect ? sect.sect_name : '请设置库区'
|
||||||
|
},
|
||||||
|
isSectMissing(code) {
|
||||||
|
// 列表还未加载时不显示红色,避免闪烁
|
||||||
|
if (!this.sects || this.sects.length === 0) return false
|
||||||
|
return !this.sects.some(item => item.sect_code === code)
|
||||||
|
},
|
||||||
formattType(row) {
|
formattType(row) {
|
||||||
return this.dict.label.storagevehicle_type[row.storagevehicle_type]
|
return this.dict.label.storagevehicle_type[row.storagevehicle_type]
|
||||||
},
|
},
|
||||||
@@ -308,5 +346,14 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.text-danger {
|
||||||
|
color: #F56C6C;
|
||||||
|
}
|
||||||
|
.blink {
|
||||||
|
animation: blink 1s step-end infinite;
|
||||||
|
}
|
||||||
|
@keyframes blink {
|
||||||
|
0%, 50% { opacity: 1; }
|
||||||
|
51%, 100% { opacity: 0.25; }
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user