opt: 格式
This commit is contained in:
@@ -155,7 +155,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
result.setMessage(message);
|
||||
result.setRequestNo(requestNo);
|
||||
// 消息通知
|
||||
noticeService.createNotice("异常信息:" + message, "acsApply: " + param.getString("request_medthod_code"),
|
||||
noticeService.createNotice(message, "acsApply: " + param.getString(RequestConstant.REQUEST_METHOD_NAME),
|
||||
NoticeTypeEnum.EXCEPTION.getCode());
|
||||
}
|
||||
// acs对接记录
|
||||
@@ -542,8 +542,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
bdWorkorder.setQualified_qty(qualified_qty);
|
||||
bdWorkorder.setUnqualified_qty(unqualified_qty);
|
||||
workorderService.updateById(bdWorkorder);
|
||||
// todo: 统计当前设备的不合格位置的数量作为不合格数,并上报给mes
|
||||
wmsToMesService.reportPressUnusedMaterial(bdWorkorder);
|
||||
return BaseResponse.responseOk(requestNo);
|
||||
}
|
||||
|
||||
@@ -668,7 +666,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
*/
|
||||
@Override
|
||||
public ApplyTaskResponse recordKilnTime(ApplyTaskRequest baseRequest) {
|
||||
log.info("扫码成功申请 - 入窑记录时间的参数: {}", baseRequest);
|
||||
log.info("扫码成功申请 - 出入窑记录时间的参数: {}", baseRequest);
|
||||
if (ObjectUtil.isEmpty(baseRequest.getVehicle_code())) {
|
||||
throw new BadRequestException("载具编码不能为空");
|
||||
}
|
||||
@@ -680,11 +678,17 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
// 入窑记录时间
|
||||
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getGroupInfo(baseRequest.getVehicle_code(),
|
||||
baseRequest.getVehicle_type(), GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||
if (ObjectUtil.isNotEmpty(groupInfo.getInto_kiln_time())) {
|
||||
if (basePoint.getPoint_type().equals(GeneralDefinition.ENTRANCE)
|
||||
&& ObjectUtil.isNotEmpty(groupInfo.getInto_kiln_time())) {
|
||||
// 如果已经记录就跳过
|
||||
return ApplyTaskResponse.responseOk(baseRequest.getRequestNo());
|
||||
}
|
||||
groupInfo.setInto_kiln_time(DateUtil.now());
|
||||
if (basePoint.getPoint_type().equals(GeneralDefinition.EXIT)
|
||||
&& ObjectUtil.isNotEmpty(groupInfo.getOut_kiln_time())) {
|
||||
// 如果已经记录就跳过
|
||||
return ApplyTaskResponse.responseOk(baseRequest.getRequestNo());
|
||||
}
|
||||
recordInOrOutKilnTime(groupInfo, basePoint);
|
||||
if (ObjectUtil.isNotEmpty(basePoint)) {
|
||||
// 记录当前位置
|
||||
groupInfo.setPoint_code(basePoint.getPoint_code()); // 当前位置
|
||||
@@ -696,13 +700,22 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
// 插入生产过程跟踪表
|
||||
PdmBdProductionProcessTracking processTracking = new PdmBdProductionProcessTracking();
|
||||
processTracking.setBuss_move_id(groupInfo.getBuss_move_id());
|
||||
processTracking.setProcess_action("送料到入窑口");
|
||||
processTracking.setProcess_action("送料到出入窑口");
|
||||
processTracking.setProcess_location(baseRequest.getDevice_code());
|
||||
processTracking.setRecord_time(DateUtil.now());
|
||||
processTrackingService.create(processTracking);
|
||||
return ApplyTaskResponse.responseOk(baseRequest.getRequestNo(), "扫码成功申请");
|
||||
}
|
||||
|
||||
private void recordInOrOutKilnTime(SchBaseVehiclematerialgroup groupInfo, SchBasePoint basePoint) {
|
||||
if (GeneralDefinition.ENTRANCE.equals(basePoint.getPoint_type())) {
|
||||
groupInfo.setInto_kiln_time(DateUtil.now());
|
||||
} else {
|
||||
groupInfo.setOut_kiln_time(DateUtil.now());
|
||||
groupInfo.setIs_firing(true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 压机请求要料
|
||||
*
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
AND LOWER(wo.point_code) LIKE LOWER(CONCAT('%', #{query.point_code}, '%'))
|
||||
</if>
|
||||
<if test="query.region_code != null and query.region_code != ''">
|
||||
AND wo.region_code = #{query.region_code}
|
||||
AND wo.region_code LIKE CONCAT('%', #{query.region_code}, '%')
|
||||
</if>
|
||||
<if test="query.begin_time != null and query.begin_time != ''">
|
||||
AND wo.create_time <![CDATA[ >= ]]> #{query.begin_time}
|
||||
|
||||
@@ -40,6 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
@@ -198,7 +199,7 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
||||
}
|
||||
// 设置开工人
|
||||
pdmBdWorkorder.setOperator(SecurityUtils.getCurrentNickName());
|
||||
List<AcsWorkOrderVo> list = new CopyOnWriteArrayList<>();
|
||||
List<AcsWorkOrderVo> list = new ArrayList<>();
|
||||
// 重装数据回ACS,重新根据id找一遍,省的改动以上代码
|
||||
AcsWorkOrderVo acsWorkOrderVo = pdmBdWorkorderMapper.toAcsWorkOrderById(pdmBdWorkorder.getWorkorder_id());
|
||||
list.add(acsWorkOrderVo);
|
||||
|
||||
@@ -88,8 +88,8 @@ public class ExceptionConstant {
|
||||
public static String exceptionBasRequest(String msg) {
|
||||
// 获取堆栈跟踪元素
|
||||
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
|
||||
|
||||
if (stackTraceElements.length > 2) { // Index 0 is the current method, Index 1 is Thread.getStackTrace, Index 2 is the caller
|
||||
// Index 0 is the current method, Index 1 is Thread.getStackTrace, Index 2 is the caller
|
||||
if (stackTraceElements.length > 2) {
|
||||
StackTraceElement callerStackTraceElement = stackTraceElements[2];
|
||||
String className = callerStackTraceElement.getClassName();
|
||||
int lineNumber = callerStackTraceElement.getLineNumber();
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package org.nl.wms.sch.task_manage.task;
|
||||
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.BeanPostProcessor;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -10,33 +12,32 @@ import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author ldjun
|
||||
* @version 2.0
|
||||
* @version 3.0
|
||||
* @date 2023年05月16日 16:42
|
||||
* @desc 采用获取注解来标识任务类型,并通过扫描和反射的方式来获取任务实例
|
||||
* @desc 2.0 采用获取注解来标识任务类型,并通过扫描和反射的方式来获取任务实例
|
||||
* 3.0 采用获取所有bean对象判断是否为AbstractTask
|
||||
*/
|
||||
@Component
|
||||
public class TaskFactory {
|
||||
public class TaskFactory implements BeanPostProcessor {
|
||||
private final Map<String, AbstractTask> taskMap;
|
||||
|
||||
@Autowired
|
||||
public TaskFactory(ApplicationContext applicationContext) {
|
||||
public TaskFactory() {
|
||||
taskMap = new HashMap<>();
|
||||
initializeTasks(applicationContext);
|
||||
}
|
||||
|
||||
private void initializeTasks(ApplicationContext applicationContext) {
|
||||
Map<String, Object> taskBeans = applicationContext.getBeansWithAnnotation(TaskType.class);
|
||||
for (Object taskBean : taskBeans.values()) {
|
||||
TaskType taskTypeAnnotation = taskBean.getClass().getAnnotation(TaskType.class);
|
||||
String taskType = taskTypeAnnotation.value();
|
||||
taskMap.put(taskType.toUpperCase(), (AbstractTask) taskBean);
|
||||
@Override
|
||||
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
|
||||
if (bean instanceof AbstractTask) {
|
||||
taskMap.put(beanName, (AbstractTask) bean);
|
||||
}
|
||||
return bean;
|
||||
}
|
||||
|
||||
public AbstractTask getTask(String taskType) {
|
||||
if (taskType == null) {
|
||||
return null;
|
||||
}
|
||||
return taskMap.get(taskType.toUpperCase());
|
||||
return taskMap.get(taskType);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,10 +33,9 @@
|
||||
// * @Description: 入窑口叫料
|
||||
// * @Date: 2023/6/19
|
||||
// */
|
||||
//@Component
|
||||
//@TaskType("RYKQLTask")
|
||||
//@Component("RYKQLTask")
|
||||
//public class RYKQLTask extends AbstractTask {
|
||||
// private static String TASK_CONFIG_CODE = "RYKQLTask";
|
||||
// private static final String TASK_CONFIG_CODE = "RYKQLTask";
|
||||
// @Autowired
|
||||
// private ISchBasePointService pointService;
|
||||
// @Autowired
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.nl.wms.sch.task_manage.task.tasks.dtk;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
@@ -14,9 +13,7 @@ import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.dtk.mapper.DTKMapper;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
@@ -34,8 +31,7 @@ import java.util.stream.Collectors;
|
||||
* @Description: 拆盘机呼叫空托
|
||||
* @Date: 2023/6/21
|
||||
*/
|
||||
@Component
|
||||
@TaskType("DTKQKTask")
|
||||
@Component("DTKQKTask")
|
||||
public class DTKQKTask extends AbstractTask {
|
||||
private static final String TASK_CONFIG_CODE = "DTKQKTask";
|
||||
@Autowired
|
||||
@@ -102,6 +98,7 @@ public class DTKQKTask extends AbstractTask {
|
||||
}
|
||||
// 设置终点并修改创建成功状态
|
||||
task.setPoint_code1(point.getPoint_code());
|
||||
task.setVehicle_type(GeneralDefinition.STEEL_TRAY);
|
||||
task.setRemark("");
|
||||
task.setVehicle_qty(point.getVehicle_qty());
|
||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||
|
||||
@@ -15,7 +15,6 @@ import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.dtk.mapper.DTKMapper;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
@@ -33,10 +32,9 @@ import java.util.stream.Collectors;
|
||||
* @Description: 叠托送空盘任务:-> 货架
|
||||
* @Date: 2023/6/21
|
||||
*/
|
||||
@Component
|
||||
@TaskType("DTKSKTask")
|
||||
@Component("DTKSKTask")
|
||||
public class DTSKTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "DTKSKTask";
|
||||
private static final String TASK_CONFIG_CODE = "DTKSKTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
|
||||
@@ -21,7 +21,6 @@ import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.*;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.fj.mapper.FJMapper;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
@@ -40,10 +39,9 @@ import java.util.stream.Collectors;
|
||||
* @Description: 分拣满空任务 - 4点
|
||||
* @Date: 2023/6/21
|
||||
*/
|
||||
@Component
|
||||
@TaskType("FJMLTask")
|
||||
@Component("FJMLTask")
|
||||
public class FJMLTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "FJMLTask";
|
||||
private static final String TASK_CONFIG_CODE = "FJMLTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
@@ -169,6 +167,7 @@ public class FJMLTask extends AbstractTask {
|
||||
groupEntity.setVehicle_code(vehicleCode);
|
||||
groupEntity.setVehicle_type(vehicleType);
|
||||
groupEntity.setMaterial_qty(qty);
|
||||
groupEntity.setCustomer(workorderObject.getCustomer());
|
||||
groupEntity.setExt_data(JSONObject.toJSONString(stackParameters));
|
||||
groupEntity.setPoint_code(basePoint.getPoint_code());
|
||||
groupEntity.setPoint_name(basePoint.getPoint_name());
|
||||
|
||||
@@ -20,7 +20,6 @@ import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.fj.mapper.FJMapper;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
@@ -29,7 +28,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -39,10 +37,9 @@ import java.util.stream.Collectors;
|
||||
* @Description: 分拣呼叫空木托盘任务 - 2点
|
||||
* @Date: 2023/6/21
|
||||
*/
|
||||
@Component
|
||||
@TaskType("FJQKTask")
|
||||
@Component("FJQKTask")
|
||||
public class FJQKTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "FJQKTask";
|
||||
private static final String TASK_CONFIG_CODE = "FJQKTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
|
||||
@@ -25,7 +25,6 @@ import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.fj.mapper.FJMapper;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
@@ -43,10 +42,9 @@ import java.util.stream.Collectors;
|
||||
* @Description: 分拣缺料任务,缓存货架获取相同物料
|
||||
* @Date: 2023/6/20
|
||||
*/
|
||||
@Component
|
||||
@TaskType("FJQLTask")
|
||||
@Component("FJQLTask")
|
||||
public class FJQLTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "FJQLTask";
|
||||
private static final String TASK_CONFIG_CODE = "FJQLTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
@@ -154,7 +152,7 @@ public class FJQLTask extends AbstractTask {
|
||||
: null;
|
||||
Assert.notNull(workOrder, "工单不能为空!");
|
||||
// 从所选区域中,选择满料位、无锁、可用的点位
|
||||
List<SchBasePoint> points = fjMapper.findPointForFJQL(startRegionStr, workOrder.getMaterial_id());
|
||||
List<SchBasePoint> points = fjMapper.findPointForFJQL(startRegionStr, workOrder.getMaterial_id(), workOrder.getCustomer());
|
||||
return ObjectUtil.isNotEmpty(points) ? points.get(0) : null;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,8 +19,10 @@ import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.*;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.GroupStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
import org.nl.wms.util.TaskUtils;
|
||||
@@ -37,10 +39,9 @@ import java.util.stream.Collectors;
|
||||
* @Description: rgv - 分拣强制入库任务 - 2点
|
||||
* @Date: 2023/6/21
|
||||
*/
|
||||
@Component
|
||||
@TaskType("FJQZRKTask")
|
||||
@Component("FJQZRKTask")
|
||||
public class FJQZRKTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "FJQZRKTask";
|
||||
private static final String TASK_CONFIG_CODE = "FJQZRKTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
|
||||
@@ -7,7 +7,6 @@ import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.system.service.notice.ISysNoticeService;
|
||||
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||
@@ -16,11 +15,9 @@ import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.fj.mapper.FJMapper;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
@@ -38,10 +35,9 @@ import java.util.stream.Collectors;
|
||||
* @Description: 分拣送空托 -> 叠托位
|
||||
* @Date: 2023/6/20
|
||||
*/
|
||||
@Component
|
||||
@TaskType("FJSKTask")
|
||||
@Component("FJSKTask")
|
||||
public class FJSKTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "FJSKTask";
|
||||
private static final String TASK_CONFIG_CODE = "FJSKTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
|
||||
@@ -21,7 +21,6 @@ import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
import org.nl.wms.util.TaskUtils;
|
||||
@@ -38,11 +37,10 @@ import java.util.stream.Collectors;
|
||||
* @Description: 分拣回收剩料
|
||||
* @Date: 2023/7/20
|
||||
*/
|
||||
@Component
|
||||
@Component("FJSLHSTask")
|
||||
@Deprecated
|
||||
@TaskType("FJSLHSTask")
|
||||
public class FJSLTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "FJSLHSTask";
|
||||
private static final String TASK_CONFIG_CODE = "FJSLHSTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
|
||||
@@ -21,7 +21,6 @@ import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.*;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.fj.mapper.FJMapper;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
@@ -40,10 +39,9 @@ import java.util.stream.Collectors;
|
||||
* @Description: rgv - 分拣强制入库任务 - 2点 改:不需要强制入库,改为人工分拣入库的方法
|
||||
* @Date: 2023/6/21
|
||||
*/
|
||||
@Component
|
||||
@TaskType("RGFJRKTask")
|
||||
@Component("RGFJRKTask")
|
||||
public class RGFJRKTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "RGFJRKTask";
|
||||
private static final String TASK_CONFIG_CODE = "RGFJRKTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
|
||||
@@ -18,7 +18,7 @@ public interface FJMapper {
|
||||
* @param materialId
|
||||
* @return
|
||||
*/
|
||||
List<SchBasePoint> findPointForFJQL(List<String> regionCode, String materialId);
|
||||
List<SchBasePoint> findPointForFJQL(List<String> regionCode, String materialId, String customer);
|
||||
List<SchBasePoint> findPointForFJSK(List<String> regionCode);
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
AND p.point_status = '3'
|
||||
AND vg.material_id = #{materialId}
|
||||
AND TIMESTAMPDIFF(MINUTE, vg.instorage_time, NOW()) >= ma.cooling_time
|
||||
AND vg.customer = #{customer}
|
||||
AND p.region_code IN
|
||||
<foreach collection="regionCode" item="code" separator="," open="(" close=")">
|
||||
#{code}
|
||||
|
||||
@@ -21,12 +21,11 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.constant.ExceptionConstant;
|
||||
import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.constant.PointTypeConstant;
|
||||
import org.nl.wms.sch.task_manage.constant.RegionConstant;
|
||||
import org.nl.wms.sch.task_manage.enums.*;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.hn.mapper.HNMapper;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
@@ -46,10 +45,9 @@ import java.util.stream.Collectors;
|
||||
* @date 2023年05月16日 16:44
|
||||
* @desc 混碾满料任务: 混碾机 -> 困料货架,校验物料,特殊物料直接找压机工单泥料相同的上料位上。
|
||||
*/
|
||||
@Component
|
||||
@TaskType("HNMLTask")
|
||||
@Component("HNMLTask")
|
||||
public class HNMLTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "HNMLTask";
|
||||
private static final String TASK_CONFIG_CODE = "HNMLTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
|
||||
@@ -12,12 +12,11 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.constant.ExceptionConstant;
|
||||
import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
import org.nl.wms.util.TaskUtils;
|
||||
@@ -34,10 +33,9 @@ import java.util.stream.Collectors;
|
||||
* @Description: 混料缺空:呼叫空载具,从困料货架上获取
|
||||
* @Date: 2023/11/1
|
||||
*/
|
||||
@Component
|
||||
@TaskType("HNQKTask")
|
||||
@Component("HNQKTask")
|
||||
public class HNQKTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "HNQKTask";
|
||||
private static final String TASK_CONFIG_CODE = "HNQKTask";
|
||||
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
|
||||
@@ -24,7 +24,6 @@ import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
import org.nl.wms.util.TaskUtils;
|
||||
@@ -42,10 +41,9 @@ import java.util.stream.Collectors;
|
||||
* @Date: 2023/6/20
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@TaskType("CYHCXMLTask")
|
||||
@Component("CYHCXMLTask")
|
||||
public class CYHCXMLTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "CYHCXMLTask";
|
||||
private static final String TASK_CONFIG_CODE = "CYHCXMLTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
@@ -148,9 +146,9 @@ public class CYHCXMLTask extends AbstractTask {
|
||||
/**
|
||||
* 找终点:到钢托盘缓存区中获取一个空位
|
||||
*
|
||||
* @param nextRegionStr
|
||||
* @param extData
|
||||
* @return
|
||||
* @param nextRegionStr 区域
|
||||
* @param extData 数据
|
||||
* @return 点位
|
||||
*/
|
||||
private SchBasePoint findNextPoint(List<String> nextRegionStr, JSONObject extData) {
|
||||
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
|
||||
@@ -227,8 +225,7 @@ public class CYHCXMLTask extends AbstractTask {
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicle_code)
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType)
|
||||
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status,
|
||||
GroupBindMaterialStatusEnum.BOUND.getValue())
|
||||
.eq(SchBaseVehiclematerialgroup::getIs_firing, true));
|
||||
GroupBindMaterialStatusEnum.BOUND.getValue()));
|
||||
if (ObjectUtil.isEmpty(one)) {
|
||||
throw new BadRequestException(vehicle_code + " => " + vehicleType + "的组盘信息未找到");
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.yz.mapper.YZMapper;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
@@ -38,10 +37,9 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
@Slf4j
|
||||
@Deprecated
|
||||
@Component
|
||||
@TaskType("-")
|
||||
@Component("-")
|
||||
public class GZYQLTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "-";
|
||||
private static final String TASK_CONFIG_CODE = "-";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
|
||||
@@ -27,7 +27,6 @@ import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.*;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.yz.mapper.YZMapper;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
@@ -47,10 +46,9 @@ import java.util.stream.Collectors;
|
||||
* @Date: 2023/6/19
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@TaskType("YZMLTask")
|
||||
@Component("YZMLTask")
|
||||
public class YZMLTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "YZMLTask";
|
||||
private static final String TASK_CONFIG_CODE = "YZMLTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
@@ -250,6 +248,7 @@ public class YZMLTask extends AbstractTask {
|
||||
groupEntity.setVehicle_code(vehicleCode);
|
||||
groupEntity.setVehicle_type(vehicleType);
|
||||
groupEntity.setMaterial_qty(qty);
|
||||
groupEntity.setCustomer(workorderObject.getCustomer());
|
||||
groupEntity.setExt_data(JSONObject.toJSONString(stackParameters));
|
||||
groupEntity.setPoint_code(basePoint.getPoint_code());
|
||||
groupEntity.setPoint_name(basePoint.getPoint_name());
|
||||
|
||||
@@ -13,12 +13,10 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.constant.ExceptionConstant;
|
||||
import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
import org.nl.wms.util.TaskUtils;
|
||||
@@ -36,10 +34,9 @@ import java.util.stream.Collectors;
|
||||
* @Date: 2023/6/16
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@TaskType("YZQKTask")
|
||||
@Component("YZQKTask")
|
||||
public class YZQKTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "YZQKTask";
|
||||
private static final String TASK_CONFIG_CODE = "YZQKTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
@@ -50,12 +47,12 @@ public class YZQKTask extends AbstractTask {
|
||||
private ISysNoticeService noticeService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
protected void createCompletion(SchBaseTask task) {
|
||||
// 配置信息
|
||||
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
||||
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
||||
TaskUtils.setUpdateByAcs(task); // 修改修改者
|
||||
TaskUtils.setUpdateByAcs(task);
|
||||
List<String> startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(","))
|
||||
.collect(Collectors.toList());
|
||||
task.setVehicle_type(GeneralDefinition.STEEL_TRAY);
|
||||
|
||||
@@ -20,12 +20,11 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.constant.ExceptionConstant;
|
||||
import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.yz.mapper.YZMapper;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
@@ -44,10 +43,9 @@ import java.util.stream.Collectors;
|
||||
* @Date: 2023/11/1
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@TaskType("YZQLTask")
|
||||
@Component("YZQLTask")
|
||||
public class YZQLTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "YZQLTask";
|
||||
private static final String TASK_CONFIG_CODE = "YZQLTask";
|
||||
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
|
||||
@@ -17,7 +17,6 @@ import org.nl.wms.sch.task_manage.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
import org.nl.wms.util.TaskUtils;
|
||||
@@ -35,10 +34,9 @@ import java.util.stream.Collectors;
|
||||
* @Date: 2023/5/25
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@TaskType("YZSKTask")
|
||||
@Component("YZSKTask")
|
||||
public class YZSKTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "YZSKTask";
|
||||
private static final String TASK_CONFIG_CODE = "YZSKTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
|
||||
@@ -458,4 +458,53 @@ public class PointCreate {
|
||||
}
|
||||
pointService.saveOrUpdateBatch(list);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCreateRYAO() {
|
||||
String name = "入窑口";
|
||||
String code = "RYK";
|
||||
String now = DateUtil.now();
|
||||
List<SchBasePoint> list = new ArrayList<>();
|
||||
for (int i = 1; i <= 2; i++) {
|
||||
SchBasePoint p1 = new SchBasePoint();
|
||||
p1.setPoint_code(code + "0" + i);
|
||||
p1.setPoint_name(name + "0" + i);
|
||||
p1.setRegion_code("YAO");
|
||||
p1.setRegion_name("窑区域");
|
||||
p1.setPoint_type("1");
|
||||
p1.setParent_point_code("YAO0" + i);
|
||||
p1.setIs_has_workder(true);
|
||||
p1.setWorkshop_code("A1");
|
||||
p1.setIs_auto(true);
|
||||
p1.setCreate_id("1");
|
||||
p1.setCreate_name("管理员");
|
||||
p1.setCreate_time(now);
|
||||
list.add(p1);
|
||||
}
|
||||
pointService.saveOrUpdateBatch(list);
|
||||
}
|
||||
@Test
|
||||
void testCreateCYAO() {
|
||||
String name = "出窑口";
|
||||
String code = "CYK";
|
||||
String now = DateUtil.now();
|
||||
List<SchBasePoint> list = new ArrayList<>();
|
||||
for (int i = 1; i <= 2; i++) {
|
||||
SchBasePoint p1 = new SchBasePoint();
|
||||
p1.setPoint_code(code + "0" + i);
|
||||
p1.setPoint_name(name + "0" + i);
|
||||
p1.setRegion_code("YAO");
|
||||
p1.setRegion_name("窑区域");
|
||||
p1.setPoint_type("2");
|
||||
p1.setParent_point_code("YAO0" + i);
|
||||
p1.setIs_has_workder(true);
|
||||
p1.setWorkshop_code("A1");
|
||||
p1.setIs_auto(true);
|
||||
p1.setCreate_id("1");
|
||||
p1.setCreate_name("管理员");
|
||||
p1.setCreate_time(now);
|
||||
list.add(p1);
|
||||
}
|
||||
pointService.saveOrUpdateBatch(list);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ export default {
|
||||
},
|
||||
initWebSocket() {
|
||||
// const wsUri = (process.env.VUE_APP_WS_API === '/' ? '/' : (process.env.VUE_APP_WS_API + '/')) + 'messageInfo'
|
||||
const wsUri = window.g.prod.VUE_APP_BASE_API.replace('http', 'ws') + '/webSocket/' + 'messageInfo'
|
||||
const wsUri = window.g.prod.VUE_APP_BASE_API.replace('http', 'ws') + '/webSocket/' + 'messageInfo'
|
||||
this.websock = new WebSocket(wsUri)
|
||||
this.websock.onerror = this.webSocketOnError
|
||||
this.websock.onmessage = this.webSocketOnMessage
|
||||
|
||||
@@ -73,12 +73,12 @@
|
||||
开工
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="false"
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
disabled
|
||||
@click="synchronize()"
|
||||
>
|
||||
同步
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
开工
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="false"
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
@@ -480,7 +481,7 @@ export default {
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '工单管理',
|
||||
title: '混碾工单',
|
||||
url: 'api/pdmBdWorkorder',
|
||||
idField: 'workorder_id',
|
||||
sort: 'workorder_id,desc',
|
||||
|
||||
703
lms/nladmin-ui/src/views/wms/pdm/workerorder/pressedOrder.vue
Normal file
703
lms/nladmin-ui/src/views/wms/pdm/workerorder/pressedOrder.vue
Normal file
@@ -0,0 +1,703 @@
|
||||
<template>
|
||||
<div v-loading.fullscreen.lock="fullscreenLoading" class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<el-form
|
||||
:inline="true"
|
||||
class="demo-form-inline"
|
||||
label-position="right"
|
||||
label-width="80px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item label="工单编号">
|
||||
<el-input
|
||||
v-model="query.workorder_code"
|
||||
clearable
|
||||
placeholder="工单编号"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备编码">
|
||||
<el-input
|
||||
v-model="query.point_code"
|
||||
clearable
|
||||
placeholder="设备编码"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间">
|
||||
<el-date-picker
|
||||
v-model="query.createTime"
|
||||
type="datetimerange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@change="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工单状态">
|
||||
<el-select
|
||||
v-model="query.workorder_status"
|
||||
multiple
|
||||
placeholder="工单状态"
|
||||
class="filter-item"
|
||||
clearable
|
||||
@change="handOrderStatus"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.pdm_workorder_status"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<rrOperation :crud="crud"/>
|
||||
</el-form>
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission">
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
:disabled="!(crud.selections[0]) || crud.selections[1]"
|
||||
@click="submits(crud.selections[0])"
|
||||
>
|
||||
开工
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="false"
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
disabled
|
||||
@click="synchronize()"
|
||||
>
|
||||
同步
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
<el-dialog
|
||||
:close-on-click-modal="false"
|
||||
:before-close="crud.cancelCU"
|
||||
:visible.sync="crud.status.cu > 0"
|
||||
:title="crud.status.title"
|
||||
width="820px"
|
||||
>
|
||||
<el-form
|
||||
ref="form"
|
||||
style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;"
|
||||
:inline="true"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
size="mini"
|
||||
label-width="135px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item v-if="false" label="所属车间">
|
||||
<el-select
|
||||
v-model="form.workshop_code"
|
||||
placeholder="请选择"
|
||||
style="width: 240px;"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in workShopList"
|
||||
:label="item.workshop_name"
|
||||
:value="item.workshop_code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属工序" prop="region_code">
|
||||
<el-select
|
||||
v-model="form.region_code"
|
||||
disabled
|
||||
filterable
|
||||
placeholder="请选择"
|
||||
style="width: 240px;"
|
||||
@change="setRegionName"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in regionList"
|
||||
:key="item.region_code"
|
||||
:label="item.region_code"
|
||||
:value="item.region_code"
|
||||
>
|
||||
<span style="float: left">{{ item.region_name }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.region_code }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工序名称">
|
||||
<el-input v-model="form.region_name" style="width: 240px;" disabled/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备编码" prop="point_code">
|
||||
<el-select
|
||||
v-model="form.point_code"
|
||||
filterable
|
||||
placeholder="请选择"
|
||||
style="width: 240px;"
|
||||
@change="setPointName"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in pointList"
|
||||
:key="item.point_code"
|
||||
:label="item.point_code"
|
||||
:value="item.point_code"
|
||||
>
|
||||
<span style="float: left">{{ item.point_name }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.point_code }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备名称">
|
||||
<el-input v-model="form.point_name" style="width: 240px;" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料名称" prop="material_name">
|
||||
<el-input v-model="form.material_name" style="width: 240px;" @focus="getMaterial(1)"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物料编码">
|
||||
<el-input v-model="form.material_code" style="width: 240px;" disabled/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物料规格">
|
||||
<el-input v-model="form.material_spec" style="width: 240px;" disabled/>
|
||||
</el-form-item>
|
||||
<el-form-item label="半成品编码" prop="material_name">
|
||||
<el-input v-model="form.half_material_code" style="width: 240px;" disabled/>
|
||||
</el-form-item>
|
||||
<el-form-item label="原料编码">
|
||||
<el-input v-model="form.raw_material_code" style="width: 240px;" disabled/>
|
||||
</el-form-item>
|
||||
<el-form-item label="新料比例" v-if="form.region_code === 'YZ'">
|
||||
<el-input-number
|
||||
v-model.number="form.material_ratio"
|
||||
:min="0"
|
||||
:max="999"
|
||||
style="width: 240px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.region_code === 'HN' || form.region_code === 'YZ'" label="计划重量" prop="plan_weight">
|
||||
<el-input-number
|
||||
v-model.number="form.plan_weight"
|
||||
:min="0"
|
||||
style="width: 240px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.region_code != 'HN'" label="计划数量" prop="plan_qty">
|
||||
<el-input-number
|
||||
v-model.number="form.plan_qty"
|
||||
:min="0"
|
||||
style="width: 240px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划开始时间" prop="planproducestart_date">
|
||||
<el-date-picker
|
||||
v-model="form.planproducestart_date"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetime"
|
||||
style="width: 240px;"
|
||||
placeholder="选择日期时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划结束时间" prop="planproduceend_date">
|
||||
<el-date-picker
|
||||
v-model="form.planproduceend_date"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetime"
|
||||
style="width: 240px;"
|
||||
placeholder="选择日期时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="crud.status.edit" label="实际开始时间">
|
||||
<el-date-picker
|
||||
v-model="form.realproducestart_date"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetime"
|
||||
style="width: 240px;"
|
||||
placeholder="选择日期时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="crud.status.edit" label="实际结束时间">
|
||||
<el-date-picker
|
||||
v-model="form.realproduceend_date"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetime"
|
||||
style="width: 240px;"
|
||||
placeholder="选择日期时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="检验员" v-if="form.region_code === 'YZ'">
|
||||
<el-select
|
||||
v-model="form.inspector"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="请选择"
|
||||
style="width: 240px;"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in userList"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="静置时间(分钟)" prop="standing_time" v-if="form.region_code === 'HN'">
|
||||
<el-input-number
|
||||
v-model.number="form.standing_time"
|
||||
:min="0"
|
||||
:max="999"
|
||||
style="width: 240px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="crud.status.edit" label="实际数量" prop="real_qty">
|
||||
<el-input-number
|
||||
v-model.number="form.real_qty"
|
||||
:min="0"
|
||||
style="width: 240px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.region_code !== 'HN'" label="客户编码">
|
||||
<el-select v-model="form.customer" clearable filterable placeholder="请选择" style="width: 240px;">
|
||||
<el-option
|
||||
v-for="item in custerList"
|
||||
:key="item.cust_id"
|
||||
:label="item.cust_name"
|
||||
:value="item.cust_id"
|
||||
>
|
||||
<span style="float: left">{{ item.cust_code }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.cust_name }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="载具类型">
|
||||
<el-select
|
||||
v-model="form.vehicle_type"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="请选择"
|
||||
style="width: 240px;"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.vehicle_type"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
:disabled="item.value !== 'GTP'"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="false" label="工单类型" prop="workorder_type">
|
||||
<el-input v-model="form.workorder_type" style="width: 240px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否自动搬运" prop="is_needmove">
|
||||
<el-radio-group v-model="form.is_needmove" style="width: 240px">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否加急" prop="is_needmove">
|
||||
<el-radio-group v-model="form.is_urgent" style="width: 240px">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.region_code === 'HN'" label="是否新料" prop="is_new">
|
||||
<el-radio-group v-model="form.is_new" style="width: 240px">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="info" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<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="workorder_code"
|
||||
label="工单编号"
|
||||
:min-width="flexWidth('workorder_code',crud.data,'工单编号')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="workorder_status"
|
||||
label="工单状态"
|
||||
:min-width="flexWidth('workorder_status',crud.data,'工单状态')"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.pdm_workorder_status[scope.row.workorder_status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="plan_qty" label="计划数量" :min-width="flexWidth('plan_qty',crud.data,'计划数量')" />
|
||||
<el-table-column prop="real_qty" label="实际数量" :min-width="flexWidth('real_qty',crud.data,'实际数量')" />
|
||||
<el-table-column prop="plan_weight" label="计划重量" :min-width="flexWidth('plan_weight',crud.data,'计划数量')" />
|
||||
<el-table-column prop="real_weight" label="实际重量" :min-width="flexWidth('real_weight',crud.data,'实际数量')" />
|
||||
<!-- <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="point_code" label="设备编码" :min-width="flexWidth('point_code',crud.data,'设备编码')" />
|
||||
<el-table-column prop="point_name" label="设备名称" :min-width="flexWidth('point_name',crud.data,'设备名称')" />
|
||||
<el-table-column
|
||||
prop="material_code"
|
||||
label="成品编码"
|
||||
:min-width="flexWidth('material_name',crud.data,'物料标识')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="half_material_code"
|
||||
label="半成品编码"
|
||||
:min-width="flexWidth('half_material_code',crud.data,'半成品编码')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="raw_material_code"
|
||||
label="泥料编码"
|
||||
:min-width="flexWidth('raw_material_code',crud.data,'物料标识')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="material_name"
|
||||
label="物料名称"
|
||||
:min-width="flexWidth('material_name',crud.data,'物料标识')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="material_spec"
|
||||
label="物料规格"
|
||||
:min-width="flexWidth('material_spec',crud.data,'物料标识')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="vehicle_type"
|
||||
label="载具类型"
|
||||
:min-width="flexWidth('vehicle_type',crud.data,'载具类型', 20)"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.vehicle_type[scope.row.vehicle_type] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="produce_date"
|
||||
label="生产日期"
|
||||
:min-width="flexWidth('produce_date',crud.data,'生产日期')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="planproducestart_date"
|
||||
label="计划开始时间"
|
||||
:min-width="flexWidth('planproducestart_date',crud.data,'计划开始时间')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="planproduceend_date"
|
||||
label="计划结束时间"
|
||||
:min-width="flexWidth('planproduceend_date',crud.data,'计划结束时间')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="realproducestart_date"
|
||||
label="实际开始时间"
|
||||
:min-width="flexWidth('realproducestart_date',crud.data,'实际开始时间')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="realproduceend_date"
|
||||
label="实际结束时间"
|
||||
:min-width="flexWidth('realproduceend_date',crud.data,'实际结束时间')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="standing_time"
|
||||
label="静置时间(分钟)"
|
||||
:min-width="flexWidth('standing_time',crud.data,'静置时间(分钟)')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="is_needmove"
|
||||
label="是否自动搬运"
|
||||
:min-width="flexWidth('is_needmove',crud.data,'是否自动搬运')"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.is_needmove ? '是' : '否' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="is_urgent" label="是否加急" :min-width="flexWidth('is_urgent',crud.data,'是否加急')">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.is_urgent ? '是' : '否' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')"/>
|
||||
<el-table-column
|
||||
prop="create_time"
|
||||
label="创建时间"
|
||||
:min-width="flexWidth('create_time',crud.data,'创建时间')"
|
||||
/>
|
||||
<el-table-column prop="update_name" label="修改人" :min-width="flexWidth('update_name',crud.data,'修改人')"/>
|
||||
<el-table-column
|
||||
prop="update_time"
|
||||
label="修改时间"
|
||||
:min-width="flexWidth('update_time',crud.data,'修改时间')"
|
||||
/>
|
||||
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination/>
|
||||
</div>
|
||||
<MaterialDialog :dialog-show.sync="materialDialog" :flag="flag" @tableChanged="tableChanged"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudPdmBdWorkorder from './pdmBdWorkorder'
|
||||
import crudMdCsCustomerbase from '@/views/wms/basedata/customer/mdCsCustomerbase'
|
||||
import crudSchBaseRegion from '@/views/wms/sch/region/schBaseRegion'
|
||||
import crudSchBasePoint from '@/views/wms/sch/point/schBasePoint'
|
||||
import CRUD, { crud, form, header, presenter } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import crudMdBaseWorkShop from '@/views/wms/basedata/workshop/mdBaseWorkshop'
|
||||
import MaterialDialog from '@/views/wms/sch/group/MaterialDialog.vue'
|
||||
import item from '@/layout/components/Sidebar/Item.vue'
|
||||
|
||||
const defaultForm = {
|
||||
workorder_id: null,
|
||||
workorder_code: null,
|
||||
plan_weight: null,
|
||||
plan_qty: null,
|
||||
real_qty: null,
|
||||
material_id: null,
|
||||
half_material_code: null,
|
||||
raw_material_code: null,
|
||||
vehicle_type: 'GTP',
|
||||
planproducestart_date: null,
|
||||
planproduceend_date: null,
|
||||
realproducestart_date: null,
|
||||
realproduceend_date: null,
|
||||
material_spec: null,
|
||||
material_code: null,
|
||||
material_name: null,
|
||||
standing_time: null,
|
||||
point_code: null,
|
||||
point_name: null,
|
||||
region_code: 'YZ',
|
||||
region_name: null,
|
||||
workorder_status: null,
|
||||
is_needmove: true,
|
||||
workorder_type: null,
|
||||
passback_status: null,
|
||||
workshop_code: null,
|
||||
ext_id: null,
|
||||
is_delete: false,
|
||||
is_urgent: false,
|
||||
is_new: true,
|
||||
inspector: null,
|
||||
material_ratio: 100,
|
||||
pack_method: null,
|
||||
customer: null,
|
||||
ext_data: 0
|
||||
}
|
||||
export default {
|
||||
name: 'PressedOrder',
|
||||
dicts: ['vehicle_type', 'pdm_workorder_status'],
|
||||
components: { MaterialDialog, pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '压制工单',
|
||||
url: 'api/pdmBdWorkorder',
|
||||
idField: 'workorder_id',
|
||||
sort: 'workorder_id,desc',
|
||||
query: {
|
||||
region_code: 'YZ'
|
||||
},
|
||||
crudMethod: { ...crudPdmBdWorkorder }
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {},
|
||||
rules: {
|
||||
material_code: [
|
||||
{ required: true, message: '物料不能为空', trigger: 'blur' }
|
||||
],
|
||||
plan_qty: [
|
||||
{ required: true, message: '计划数量不能为空', trigger: 'blur' }
|
||||
],
|
||||
plan_weight: [
|
||||
{ required: true, message: '计划重量不能为空', trigger: 'blur' }
|
||||
],
|
||||
planproducestart_date: [
|
||||
{ required: true, message: '计划开始不能为空', trigger: 'change' }
|
||||
],
|
||||
planproduceend_date: [
|
||||
{ required: true, message: '计划结束不能为空', trigger: 'change' }
|
||||
],
|
||||
point_code: [
|
||||
{ required: true, message: '设备编码不能为空', trigger: 'change' }
|
||||
],
|
||||
region_code: [
|
||||
{ required: true, message: '区域编码不能为空', trigger: 'change' }
|
||||
]
|
||||
},
|
||||
queryTypeOptions: [
|
||||
{ key: 'workorder_code', display_name: '工单编号' },
|
||||
{ key: 'point_code', display_name: '设备编码' }
|
||||
],
|
||||
workShopList: [],
|
||||
regionList: [],
|
||||
pointList: [],
|
||||
custerList: [],
|
||||
userList: [],
|
||||
regionCodeParam: null,
|
||||
materialDialog: false,
|
||||
orderDialog: false,
|
||||
fullscreenLoading: false,
|
||||
flag: 1
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getWorkShopList()
|
||||
this.getRegionList()
|
||||
this.getUserList()
|
||||
this.getCustomerList()
|
||||
},
|
||||
methods: {
|
||||
item() {
|
||||
return item
|
||||
},
|
||||
getCustomerList() {
|
||||
// 获取客户列表
|
||||
crudMdCsCustomerbase.getCustomerList().then(res => {
|
||||
this.custerList = res
|
||||
})
|
||||
},
|
||||
getUserList() {
|
||||
// 获取检验员列表
|
||||
crudPdmBdWorkorder.userList().then(res => {
|
||||
this.userList = res
|
||||
})
|
||||
},
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
[CRUD.HOOK.beforeToCU]() {
|
||||
this.setRegionName('YZ')
|
||||
const extData = this.form.ext_data
|
||||
if (extData !== undefined || extData !== null || extData !== '') {
|
||||
const ext = JSON.parse(extData)
|
||||
this.form.order_no = ext.order_no
|
||||
this.form.order_subnum = ext.custer_no
|
||||
}
|
||||
},
|
||||
getWorkShopList() { // 获取车间列表
|
||||
crudMdBaseWorkShop.getWorkShopList().then(res => {
|
||||
this.workShopList = res
|
||||
})
|
||||
},
|
||||
getRegionList() { // 获取区域列表
|
||||
const param = {
|
||||
is_has_workder: true
|
||||
}
|
||||
crudSchBaseRegion.getRegionList(param).then(res => {
|
||||
this.regionList = res
|
||||
})
|
||||
},
|
||||
getPointList() { // 获取点位列表
|
||||
if (this.regionCodeParam) {
|
||||
const param = {
|
||||
region_code: this.regionCodeParam
|
||||
}
|
||||
crudSchBasePoint.getPointList(param).then(res => {
|
||||
this.pointList = res
|
||||
this.regionCodeParam = null
|
||||
})
|
||||
}
|
||||
},
|
||||
getMaterial(flag) {
|
||||
this.materialDialog = true
|
||||
this.flag = flag
|
||||
},
|
||||
tableChanged(row, flag) {
|
||||
if (flag === 1) {
|
||||
this.form.material_name = row.material_name
|
||||
this.form.material_id = row.material_id
|
||||
this.form.material_spec = row.material_spec
|
||||
this.form.material_code = row.material_code
|
||||
this.form.half_material_code = row.half_material_code
|
||||
this.form.raw_material_code = row.raw_material_code
|
||||
} else {
|
||||
this.form.raw_material_name = row.material_name
|
||||
this.form.raw_material_id = row.material_id
|
||||
this.form.raw_material_code = row.material_code
|
||||
}
|
||||
this.form.pack_method = row.pack_method
|
||||
this.form.standing_time = row.standing_time === null ? 0 : row.standing_time
|
||||
},
|
||||
setRegionName(data) {
|
||||
// 清空
|
||||
this.form.point_code = null
|
||||
this.form.point_name = null
|
||||
this.regionCodeParam = data
|
||||
var region = this.regionList.find(item => item.region_code === data)
|
||||
this.form.region_name = region.region_name
|
||||
this.getPointList()
|
||||
},
|
||||
setPointName(data) {
|
||||
var point = this.pointList.find(item => item.point_code === data)
|
||||
this.form.point_name = point.point_name
|
||||
},
|
||||
handOrderStatus(value) {
|
||||
this.crud.query.more_order_status = null
|
||||
if (value) {
|
||||
this.crud.query.more_order_status = value.toString()
|
||||
}
|
||||
this.crud.toQuery()
|
||||
},
|
||||
// 下发
|
||||
submits(row) {
|
||||
this.fullscreenLoading = true
|
||||
crudPdmBdWorkorder.submits(row).then(res => {
|
||||
this.crud.notify('下发成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
}).catch(() => {
|
||||
this.fullscreenLoading = false
|
||||
}).finally(() => {
|
||||
this.fullscreenLoading = false
|
||||
})
|
||||
},
|
||||
synchronize() {
|
||||
this.fullscreenLoading = true
|
||||
crudPdmBdWorkorder.orderSynchronize(this.crud.query).then(res => {
|
||||
this.fullscreenLoading = false
|
||||
this.crud.notify('同步成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
}).catch(() => {
|
||||
this.fullscreenLoading = false
|
||||
}).finally(() => {
|
||||
this.fullscreenLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
695
lms/nladmin-ui/src/views/wms/pdm/workerorder/sortedOrder.vue
Normal file
695
lms/nladmin-ui/src/views/wms/pdm/workerorder/sortedOrder.vue
Normal file
@@ -0,0 +1,695 @@
|
||||
<template>
|
||||
<div v-loading.fullscreen.lock="fullscreenLoading" class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<el-form
|
||||
:inline="true"
|
||||
class="demo-form-inline"
|
||||
label-position="right"
|
||||
label-width="80px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item label="工单编号">
|
||||
<el-input
|
||||
v-model="query.workorder_code"
|
||||
clearable
|
||||
placeholder="工单编号"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备编码">
|
||||
<el-input
|
||||
v-model="query.point_code"
|
||||
clearable
|
||||
placeholder="设备编码"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间">
|
||||
<el-date-picker
|
||||
v-model="query.createTime"
|
||||
type="datetimerange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@change="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工单状态">
|
||||
<el-select
|
||||
v-model="query.workorder_status"
|
||||
multiple
|
||||
placeholder="工单状态"
|
||||
class="filter-item"
|
||||
clearable
|
||||
@change="handOrderStatus"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.pdm_workorder_status"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<rrOperation :crud="crud" />
|
||||
</el-form>
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission">
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
:disabled="!(crud.selections[0]) || crud.selections[1]"
|
||||
@click="submits(crud.selections[0])"
|
||||
>
|
||||
开工
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="false"
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
disabled
|
||||
@click="synchronize()"
|
||||
>
|
||||
同步
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
<el-dialog
|
||||
:close-on-click-modal="false"
|
||||
:before-close="crud.cancelCU"
|
||||
:visible.sync="crud.status.cu > 0"
|
||||
:title="crud.status.title"
|
||||
width="820px"
|
||||
>
|
||||
<el-form
|
||||
ref="form"
|
||||
style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;"
|
||||
:inline="true"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
size="mini"
|
||||
label-width="135px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item v-if="false" label="所属车间">
|
||||
<el-select
|
||||
v-model="form.workshop_code"
|
||||
placeholder="请选择"
|
||||
style="width: 240px;"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in workShopList"
|
||||
:label="item.workshop_name"
|
||||
:value="item.workshop_code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属工序" prop="region_code">
|
||||
<el-select
|
||||
v-model="form.region_code"
|
||||
filterable
|
||||
placeholder="请选择"
|
||||
style="width: 240px;"
|
||||
@change="setRegionName"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in regionList"
|
||||
:key="item.region_code"
|
||||
:label="item.region_code"
|
||||
:value="item.region_code"
|
||||
>
|
||||
<span style="float: left">{{ item.region_name }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.region_code }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工序名称">
|
||||
<el-input v-model="form.region_name" style="width: 240px;" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="设备编码" prop="point_code">
|
||||
<el-select
|
||||
v-model="form.point_code"
|
||||
filterable
|
||||
placeholder="请选择"
|
||||
style="width: 240px;"
|
||||
@change="setPointName"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in pointList"
|
||||
:key="item.point_code"
|
||||
:label="item.point_code"
|
||||
:value="item.point_code"
|
||||
>
|
||||
<span style="float: left">{{ item.point_name }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.point_code }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备名称">
|
||||
<el-input v-model="form.point_name" style="width: 240px;" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料名称" prop="material_name">
|
||||
<el-input v-model="form.material_name" style="width: 240px;" @focus="getMaterial(1)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料编码">
|
||||
<el-input v-model="form.material_code" style="width: 240px;" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料规格">
|
||||
<el-input v-model="form.material_spec" style="width: 240px;" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="半成品编码" prop="material_name">
|
||||
<el-input v-model="form.half_material_code" style="width: 240px;" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="原料编码">
|
||||
<el-input v-model="form.raw_material_code" style="width: 240px;" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.region_code === 'HN' || form.region_code === 'YZ'" label="计划重量" prop="plan_weight">
|
||||
<el-input-number
|
||||
v-model.number="form.plan_weight"
|
||||
:min="0"
|
||||
style="width: 240px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.region_code != 'HN'" label="计划数量" prop="plan_qty">
|
||||
<el-input-number
|
||||
v-model.number="form.plan_qty"
|
||||
:min="0"
|
||||
style="width: 240px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划开始时间" prop="planproducestart_date">
|
||||
<el-date-picker
|
||||
v-model="form.planproducestart_date"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetime"
|
||||
style="width: 240px;"
|
||||
placeholder="选择日期时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划结束时间" prop="planproduceend_date">
|
||||
<el-date-picker
|
||||
v-model="form.planproduceend_date"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetime"
|
||||
style="width: 240px;"
|
||||
placeholder="选择日期时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="crud.status.edit" label="实际开始时间">
|
||||
<el-date-picker
|
||||
v-model="form.realproducestart_date"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetime"
|
||||
style="width: 240px;"
|
||||
placeholder="选择日期时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="crud.status.edit" label="实际结束时间">
|
||||
<el-date-picker
|
||||
v-model="form.realproduceend_date"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetime"
|
||||
style="width: 240px;"
|
||||
placeholder="选择日期时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.region_code === 'YZ'" label="新料比例">
|
||||
<el-input-number
|
||||
v-model.number="form.material_ratio"
|
||||
:min="0"
|
||||
:max="999"
|
||||
style="width: 240px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.region_code === 'YZ'" label="检验员">
|
||||
<el-select
|
||||
v-model="form.inspector"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="请选择"
|
||||
style="width: 240px;"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in userList"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.region_code === 'HN'" label="静置时间(分钟)" prop="standing_time">
|
||||
<el-input-number
|
||||
v-model.number="form.standing_time"
|
||||
:min="0"
|
||||
:max="999"
|
||||
style="width: 240px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="crud.status.edit" label="实际数量" prop="real_qty">
|
||||
<el-input-number
|
||||
v-model.number="form.real_qty"
|
||||
:min="0"
|
||||
style="width: 240px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.region_code !== 'HN'" label="客户编码">
|
||||
<el-select v-model="form.customer" clearable filterable placeholder="请选择" style="width: 240px;">
|
||||
<el-option
|
||||
v-for="item in custerList"
|
||||
:key="item.cust_id"
|
||||
:label="item.cust_name"
|
||||
:value="item.cust_id"
|
||||
>
|
||||
<span style="float: left">{{ item.cust_code }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.cust_name }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="载具类型">
|
||||
<el-select
|
||||
v-model="form.vehicle_type"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="请选择"
|
||||
style="width: 240px;"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.vehicle_type"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="false" label="工单类型" prop="workorder_type">
|
||||
<el-input v-model="form.workorder_type" style="width: 240px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否自动搬运" prop="is_needmove">
|
||||
<el-radio-group v-model="form.is_needmove" style="width: 240px">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否加急" prop="is_needmove">
|
||||
<el-radio-group v-model="form.is_urgent" style="width: 240px">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.region_code === 'HN'" label="是否新料" prop="is_new">
|
||||
<el-radio-group v-model="form.is_new" style="width: 240px">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="info" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<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="workorder_code"
|
||||
label="工单编号"
|
||||
:min-width="flexWidth('workorder_code',crud.data,'工单编号')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="workorder_status"
|
||||
label="工单状态"
|
||||
:min-width="flexWidth('workorder_status',crud.data,'工单状态')"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.pdm_workorder_status[scope.row.workorder_status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="plan_qty" label="计划数量" :min-width="flexWidth('plan_qty',crud.data,'计划数量')" />
|
||||
<el-table-column prop="real_qty" label="实际数量" :min-width="flexWidth('real_qty',crud.data,'实际数量')" />
|
||||
<el-table-column prop="plan_weight" label="计划重量" :min-width="flexWidth('plan_weight',crud.data,'计划数量')" />
|
||||
<el-table-column prop="real_weight" label="实际重量" :min-width="flexWidth('real_weight',crud.data,'实际数量')" />
|
||||
<!-- <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="point_code" label="设备编码" :min-width="flexWidth('point_code',crud.data,'设备编码')" />
|
||||
<el-table-column prop="point_name" label="设备名称" :min-width="flexWidth('point_name',crud.data,'设备名称')" />
|
||||
<el-table-column
|
||||
prop="material_code"
|
||||
label="成品编码"
|
||||
:min-width="flexWidth('material_name',crud.data,'物料标识')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="half_material_code"
|
||||
label="半成品编码"
|
||||
:min-width="flexWidth('half_material_code',crud.data,'半成品编码')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="raw_material_code"
|
||||
label="泥料编码"
|
||||
:min-width="flexWidth('raw_material_code',crud.data,'物料标识')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="material_name"
|
||||
label="物料名称"
|
||||
:min-width="flexWidth('material_name',crud.data,'物料标识')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="material_spec"
|
||||
label="物料规格"
|
||||
:min-width="flexWidth('material_spec',crud.data,'物料标识')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="vehicle_type"
|
||||
label="载具类型"
|
||||
:min-width="flexWidth('vehicle_type',crud.data,'载具类型', 20)"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.vehicle_type[scope.row.vehicle_type] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="produce_date"
|
||||
label="生产日期"
|
||||
:min-width="flexWidth('produce_date',crud.data,'生产日期')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="planproducestart_date"
|
||||
label="计划开始时间"
|
||||
:min-width="flexWidth('planproducestart_date',crud.data,'计划开始时间')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="planproduceend_date"
|
||||
label="计划结束时间"
|
||||
:min-width="flexWidth('planproduceend_date',crud.data,'计划结束时间')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="realproducestart_date"
|
||||
label="实际开始时间"
|
||||
:min-width="flexWidth('realproducestart_date',crud.data,'实际开始时间')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="realproduceend_date"
|
||||
label="实际结束时间"
|
||||
:min-width="flexWidth('realproduceend_date',crud.data,'实际结束时间')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="standing_time"
|
||||
label="静置时间(分钟)"
|
||||
:min-width="flexWidth('standing_time',crud.data,'静置时间(分钟)')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="is_needmove"
|
||||
label="是否自动搬运"
|
||||
:min-width="flexWidth('is_needmove',crud.data,'是否自动搬运')"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.is_needmove ? '是' : '否' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="is_urgent" label="是否加急" :min-width="flexWidth('is_urgent',crud.data,'是否加急')">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.is_urgent ? '是' : '否' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')" />
|
||||
<el-table-column
|
||||
prop="create_time"
|
||||
label="创建时间"
|
||||
:min-width="flexWidth('create_time',crud.data,'创建时间')"
|
||||
/>
|
||||
<el-table-column prop="update_name" label="修改人" :min-width="flexWidth('update_name',crud.data,'修改人')" />
|
||||
<el-table-column
|
||||
prop="update_time"
|
||||
label="修改时间"
|
||||
:min-width="flexWidth('update_time',crud.data,'修改时间')"
|
||||
/>
|
||||
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
<MaterialDialog :dialog-show.sync="materialDialog" :flag="flag" @tableChanged="tableChanged" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudPdmBdWorkorder from './pdmBdWorkorder'
|
||||
import crudMdCsCustomerbase from '@/views/wms/basedata/customer/mdCsCustomerbase'
|
||||
import crudSchBaseRegion from '@/views/wms/sch/region/schBaseRegion'
|
||||
import crudSchBasePoint from '@/views/wms/sch/point/schBasePoint'
|
||||
import CRUD, { crud, form, header, presenter } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import crudMdBaseWorkShop from '@/views/wms/basedata/workshop/mdBaseWorkshop'
|
||||
import MaterialDialog from '@/views/wms/sch/group/MaterialDialog.vue'
|
||||
import item from '@/layout/components/Sidebar/Item.vue'
|
||||
|
||||
const defaultForm = {
|
||||
workorder_id: null,
|
||||
workorder_code: null,
|
||||
plan_weight: null,
|
||||
plan_qty: null,
|
||||
real_qty: null,
|
||||
material_id: null,
|
||||
half_material_code: null,
|
||||
raw_material_code: null,
|
||||
vehicle_type: null,
|
||||
planproducestart_date: null,
|
||||
planproduceend_date: null,
|
||||
realproducestart_date: null,
|
||||
realproduceend_date: null,
|
||||
material_spec: null,
|
||||
material_code: null,
|
||||
material_name: null,
|
||||
standing_time: null,
|
||||
point_code: null,
|
||||
point_name: null,
|
||||
region_code: null,
|
||||
region_name: null,
|
||||
workorder_status: null,
|
||||
is_needmove: true,
|
||||
workorder_type: null,
|
||||
passback_status: null,
|
||||
workshop_code: null,
|
||||
ext_id: null,
|
||||
is_delete: false,
|
||||
is_urgent: false,
|
||||
is_new: true,
|
||||
inspector: null,
|
||||
material_ratio: 0,
|
||||
pack_method: null,
|
||||
customer: null,
|
||||
ext_data: 0
|
||||
}
|
||||
export default {
|
||||
name: 'SortedOrder',
|
||||
dicts: ['vehicle_type', 'pdm_workorder_status'],
|
||||
components: { MaterialDialog, pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '分拣工单',
|
||||
url: 'api/pdmBdWorkorder',
|
||||
idField: 'workorder_id',
|
||||
sort: 'workorder_id,desc',
|
||||
query: {
|
||||
region_code: 'FJ'
|
||||
},
|
||||
crudMethod: { ...crudPdmBdWorkorder }
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {},
|
||||
rules: {
|
||||
material_code: [
|
||||
{ required: true, message: '物料不能为空', trigger: 'blur' }
|
||||
],
|
||||
plan_qty: [
|
||||
{ required: true, message: '计划数量不能为空', trigger: 'blur' }
|
||||
],
|
||||
planproducestart_date: [
|
||||
{ required: true, message: '计划开始不能为空', trigger: 'change' }
|
||||
],
|
||||
planproduceend_date: [
|
||||
{ required: true, message: '计划结束不能为空', trigger: 'change' }
|
||||
],
|
||||
point_code: [
|
||||
{ required: true, message: '设备编码不能为空', trigger: 'change' }
|
||||
],
|
||||
region_code: [
|
||||
{ required: true, message: '区域编码不能为空', trigger: 'change' }
|
||||
]
|
||||
},
|
||||
queryTypeOptions: [
|
||||
{ key: 'workorder_code', display_name: '工单编号' },
|
||||
{ key: 'point_code', display_name: '设备编码' }
|
||||
],
|
||||
workShopList: [],
|
||||
regionList: [],
|
||||
pointList: [],
|
||||
custerList: [],
|
||||
userList: [],
|
||||
regionCodeParam: null,
|
||||
materialDialog: false,
|
||||
orderDialog: false,
|
||||
fullscreenLoading: false,
|
||||
flag: 1
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getWorkShopList()
|
||||
this.getRegionList()
|
||||
this.getUserList()
|
||||
this.getCustomerList()
|
||||
},
|
||||
methods: {
|
||||
item() {
|
||||
return item
|
||||
},
|
||||
getCustomerList() {
|
||||
// 获取客户列表
|
||||
crudMdCsCustomerbase.getCustomerList().then(res => {
|
||||
this.custerList = res
|
||||
})
|
||||
},
|
||||
getUserList() {
|
||||
// 获取检验员列表
|
||||
crudPdmBdWorkorder.userList().then(res => {
|
||||
this.userList = res
|
||||
})
|
||||
},
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
[CRUD.HOOK.beforeToCU]() {
|
||||
const extData = this.form.ext_data
|
||||
if (extData !== undefined || extData !== null || extData !== '') {
|
||||
const ext = JSON.parse(extData)
|
||||
this.form.order_no = ext.order_no
|
||||
this.form.order_subnum = ext.custer_no
|
||||
}
|
||||
},
|
||||
getWorkShopList() { // 获取车间列表
|
||||
crudMdBaseWorkShop.getWorkShopList().then(res => {
|
||||
this.workShopList = res
|
||||
})
|
||||
},
|
||||
getRegionList() { // 获取区域列表
|
||||
const param = {
|
||||
is_has_workder: true
|
||||
}
|
||||
crudSchBaseRegion.getRegionList(param).then(res => {
|
||||
this.regionList = res
|
||||
})
|
||||
},
|
||||
getPointList() { // 获取点位列表
|
||||
if (this.regionCodeParam) {
|
||||
const param = {
|
||||
region_code: this.regionCodeParam
|
||||
}
|
||||
crudSchBasePoint.getPointList(param).then(res => {
|
||||
this.pointList = res
|
||||
this.regionCodeParam = null
|
||||
})
|
||||
}
|
||||
},
|
||||
getMaterial(flag) {
|
||||
this.materialDialog = true
|
||||
this.flag = flag
|
||||
},
|
||||
tableChanged(row, flag) {
|
||||
this.form.material_name = row.material_name
|
||||
this.form.material_id = row.material_id
|
||||
this.form.material_spec = row.material_spec
|
||||
this.form.material_code = row.material_code
|
||||
this.form.half_material_code = row.half_material_code
|
||||
this.form.raw_material_code = row.raw_material_code
|
||||
this.form.pack_method = row.pack_method
|
||||
const result = Object.keys(this.dict.label.vehicle_type).find(key => this.dict.label.vehicle_type[key] === row.pack_palletspec)
|
||||
if (result) {
|
||||
this.form.vehicle_type = result
|
||||
}
|
||||
this.form.standing_time = row.standing_time === null ? 0 : row.standing_time
|
||||
},
|
||||
setRegionName(data) {
|
||||
// 清空
|
||||
this.form.point_code = null
|
||||
this.form.point_name = null
|
||||
this.regionCodeParam = data
|
||||
var region = this.regionList.find(item => item.region_code === data)
|
||||
this.form.region_name = region.region_name
|
||||
this.getPointList()
|
||||
},
|
||||
setPointName(data) {
|
||||
var point = this.pointList.find(item => item.point_code === data)
|
||||
this.form.point_name = point.point_name
|
||||
},
|
||||
handOrderStatus(value) {
|
||||
this.crud.query.more_order_status = null
|
||||
if (value) {
|
||||
this.crud.query.more_order_status = value.toString()
|
||||
}
|
||||
this.crud.toQuery()
|
||||
},
|
||||
// 下发
|
||||
submits(row) {
|
||||
this.fullscreenLoading = true
|
||||
crudPdmBdWorkorder.submits(row).then(res => {
|
||||
this.crud.notify('下发成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
}).catch(() => {
|
||||
this.fullscreenLoading = false
|
||||
}).finally(() => {
|
||||
this.fullscreenLoading = false
|
||||
})
|
||||
},
|
||||
synchronize() {
|
||||
this.fullscreenLoading = true
|
||||
crudPdmBdWorkorder.orderSynchronize(this.crud.query).then(res => {
|
||||
this.fullscreenLoading = false
|
||||
this.crud.notify('同步成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
}).catch(() => {
|
||||
this.fullscreenLoading = false
|
||||
}).finally(() => {
|
||||
this.fullscreenLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user