add:解包工单审核
This commit is contained in:
@@ -36,6 +36,8 @@ public class CurrentUser implements Serializable {
|
||||
|
||||
private List<String> permissions = new ArrayList<>();
|
||||
|
||||
private List<String> roleNames = new ArrayList<>();
|
||||
|
||||
public static CurrentUser getDefaultUser() {
|
||||
CurrentUser def = new CurrentUser();
|
||||
def.setId("2");
|
||||
|
||||
@@ -127,7 +127,7 @@ public class PdaJBServiceImpl implements PdaJBService {
|
||||
String flag = whereJson.getString("flag");
|
||||
List<PdmBdWorkorder> workorders = pdaJBMapper.getUnProductOrderList(
|
||||
whereJson.getString("point_code"),
|
||||
"1".equals(flag) ? "1" : "4");
|
||||
"1".equals(flag) ? "2" : "4");
|
||||
return PdaResponse.requestParamOk(workorders);
|
||||
}
|
||||
|
||||
@@ -166,8 +166,8 @@ public class PdaJBServiceImpl implements PdaJBService {
|
||||
if (ObjectUtil.isEmpty(workorder)) {
|
||||
throw new BadRequestException("工单不存在!");
|
||||
}
|
||||
if (!"1".equals(workorder.getWorkorder_status())) {
|
||||
throw new BadRequestException("该工单不是未生产,无法开工!");
|
||||
if (!"2".equals(workorder.getWorkorder_status())) {
|
||||
throw new BadRequestException("该工单不是审核状态,无法开工!");
|
||||
}
|
||||
final String taskPointCode = pointCode;
|
||||
// 判断任务
|
||||
@@ -446,7 +446,7 @@ public class PdaJBServiceImpl implements PdaJBService {
|
||||
List<SchBaseTask> list = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, false)
|
||||
.in(SchBaseTask::getConfig_code, Arrays.asList("JbDownAgvTask", "JbDownManualTask"))
|
||||
.in(SchBaseTask::getConfig_code, Arrays.asList("JbDownAgvTask", "JbDownCloseUnsealingAgvTask", "JbDownManualTask"))
|
||||
.and(ll -> ll.like(SchBaseTask::getPoint_code1, taskPointCode).or()
|
||||
.like(SchBaseTask::getPoint_code2, taskPointCode).or()
|
||||
.like(SchBaseTask::getPoint_code3, taskPointCode).or()
|
||||
|
||||
@@ -7,7 +7,10 @@
|
||||
mm.material_name
|
||||
FROM `pdm_bd_workorder` o
|
||||
LEFT JOIN md_me_materialbase mm ON mm.material_id = o.material_id
|
||||
WHERE o.workorder_status = #{workorder_status}
|
||||
WHERE o.workorder_status IN
|
||||
<foreach collection="workorder_status.split(',')" item="status" separator="," open="(" close=")">
|
||||
#{status}
|
||||
</foreach>
|
||||
AND o.point_code = #{pointCode}
|
||||
ORDER BY o.update_time
|
||||
</select>
|
||||
|
||||
@@ -66,6 +66,12 @@ public class PdmBdWorkorderController {
|
||||
pdmBdWorkorderService.submits(entity);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
@PostMapping("/audit")
|
||||
@Log("审核")
|
||||
public ResponseEntity<Object> audit(@RequestBody PdmBdWorkorder entity) {
|
||||
pdmBdWorkorderService.audit(entity);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
@PostMapping("/loadComplete")
|
||||
@Log("上料完成")
|
||||
public ResponseEntity<Object> loadComplete(@RequestBody PdmBdWorkorder entity) {
|
||||
|
||||
@@ -16,9 +16,9 @@ public enum WorkOrderStatusEnum {
|
||||
*/
|
||||
UNPRODUCED("1", "未生产"),
|
||||
/**
|
||||
* 已下发 x
|
||||
* 审核
|
||||
*/
|
||||
ISSUED("2", "已下发"),
|
||||
ISSUED("2", "审核"),
|
||||
/**
|
||||
* 生产中
|
||||
*/
|
||||
|
||||
@@ -86,6 +86,8 @@ public interface IPdmBdWorkorderService extends IService<PdmBdWorkorder> {
|
||||
*/
|
||||
void submits(PdmBdWorkorder entity);
|
||||
|
||||
void audit(PdmBdWorkorder entity);
|
||||
|
||||
void loadComplete(PdmBdWorkorder entity);
|
||||
|
||||
void batchAddOrders(JSONObject entity);
|
||||
|
||||
@@ -81,6 +81,12 @@ public class PdmBdWorkorder implements Serializable {
|
||||
|
||||
private String workshop_code;
|
||||
|
||||
private String audit_id;
|
||||
|
||||
private String audit_name;
|
||||
|
||||
private String audit_time;
|
||||
|
||||
private String ext_id;
|
||||
|
||||
private String ext_data;
|
||||
|
||||
@@ -119,6 +119,21 @@ public class PdmBdWorkorderDto implements Serializable {
|
||||
*/
|
||||
private String workshop_code;
|
||||
|
||||
/**
|
||||
* 审核人
|
||||
*/
|
||||
private String audit_id;
|
||||
|
||||
/**
|
||||
* 审核人姓名
|
||||
*/
|
||||
private String audit_name;
|
||||
|
||||
/**
|
||||
* 审核时间
|
||||
*/
|
||||
private String audit_time;
|
||||
|
||||
/**
|
||||
* 外部标识
|
||||
*/
|
||||
|
||||
@@ -201,6 +201,25 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
||||
pdaJBService.callMaterial(param);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void audit(PdmBdWorkorder entity) {
|
||||
PdmBdWorkorder order = getById(entity.getWorkorder_id());
|
||||
if (ObjectUtil.isEmpty(order)) {
|
||||
throw new BadRequestException("工单不存在!");
|
||||
}
|
||||
if (!WorkOrderStatusEnum.UNPRODUCED.getCode().equals(order.getWorkorder_status())) {
|
||||
throw new BadRequestException("仅状态为1的工单允许审核!");
|
||||
}
|
||||
order.setWorkorder_status(WorkOrderStatusEnum.ISSUED.getCode());
|
||||
order.setAudit_id(SecurityUtils.getCurrentUserId());
|
||||
order.setAudit_name(SecurityUtils.getCurrentNickName());
|
||||
order.setAudit_time(DateUtil.now());
|
||||
order.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||
order.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||
order.setUpdate_time(DateUtil.now());
|
||||
updateById(order);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadComplete(PdmBdWorkorder entity) {
|
||||
PdmBdWorkorder order = getById(entity.getWorkorder_id());
|
||||
|
||||
@@ -0,0 +1,244 @@
|
||||
package org.nl.wms.sch_manage.service.util.tasks.jb;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.sch_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskconfigService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
|
||||
import org.nl.wms.sch_manage.service.util.TaskUtils;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 解包下料-屏蔽拆封盖机 AGV 任务
|
||||
*/
|
||||
@Slf4j
|
||||
@Component("JbDownCloseUnsealingAgvTask")
|
||||
public class JbDownCloseUnsealingAgvTask extends AbstractTask {
|
||||
@Resource
|
||||
private ISchBaseTaskService taskService;
|
||||
@Resource
|
||||
private IInBillService inBillService;
|
||||
@Resource
|
||||
private IOStorInvDisMapper ioStorInvDisMapper;
|
||||
@Resource
|
||||
private ISchBasePointService pointService;
|
||||
@Resource
|
||||
private ISchBaseTaskconfigService taskconfigService;
|
||||
@Resource
|
||||
private IMdPbStoragevehicleinfoService storagevehicleinfoService;
|
||||
@Resource
|
||||
private IStructattrService structattrService;
|
||||
|
||||
@Override
|
||||
public String create(JSONObject param) {
|
||||
JSONArray tasks = param.getJSONArray("tasks");
|
||||
List<SchBaseTask> batchTask = new ArrayList<>();
|
||||
for (int i = 0; i < tasks.size(); i++) {
|
||||
JSONObject json = tasks.getJSONObject(i);
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setTask_id(IdUtil.getStringId());
|
||||
task.setTask_code(json.getString("TaskCode"));
|
||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||
task.setConfig_code(json.getString("task_type"));
|
||||
task.setPoint_code1(json.getString("point_code1"));
|
||||
task.setPoint_code2(json.getString("point_code2"));
|
||||
task.setPoint_code3(json.getString("point_code3"));
|
||||
task.setPoint_code4(json.getString("point_code4"));
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setVehicle_code2(json.getString("vehicle_code2"));
|
||||
task.setVehicle_type(json.getString("vehicle_type"));
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setTask_group_id(json.getString("task_group_id"));
|
||||
task.setTask_group_seq(json.getBigDecimal("task_group_seq"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
batchTask.add(task);
|
||||
}
|
||||
taskService.saveBatch(batchTask);
|
||||
return batchTask.get(batchTask.size() - 1).getTask_id();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AcsTaskDto sendAcsParam(String taskId) {
|
||||
SchBaseTask taskDao = taskService.getById(taskId);
|
||||
SchBaseTaskconfig taskconfig = taskconfigService.getTaskByConfigCode(taskDao.getConfig_code());
|
||||
JSONObject object = JSONObject.parseObject(taskDao.getRequest_param());
|
||||
|
||||
AcsTaskDto acsTaskDto = new AcsTaskDto();
|
||||
acsTaskDto.setExt_task_uuid(taskDao.getTask_id());
|
||||
acsTaskDto.setTask_code(taskDao.getTask_code());
|
||||
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
|
||||
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
|
||||
acsTaskDto.setStart_device_code2(taskDao.getPoint_code3());
|
||||
acsTaskDto.setNext_device_code2(taskDao.getPoint_code4());
|
||||
acsTaskDto.setAgv_system_type("3");
|
||||
acsTaskDto.setPriority(taskDao.getPriority());
|
||||
acsTaskDto.setTask_type(taskconfig.getTask_type());
|
||||
acsTaskDto.setTruss_type(object.getString("truss_type"));
|
||||
acsTaskDto.setInteraction_json(new JSONObject().fluentPut("have_lid", object.getString("have_lid")));
|
||||
fillCommonAcsTaskFields(taskDao, acsTaskDto);
|
||||
return acsTaskDto;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateStatus(String task_code, TaskStatus status) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("该任务已完成!");
|
||||
}
|
||||
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
||||
throw new BadRequestException("该任务已取消!");
|
||||
}
|
||||
if (status.equals(TaskStatus.EXECUTING)) {
|
||||
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||
taskObj.setRemark("执行中");
|
||||
TaskUtils.setUpdateByAcs(taskObj);
|
||||
taskService.updateById(taskObj);
|
||||
}
|
||||
if (status.equals(TaskStatus.FINISHED)) {
|
||||
this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
||||
}
|
||||
if (status.equals(TaskStatus.CANCELED)) {
|
||||
this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
||||
}
|
||||
}
|
||||
|
||||
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||
taskObj.setRemark("已取消");
|
||||
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||
taskService.updateById(taskObj);
|
||||
ioStorInvDisMapper.update(new IOStorInvDis(), new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||
.set(IOStorInvDis::getTask_id, null)
|
||||
.set(IOStorInvDis::getPoint_code, null)
|
||||
.set(IOStorInvDis::getIs_issued, 0)
|
||||
.set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("未生成"))
|
||||
.eq(IOStorInvDis::getTask_id, taskObj.getTask_id()));
|
||||
clearPointTaskCode(taskObj.getPoint_code1());
|
||||
clearPointTaskCode(taskObj.getPoint_code4());
|
||||
clearStructTaskCode(taskObj.getPoint_code2());
|
||||
clearStructTaskCode(taskObj.getPoint_code3());
|
||||
}
|
||||
|
||||
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||
MdPbStoragevehicleinfo emptyVehicleInfo = storagevehicleinfoService.getByCode(taskObj.getVehicle_code2());
|
||||
if (ObjectUtil.isEmpty(emptyVehicleInfo)) {
|
||||
throw new BadRequestException(taskObj.getVehicle_code2() + "的托盘信息不存在!");
|
||||
}
|
||||
// point4 等于 point1,最终状态应为对接位补入空桶
|
||||
clearStruct(taskObj.getPoint_code3());
|
||||
occupyStruct(taskObj.getPoint_code2(), taskObj.getVehicle_code(), taskObj.getVehicle_type());
|
||||
occupyPoint(taskObj.getPoint_code4(), taskObj.getVehicle_code2(), emptyVehicleInfo.getStoragevehicle_type(), "2");
|
||||
taskObj.setRemark("任务执行完毕");
|
||||
inBillService.taskFinish(taskObj);
|
||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||
taskService.updateById(taskObj);
|
||||
}
|
||||
|
||||
private void occupyPoint(String code, String vehicleCode, String vehicleType, String pointStatus) {
|
||||
SchBasePoint point = pointService.getById(code);
|
||||
if (ObjectUtil.isEmpty(point)) {
|
||||
throw new BadRequestException("点位不存在:" + code);
|
||||
}
|
||||
point.setPoint_status(pointStatus);
|
||||
point.setVehicle_code(vehicleCode);
|
||||
point.setVehicle_type(vehicleType);
|
||||
point.setUpdate_time(DateUtil.now());
|
||||
pointService.updateById(point);
|
||||
}
|
||||
|
||||
private void clearStruct(String code) {
|
||||
Structattr struct = structattrService.getByCode(code);
|
||||
if (ObjectUtil.isEmpty(struct)) {
|
||||
throw new BadRequestException("仓位不存在:" + code);
|
||||
}
|
||||
structattrService.update(new LambdaUpdateWrapper<Structattr>()
|
||||
.set(Structattr::getStoragevehicle_code, null)
|
||||
.set(Structattr::getStoragevehicle_type, null)
|
||||
.set(Structattr::getOccupancy_state, "1")
|
||||
.eq(Structattr::getStruct_code, code));
|
||||
}
|
||||
|
||||
private void occupyStruct(String code, String vehicleCode, String vehicleType) {
|
||||
Structattr struct = structattrService.getByCode(code);
|
||||
if (ObjectUtil.isEmpty(struct)) {
|
||||
throw new BadRequestException("仓位不存在:" + code);
|
||||
}
|
||||
structattrService.update(new LambdaUpdateWrapper<Structattr>()
|
||||
.set(Structattr::getStoragevehicle_code, vehicleCode)
|
||||
.set(Structattr::getStoragevehicle_type, vehicleType)
|
||||
.set(Structattr::getOccupancy_state, "2")
|
||||
.eq(Structattr::getStruct_code, code));
|
||||
}
|
||||
|
||||
private void clearPointTaskCode(String code) {
|
||||
if (ObjectUtil.isEmpty(code)) {
|
||||
return;
|
||||
}
|
||||
pointService.update(new LambdaUpdateWrapper<SchBasePoint>()
|
||||
.set(SchBasePoint::getIng_task_code, null)
|
||||
.eq(SchBasePoint::getPoint_code, code));
|
||||
}
|
||||
|
||||
private void clearStructTaskCode(String code) {
|
||||
if (ObjectUtil.isEmpty(code)) {
|
||||
return;
|
||||
}
|
||||
structattrService.update(new LambdaUpdateWrapper<Structattr>()
|
||||
.set(Structattr::getTask_code, null)
|
||||
.eq(Structattr::getStruct_code, code));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forceFinish(String task_code) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
if (ObjectUtil.isEmpty(taskObj)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_code) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
if (ObjectUtil.isEmpty(taskObj)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void backMes(String task_code) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -147,7 +147,7 @@ public class JbUpAgvTask extends AbstractTask {
|
||||
String orderId = requestParam.getString("order_id");
|
||||
if (ObjectUtil.isNotEmpty(orderId)) {
|
||||
workorderService.update(new LambdaUpdateWrapper<PdmBdWorkorder>()
|
||||
.set(PdmBdWorkorder::getWorkorder_status, "1")
|
||||
.set(PdmBdWorkorder::getWorkorder_status, "2")
|
||||
.set(PdmBdWorkorder::getRealproduceend_date, null)
|
||||
.eq(PdmBdWorkorder::getWorkorder_id, orderId));
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ public class JbUpManualTask extends AbstractTask {
|
||||
String orderId = requestParam.getString("order_id");
|
||||
if (ObjectUtil.isNotEmpty(orderId)) {
|
||||
workorderService.update(new LambdaUpdateWrapper<PdmBdWorkorder>()
|
||||
.set(PdmBdWorkorder::getWorkorder_status, "1")
|
||||
.set(PdmBdWorkorder::getWorkorder_status, "2")
|
||||
.set(PdmBdWorkorder::getRealproduceend_date, null)
|
||||
.eq(PdmBdWorkorder::getWorkorder_id, orderId));
|
||||
}
|
||||
|
||||
@@ -61,6 +61,7 @@ public class AuthorizationController {
|
||||
CurrentUser currentUser = SecurityUtils.getCurrentUser();
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("roles", SecurityUtils.getCurrentUserPermissions());
|
||||
jsonObject.put("roleNames", currentUser.getRoleNames());
|
||||
jsonObject.put("user", currentUser.getUser());
|
||||
return ResponseEntity.ok(jsonObject);
|
||||
}
|
||||
|
||||
@@ -59,6 +59,13 @@ public interface ISysRoleService extends IService<SysRole> {
|
||||
*/
|
||||
List<String> getPermissionList(JSONObject userDto);
|
||||
|
||||
/**
|
||||
* 通过用户id获取角色名称
|
||||
* @param userId 用户id
|
||||
* @return 角色名称列表
|
||||
*/
|
||||
List<String> getRoleNameList(String userId);
|
||||
|
||||
|
||||
/**
|
||||
* 保存用户角色关系
|
||||
|
||||
@@ -49,4 +49,11 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
|
||||
* @param menuIds
|
||||
*/
|
||||
void insertRoleMenu(String roleId, Collection<String> menuIds);
|
||||
|
||||
/**
|
||||
* 获取用户角色名称列表
|
||||
* @param userId 用户id
|
||||
* @return 角色名称列表
|
||||
*/
|
||||
List<String> selectRoleNamesByUserId(String userId);
|
||||
}
|
||||
|
||||
@@ -26,4 +26,10 @@
|
||||
<select id="selectMenuIdsByRoles" resultType="java.lang.String">
|
||||
SELECT DISTINCT menu_id FROM sys_roles_menus WHERE role_id = #{roleId}
|
||||
</select>
|
||||
<select id="selectRoleNamesByUserId" resultType="java.lang.String">
|
||||
SELECT DISTINCT r.name
|
||||
FROM sys_role r
|
||||
INNER JOIN sys_users_roles ur ON ur.role_id = r.role_id
|
||||
WHERE ur.user_id = #{userId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -138,6 +138,14 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
||||
return permission;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getRoleNameList(String userId) {
|
||||
if (StringUtils.isEmpty(userId)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return roleMapper.selectRoleNamesByUserId(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveUserRoleRelation(String user, List<String> roles) {
|
||||
if (StringUtils.isEmpty(user) || CollectionUtils.isEmpty(roles)){
|
||||
|
||||
@@ -46,6 +46,7 @@ public class HandLoginServiceImpl implements HandLoginService {
|
||||
throw new BadRequestException("账号未激活");
|
||||
}
|
||||
List<String> permissionList = roleService.getPermissionList((JSONObject) JSON.toJSON(userInfo));
|
||||
List<String> roleNameList = roleService.getRoleNameList(userInfo.getUser_id());
|
||||
// 登录输入,登出删除
|
||||
CurrentUser user = new CurrentUser();
|
||||
user.setId(userInfo.getUser_id());
|
||||
@@ -53,6 +54,7 @@ public class HandLoginServiceImpl implements HandLoginService {
|
||||
user.setPresonName((userInfo.getPerson_name()));
|
||||
user.setUser(userInfo);
|
||||
user.setPermissions(permissionList);
|
||||
user.setRoleNames(roleNameList);
|
||||
// SaLoginModel 配置登录相关参数
|
||||
StpUtil.login(userInfo.getUser_id(), new SaLoginModel()
|
||||
.setDevice("PC") // 此次登录的客户端设备类型, 用于[同端互斥登录]时指定此次登录的设备类型
|
||||
@@ -61,6 +63,7 @@ public class HandLoginServiceImpl implements HandLoginService {
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("token", StpUtil.getTokenValue());
|
||||
result.put("roles", permissionList);
|
||||
result.put("roleNames", roleNameList);
|
||||
result.put("user", user);
|
||||
return result;
|
||||
|
||||
|
||||
@@ -187,6 +187,7 @@ public class ISysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> imp
|
||||
throw new BadRequestException("账号未激活");
|
||||
}
|
||||
List<String> permissionList = roleService.getPermissionList((JSONObject) JSON.toJSON(userInfo));
|
||||
List<String> roleNameList = roleService.getRoleNameList(userInfo.getUser_id());
|
||||
// 登录输入,登出删除
|
||||
CurrentUser user = new CurrentUser();
|
||||
user.setId(userInfo.getUser_id());
|
||||
@@ -194,6 +195,7 @@ public class ISysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> imp
|
||||
user.setPresonName((userInfo.getPerson_name()));
|
||||
user.setUser(userInfo);
|
||||
user.setPermissions(permissionList);
|
||||
user.setRoleNames(roleNameList);
|
||||
// SaLoginModel 配置登录相关参数
|
||||
StpUtil.login(userInfo.getUser_id(), new SaLoginModel()
|
||||
.setDevice("PC") // 此次登录的客户端设备类型, 用于[同端互斥登录]时指定此次登录的设备类型
|
||||
@@ -202,6 +204,7 @@ public class ISysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> imp
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("token", StpUtil.getTokenValue());
|
||||
result.put("roles", permissionList);
|
||||
result.put("roleNames", roleNameList);
|
||||
result.put("user", user);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -41,7 +41,10 @@ import org.nl.wms.sch_manage.service.util.tasks.StInTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.jb.JbBackAgvTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.jb.JbBackManualTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.jb.JbDownAgvTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.jb.JbDownCloseUnsealingAgvTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.jb.JbDownManualTask;
|
||||
import org.nl.wms.system_manage.service.param.ISysParamService;
|
||||
import org.nl.wms.system_manage.service.param.dao.Param;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.zw.InBillTask;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
@@ -104,6 +107,8 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
@Resource
|
||||
private JbDownAgvTask jbDownAgvTask;
|
||||
@Resource
|
||||
private JbDownCloseUnsealingAgvTask jbDownCloseUnsealingAgvTask;
|
||||
@Resource
|
||||
private JbBackAgvTask jbBackAgvTask;
|
||||
@Resource
|
||||
private JbBackManualTask jbBackManualTask;
|
||||
@@ -116,6 +121,8 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
private JbDownManualTask jbDownManualTask;
|
||||
@Resource
|
||||
private IPdmBdWorkorderService workorderService;
|
||||
@Resource
|
||||
private ISysParamService paramService;
|
||||
|
||||
@Override
|
||||
public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page) {
|
||||
@@ -797,88 +804,105 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
|| !"2".equals(intoPoint.getPoint_type())) {
|
||||
throw new BadRequestException("请选择超细/中粗吨袋解包区对接位!");
|
||||
}
|
||||
String cfgPointType = "CXDDJBQ".equals(intoPoint.getRegion_code()) ? "1" : "2";
|
||||
String parentPointCode = intoPoint.getParent_point_code();
|
||||
if (ObjectUtil.isEmpty(parentPointCode)) {
|
||||
throw new BadRequestException("解包对接点未配置父类编码!");
|
||||
}
|
||||
SchBasePoint emptyPoint = pointService.getNotTaskByDeviceAndType(parentPointCode, "4");
|
||||
if (ObjectUtil.isEmpty(emptyPoint)) {
|
||||
throw new BadRequestException("找不到可用的空桶缓存位!");
|
||||
}
|
||||
// 获取无盖子的对应的点位
|
||||
List<SchBasePoint> canUseCFGJs = pointService.getCanUseCFGJs(intoPoint, "1", cfgPointType);
|
||||
if (canUseCFGJs.size() == 0) {
|
||||
throw new BadRequestException("找不到可用的拆封盖机");
|
||||
}
|
||||
SchBasePoint cfgjPoint = canUseCFGJs.get(0);
|
||||
// 创建任务1
|
||||
String taskGroupId = IdUtil.getStringId();
|
||||
JSONObject task1 = new JSONObject();
|
||||
task1.put("task_type", "JbDownAgvTask");
|
||||
task1.put("group_id", groupPlate.getGroup_id());
|
||||
task1.put("workorder_id", whereJson.get("workorder_id"));
|
||||
task1.put("task_group_id", taskGroupId);
|
||||
task1.put("task_group_seq", 1);
|
||||
task1.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task1.put("point_code1", structCode);
|
||||
task1.put("point_code2", cfgjPoint.getPoint_code());
|
||||
task1.put("point_code3", cfgjPoint.getPoint_code());
|
||||
task1.put("point_code4", emptyPoint.getPoint_code());
|
||||
task1.put("truss_type", "3");
|
||||
task1.put("have_lid", "1");
|
||||
task1.put("vehicle_type", inStruct.getStoragevehicle_type());
|
||||
task1.put("seq", 1);
|
||||
// 空托盘
|
||||
task1.put("vehicle_code", inStruct.getStoragevehicle_code());
|
||||
// 解包下料第1条:两段都搬空桶
|
||||
task1.put("vehicle_code2", inStruct.getStoragevehicle_code());
|
||||
if (isOpenUnsealingEnabled()) {
|
||||
String cfgPointType = "CXDDJBQ".equals(intoPoint.getRegion_code()) ? "1" : "2";
|
||||
String parentPointCode = intoPoint.getParent_point_code();
|
||||
if (ObjectUtil.isEmpty(parentPointCode)) {
|
||||
throw new BadRequestException("解包对接点未配置父类编码!");
|
||||
}
|
||||
SchBasePoint emptyPoint = pointService.getNotTaskByDeviceAndType(parentPointCode, "4");
|
||||
if (ObjectUtil.isEmpty(emptyPoint)) {
|
||||
throw new BadRequestException("找不到可用的空桶缓存位!");
|
||||
}
|
||||
// 获取无盖子的对应的点位
|
||||
List<SchBasePoint> canUseCFGJs = pointService.getCanUseCFGJs(intoPoint, "1", cfgPointType);
|
||||
if (canUseCFGJs.size() == 0) {
|
||||
throw new BadRequestException("找不到可用的拆封盖机");
|
||||
}
|
||||
SchBasePoint cfgjPoint = canUseCFGJs.get(0);
|
||||
// 创建任务1
|
||||
String taskGroupId = IdUtil.getStringId();
|
||||
JSONObject task1 = new JSONObject();
|
||||
task1.put("task_type", "JbDownAgvTask");
|
||||
task1.put("group_id", groupPlate.getGroup_id());
|
||||
task1.put("workorder_id", whereJson.get("workorder_id"));
|
||||
task1.put("task_group_id", taskGroupId);
|
||||
task1.put("task_group_seq", 1);
|
||||
task1.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task1.put("point_code1", structCode);
|
||||
task1.put("point_code2", cfgjPoint.getPoint_code());
|
||||
task1.put("point_code3", cfgjPoint.getPoint_code());
|
||||
task1.put("point_code4", emptyPoint.getPoint_code());
|
||||
task1.put("truss_type", "3");
|
||||
task1.put("have_lid", "0");
|
||||
task1.put("vehicle_type", inStruct.getStoragevehicle_type());
|
||||
task1.put("seq", 1);
|
||||
task1.put("vehicle_code", inStruct.getStoragevehicle_code());
|
||||
task1.put("vehicle_code2", inStruct.getStoragevehicle_code());
|
||||
|
||||
// 创建任务2
|
||||
JSONObject task2 = new JSONObject();
|
||||
task2.put("task_type", "JbDownAgvTask");
|
||||
task2.put("group_id", groupPlate.getGroup_id());
|
||||
task2.put("task_group_id", taskGroupId);
|
||||
task2.put("task_group_seq", 2);
|
||||
task2.put("workorder_id", whereJson.get("workorder_id"));
|
||||
task2.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task2.put("point_code1", intoPoint.getPoint_code());
|
||||
task2.put("point_code2", cfgjPoint.getPoint_code());
|
||||
task2.put("point_code3", emptyPoint.getPoint_code());
|
||||
task2.put("point_code4", intoPoint.getPoint_code());
|
||||
task2.put("truss_type", "3");
|
||||
task2.put("have_lid", "0");
|
||||
task2.put("seq", 2);
|
||||
// 解包下料第2条:段1搬满桶(对接位->拆封盖机)
|
||||
task2.put("vehicle_code", map.get("storagevehicle_code"));
|
||||
task2.put("vehicle_type", inStruct.getStoragevehicle_type());
|
||||
// 解包下料第2条:段2搬空桶(空桶缓存位->对接位)
|
||||
task2.put("vehicle_code2", inStruct.getStoragevehicle_code());
|
||||
JSONObject task2 = new JSONObject();
|
||||
task2.put("task_type", "JbDownAgvTask");
|
||||
task2.put("group_id", groupPlate.getGroup_id());
|
||||
task2.put("task_group_id", taskGroupId);
|
||||
task2.put("task_group_seq", 2);
|
||||
task2.put("workorder_id", whereJson.get("workorder_id"));
|
||||
task2.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task2.put("point_code1", intoPoint.getPoint_code());
|
||||
task2.put("point_code2", cfgjPoint.getPoint_code());
|
||||
task2.put("point_code3", emptyPoint.getPoint_code());
|
||||
task2.put("point_code4", intoPoint.getPoint_code());
|
||||
task2.put("truss_type", "3");
|
||||
task2.put("have_lid", "0");
|
||||
task2.put("seq", 2);
|
||||
task2.put("vehicle_code", map.get("storagevehicle_code"));
|
||||
task2.put("vehicle_type", inStruct.getStoragevehicle_type());
|
||||
task2.put("vehicle_code2", inStruct.getStoragevehicle_code());
|
||||
|
||||
// 创建任务3
|
||||
JSONObject task3 = new JSONObject();
|
||||
task3.put("task_type", "JbDownAgvTask");
|
||||
task3.put("group_id", groupPlate.getGroup_id());
|
||||
task3.put("task_group_id", taskGroupId);
|
||||
task3.put("task_group_seq", 3);
|
||||
task3.put("workorder_id", whereJson.get("workorder_id"));
|
||||
task3.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task3.put("point_code1", cfgjPoint.getPoint_code());
|
||||
task3.put("point_code2", structCode);
|
||||
task3.put("point_code3", null);
|
||||
task3.put("point_code4", null);
|
||||
task3.put("truss_type", "3");
|
||||
task3.put("have_lid", "2");
|
||||
task3.put("seq", 3);
|
||||
// 解包下料第3条:搬满桶(拆封盖机->料桶缓存库)
|
||||
task3.put("vehicle_code", map.get("storagevehicle_code"));
|
||||
task3.put("vehicle_type", inStruct.getStoragevehicle_type());
|
||||
// 两点任务不传第二载具号
|
||||
task3.put("vehicle_code2", null);
|
||||
List<JSONObject> jsonObjects = Arrays.asList(task1, task2, task3);
|
||||
JSONObject requestTaskParam = new JSONObject();
|
||||
requestTaskParam.put("tasks", jsonObjects);
|
||||
task_id = jbDownAgvTask.create(requestTaskParam);
|
||||
JSONObject task3 = new JSONObject();
|
||||
task3.put("task_type", "JbDownAgvTask");
|
||||
task3.put("group_id", groupPlate.getGroup_id());
|
||||
task3.put("task_group_id", taskGroupId);
|
||||
task3.put("task_group_seq", 3);
|
||||
task3.put("workorder_id", whereJson.get("workorder_id"));
|
||||
task3.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task3.put("point_code1", cfgjPoint.getPoint_code());
|
||||
task3.put("point_code2", structCode);
|
||||
task3.put("point_code3", null);
|
||||
task3.put("point_code4", null);
|
||||
task3.put("truss_type", "3");
|
||||
task3.put("have_lid", "0");
|
||||
task3.put("seq", 3);
|
||||
task3.put("vehicle_code", map.get("storagevehicle_code"));
|
||||
task3.put("vehicle_type", inStruct.getStoragevehicle_type());
|
||||
task3.put("vehicle_code2", null);
|
||||
List<JSONObject> jsonObjects = Arrays.asList(task1, task2, task3);
|
||||
JSONObject requestTaskParam = new JSONObject();
|
||||
requestTaskParam.put("tasks", jsonObjects);
|
||||
task_id = jbDownAgvTask.create(requestTaskParam);
|
||||
} else {
|
||||
String taskGroupId = IdUtil.getStringId();
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("task_type", "JbDownCloseUnsealingAgvTask");
|
||||
task.put("group_id", groupPlate.getGroup_id());
|
||||
task.put("workorder_id", whereJson.get("workorder_id"));
|
||||
task.put("task_group_id", taskGroupId);
|
||||
task.put("task_group_seq", 1);
|
||||
task.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.put("point_code1", intoPoint.getPoint_code());
|
||||
task.put("point_code2", structCode);
|
||||
task.put("point_code3", structCode);
|
||||
task.put("point_code4", intoPoint.getPoint_code());
|
||||
task.put("truss_type", "3");
|
||||
task.put("have_lid", "1");
|
||||
task.put("vehicle_type", inStruct.getStoragevehicle_type());
|
||||
task.put("seq", 1);
|
||||
task.put("vehicle_code", map.get("storagevehicle_code"));
|
||||
task.put("vehicle_code2", inStruct.getStoragevehicle_code());
|
||||
List<JSONObject> jsonObjects = Arrays.asList(task);
|
||||
JSONObject requestTaskParam = new JSONObject();
|
||||
requestTaskParam.put("tasks", jsonObjects);
|
||||
task_id = jbDownCloseUnsealingAgvTask.create(requestTaskParam);
|
||||
}
|
||||
} else if (StatusEnum.IOBILL_TYPE_IN.code("解包直接入库").equals(invObj.getBill_type())) {
|
||||
// 创建人工四点任务
|
||||
String structCode = map.get("struct_code");
|
||||
@@ -1098,6 +1122,14 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
ioStorInvDisMapper.updateById(dis);
|
||||
}
|
||||
|
||||
private boolean isOpenUnsealingEnabled() {
|
||||
Param param = paramService.findByCode("is_open_unsealing");
|
||||
if (ObjectUtil.isEmpty(param) || StrUtil.isBlank(param.getValue())) {
|
||||
return true;
|
||||
}
|
||||
return "1".equals(StrUtil.trim(param.getValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String divPointNoTask(Map whereJson) {
|
||||
ArrayList<HashMap> rows = (ArrayList<HashMap>) whereJson.get("tableMater");
|
||||
|
||||
@@ -8,6 +8,7 @@ const getters = {
|
||||
visitedViews: state => state.tagsView.visitedViews,
|
||||
cachedViews: state => state.tagsView.cachedViews,
|
||||
roles: state => state.user.roles,
|
||||
roleNames: state => state.user.roleNames,
|
||||
user: state => state.user.user,
|
||||
loadMenus: state => state.user.loadMenus,
|
||||
permission_routers: state => state.permission.routers,
|
||||
|
||||
@@ -6,6 +6,7 @@ const user = {
|
||||
token: getToken(),
|
||||
user: {},
|
||||
roles: [],
|
||||
roleNames: [],
|
||||
// 第一次加载菜单时用到
|
||||
loadMenus: false
|
||||
},
|
||||
@@ -20,6 +21,9 @@ const user = {
|
||||
SET_ROLES: (state, roles) => {
|
||||
state.roles = roles
|
||||
},
|
||||
SET_ROLE_NAMES: (state, roleNames) => {
|
||||
state.roleNames = roleNames
|
||||
},
|
||||
SET_LOAD_MENUS: (state, loadMenus) => {
|
||||
state.loadMenus = loadMenus
|
||||
}
|
||||
@@ -78,6 +82,7 @@ const user = {
|
||||
export const logOut = (commit) => {
|
||||
commit('SET_TOKEN', '')
|
||||
commit('SET_ROLES', [])
|
||||
commit('SET_ROLE_NAMES', [])
|
||||
removeToken()
|
||||
}
|
||||
|
||||
@@ -90,6 +95,7 @@ export const setUserInfo = (res, commit) => {
|
||||
} else {
|
||||
commit('SET_ROLES', res.permissions)
|
||||
}
|
||||
commit('SET_ROLE_NAMES', res.roleNames || [])
|
||||
commit('SET_USER', res.user)
|
||||
}
|
||||
|
||||
|
||||
@@ -71,6 +71,18 @@
|
||||
>
|
||||
批量建单
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="canViewAuditButton()"
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="warning"
|
||||
icon="el-icon-check"
|
||||
size="mini"
|
||||
:disabled="!canAudit(crud.selections)"
|
||||
@click="audit(crud.selections[0])"
|
||||
>
|
||||
审核
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
@@ -407,16 +419,6 @@
|
||||
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="静置时间(分钟)"-->
|
||||
@@ -436,7 +438,23 @@
|
||||
<!-- {{ scope.row.is_urgent ? '是' : '否' }}-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column prop="audit_name" label="审核人" :min-width="flexWidth('audit_name',crud.data,'审核人')" />
|
||||
<el-table-column
|
||||
prop="audit_time"
|
||||
label="审核时间"
|
||||
:min-width="flexWidth('audit_time',crud.data,'审核时间')"
|
||||
/>
|
||||
<el-table-column prop="operator" label="开工人" :min-width="flexWidth('operator',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="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')" />
|
||||
<el-table-column
|
||||
prop="create_time"
|
||||
@@ -601,13 +619,24 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
canEditOrDelete(row) {
|
||||
return String(row.workorder_status) === '1'
|
||||
return ['1', '2'].includes(String(row.workorder_status))
|
||||
},
|
||||
canStart(selections) {
|
||||
return Array.isArray(selections) &&
|
||||
selections.length === 1 &&
|
||||
String(selections[0].workorder_status) === '2'
|
||||
},
|
||||
canAudit(selections) {
|
||||
return Array.isArray(selections) &&
|
||||
selections.length === 1 &&
|
||||
String(selections[0].workorder_status) === '1'
|
||||
},
|
||||
canViewAuditButton() {
|
||||
const roleNames = this.$store.getters.roleNames || []
|
||||
return roleNames.includes('管理员') ||
|
||||
roleNames.includes('仓库管理员') ||
|
||||
roleNames.includes('超级管理员')
|
||||
},
|
||||
canLoadComplete(selections) {
|
||||
return Array.isArray(selections) &&
|
||||
selections.length === 1 &&
|
||||
@@ -622,7 +651,7 @@ export default {
|
||||
},
|
||||
beforeCrudToEdit(crud, form) {
|
||||
if (!this.canEditOrDelete(form)) {
|
||||
this.$message.warning('仅工单状态为1时允许修改')
|
||||
this.$message.warning('仅工单状态为1或2时允许修改')
|
||||
return false
|
||||
}
|
||||
return true
|
||||
@@ -631,7 +660,7 @@ export default {
|
||||
const rows = Array.isArray(data) ? data : [data]
|
||||
const canDelete = rows.every(row => this.canEditOrDelete(row))
|
||||
if (!canDelete) {
|
||||
this.$message.warning('仅工单状态为1时允许删除')
|
||||
this.$message.warning('仅工单状态为1或2时允许删除')
|
||||
return false
|
||||
}
|
||||
return true
|
||||
@@ -733,10 +762,25 @@ export default {
|
||||
}
|
||||
this.crud.toQuery()
|
||||
},
|
||||
audit(row) {
|
||||
if (String(row.workorder_status) !== '1') {
|
||||
this.$message.warning('仅工单状态为1时允许审核')
|
||||
return
|
||||
}
|
||||
this.fullscreenLoading = true
|
||||
crudPdmBdWorkorder.audit(row).then(res => {
|
||||
this.crud.notify('审核成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
}).catch(() => {
|
||||
this.fullscreenLoading = false
|
||||
}).finally(() => {
|
||||
this.fullscreenLoading = false
|
||||
})
|
||||
},
|
||||
// 下发
|
||||
submits(row) {
|
||||
if (String(row.workorder_status) !== '1') {
|
||||
this.$message.warning('仅工单状态为1时允许开工')
|
||||
if (String(row.workorder_status) !== '2') {
|
||||
this.$message.warning('仅工单状态为2时允许开工')
|
||||
return
|
||||
}
|
||||
this.fullscreenLoading = true
|
||||
|
||||
@@ -32,6 +32,14 @@ export function submits(param) {
|
||||
})
|
||||
}
|
||||
|
||||
export function audit(param) {
|
||||
return request({
|
||||
url: 'api/pdmBdWorkorder/audit',
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
}
|
||||
|
||||
export function loadComplete(param) {
|
||||
return request({
|
||||
url: 'api/pdmBdWorkorder/loadComplete',
|
||||
@@ -76,4 +84,4 @@ export function batchAddOrders(data) {
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del, submits, loadComplete, forceFinish, orderSynchronize, queryMaterials, getCuster, batchAddOrders }
|
||||
export default { add, edit, del, submits, audit, loadComplete, forceFinish, orderSynchronize, queryMaterials, getCuster, batchAddOrders }
|
||||
|
||||
Reference in New Issue
Block a user