rev:修改结构
This commit is contained in:
@@ -6,7 +6,7 @@ package org.nl.common;
|
||||
*/
|
||||
public class ConstantParam {
|
||||
//深坑清洗区域编码
|
||||
public static String SK_REGION = "QSQX";
|
||||
public static String SK_REGION = "A1_SKQX";
|
||||
//发货区编码
|
||||
public static String FHQ = "KQ001";
|
||||
public static String RK_POINT = "A1_RK01";
|
||||
|
||||
@@ -69,6 +69,9 @@ public enum StatusEnum {
|
||||
IOS_CREATE("01","生成",""),
|
||||
IOS_RUNNING("02","执行中",""),
|
||||
IOS_FINISH("99","完成",""),
|
||||
//载具超限
|
||||
OVERSTRUCT_STANDARD("1","标准",""),
|
||||
OVERSTRUCT_LIMIT("2","超限",""),
|
||||
;
|
||||
|
||||
private String code;
|
||||
|
||||
@@ -8,6 +8,7 @@ import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -21,7 +22,7 @@ public class RedissonUtils {
|
||||
* @param seconds 尝试获取锁的等待时间,允许为空
|
||||
*/
|
||||
@SneakyThrows
|
||||
public static void lock(LockProcess process, String key, Integer seconds){
|
||||
public static void lock(LockProcess process, String key, Integer seconds){
|
||||
RedissonClient redissonClient = SpringContextHolder.getBean(RedissonClient.class);
|
||||
RLock lock = redissonClient.getLock(key);
|
||||
boolean isLock;
|
||||
|
||||
@@ -9,15 +9,11 @@ import java.util.HashMap;
|
||||
|
||||
public class CodeUtil{
|
||||
public static String getNewCode(String ruleCode) {
|
||||
final String[] code = {""};
|
||||
|
||||
HashMap<String,String> map = new HashMap<>();
|
||||
map.put("flag", "1");
|
||||
map.put("code", ruleCode);
|
||||
GenCodeService service = SpringContextHolder.getBean(GenCodeServiceImpl.class);
|
||||
String codeId = service.queryIdByCode(ruleCode);
|
||||
RedissonUtils.lock(() -> {
|
||||
code[0] = service.codeDemo(map);
|
||||
}, codeId, 3);
|
||||
return code[0];
|
||||
return service.codeDemo(map);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,49 +92,24 @@ public class StoragevehicleinfoServiceImpl implements StoragevehicleinfoService
|
||||
if (!ObjectUtil.isEmpty(jsonObject)) {
|
||||
throw new BadRequestException("此载具已存在");
|
||||
}
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
|
||||
|
||||
String storagevehicle_type = (String) map.get("storagevehicle_type");
|
||||
String code = "";
|
||||
switch (storagevehicle_type) {
|
||||
case "00":
|
||||
code = "VEHICCLE_CODE_XMTPT";
|
||||
break;
|
||||
case "01":
|
||||
code = "VEHICCLE_CODE_CDMTP";
|
||||
break;
|
||||
case "02":
|
||||
code = "VEHICCLE_CODE_TLD";
|
||||
break;
|
||||
case "03":
|
||||
code = "VEHICCLE_CODE_TTP";
|
||||
break;
|
||||
case "04":
|
||||
code = "VEHICCLE_CODE_XMTPC";
|
||||
break;
|
||||
case "05":
|
||||
code = "VEHICCLE_CODE_LX";
|
||||
break;
|
||||
}
|
||||
JSONArray resultCodeArr = new JSONArray();
|
||||
int num = MapUtil.getInt(map, "num");
|
||||
for (int i = 0; i < num; i++) {
|
||||
StoragevehicleinfoDto dto = new StoragevehicleinfoDto();
|
||||
dto.setStoragevehicle_id(IdUtil.getSnowflake(1, 1).nextId());
|
||||
dto.setStoragevehicle_code(CodeUtil.getNewCode(code));
|
||||
dto.setCreate_id(currentUserId);
|
||||
dto.setStoragevehicle_code((String) map.get("storagevehicle_code"));
|
||||
dto.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
dto.setStoragevehicle_name(dto.getStoragevehicle_code());
|
||||
dto.setCreate_name(nickName);
|
||||
dto.setUpdate_id(currentUserId);
|
||||
dto.setUpdate_name(nickName);
|
||||
dto.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
dto.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||
dto.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||
dto.setUpdate_time(DateUtil.now());
|
||||
dto.setCreate_time(DateUtil.now());
|
||||
dto.setOverstruct_type((String) map.get("overstruct_type"));
|
||||
dto.setStoragevehicle_type((String) map.get("storagevehicle_type"));
|
||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||
wo.insert(json);
|
||||
resultCodeArr.add(dto.getStoragevehicle_code());
|
||||
resultCodeArr.add(dto);
|
||||
}
|
||||
return resultCodeArr;
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -37,9 +37,6 @@ import java.util.Map;
|
||||
@SaIgnore
|
||||
public class AcsToWmsController {
|
||||
private final AcsToWmsService acsToWmsService;
|
||||
private final SpeMachineryTask speMachineryTask;
|
||||
private final CacheLineHandService cacheLineHandService;
|
||||
private final TaskScheduleService taskScheduleService;
|
||||
private final WashMachineryTask washMachineryTask;
|
||||
|
||||
@PostMapping("/apply")
|
||||
|
||||
@@ -17,8 +17,10 @@ import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext.acs.service.AcsToWmsService;
|
||||
import org.nl.wms.pda.service.CacheLineHandService;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.service.TaskService;
|
||||
import org.nl.wms.sch.service.dto.TaskDto;
|
||||
import org.nl.wms.sch.tasks.SpeMachineryTask;
|
||||
@@ -27,6 +29,7 @@ import org.nl.wms.sch.tasks.callMaterial.WrapCallMaterialTask;
|
||||
import org.nl.wms.sch.tasks.sendEmpty.WrapSendEmptyTask;
|
||||
import org.nl.wms.sch.tasks.sendMaterial.PlotterSendMaterialTask;
|
||||
import org.nl.wms.sch.tasks.WashMachineryTask;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
@@ -34,59 +37,45 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class AcsToWmsServiceImpl implements AcsToWmsService{
|
||||
|
||||
private static Map<AcsTaskEnum, AbstractAcsTask> Task_Factory = new HashMap<>();
|
||||
@Autowired
|
||||
private TaskService taskService;
|
||||
@Autowired
|
||||
private CacheLineHandService cacheLineHandService;
|
||||
|
||||
|
||||
|
||||
private final CacheLineHandService cacheLineHandService;
|
||||
private final SpeMachineryTask speMachineryTask;
|
||||
private final WashMachineryTask washMachineryTask;
|
||||
private final PlotterSendMaterialTask plotterSendMaterialTask;
|
||||
private final PlotterCallEmptyTask plotterCallEmptyTask;
|
||||
private final WrapCallMaterialTask wrapCallMaterialTask;
|
||||
private final WrapSendEmptyTask wrapSendEmptyTask;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Map<String, Object> apply(JSONObject param) {
|
||||
Assert.notNull(param,"请求参数不存在");
|
||||
Map result = MapOf.of("status", HttpStatus.OK.value(), "message", "ACS向WMS申请任务成功!");
|
||||
String type = param.getString("type");
|
||||
AcsTaskEnum taskEnum = AcsTaskEnum.getType(type, "REQUEST_");
|
||||
AcsTaskEnum taskEnum = AcsTaskEnum.getType(param.getString("type"), "REQUEST_");
|
||||
|
||||
try {
|
||||
RedissonUtils.lock(() -> {
|
||||
},"ddd",3);
|
||||
RedissonUtils.lock(()->{
|
||||
switch (taskEnum){
|
||||
//1.专机设备满料请求 2.专机设备缺料请求:专机
|
||||
case REQUEST_CALLTYPE_FULL: case REQUEST_CALLTYPE_EMP:
|
||||
speMachineryTask.createTask(param);
|
||||
break;
|
||||
//清洗机缺料请求:
|
||||
case REQUEST_WASH_EMP:
|
||||
washMachineryTask.createTask(param);
|
||||
break;
|
||||
case REQUEST_PLOTTER_SEND_FULL:
|
||||
plotterSendMaterialTask.createTask(param);
|
||||
break;
|
||||
case REQUEST_PLOTTER_CALL_EMP:
|
||||
plotterCallEmptyTask.createTask(param);
|
||||
break;
|
||||
case REQUEST_WARP_CALL_FULL:
|
||||
wrapCallMaterialTask.createTask(param);
|
||||
break;
|
||||
case REQUEST_WARP_SEND_EMP:
|
||||
wrapSendEmptyTask.createTask(param);
|
||||
break;
|
||||
default:
|
||||
throw new BadRequestException("任务请求类型错误!");
|
||||
}
|
||||
},type,5);
|
||||
//业务处理
|
||||
Task_Factory.get(taskEnum).createTask(param);
|
||||
|
||||
},param.getString("type"),5);
|
||||
}catch (Exception ex){
|
||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||
result.put("message",ex.getMessage());
|
||||
@@ -94,6 +83,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
ArrayList<Object> list = new ArrayList<>();
|
||||
list.forEach(a->{
|
||||
a.getClass();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新缓存线的点位实时任务信息
|
||||
* ACS给WMS发送缓存线的实时任务编号
|
||||
@@ -205,7 +201,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
||||
public Map<String, Object> washOrderFinish(JSONObject param) {
|
||||
JSONObject result = new JSONObject();
|
||||
try {
|
||||
washMachineryTask.updateTaskStatus(param,StatusEnum.TASK_FINISH.getCode());
|
||||
SpringContextHolder.getBean(WashMachineryTask.class).updateTaskStatus(param,StatusEnum.TASK_FINISH.getCode());
|
||||
} catch (Exception e){
|
||||
result.put("status", 400);
|
||||
result.put("message", e.getMessage());
|
||||
@@ -322,5 +318,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
||||
wo.update(MapOf.of("real_qty",real_qty),"workorder_id = '"+workorder_id+"'");
|
||||
}
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
Task_Factory.put(AcsTaskEnum.REQUEST_CALLTYPE_FULL, SpringContextHolder.getBean(SpeMachineryTask.class));
|
||||
Task_Factory.put(AcsTaskEnum.REQUEST_CALLTYPE_EMP, SpringContextHolder.getBean(SpeMachineryTask.class));
|
||||
Task_Factory.put(AcsTaskEnum.REQUEST_WASH_EMP, SpringContextHolder.getBean(WashMachineryTask.class));
|
||||
Task_Factory.put(AcsTaskEnum.REQUEST_PLOTTER_SEND_FULL, SpringContextHolder.getBean(PlotterSendMaterialTask.class));
|
||||
Task_Factory.put(AcsTaskEnum.REQUEST_WARP_CALL_FULL, SpringContextHolder.getBean(WrapCallMaterialTask.class));
|
||||
Task_Factory.put(AcsTaskEnum.REQUEST_WARP_SEND_EMP, SpringContextHolder.getBean(WrapSendEmptyTask.class));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,41 +2,23 @@ package org.nl.wms.ext.acs.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.crypto.digest.MD5;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.ConstantParam;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.utils.PointLockUtils;
|
||||
import org.nl.wms.sch.tasks.SpeMachineryTask;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RReadWriteLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.transaction.TransactionDefinition;
|
||||
import org.springframework.transaction.TransactionStatus;
|
||||
import org.springframework.transaction.support.DefaultTransactionDefinition;
|
||||
import org.springframework.transaction.support.DefaultTransactionStatus;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.locks.Lock;
|
||||
import java.util.concurrent.locks.ReadWriteLock;
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/*
|
||||
@@ -90,7 +72,7 @@ public class AgvInstService {
|
||||
JSONObject cacheLine = cacheLineSearch.query("region_code = '"+devicePoint.getString("region_code")+"'").uniqueResult(0);
|
||||
nextPoint = cacheLine.getString("cacheline_code");
|
||||
//满料请求:查询缓存线空载具列表
|
||||
cacheVehile = getCacheVehile(nextPoint, null);
|
||||
cacheVehile = getEmpCacheVehile(nextPoint, null);
|
||||
if (StringUtils.isBlank(cacheVehile)) {
|
||||
throw new BadRequestException(OPT_NAME+"缓存线:"+nextPoint+"没有可用空载具");
|
||||
}
|
||||
@@ -118,16 +100,15 @@ public class AgvInstService {
|
||||
WQLObject cacheLineTable = WQLObject.getWQLObject("SCH_cacheLine_region_relation");
|
||||
WQLObject taskTable = WQLObject.getWQLObject("SCH_base_task");
|
||||
//参数
|
||||
String point_code = task.getString("next_point_code");
|
||||
String material_id = task.getString("material_id");
|
||||
|
||||
JSONObject devicePoint = basePointTable.query("point_code = '" + point_code + "' and is_delete = 0 and is_used = 1").uniqueResult(0);
|
||||
JSONObject devicePoint = basePointTable.query("point_code = '" + task.getString("next_point_code") + "' and is_delete = 0 and is_used = 1").uniqueResult(0);
|
||||
|
||||
JSONObject cacheLine = cacheLineTable.query("region_code = '"+devicePoint.getString("region_code")+"' and is_active = '"+StatusEnum.STATUS_TRUE.getCode()+"'").uniqueResult(0);
|
||||
Assert.notNull(cacheLine, String.format(OPT_NAME+"区域%s对应缓存线信息不存在", devicePoint.getString("region_code")));
|
||||
//缓存线位置编码 :缺料请求获取缓存线满载具列表
|
||||
String startPoint = cacheLine.getString("cacheline_code");
|
||||
String cacheVehile = getCacheVehile(startPoint, material_id);
|
||||
String cacheVehile = getEmpCacheVehile(startPoint, material_id);
|
||||
if (StringUtils.isBlank(cacheVehile)) {
|
||||
throw new BadRequestException(OPT_NAME+"缓存线:"+startPoint+"没有可用载具");
|
||||
}
|
||||
@@ -146,9 +127,8 @@ public class AgvInstService {
|
||||
|
||||
}
|
||||
|
||||
public String getCacheVehile(String cacheLine,String materialId){
|
||||
public String getEmpCacheVehile(String cacheLine, String materialId){
|
||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
||||
StringBuffer sql = new StringBuffer("vehicle_status = '");
|
||||
JSONArray runingTask = taskTable.query("point_code2 = '" + cacheLine + "' and task_status < '" + StatusEnum.TASK_FINISH.getCode() + "'").getResultJSONArray(0);
|
||||
String status = StringUtils.isBlank(materialId) ? StatusEnum.CACHE_VEL_EMT.getCode() : StatusEnum.CACHE_VEL_FULL.getCode();
|
||||
JSONArray result = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "6", "vehicle_status", status, "material_id", materialId)).process().getResultJSONArray(0);
|
||||
|
||||
@@ -2,7 +2,6 @@ package org.nl.wms.sch.tasks;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -12,6 +11,7 @@ import org.nl.common.ConstantParam;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.InterfaceLogType;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
@@ -65,29 +65,23 @@ public class SpeMachineryTask extends AbstractAcsTask {
|
||||
|
||||
@Override
|
||||
public String createTask(JSONObject param) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
|
||||
WQLObject workOrder = WQLObject.getWQLObject("PDM_produce_workOrder");
|
||||
String workorder = param.getString("workorder_code");//
|
||||
String point_code = param.getString("device_code");
|
||||
String quantity = param.getString("quantity");
|
||||
String type = param.getString("type");
|
||||
JSONObject order = workOrder.query("workorder_code = '" + workorder + "' and is_delete = 0 and workorder_status != "+StatusEnum.TASK_FINISH.getCode()).uniqueResult(0);
|
||||
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", workorder));
|
||||
|
||||
JSONObject order = WQLObject.getWQLObject("PDM_produce_workOrder").query("workorder_code = '" + param.getString("workorder_code") + "' and is_delete = 0 and workorder_status != "+StatusEnum.TASK_FINISH.getCode()).uniqueResult(0);
|
||||
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
||||
JSONObject form = null;
|
||||
if (AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode().equals(type)){
|
||||
JSONObject empPoint = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "2", "point_code", point_code, "point_type", StatusEnum.POINT_LOCATION_EMP.getCode())).process().uniqueResult(0);
|
||||
form = new JSONObject(MapOf.of("start_point_code",point_code,
|
||||
|
||||
if (AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode().equals(param.getString("type"))){
|
||||
JSONObject empPoint = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "2", "point_code", param.getString("device_code"), "point_type", StatusEnum.POINT_LOCATION_EMP.getCode())).process().uniqueResult(0);
|
||||
form = new JSONObject(MapOf.of("start_point_code",param.getString("device_code"),
|
||||
"next_point_code","","return_point_code", empPoint,"vehicle_code",
|
||||
"","product_area","quantity", quantity,order.getString("product_area"),"type",type,"material_id", order.getString("material_id")));
|
||||
"","product_area","quantity", param.getString("quantity"),order.getString("product_area"),"type",param.getString("type"),"material_id", order.getString("material_id")));
|
||||
}
|
||||
if (AcsTaskEnum.REQUEST_CALLTYPE_EMP.getCode().equals(type)){
|
||||
if (AcsTaskEnum.REQUEST_CALLTYPE_EMP.getCode().equals(param.getString("type"))){
|
||||
form = new JSONObject(MapOf.of("start_point_code","",
|
||||
"next_point_code",point_code,"return_point_code", "","vehicle_code",
|
||||
"","product_area","quantity", quantity,order.getString("product_area"),"type",type,"material_id", order.getString("material_id")));
|
||||
"next_point_code",param.getString("device_code"),"return_point_code", "","vehicle_code",
|
||||
"","product_area","quantity", param.getString("quantity"),order.getString("product_area"),"type",param.getString("type"),"material_id", order.getString("material_id")));
|
||||
}
|
||||
JSONObject task = new JSONObject();
|
||||
String taskdtl_id = IdUtil.getSnowflake(1, 1).nextId() + "";
|
||||
packageParam(type, form, task, taskdtl_id);
|
||||
JSONObject task = packageParam(param.getString("type"), form);
|
||||
WQLObject.getWQLObject("SCH_BASE_Task").insert(task);
|
||||
try {
|
||||
pointConfirm(task);
|
||||
@@ -95,42 +89,40 @@ public class SpeMachineryTask extends AbstractAcsTask {
|
||||
}catch (Exception ex){
|
||||
task.put("task_status",TaskStatusEnum.SURE_START_ERROR.getCode());
|
||||
task.put("remark",ex.getMessage());
|
||||
taskTab.update(task);
|
||||
WQLObject.getWQLObject("sch_base_task").update(task);
|
||||
}
|
||||
return taskdtl_id;
|
||||
return task.getString("task_id");
|
||||
}
|
||||
|
||||
private void packageParam(String type, JSONObject form, JSONObject task, String taskdtl_id) {
|
||||
private JSONObject packageParam(String type, JSONObject reqestPram) {
|
||||
JSONObject task = new JSONObject();
|
||||
参数封装:{
|
||||
String task_name = form.getString("task_name");
|
||||
String start_point_code = form.getString("point_code1");
|
||||
String next_point_code = form.getString("point_code2");
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
String vehicle_code2 = form.getString("vehicle_code2");
|
||||
String material_id = form.getString("material_id");
|
||||
task.put("task_id", taskdtl_id);
|
||||
task.put("task_name", task_name);
|
||||
task.put("task_id", IdUtil.getStringId());
|
||||
task.put("task_name", reqestPram.getString("task_name"));
|
||||
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.put("task_type", type);
|
||||
task.put("task_status", TaskStatusEnum.CREATED.getCode());
|
||||
task.put("point_code1", start_point_code);
|
||||
task.put("point_code2", next_point_code);
|
||||
task.put("vehicle_code2", vehicle_code2);
|
||||
task.put("vehicle_code", vehicle_code);
|
||||
task.put("material_id", material_id);
|
||||
task.put("point_code1", reqestPram.getString("point_code1"));
|
||||
task.put("point_code2", reqestPram.getString("point_code2"));
|
||||
task.put("vehicle_code2", reqestPram.getString("vehicle_code2"));
|
||||
task.put("vehicle_code", reqestPram.getString("vehicle_code"));
|
||||
task.put("material_id", reqestPram.getString("material_id"));
|
||||
task.put("handle_class", this.getClass().getName());
|
||||
task.put("finished_type", "1");
|
||||
task.put("is_delete", "0");
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
task.put("create_id", currentUserId);
|
||||
task.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
task.put("update_optid", currentUserId);
|
||||
task.put("update_optname", SecurityUtils.getCurrentNickName());
|
||||
task.put("update_id", currentUserId);
|
||||
task.put("update_name", SecurityUtils.getCurrentNickName());
|
||||
task.put("create_time", DateUtil.now());
|
||||
task.put("update_time", DateUtil.now());
|
||||
task.put("priority", "1");}
|
||||
task.put("priority", "1");
|
||||
}
|
||||
return task;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void cancel(String taskId) {
|
||||
log.info(OPT_NAME+"cancel taskID:{}",taskId);
|
||||
|
||||
@@ -12,6 +12,7 @@ import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.checkerframework.checker.units.qual.A;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.nl.common.ConstantParam;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.InterfaceLogType;
|
||||
@@ -97,51 +98,26 @@ public class WashMachineryTask extends AbstractAcsTask {
|
||||
@Override
|
||||
@SneakyThrows
|
||||
public String createTask(JSONObject param) {
|
||||
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point");
|
||||
WQLObject materialTab = WQLObject.getWQLObject("md_me_materialbase");
|
||||
String pointCode = param.getString("device_code");
|
||||
JSONObject device = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "8", "point_code", pointCode)).process().uniqueResult(0);
|
||||
//清洗机设备
|
||||
JSONObject device = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "8", "point_code", param.getString("device_code"))).process().uniqueResult(0);
|
||||
//is_used = '0'人工下料:入料仓上线inupperlimit_qty;is_artificial人工
|
||||
Double inupperlimitQty = device.getDouble("inupperlimit_qty");
|
||||
String deviceCode = device.getString("device_code");
|
||||
String artificial = device.getString("is_artificial").equals("1")?"0":"1";
|
||||
JSONArray points = pointTab.query("region_code = 'SKQX' and material_id is not null and point_status = '2' and is_used = '"+artificial+"' order by vehicle_qty desc").getResultJSONArray(0);
|
||||
JSONArray points = WQLObject.getWQLObject("SCH_BASE_Point").query("region_code = "+ConstantParam.SK_REGION+" and material_id is not null and point_status = '2' and is_used = '"+(device.getString("is_artificial").equals("1")?"0":"1")+"' order by vehicle_qty desc").getResultJSONArray(0);
|
||||
//查询深坑相同物料类型的点位:深坑单位:重量
|
||||
if (points.size()>0){
|
||||
Map<String, List<Object>> materialCollent = points.stream().collect(Collectors.groupingBy(o -> ((JSONObject) o).getString("material_id")));
|
||||
//查询清洗设备最大重量
|
||||
Resource resource = loader.getResource("classpath:/groovyFile.groovy");
|
||||
Script script = groovyShell.parse(resource.getFile());
|
||||
ArrayList<JSONObject> result = (ArrayList)script.invokeMethod("getPoints", new Object[]{points, materialCollent, inupperlimitQty});
|
||||
//确认acs参数 创建工单下发acs
|
||||
if (!CollectionUtils.isEmpty(result)){
|
||||
String material_id = result.get(0).getString("material_id");
|
||||
JSONObject material = materialTab.query("material_id = '" + material_id + "' and is_delete = 0").uniqueResult(0);
|
||||
Double qty = result.stream().mapToDouble(value -> value.getDouble("qty")).sum();
|
||||
PdmProduceWashorder washorder = new PdmProduceWashorder();
|
||||
washorder.setWorkorderId(IdUtil.getStringId());
|
||||
washorder.setWorkorderCode(IdUtil.getStringId());
|
||||
washorder.setIsNeedmove("0");
|
||||
washorder.setDeviceCode(deviceCode);
|
||||
washorder.setMaterialWeight(new BigDecimal(qty));
|
||||
washorder.setMaterialCode(material.getString("material_code"));
|
||||
washorder.setCreateTime(DateUtil.now());
|
||||
washorder.setInDevices(result.stream().map(a->a.getString("point_code")).collect(Collectors.joining(",")));
|
||||
washorder.setProductArea(device.getString("product_area"));
|
||||
washorder.setCreateId("1");
|
||||
washorder.setCreateName("acs");
|
||||
washorder.setStatus(StatusEnum.TASK_CREATE.getCode());
|
||||
ArrayList<JSONObject> SKPoints = getDistributeSKPoint(device, points);
|
||||
//确认acs参数 创建工单下发acs
|
||||
if (!CollectionUtils.isEmpty(SKPoints)){
|
||||
PdmProduceWashorder washorder = packageParam(device, SKPoints);
|
||||
//下发"
|
||||
JSONArray request = new JSONArray();
|
||||
JSONObject jsonObject = new JSONObject(MapOf.of("workorder_id", washorder.getWorkorderId()
|
||||
request.add(new JSONObject(MapOf.of("workorder_id", washorder.getWorkorderId()
|
||||
, "workorder_code", washorder.getWorkorderCode()
|
||||
, "qty", washorder.getMaterialWeight()
|
||||
, "material_code", washorder.getMaterialCode()
|
||||
, "device_code", pointCode
|
||||
, "device_code", param.getString("device_code")
|
||||
, "is_needmove", "0"
|
||||
, "in_devices", washorder.getInDevices()
|
||||
));
|
||||
request.add(jsonObject);
|
||||
)));
|
||||
Map<String, Object> response = wmsToAcsService.order(request);
|
||||
if (response.get("status").equals(HttpStatus.BAD_REQUEST)){
|
||||
washorder.setErrorInfo((String) response.get("message"));
|
||||
@@ -154,6 +130,38 @@ public class WashMachineryTask extends AbstractAcsTask {
|
||||
return null;
|
||||
}
|
||||
|
||||
private ArrayList<JSONObject> getDistributeSKPoint(JSONObject device, JSONArray points) throws IOException {
|
||||
Map<String, List<Object>> materialCollent = points.stream()
|
||||
.collect(Collectors.groupingBy(o -> ((JSONObject) o)
|
||||
.getString("material_id")));
|
||||
//查询清洗设备最大重量
|
||||
Resource resource = loader.getResource("classpath:/groovyFile.groovy");
|
||||
Script script = groovyShell.parse(resource.getFile());
|
||||
ArrayList<JSONObject> result = (ArrayList)script.invokeMethod("getPoints", new Object[]{points, materialCollent, device.getDouble("inupperlimit_qty")});
|
||||
return result;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PdmProduceWashorder packageParam(JSONObject device, ArrayList<JSONObject> SKPoints) {
|
||||
|
||||
JSONObject material = WQLObject.getWQLObject("md_me_materialbase").query("material_id = '" + SKPoints.get(0).getString("material_id") + "' and is_delete = 0").uniqueResult(0);
|
||||
|
||||
PdmProduceWashorder washorder = new PdmProduceWashorder();
|
||||
washorder.setWorkorderId(IdUtil.getStringId());
|
||||
washorder.setWorkorderCode(IdUtil.getStringId());
|
||||
washorder.setIsNeedmove("0");
|
||||
washorder.setDeviceCode(device.getString("device_code"));
|
||||
washorder.setMaterialWeight(new BigDecimal(SKPoints.stream().mapToDouble(value -> value.getDouble("qty")).sum()));
|
||||
washorder.setMaterialCode(material.getString("material_code"));
|
||||
washorder.setCreateTime(DateUtil.now());
|
||||
washorder.setInDevices(SKPoints.stream().map(a->a.getString("point_code")).collect(Collectors.joining(",")));
|
||||
washorder.setProductArea(device.getString("product_area"));
|
||||
washorder.setCreateId("1");
|
||||
washorder.setCreateName("acs");
|
||||
washorder.setStatus(StatusEnum.TASK_CREATE.getCode());
|
||||
return washorder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String taskId) {
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
sch_base_point
|
||||
LEFT JOIN pdm_bi_device ON sch_base_point.device_code = pdm_bi_device.device_code
|
||||
LEFT JOIN sch_base_task ON sch_base_point.point_code = point_code2 and task_status<7
|
||||
WHERE 1=1
|
||||
WHERE sch_base_point.lock_type = '0' and is_used = '1'
|
||||
OPTION 输入.region_code <> ""
|
||||
sch_base_point.region_code = 输入.region_code
|
||||
ENDOPTION
|
||||
@@ -167,7 +167,7 @@
|
||||
sch_base_point.*
|
||||
from sch_base_point
|
||||
left JOIN sch_base_task ON sch_base_point.point_code = point_code2 and task_status < 7
|
||||
where 1=1
|
||||
where sch_base_point.lock_type = '0' and is_used = '1'
|
||||
OPTION 输入.region_code <> ""
|
||||
sch_base_point.region_code = 输入.region_code
|
||||
ENDOPTION
|
||||
|
||||
@@ -14,7 +14,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.handler.LockProcess;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
@@ -25,6 +24,7 @@ import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.modules.wql.util.WqlUtil;
|
||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||
import org.nl.wms.basedata.master.service.StoragevehicleinfoService;
|
||||
import org.nl.wms.basedata.st.service.StorattrService;
|
||||
import org.nl.wms.basedata.st.service.StructattrService;
|
||||
import org.nl.wms.basedata.st.service.dto.StructattrDto;
|
||||
@@ -38,9 +38,7 @@ import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* PC端出入库新增
|
||||
@@ -58,6 +56,8 @@ public class ProductInServiceImpl implements ProductInService {
|
||||
|
||||
private final StorPublicService storPublicService;
|
||||
|
||||
private final StoragevehicleinfoService storagevehicleinfoService;
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> pageQuery(Map whereJson, Pageable page) {
|
||||
@@ -67,6 +67,7 @@ public class ProductInServiceImpl implements ProductInService {
|
||||
String begin_time = MapUtil.getStr(whereJson, "begin_time");
|
||||
String end_time = MapUtil.getStr(whereJson, "end_time");
|
||||
String bill_status = MapUtil.getStr(whereJson, "bill_status");
|
||||
String bill_type = MapUtil.getStr(whereJson, "bill_type");
|
||||
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("flag", "1");
|
||||
@@ -74,7 +75,7 @@ public class ProductInServiceImpl implements ProductInService {
|
||||
map.put("begin_time",begin_time);
|
||||
map.put("end_time",end_time);
|
||||
map.put("bill_status",bill_status);
|
||||
map.put("bill_type", "0001");
|
||||
map.put("bill_type", bill_type);
|
||||
if (ObjectUtil.isNotEmpty(bill_code)) map.put("bill_code","%"+bill_code+"%");
|
||||
|
||||
JSONObject jo = WQL.getWO("QST_IVT_PRODUCTIN_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "create_time desc");
|
||||
@@ -505,38 +506,23 @@ public class ProductInServiceImpl implements ProductInService {
|
||||
@Override
|
||||
public void unDivStruct(JSONObject jo) {
|
||||
WQLObject dis_wql = WQLObject.getWQLObject("ST_IVT_IOStorInvDis");
|
||||
WQLObject point_table = WQLObject.getWQLObject("SCH_BASE_Point");
|
||||
WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase");
|
||||
WQLObject structattrTable = WQLObject.getWQLObject("st_ivt_structattr");
|
||||
WQLObject vehicleTable = WQLObject.getWQLObject("md_pb_storagevehicleinfo");
|
||||
|
||||
JSONArray rows = jo.getJSONArray("tableMater");
|
||||
JSONObject whereJson = rows.getJSONObject(0);
|
||||
JSONObject iosInvDisInfo = jo.getJSONArray("tableMater").getJSONObject(0);
|
||||
|
||||
String StructCodes = getReleaseStructByVehicleLimit(structattrTable, vehicleTable, iosInvDisInfo);
|
||||
//解锁原货位点位
|
||||
JSONObject jsonPoint1 = point_table.query("point_code = '" + whereJson.getString("struct_code") + "'").uniqueResult(0);
|
||||
jsonPoint1.put("lock_type", StatusEnum.LOCK_OFF.getCode());
|
||||
point_table.update(jsonPoint1);
|
||||
|
||||
// 判断此物料是否超长
|
||||
JSONObject jsonMater = materTab.query("material_id = '" + whereJson.getString("material_id") + "'").uniqueResult(0);
|
||||
|
||||
String length_up = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MATERIAL_LENGTH_UP").getValue();
|
||||
double material_length = jsonMater.getDoubleValue("length");
|
||||
double material_length_up = Double.valueOf(length_up);
|
||||
|
||||
if (material_length > material_length_up) {
|
||||
// 超长则解锁对应点位
|
||||
JSONObject jsonPoint2 = point_table.query("point_id = '" + jsonPoint1.getString("control_point") + "'").uniqueResult(0);
|
||||
jsonPoint2.put("lock_type", StatusEnum.LOCK_OFF.getCode());
|
||||
point_table.update(jsonPoint2);
|
||||
}
|
||||
structattrTable.update(MapOf.of("lock_type", StatusEnum.LOCK_OFF.getCode()),"struct_code in ('"+StructCodes+"')");
|
||||
|
||||
//减去原货位的待入数
|
||||
JSONArray dis_rows = dis_wql.query("struct_code = '" + whereJson.get("struct_code") + "' AND work_status < '99'").getResultJSONArray(0);
|
||||
JSONArray dis_rows = dis_wql.query("struct_code = '" + iosInvDisInfo.get("struct_code") + "' AND work_status < '99'").getResultJSONArray(0);
|
||||
if (dis_rows.size() <= 0) {
|
||||
throw new BadRequestException("数据参数有误!");
|
||||
}
|
||||
|
||||
JSONObject mst_jo = WQLObject.getWQLObject("ST_IVT_IOStorInv").query("iostorinv_id = '" + dis_rows.getJSONObject(0).getString("iostorinv_id") + "'").uniqueResult(0);
|
||||
JSONObject mst_jo = WQLObject.getWQLObject("ST_IVT_IOStorInv").query("iostorinv_id" +
|
||||
" = '" + dis_rows.getJSONObject(0).getString("iostorinv_id") + "'").uniqueResult(0);
|
||||
for (int i = 0; i < dis_rows.size(); i++) {
|
||||
JSONObject i_form = new JSONObject();
|
||||
JSONObject dis_row = dis_rows.getJSONObject(i);
|
||||
@@ -562,12 +548,12 @@ public class ProductInServiceImpl implements ProductInService {
|
||||
map.put("struct_code", "");
|
||||
map.put("struct_name", "");
|
||||
map.put("work_status", "00");
|
||||
WQLObject.getWQLObject("ST_IVT_IOStorInvDis").update(map, "iostorinvdtl_id = '" + whereJson.getString("iostorinvdtl_id") + "'");
|
||||
WQLObject.getWQLObject("ST_IVT_IOStorInvDis").update(map, "iostorinvdtl_id = '" + iosInvDisInfo.getString("iostorinvdtl_id") + "'");
|
||||
|
||||
//修改明细状态
|
||||
HashMap<String, String> dtl_map = new HashMap<>();
|
||||
dtl_map.put("bill_status", "10");
|
||||
WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").update(dtl_map, "iostorinvdtl_id = '" + whereJson.get("iostorinvdtl_id") + "'");
|
||||
WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").update(dtl_map, "iostorinvdtl_id = '" + iosInvDisInfo.get("iostorinvdtl_id") + "'");
|
||||
|
||||
//更新主表状态
|
||||
JSONArray dtl_rows = WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").query("iostorinv_id = '" + mst_jo.get("iostorinv_id") + "' AND bill_status IN ('20','30')").getResultJSONArray(0);
|
||||
@@ -579,6 +565,17 @@ public class ProductInServiceImpl implements ProductInService {
|
||||
WQLObject.getWQLObject("ST_IVT_IOStorInv").update(mst_jo);
|
||||
}
|
||||
|
||||
private String getReleaseStructByVehicleLimit(WQLObject structattrTable, WQLObject vehicleTable, JSONObject iosInvDisInfo) {
|
||||
String StructCode = iosInvDisInfo.getString("struct_code");
|
||||
if (vehicleTable.query("storagevehicle_code = '" + iosInvDisInfo.getString("storagevehicle_code") + "'").uniqueResult(0).getString("occupystruct_qty").equals(StatusEnum.OVERSTRUCT_STANDARD.getCode())){
|
||||
String controlStruct = structattrTable.query("struct_code = '" + StructCode + "'").uniqueResult(0).getString("control_point");
|
||||
if (!StringUtils.isEmpty(controlStruct)){
|
||||
StructCode = StructCode +"','"+controlStruct;
|
||||
}
|
||||
}
|
||||
return StructCode;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void divPoint(JSONObject whereJson) {
|
||||
@@ -752,20 +749,20 @@ public class ProductInServiceImpl implements ProductInService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void confirmvehicle(JSONObject whereJson) {
|
||||
public void confirmvehicle(JSONObject form) {
|
||||
WQLObject vehicleTab = WQLObject.getWQLObject("md_pb_storagevehicleinfo");
|
||||
WQLObject vehicleMaterialTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
||||
WQLObject disTab = WQLObject.getWQLObject("st_ivt_iostorinvdis");
|
||||
String storagevehicle_code = whereJson.getString("storagevehicle_code");
|
||||
// 校验载具是否存在
|
||||
JSONObject jsonVehicle = vehicleTab.query("storagevehicle_code = '" + storagevehicle_code + "' and is_delete = '0' and is_used = '1'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonVehicle)) throw new BadRequestException("载具不存在");
|
||||
JSONArray vehicleMaterial = vehicleMaterialTab.query("storagevehicle_code = '" + storagevehicle_code + "' and material_id IS not NULL ").getResultJSONArray(0);
|
||||
if (vehicleMaterial.size()>0){
|
||||
throw new BadRequestException("载具已被占用");
|
||||
|
||||
JSONObject jsonVehicle;
|
||||
if (!StringUtils.isEmpty(form.getString("storagevehicle_code"))){
|
||||
jsonVehicle = vehicleTab.query("storagevehicle_code = '" + form.getString("storagevehicle_code") + "' and is_delete = '0' and is_used = '1'").uniqueResult(0);
|
||||
checkVehicle(form, jsonVehicle); // 校验载具是否存在
|
||||
}else {
|
||||
jsonVehicle = storagevehicleinfoService.create(MapOf.of("overstruct_type", form.getString("overstruct_type"), "storagevehicle_code", UUID.randomUUID().toString(), "storagevehicle_type", "01","num",1)).getJSONObject(0);
|
||||
}
|
||||
|
||||
// 更新分配明细载具号
|
||||
JSONObject jsonDis = disTab.query("iostorinvdis_id = '" + whereJson.getString("iostorinvdis_id") + "'").uniqueResult(0);
|
||||
JSONObject jsonDis = disTab.query("iostorinvdis_id = '" + form.getString("iostorinvdis_id") + "'").uniqueResult(0);
|
||||
// 校验此明细是否已经分配
|
||||
if (ObjectUtil.isNotEmpty(jsonDis.getString("struct_id"))) {
|
||||
throw new BadRequestException("此明细已分配不可组盘!");
|
||||
@@ -775,6 +772,27 @@ public class ProductInServiceImpl implements ProductInService {
|
||||
disTab.update(jsonDis);
|
||||
}
|
||||
|
||||
private void checkVehicle(JSONObject form, JSONObject jsonVehicle) {
|
||||
WQLObject vehicleMaterialTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
||||
if (ObjectUtil.isEmpty(jsonVehicle)) {
|
||||
throw new BadRequestException("载具不存在");
|
||||
}
|
||||
JSONArray vehicleMaterial = vehicleMaterialTab.query("storagevehicle_code = '" + form.getString("storagevehicle_code") + "' and material_id IS not NULL ").getResultJSONArray(0);
|
||||
if (vehicleMaterial.size()>0){
|
||||
throw new BadRequestException("载具已被占用");
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
ArrayList<Object> list = new ArrayList<>();
|
||||
list.add("a");
|
||||
list.add("b");
|
||||
list.add("c");
|
||||
for (Object o : list) {
|
||||
list.remove("a");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getDisTask(JSONObject whereJson) {
|
||||
//查询该明细下的所有入库分配明细
|
||||
|
||||
@@ -125,7 +125,8 @@
|
||||
mater.material_code,
|
||||
mater.material_name,
|
||||
mater.material_spec,
|
||||
point.point_code
|
||||
point.point_code,
|
||||
'' as overstruct_type
|
||||
FROM
|
||||
ST_IVT_IOStorInvDis dis
|
||||
LEFT JOIN sch_base_point point ON point.point_id = dis.point_id
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
ivt.*
|
||||
FROM
|
||||
st_ivt_structivt ivt
|
||||
LEFT JOIN sch_base_point point ON point.point_id = ivt.struct_id
|
||||
LEFT JOIN st_ivt_structattr point ON point.struct_id = ivt.struct_id
|
||||
WHERE
|
||||
1=1
|
||||
|
||||
@@ -109,4 +109,4 @@
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<el-form-item v-if="false" label="工序标识" prop="workprocedure_id">
|
||||
<el-input v-model="form.workprocedure_id" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="生产区域" prop="product_area">
|
||||
<el-form-item label="生产车间" prop="product_area">
|
||||
<el-select
|
||||
v-model="form.product_area"
|
||||
placeholder=""
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
label-width="90px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="query.product_area"
|
||||
filterable
|
||||
@@ -44,9 +44,10 @@
|
||||
:before-close="crud.cancelCU"
|
||||
:visible.sync="crud.status.cu > 0"
|
||||
:title="crud.status.title"
|
||||
width="710px">
|
||||
width="710px"
|
||||
>
|
||||
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="120px">
|
||||
<el-form-item label="生产区域" prop="product_area">
|
||||
<el-form-item label="生产车间" prop="product_area">
|
||||
<el-select
|
||||
v-model="form.product_area"
|
||||
placeholder=""
|
||||
@@ -61,7 +62,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="缓存线位置编码" prop="position_code">
|
||||
<el-input v-model="form.position_code" style="width: 200px;" :disabled="crud.status.edit == 1"/>
|
||||
<el-input v-model="form.position_code" style="width: 200px;" :disabled="crud.status.edit == 1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="缓存线位置名字" prop="position_name">
|
||||
<el-input v-model="form.position_name" style="width: 200px;" />
|
||||
@@ -152,16 +153,16 @@
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="position_code" label="位置编码" width="120"/>
|
||||
<el-table-column prop="position_code" label="位置编码" width="120" />
|
||||
<el-table-column prop="cacheline_code" label="缓存线编码" />
|
||||
<el-table-column prop="position_name" label="名字" width="120"/>
|
||||
<el-table-column prop="position_name" label="名字" width="120" />
|
||||
<el-table-column prop="cache_line_no" label="缓存线编号" />
|
||||
<el-table-column prop="layer_num" label="层数" />
|
||||
<el-table-column prop="positionorder_no" label="顺序号" />
|
||||
<el-table-column prop="priority_layer_no" label="优先层顺序" />
|
||||
<el-table-column prop="order_no" label="料箱展示顺序号" width="120"/>
|
||||
<el-table-column prop="order_no" label="料箱展示顺序号" width="120" />
|
||||
<el-table-column prop="vehicle_code" label="载具编码" />
|
||||
<el-table-column prop="product_area" label="生产区域" />
|
||||
<el-table-column prop="product_area" label="生产车间" />
|
||||
<el-table-column prop="is_empty" label="是否空位">
|
||||
<template slot-scope="scop">
|
||||
{{ scop.row.is_empty == 1 ? "是" : "否" }}
|
||||
@@ -259,7 +260,7 @@ export default {
|
||||
{ required: true, message: '料箱展示顺序号不能为空', trigger: 'blur' }
|
||||
],
|
||||
product_area: [
|
||||
{ required: true, message: '生产区域不能为空', trigger: 'blur' }
|
||||
{ required: true, message: '生产车间不能为空', trigger: 'blur' }
|
||||
],
|
||||
is_empty: [
|
||||
{ required: true, message: '是否空位不能为空', trigger: 'blur' }
|
||||
@@ -273,7 +274,7 @@ export default {
|
||||
is_delete: [
|
||||
{ required: true, message: '是否删除不能为空', trigger: 'blur' }
|
||||
]
|
||||
} }
|
||||
}}
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<el-form-item label="是否打印" prop="is_print">
|
||||
<el-input v-model="form.is_print" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="生产区域" prop="product_area">
|
||||
<el-form-item label="生产车间" prop="product_area">
|
||||
<el-input v-model="form.product_area" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否可用" prop="is_active">
|
||||
@@ -49,7 +49,7 @@
|
||||
<el-table-column prop="print_num" label="打印次数" />
|
||||
<el-table-column prop="is_print" label="是否打印" />
|
||||
<el-table-column prop="print_time" label="打印时间" />
|
||||
<el-table-column prop="product_area" label="生产区域" />
|
||||
<el-table-column prop="product_area" label="生产车间" />
|
||||
<el-table-column prop="is_active" label="是否可用" />
|
||||
<el-table-column prop="is_delete" label="是否删除" />
|
||||
<el-table-column prop="create_name" label="创建人" />
|
||||
@@ -105,7 +105,7 @@ export default {
|
||||
{ required: true, message: '是否打印不能为空', trigger: 'blur' }
|
||||
],
|
||||
product_area: [
|
||||
{ required: true, message: '生产区域不能为空', trigger: 'blur' }
|
||||
{ required: true, message: '生产车间不能为空', trigger: 'blur' }
|
||||
],
|
||||
is_active: [
|
||||
{ required: true, message: '是否可用不能为空', trigger: 'blur' }
|
||||
|
||||
@@ -110,8 +110,8 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="产品系列">
|
||||
<treeselect
|
||||
disabled
|
||||
v-model="form.product_series"
|
||||
disabled
|
||||
:options="classes3"
|
||||
:auto-load-root-options="false"
|
||||
:load-options="loadChildNodes"
|
||||
@@ -164,8 +164,8 @@
|
||||
<el-table-column prop="device_code" label="设备编码" align="center" />
|
||||
<el-table-column prop="workorder_code" label="工单编号" />
|
||||
<el-table-column prop="shift_type_scode" label="班次类型" />
|
||||
<el-table-column prop="product_area" label="生产区域" />
|
||||
<el-table-column prop="device_name" label="设备名称" align="center" min-width="200" show-overflow-tooltip/>
|
||||
<el-table-column prop="product_area" label="生产车间" />
|
||||
<el-table-column prop="device_name" label="设备名称" align="center" min-width="200" show-overflow-tooltip />
|
||||
<el-table-column prop="dq_init_qty" label="电气期初数量" />
|
||||
<el-table-column prop="person_init_qty" label="人员期初数量" />
|
||||
<el-table-column prop="dq_report_qty" label="电气报工数量" />
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
label-width="90px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="query.product_area"
|
||||
clearable
|
||||
@@ -197,7 +197,7 @@
|
||||
width="1200px"
|
||||
>
|
||||
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="160px">
|
||||
<el-form-item label="生产区域" prop="product_area">
|
||||
<el-form-item label="生产车间" prop="product_area">
|
||||
<el-select
|
||||
v-model="form.product_area"
|
||||
placeholder=""
|
||||
@@ -360,8 +360,8 @@
|
||||
{{ dict.label.PDM_BI_SHIFTTYPE[scope.row.shift_type_scode] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="workprocedure_code" label="工序编码" />-->
|
||||
<el-table-column prop="product_area" label="生产区域" />
|
||||
<!-- <el-table-column prop="workprocedure_code" label="工序编码" />-->
|
||||
<el-table-column prop="product_area" label="生产车间" />
|
||||
<el-table-column prop="plan_qty" label="计划数量" />
|
||||
<el-table-column prop="real_qty" label="实际数量" />
|
||||
<el-table-column prop="person_name" label="生产人员" />
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
label-width="90px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="query.product_area"
|
||||
clearable
|
||||
@@ -80,9 +80,10 @@
|
||||
:before-close="crud.cancelCU"
|
||||
:visible.sync="crud.status.cu > 0"
|
||||
:title="crud.status.title"
|
||||
width="1200px">
|
||||
width="1200px"
|
||||
>
|
||||
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="160px">
|
||||
<el-form-item label="生产区域" prop="product_area">
|
||||
<el-form-item label="生产车间" prop="product_area">
|
||||
<el-select
|
||||
v-model="form.product_area"
|
||||
placeholder=""
|
||||
@@ -162,27 +163,27 @@
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="device_code" label="设备编码" width="100px" show-overflow-tooltip/>
|
||||
<el-table-column prop="device_name" label="设备名称" :min-width="flexWidth('device_name',crud.data,'设备名称')"/>
|
||||
<el-table-column prop="product_area" label="生产区域" />
|
||||
<el-table-column prop="device_code" label="设备编码" width="100px" show-overflow-tooltip />
|
||||
<el-table-column prop="device_name" label="设备名称" :min-width="flexWidth('device_name',crud.data,'设备名称')" />
|
||||
<el-table-column prop="product_area" label="生产车间" />
|
||||
<el-table-column prop="device_code2" label="设备编码2" />
|
||||
<el-table-column prop="inupperlimit_qty" label="设备来料仓上限数" :min-width="flexWidth('inupperlimit_qty',crud.data,'设备来料仓上限数')"/>
|
||||
<el-table-column prop="inlowerlimit_qty" label="设备来料仓下限数" :min-width="flexWidth('inlowerlimit_qty',crud.data,'设备来料仓下限数')"/>
|
||||
<el-table-column prop="outupperlimit_qty" label="设备产品仓上限数" :min-width="flexWidth('outupperlimit_qty',crud.data,'设备产品仓上限数')"/>
|
||||
<el-table-column prop="outlowerlimit_qty" label="设备产品仓下限数" :min-width="flexWidth('outlowerlimit_qty',crud.data,'设备产品仓下限数')"/>
|
||||
<el-table-column prop="deviceinitinstor_qty" label="设备初始来料仓数" :min-width="flexWidth('deviceinitinstor_qty',crud.data,'设备初始来料仓数')"/>
|
||||
<el-table-column prop="deviceinstor_qty" label="设备实时来料仓数" :min-width="flexWidth('deviceinstor_qty',crud.data,'设备实时来料仓数')"/>
|
||||
<el-table-column prop="deviceoutstor_qty" label="设备实时产品仓数" :min-width="flexWidth('deviceoutstor_qty',crud.data,'设备实时产品仓数')"/>
|
||||
<el-table-column prop="is_artificial" label="是否人工" >
|
||||
<el-table-column prop="inupperlimit_qty" label="设备来料仓上限数" :min-width="flexWidth('inupperlimit_qty',crud.data,'设备来料仓上限数')" />
|
||||
<el-table-column prop="inlowerlimit_qty" label="设备来料仓下限数" :min-width="flexWidth('inlowerlimit_qty',crud.data,'设备来料仓下限数')" />
|
||||
<el-table-column prop="outupperlimit_qty" label="设备产品仓上限数" :min-width="flexWidth('outupperlimit_qty',crud.data,'设备产品仓上限数')" />
|
||||
<el-table-column prop="outlowerlimit_qty" label="设备产品仓下限数" :min-width="flexWidth('outlowerlimit_qty',crud.data,'设备产品仓下限数')" />
|
||||
<el-table-column prop="deviceinitinstor_qty" label="设备初始来料仓数" :min-width="flexWidth('deviceinitinstor_qty',crud.data,'设备初始来料仓数')" />
|
||||
<el-table-column prop="deviceinstor_qty" label="设备实时来料仓数" :min-width="flexWidth('deviceinstor_qty',crud.data,'设备实时来料仓数')" />
|
||||
<el-table-column prop="deviceoutstor_qty" label="设备实时产品仓数" :min-width="flexWidth('deviceoutstor_qty',crud.data,'设备实时产品仓数')" />
|
||||
<el-table-column prop="is_artificial" label="是否人工">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.is_artificial=='1'?'是':'否'}}
|
||||
{{ scope.row.is_artificial=='1'?'是':'否' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="备注" width="120px" show-overflow-tooltip/>
|
||||
<el-table-column prop="remark" label="备注" width="120px" show-overflow-tooltip />
|
||||
<el-table-column prop="create_name" label="创建人" />
|
||||
<el-table-column prop="create_time" label="创建时间" width="120px" show-overflow-tooltip/>
|
||||
<el-table-column prop="create_time" label="创建时间" width="120px" show-overflow-tooltip />
|
||||
<el-table-column prop="update_name" label="修改人" />
|
||||
<el-table-column prop="update_time" label="修改时间" width="120px" show-overflow-tooltip/>
|
||||
<el-table-column prop="update_time" label="修改时间" width="120px" show-overflow-tooltip />
|
||||
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
@@ -276,7 +277,7 @@ export default {
|
||||
{ required: true, message: '设备名称不能为空', trigger: 'blur' }
|
||||
],
|
||||
product_area: [
|
||||
{ required: true, message: '生产区域不能为空', trigger: 'blur' }
|
||||
{ required: true, message: '生产车间不能为空', trigger: 'blur' }
|
||||
],
|
||||
inupperlimit_qty: [
|
||||
{ required: true, message: '设备来料仓上限数不能为空', trigger: 'blur' }
|
||||
@@ -321,7 +322,6 @@ export default {
|
||||
return is_used === '1'
|
||||
},
|
||||
changeEnabled(data, val) {
|
||||
|
||||
this.$confirm('此操作将 "' + this.dict.label.is_used[val] + '" ' + data.device_code + ', 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
<el-table-column prop="point_code" label="点位编码" />
|
||||
<el-table-column prop="point_name" label="点位名称" />
|
||||
<el-table-column prop="region_name" label="区域名称" />
|
||||
<el-table-column prop="product_area" label="生产区域" />
|
||||
<el-table-column prop="product_area" label="生产车间" />
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
@@ -116,7 +116,6 @@ export default {
|
||||
},
|
||||
sectProp: {
|
||||
handler(newValue, oldValue) {
|
||||
|
||||
this.sect = newValue
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
label-width="90px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="query.product_area"
|
||||
clearable
|
||||
@@ -219,7 +219,7 @@
|
||||
width="540px"
|
||||
>
|
||||
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="110px">
|
||||
<el-form-item label="生产区域" prop="product_area">
|
||||
<el-form-item label="生产车间" prop="product_area">
|
||||
<el-select
|
||||
v-model="form.product_area"
|
||||
placeholder=""
|
||||
@@ -632,7 +632,6 @@ export default {
|
||||
})
|
||||
},
|
||||
toView(row) {
|
||||
|
||||
if (row) {
|
||||
this.$refs.viewDialog.setParentData(row)
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
label-width="90px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="query.product_area"
|
||||
clearable
|
||||
@@ -50,7 +50,7 @@
|
||||
width="550px"
|
||||
>
|
||||
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="100px">
|
||||
<el-form-item label="生产区域" prop="product_area">
|
||||
<el-form-item label="生产车间" prop="product_area">
|
||||
<el-select
|
||||
v-model="form.product_area"
|
||||
placeholder=""
|
||||
@@ -110,10 +110,10 @@
|
||||
>
|
||||
<el-table-column prop="region_code" label="区域编码" :min-width="flexWidth('region_code',crud.data,'区域编码')" />
|
||||
<el-table-column prop="region_name" label="区域名称" :min-width="flexWidth('region_name',crud.data,'区域名称')" />
|
||||
<el-table-column prop="product_area" label="生产区域" :min-width="flexWidth('product_area',crud.data,'生产区域')" />
|
||||
<el-table-column prop="product_area" label="生产车间" :min-width="flexWidth('product_area',crud.data,'生产车间')" />
|
||||
<el-table-column prop="merge" label="是否合并任务" :min-width="flexWidth('merge',crud.data,'是否合并任务')">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.merge ? '是' : '否'}}
|
||||
{{ scope.row.merge ? '是' : '否' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="point_type_explain" label="点位类型说明" :min-width="flexWidth('point_type_explain',crud.data,'点位类型说明')" />
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
label-width="80px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="query.product_area"
|
||||
clearable
|
||||
@@ -56,15 +56,15 @@
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="任务类型">-->
|
||||
<!-- <treeselect-->
|
||||
<!-- v-model="query.task_type"-->
|
||||
<!-- :load-options="loadChildNodes"-->
|
||||
<!-- :options="classes1"-->
|
||||
<!-- style="width: 180px"-->
|
||||
<!-- placeholder="请选择"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="任务类型">-->
|
||||
<!-- <treeselect-->
|
||||
<!-- v-model="query.task_type"-->
|
||||
<!-- :load-options="loadChildNodes"-->
|
||||
<!-- :options="classes1"-->
|
||||
<!-- style="width: 180px"-->
|
||||
<!-- placeholder="请选择"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="任务类型">
|
||||
<el-select
|
||||
v-model="query.task_type"
|
||||
@@ -158,7 +158,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column prop="task_name" label="任务类型" min-width="120" show-overflow-tooltip />
|
||||
<el-table-column v-if="false" prop="task_status" label="任务状态" />
|
||||
<el-table-column prop="product_area" label="生产区域" />
|
||||
<el-table-column prop="product_area" label="生产车间" />
|
||||
<el-table-column prop="task_status_name" label="任务状态" width="120px" :formatter="formatTaskStatusName" />
|
||||
<el-table-column prop="vehicle_type" label="载具类型" min-width="100" show-overflow-tooltip>
|
||||
<template slot-scope="scope">
|
||||
@@ -171,8 +171,8 @@
|
||||
<el-table-column prop="point2_region_name" label="终点区域" min-width="120" show-overflow-tooltip />
|
||||
<el-table-column prop="point_code3" label="返回点" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column prop="point3_region_name" label="返回点区域" min-width="120" show-overflow-tooltip />
|
||||
<!-- <el-table-column prop="point_code4" label="点位4" min-width="100" show-overflow-tooltip />-->
|
||||
<!-- <el-table-column prop="point4_region_name" label="点位4区域" min-width="120" show-overflow-tooltip />-->
|
||||
<!-- <el-table-column prop="point_code4" label="点位4" min-width="100" show-overflow-tooltip />-->
|
||||
<!-- <el-table-column prop="point4_region_name" label="点位4区域" min-width="120" show-overflow-tooltip />-->
|
||||
<el-table-column prop="vehicle_code" label="载具编码1" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column prop="vehicle_code2" label="载具编码2" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column prop="remark" label="提示" width="120" show-overflow-tooltip />
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<el-input v-model="form.bill_code" disabled placeholder="系统生成" clearable style="width: 210px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="仓库" prop="product_code">
|
||||
<label slot="label">生产区域:</label>
|
||||
<label slot="label">生产车间:</label>
|
||||
<el-select
|
||||
v-model="form.product_code"
|
||||
clearable
|
||||
@@ -43,17 +43,16 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="业务类型" prop="bill_type">
|
||||
<el-form-item label="业务类型">
|
||||
<el-select
|
||||
v-model="form.bill_code"
|
||||
v-model="form.bill_type"
|
||||
clearable
|
||||
placeholder="业务类型"
|
||||
style="width: 210px"
|
||||
size="mini"
|
||||
placeholder="业务类型3"
|
||||
class="filter-item"
|
||||
:disabled="crud.status.view > 0"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.bill_type"
|
||||
v-for="item in dict.ST_INV_IN_TYPE"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
@@ -201,7 +200,7 @@ export default {
|
||||
name: 'AddDialog',
|
||||
components: { MaterDtl },
|
||||
mixins: [crud(), form(defaultForm)],
|
||||
dicts: ['IO_BILL_STATUS', 'ST_QUALITY_SCODE', 'bill_type', 'product_area'],
|
||||
dicts: ['IO_BILL_STATUS', 'ST_INV_IN_TYPE', 'ST_QUALITY_SCODE', 'bill_type', 'product_area'],
|
||||
props: {
|
||||
dialogShow: {
|
||||
type: Boolean,
|
||||
@@ -222,7 +221,7 @@ export default {
|
||||
billtypelist: [],
|
||||
rules: {
|
||||
product_code: [
|
||||
{ required: true, message: '生产区域不能为空', trigger: 'blur' }
|
||||
{ required: true, message: '生产车间不能为空', trigger: 'blur' }
|
||||
],
|
||||
bill_type: [
|
||||
{ required: true, message: '业务类型不能为空', trigger: 'blur' }
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<span class="el-dialog__title2">入库分配</span>
|
||||
<span class="crud-opts-right2">
|
||||
<!--左侧插槽-->
|
||||
<slot name="left"/>
|
||||
<slot name="left" />
|
||||
<el-button slot="left" type="info" @click="dialogVisible = false">关闭</el-button>
|
||||
</span>
|
||||
</div>
|
||||
@@ -99,7 +99,7 @@
|
||||
</div>
|
||||
<span class="crud-opts-right2">
|
||||
<!--左侧插槽-->
|
||||
<slot name="left"/>
|
||||
<slot name="left" />
|
||||
<el-button
|
||||
slot="left"
|
||||
class="filter-item"
|
||||
@@ -171,12 +171,30 @@
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column show-overflow-tooltip prop="overstruct_type" label="载具超限" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-select
|
||||
v-model="form.tableMater[scope.$index].overstruct_type"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
class="filter-item"
|
||||
style="width: 100px;"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.MD_OVERSTRUCT_TYPE"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column show-overflow-tooltip prop="point_code" label="入库点" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="struct_code" label="货位" align="center" />
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
<StructDiv ref="child" :stor-id="storId" :dialog-show.sync="structShow" :sect-prop="sectProp" @tableChanged="tableChanged"/>
|
||||
<StructDiv ref="child" :stor-id="storId" :dialog-show.sync="structShow" :sect-prop="sectProp" @tableChanged="tableChanged" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
@@ -191,7 +209,7 @@ export default {
|
||||
name: 'DivDialog',
|
||||
components: { StructDiv },
|
||||
mixins: [crud()],
|
||||
dicts: ['IO_BILL_STATUS'],
|
||||
dicts: ['IO_BILL_STATUS', 'MD_OVERSTRUCT_TYPE'],
|
||||
props: {
|
||||
dialogShow: {
|
||||
type: Boolean,
|
||||
@@ -356,8 +374,8 @@ export default {
|
||||
this.crud.notify('请先选择一条分配明细!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
return
|
||||
}
|
||||
if (this.dis_row.storagevehicle_code === '') {
|
||||
this.crud.notify('载具号不能为空', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
if (this.dis_row.overstruct_type === '') {
|
||||
this.crud.notify('载具超限不能为空', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
return
|
||||
}
|
||||
crudProductIn.confirmvehicle(this.dis_row).then(res => {
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<label slot="label">单 据 号:</label>
|
||||
<el-input v-model="form.bill_code" disabled placeholder="系统生成" clearable style="width: 210px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="form.product_code"
|
||||
clearable
|
||||
@@ -241,7 +241,6 @@ export default {
|
||||
queryTableDdis() {
|
||||
if (this.currentdtl !== null) {
|
||||
crudProductIn.getDisTask({ 'iostorinvdtl_id': this.currentdtl.iostorinvdtl_id }).then(res => {
|
||||
|
||||
this.tabledis = res
|
||||
}).catch(() => {
|
||||
this.tabledis = []
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="query.product_code"
|
||||
clearable
|
||||
@@ -135,8 +135,8 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column show-overflow-tooltip :formatter="stateFormat" prop="bill_status" label="单据状态" />
|
||||
<el-table-column prop="product_name" label="生产区域" width="130" show-overflow-tooltip />
|
||||
<el-table-column show-overflow-tooltip prop="bill_type" min-width="120" label="业务类型" :formatter="bill_typeFormat"/>
|
||||
<el-table-column prop="product_name" label="生产车间" width="130" show-overflow-tooltip />
|
||||
<el-table-column show-overflow-tooltip prop="bill_type" min-width="120" label="业务类型" :formatter="bill_typeFormat" />
|
||||
<el-table-column show-overflow-tooltip min-width="120" prop="biz_date" label="业务日期" />
|
||||
<el-table-column label="明细数" align="center" prop="detail_count" />
|
||||
<el-table-column label="总重量" align="center" prop="total_qty">
|
||||
|
||||
@@ -25,12 +25,12 @@
|
||||
<label slot="label">单 据 号:</label>
|
||||
<el-input v-model="form.bill_code" disabled placeholder="系统生成" clearable style="width: 210px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="生产区域" prop="product_code">
|
||||
<label slot="label">生产区域:</label>
|
||||
<el-form-item label="生产车间" prop="product_code">
|
||||
<label slot="label">生产车间:</label>
|
||||
<el-select
|
||||
v-model="form.product_code"
|
||||
clearable
|
||||
placeholder="生产区域"
|
||||
placeholder="生产车间"
|
||||
class="filter-item"
|
||||
style="width: 210px"
|
||||
:disabled="crud.status.view > 0"
|
||||
@@ -118,7 +118,7 @@
|
||||
>
|
||||
添加物料
|
||||
</el-button>
|
||||
<!-- <el-button
|
||||
<!-- <el-button
|
||||
slot="left"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
@@ -141,7 +141,7 @@
|
||||
>
|
||||
<el-table-column type="index" label="序号" width="50" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" width="190" align="center">
|
||||
<!-- <template scope="scope">
|
||||
<!-- <template scope="scope">
|
||||
<el-input v-show="!scope.row.edit" v-model="scope.row.material_code" disabled class="input-with-select">
|
||||
<el-button slot="append" icon="el-icon-search" @click="queryMater(scope.$index, scope.row)" />
|
||||
</el-input>
|
||||
@@ -151,7 +151,7 @@
|
||||
<el-table-column prop="material_name" label="物料名称" align="center" min-width="150px" show-overflow-tooltip />
|
||||
<el-table-column prop="material_spec" label="物料规格" align="center" min-width="150px" show-overflow-tooltip />
|
||||
<el-table-column show-overflow-tooltip prop="pcsn" label="订单号" width="150px" align="center">
|
||||
<!-- <template scope="scope">
|
||||
<!-- <template scope="scope">
|
||||
<el-input v-show="!scope.row.edit" v-model="scope.row.pcsn" size="mini" />
|
||||
<span v-show="scope.row.edit">{{ scope.row.pcsn }}</span>
|
||||
</template>-->
|
||||
@@ -159,11 +159,11 @@
|
||||
<el-table-column prop="plan_qty" label="出库重量" width="150" align="center">
|
||||
<template scope="scope">
|
||||
<el-input-number v-model="scope.row.plan_qty" :precision="3" :controls="false" :min="1" style="width: 120px" />
|
||||
<!-- <span v-show="scope.row.edit">{{ scope.row.plan_qty }}</span>-->
|
||||
<!-- <span v-show="scope.row.edit">{{ scope.row.plan_qty }}</span>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="qty_unit_name" label="单位" align="center" />
|
||||
<!-- <el-table-column show-overflow-tooltip prop="remark" label="明细备注" align="center">
|
||||
<!-- <el-table-column show-overflow-tooltip prop="remark" label="明细备注" align="center">
|
||||
<template scope="scope">
|
||||
<el-input v-model="scope.row.remark" size="mini" />
|
||||
<span>{{ scope.row.remark }}</span>
|
||||
@@ -229,7 +229,7 @@ export default {
|
||||
storId: null,
|
||||
rules: {
|
||||
product_code: [
|
||||
{ required: true, message: '生产区域不能为空', trigger: 'blur' }
|
||||
{ required: true, message: '生产车间不能为空', trigger: 'blur' }
|
||||
],
|
||||
bill_type: [
|
||||
{ required: true, message: '业务类型不能为空', trigger: 'blur' }
|
||||
@@ -266,7 +266,7 @@ export default {
|
||||
productOut.getOutBillDtl({ 'iostorinv_id': this.form.iostorinv_id }).then(res => {
|
||||
this.form.tableData = res
|
||||
// 将明细变成不可编辑
|
||||
/* for (let i = 0; i < this.form.tableData.length; i++) {
|
||||
/* for (let i = 0; i < this.form.tableData.length; i++) {
|
||||
const row = this.form.tableData[i]
|
||||
row.edit = false
|
||||
this.form.tableData.splice(i, 1, row)
|
||||
@@ -309,7 +309,7 @@ export default {
|
||||
return
|
||||
}
|
||||
if (this.form.product_code === '') {
|
||||
this.crud.notify('请选择生产区域!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
this.crud.notify('请选择生产车间!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
return
|
||||
}
|
||||
this.storId = this.form.product_code
|
||||
@@ -317,7 +317,6 @@ export default {
|
||||
},
|
||||
tableChanged5(rows) {
|
||||
rows.forEach((item) => {
|
||||
|
||||
if (this.form.tableData.length !== 0) {
|
||||
this.flagnow = false
|
||||
for (let i = 0; i < this.form.tableData.length; i++) {
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<span class="role-span">出库明细</span>
|
||||
<div class="crud-opts-form">
|
||||
<el-form ref="form" :inline="true" :model="form" size="mini">
|
||||
<el-form-item label="生产区域" prop="gender2">
|
||||
<el-form-item label="生产车间" prop="gender2">
|
||||
<el-cascader
|
||||
placeholder="请选择"
|
||||
:options="sects"
|
||||
@@ -81,7 +81,7 @@
|
||||
>
|
||||
自动取消
|
||||
</el-button>
|
||||
<!-- <el-button
|
||||
<!-- <el-button
|
||||
slot="left"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
@@ -150,7 +150,7 @@
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="出库点" prop="point_code">
|
||||
<!-- <el-form-item label="出库点" prop="point_code">
|
||||
<el-select
|
||||
v-model="form2.point_code"
|
||||
clearable
|
||||
@@ -171,7 +171,7 @@
|
||||
<span class="crud-opts-right2">
|
||||
<!--左侧插槽-->
|
||||
<slot name="left" />
|
||||
<!-- <el-button
|
||||
<!-- <el-button
|
||||
slot="left"
|
||||
class="filter-item"
|
||||
:loading="loadingSetPoint"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<label slot="label">单 据 号:</label>
|
||||
<el-input v-model="form.bill_code" disabled placeholder="系统生成" clearable style="width: 210px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="form.product_code"
|
||||
clearable
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="query.product_code"
|
||||
clearable
|
||||
@@ -144,7 +144,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column show-overflow-tooltip :formatter="stateFormat" width="80" prop="bill_status" label="单据状态" />
|
||||
<el-table-column show-overflow-tooltip prop="product_code" label="生产区域" width="80" />
|
||||
<el-table-column show-overflow-tooltip prop="product_code" label="生产车间" width="80" />
|
||||
<el-table-column show-overflow-tooltip prop="bill_type" :formatter="bill_typeFormat" label="业务类型" />
|
||||
<el-table-column show-overflow-tooltip width="100" prop="biz_date" label="业务日期" />
|
||||
<el-table-column show-overflow-tooltip label="明细数" align="center" prop="detail_count" width="60" />
|
||||
@@ -293,7 +293,6 @@ export default {
|
||||
},
|
||||
divOpen() {
|
||||
productOut.getOutBillDtl({ 'iostorinv_id': this.currentRow.iostorinv_id }).then(res => {
|
||||
|
||||
this.openParam = res
|
||||
this.storId = this.currentRow.product_code
|
||||
this.divShow = true
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<el-input v-model="form.bill_code" disabled placeholder="系统生成" clearable style="width: 210px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="仓库" prop="product_code">
|
||||
<label slot="label">生产区域:</label>
|
||||
<label slot="label">生产车间:</label>
|
||||
<el-select
|
||||
v-model="form.product_code"
|
||||
clearable
|
||||
@@ -222,7 +222,7 @@ export default {
|
||||
billtypelist: [],
|
||||
rules: {
|
||||
product_code: [
|
||||
{ required: true, message: '生产区域不能为空', trigger: 'blur' }
|
||||
{ required: true, message: '生产车间不能为空', trigger: 'blur' }
|
||||
],
|
||||
bill_type: [
|
||||
{ required: true, message: '业务类型不能为空', trigger: 'blur' }
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<label slot="label">单 据 号:</label>
|
||||
<el-input v-model="form.bill_code" disabled placeholder="系统生成" clearable style="width: 210px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="form.product_code"
|
||||
clearable
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="query.product_code"
|
||||
clearable
|
||||
@@ -135,8 +135,8 @@
|
||||
</template>fileinput_name
|
||||
</el-table-column>
|
||||
<el-table-column show-overflow-tooltip :formatter="stateFormat" prop="bill_status" label="单据状态" />
|
||||
<el-table-column prop="product_name" label="生产区域" width="130" show-overflow-tooltip />
|
||||
<el-table-column show-overflow-tooltip prop="bill_type" min-width="120" label="业务类型" :formatter="bill_typeFormat"/>
|
||||
<el-table-column prop="product_name" label="生产车间" width="130" show-overflow-tooltip />
|
||||
<el-table-column show-overflow-tooltip prop="bill_type" min-width="120" label="业务类型" :formatter="bill_typeFormat" />
|
||||
<el-table-column show-overflow-tooltip min-width="120" prop="biz_date" label="业务日期" />
|
||||
<el-table-column label="明细数" align="center" prop="detail_count" />
|
||||
<el-table-column label="总重量" align="center" prop="total_qty">
|
||||
@@ -206,7 +206,7 @@ export default {
|
||||
return {
|
||||
height: document.documentElement.clientHeight - 180 + 'px;',
|
||||
permission: {},
|
||||
product_code:'A1',
|
||||
product_code: 'A1',
|
||||
dis_flag: true,
|
||||
confirm_flag: true,
|
||||
disShow: false,
|
||||
|
||||
@@ -25,12 +25,12 @@
|
||||
<label slot="label">单 据 号:</label>
|
||||
<el-input v-model="form.bill_code" disabled placeholder="系统生成" clearable style="width: 210px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="生产区域" prop="product_code">
|
||||
<label slot="label">生产区域:</label>
|
||||
<el-form-item label="生产车间" prop="product_code">
|
||||
<label slot="label">生产车间:</label>
|
||||
<el-select
|
||||
v-model="form.product_code"
|
||||
clearable
|
||||
placeholder="生产区域"
|
||||
placeholder="生产车间"
|
||||
class="filter-item"
|
||||
style="width: 210px"
|
||||
:disabled="crud.status.view > 0"
|
||||
@@ -118,7 +118,7 @@
|
||||
>
|
||||
添加物料
|
||||
</el-button>
|
||||
<!-- <el-button
|
||||
<!-- <el-button
|
||||
slot="left"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
@@ -141,7 +141,7 @@
|
||||
>
|
||||
<el-table-column type="index" label="序号" width="50" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" width="190" align="center">
|
||||
<!-- <template scope="scope">
|
||||
<!-- <template scope="scope">
|
||||
<el-input v-show="!scope.row.edit" v-model="scope.row.material_code" disabled class="input-with-select">
|
||||
<el-button slot="append" icon="el-icon-search" @click="queryMater(scope.$index, scope.row)" />
|
||||
</el-input>
|
||||
@@ -151,7 +151,7 @@
|
||||
<el-table-column prop="material_name" label="物料名称" align="center" min-width="150px" show-overflow-tooltip />
|
||||
<el-table-column prop="material_spec" label="物料规格" align="center" min-width="150px" show-overflow-tooltip />
|
||||
<el-table-column show-overflow-tooltip prop="pcsn" label="订单号" width="150px" align="center">
|
||||
<!-- <template scope="scope">
|
||||
<!-- <template scope="scope">
|
||||
<el-input v-show="!scope.row.edit" v-model="scope.row.pcsn" size="mini" />
|
||||
<span v-show="scope.row.edit">{{ scope.row.pcsn }}</span>
|
||||
</template>-->
|
||||
@@ -159,11 +159,11 @@
|
||||
<el-table-column prop="plan_qty" label="出库重量" width="150" align="center">
|
||||
<template scope="scope">
|
||||
<el-input-number v-model="scope.row.plan_qty" :precision="3" :controls="false" :min="1" style="width: 120px" />
|
||||
<!-- <span v-show="scope.row.edit">{{ scope.row.plan_qty }}</span>-->
|
||||
<!-- <span v-show="scope.row.edit">{{ scope.row.plan_qty }}</span>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="qty_unit_name" label="单位" align="center" />
|
||||
<!-- <el-table-column show-overflow-tooltip prop="remark" label="明细备注" align="center">
|
||||
<!-- <el-table-column show-overflow-tooltip prop="remark" label="明细备注" align="center">
|
||||
<template scope="scope">
|
||||
<el-input v-model="scope.row.remark" size="mini" />
|
||||
<span>{{ scope.row.remark }}</span>
|
||||
@@ -227,7 +227,7 @@ export default {
|
||||
storId: null,
|
||||
rules: {
|
||||
product_code: [
|
||||
{ required: true, message: '生产区域不能为空', trigger: 'blur' }
|
||||
{ required: true, message: '生产车间不能为空', trigger: 'blur' }
|
||||
],
|
||||
bill_type: [
|
||||
{ required: true, message: '业务类型不能为空', trigger: 'blur' }
|
||||
@@ -264,7 +264,7 @@ export default {
|
||||
semiSemiProductOut.getOutBillDtl({ 'iostorinv_id': this.form.iostorinv_id }).then(res => {
|
||||
this.form.tableData = res
|
||||
// 将明细变成不可编辑
|
||||
/* for (let i = 0; i < this.form.tableData.length; i++) {
|
||||
/* for (let i = 0; i < this.form.tableData.length; i++) {
|
||||
const row = this.form.tableData[i]
|
||||
row.edit = false
|
||||
this.form.tableData.splice(i, 1, row)
|
||||
@@ -307,7 +307,7 @@ export default {
|
||||
return
|
||||
}
|
||||
if (this.form.product_code === '') {
|
||||
this.crud.notify('请选择生产区域!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
this.crud.notify('请选择生产车间!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
return
|
||||
}
|
||||
this.storId = this.form.product_code
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<span class="role-span">出库明细</span>
|
||||
<div class="crud-opts-form">
|
||||
<el-form ref="form" :inline="true" :model="form" size="mini">
|
||||
<el-form-item label="生产区域" prop="gender2">
|
||||
<el-form-item label="生产车间" prop="gender2">
|
||||
<el-cascader
|
||||
placeholder="请选择"
|
||||
:options="sects"
|
||||
@@ -81,7 +81,7 @@
|
||||
>
|
||||
自动取消
|
||||
</el-button>
|
||||
<!-- <el-button
|
||||
<!-- <el-button
|
||||
slot="left"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
@@ -150,7 +150,7 @@
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="出库点" prop="point_code">
|
||||
<!-- <el-form-item label="出库点" prop="point_code">
|
||||
<el-select
|
||||
v-model="form2.point_code"
|
||||
clearable
|
||||
@@ -171,7 +171,7 @@
|
||||
<span class="crud-opts-right2">
|
||||
<!--左侧插槽-->
|
||||
<slot name="left" />
|
||||
<!-- <el-button
|
||||
<!-- <el-button
|
||||
slot="left"
|
||||
class="filter-item"
|
||||
:loading="loadingSetPoint"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<label slot="label">单 据 号:</label>
|
||||
<el-input v-model="form.bill_code" disabled placeholder="系统生成" clearable style="width: 210px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="form.product_code"
|
||||
clearable
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="生产区域">
|
||||
<el-form-item label="生产车间">
|
||||
<el-select
|
||||
v-model="query.product_code"
|
||||
clearable
|
||||
@@ -144,7 +144,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column show-overflow-tooltip :formatter="stateFormat" width="80" prop="bill_status" label="单据状态" />
|
||||
<el-table-column show-overflow-tooltip prop="product_code" label="生产区域" width="80" />
|
||||
<el-table-column show-overflow-tooltip prop="product_code" label="生产车间" width="80" />
|
||||
<el-table-column show-overflow-tooltip prop="bill_type" :formatter="bill_typeFormat" label="业务类型" />
|
||||
<el-table-column show-overflow-tooltip width="100" prop="biz_date" label="业务日期" />
|
||||
<el-table-column show-overflow-tooltip label="明细数" align="center" prop="detail_count" width="60" />
|
||||
|
||||
Reference in New Issue
Block a user