fix: 修复

This commit is contained in:
2023-05-29 08:36:45 +08:00
parent 0e6defe5fe
commit 11991e46e6
43 changed files with 1128 additions and 87 deletions

View File

@@ -49,7 +49,7 @@ public class SecurityUtils {
* @return 系统用户名称
*/
public static String getCurrentNickName() {
return getCurrentUser().getPreson_name();
return getCurrentUser().getPresonName();
}
/**

View File

@@ -22,7 +22,7 @@ public class CurrentUser implements Serializable {
//账号
private String username;
//姓名
private String preson_name;
private String presonName;
//用户详细信息
private SysUser user;

View File

@@ -168,7 +168,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
dept.setDept_id(IdUtil.getStringId());
CurrentUser user = SecurityUtils.getCurrentUser();
dept.setCreate_id(user.getId());
dept.setCreate_name(user.getPreson_name());
dept.setCreate_name(user.getPresonName());
dept.setCreate_time(new Date());
this.save(dept);
// 清理缓存

View File

@@ -244,7 +244,7 @@ public class OnlineUserService {
CurrentUser user = new CurrentUser();
user.setId(userInfo.getUser_id());
user.setUsername(userInfo.getUsername());
user.setPreson_name((userInfo.getPerson_name()));
user.setPresonName((userInfo.getPerson_name()));
user.setUser(userInfo);
user.setPermissions(permissionList);

View File

@@ -8,12 +8,25 @@
,ma.material_spec
FROM pdm_bd_workorder wo
LEFT JOIN md_base_material ma ON ma.material_id = wo.material_id
WHERE 1 = 1
<if test="query.workorder_code != null and query.workorder_code != ''">
AND wo.workorder_code LIKE CONCAT('%', #{query.workorder_code}, '%')
</if>
<if test="query.point_code != null and query.point_code != ''">
AND LOWER(wo.point_code) LIKE LOWER(CONCAT('%', #{query.point_code}, '%'))
</if>
<where>
<if test="query.more_order_status != null and query.more_order_status != ''">
workorder_status IN
<foreach collection="query.more_order_status" item="code" separator="," open="(" close=")">
#{code}
</foreach>
</if>
<if test="query.workorder_code != null and query.workorder_code != ''">
AND wo.workorder_code LIKE CONCAT('%', #{query.workorder_code}, '%')
</if>
<if test="query.point_code != null and query.point_code != ''">
AND LOWER(wo.point_code) LIKE LOWER(CONCAT('%', #{query.point_code}, '%'))
</if>
<if test="query.begin_time != null and query.begin_time != ''">
AND wo.create_time <![CDATA[ >= ]]> #{query.begin_time}
</if>
<if test="query.end_time != null and query.end_time != ''">
AND wo.create_time <![CDATA[ <= ]]> #{query.end_time}
</if>
</where>
</select>
</mapper>

View File

@@ -3,6 +3,7 @@ package org.nl.wms.pdm.service.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author lyd
@@ -12,5 +13,8 @@ import java.io.Serializable;
public class PdmBdWorkorderQuery implements Serializable {
private String workorder_code;
private String point_code;
private String begin_time;
private String end_time;
private List<String> more_order_status;
}

View File

@@ -2,6 +2,7 @@ package org.nl.wms.pdm.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -17,6 +18,7 @@ import org.nl.wms.pdm.service.dto.PdmBdWorkorderQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Set;
/**
@@ -33,8 +35,6 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
@Override
public IPage<PdmBdWorkorder> queryAll(PdmBdWorkorderQuery query, PageQuery page){
// String workorder_code = ObjectUtil.isNotEmpty(whereJson.get("workorder_code")) ? whereJson.get("workorder_code").toString() : null;
// String point_code = ObjectUtil.isNotEmpty(whereJson.get("point_code")) ? whereJson.get("point_code").toString() : null;
IPage<PdmBdWorkorder> pages = new Page<>(page.getPage() + 1, page.getSize());
pages = pdmBdWorkorderMapper.selectPageLeftJoin(pages, query);
return pages;

View File

@@ -1,5 +1,6 @@
package org.nl.wms.sch.group.controller;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -64,4 +65,11 @@ public class SchBaseVehiclematerialgroupController {
schBaseVehiclematerialgroupService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/getGroup")
@Log("获取组盘信息管理")
@ApiOperation("获取组盘信息管理")
public ResponseEntity<Object> getGroup(@RequestBody JSONObject entity){
return new ResponseEntity<>(schBaseVehiclematerialgroupService.getGroup(entity), HttpStatus.OK);
}
}

View File

@@ -1,5 +1,6 @@
package org.nl.wms.sch.group.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -41,4 +42,11 @@ public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVeh
* @param ids /
*/
void deleteAll(Set<String> ids);
/**
* 根据载具编码返回数据
* @param entity
* @return
*/
SchBaseVehiclematerialgroup getGroup(JSONObject entity);
}

View File

@@ -146,5 +146,7 @@ public class SchBaseVehiclematerialgroup implements Serializable {
private String material_spec;
@TableField(exist = false)
private String region_name;
@TableField(exist = false)
private String group_bind_material_status_name;
}

View File

@@ -1,5 +1,6 @@
package org.nl.wms.sch.group.service.dao.mapper;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
@@ -12,4 +13,6 @@ import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
public interface SchBaseVehiclematerialgroupMapper extends BaseMapper<SchBaseVehiclematerialgroup> {
IPage<SchBaseVehiclematerialgroup> selectPageLeftJoin(IPage<SchBaseVehiclematerialgroup> pages, SchBaseVehiclematerialgroupQuery query);
SchBaseVehiclematerialgroup getGroup(JSONObject entity);
}

View File

@@ -18,5 +18,35 @@
<if test="query.workshop_code != null">
AND vg.workshop_code = #{query.workshop_code}
</if>
<if test="query.group_bind_material_status != null">
AND vg.group_bind_material_status = #{query.group_bind_material_status}
</if>
<if test="query.region_code != null">
AND vg.point_code IN (
SELECT p.point_code
FROM sch_base_point p
WHERE p.region_code = #{query.region_code}
)
</if>
</select>
<select id="getGroup" resultType="org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup" parameterType="com.alibaba.fastjson.JSONObject">
SELECT vg.*
, ma.material_name
, ma.material_code
, ma.material_spec
, po.region_name
, sd.label AS group_bind_material_status_name
FROM sch_base_vehiclematerialgroup vg
LEFT JOIN md_base_material ma ON vg.material_id = ma.material_id
LEFT JOIN sch_base_point po ON po.point_code = vg.point_code
LEFT JOIN sys_dict sd ON sd.code = 'group_bind_material_status' AND sd.value = vg.group_bind_material_status
WHERE 1 = 1
<if test="vehicle_code != null">
AND vg.vehicle_code = #{vehicle_code}
</if>
<if test="vehicle_type != null">
AND vg.vehicle_type = #{vehicle_type}
</if>
AND vg.group_bind_material_status = '2'
</select>
</mapper>

View File

@@ -14,4 +14,6 @@ import java.io.Serializable;
public class SchBaseVehiclematerialgroupQuery implements Serializable {
private String vehicle_code;
private String workshop_code;
private String region_code;
private String group_bind_material_status;
}

View File

@@ -3,6 +3,7 @@ package org.nl.wms.sch.group.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -73,4 +74,9 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
vehiclematerialgroupMapper.deleteBatchIds(ids);
}
@Override
public SchBaseVehiclematerialgroup getGroup(JSONObject entity) {
return vehiclematerialgroupMapper.getGroup(entity);
}
}

View File

@@ -0,0 +1,66 @@
package org.nl.wms.sch.interactivelog.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.sch.interactivelog.service.ISchBaseAcsandlmsinteractivelogService;
import org.nl.wms.sch.interactivelog.service.dao.SchBaseAcsandlmsinteractivelog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import java.util.Set;
/**
* @author lyd
* @date 2023-05-26
**/
@Slf4j
@RestController
@Api(tags = "ACS和LMS交互日志表管理")
@RequestMapping("/api/schBaseAcsandlmsinteractivelog")
public class SchBaseAcsandlmsinteractivelogController {
@Autowired
private ISchBaseAcsandlmsinteractivelogService schBaseAcsandlmsinteractivelogService;
@GetMapping
@Log("查询ACS和LMS交互日志表")
@ApiOperation("查询ACS和LMS交互日志表")
//@SaCheckPermission("@el.check('schBaseAcsandlmsinteractivelog:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(schBaseAcsandlmsinteractivelogService.queryAll(whereJson,page)),HttpStatus.OK);
}
@PostMapping
@Log("新增ACS和LMS交互日志表")
@ApiOperation("新增ACS和LMS交互日志表")
//@SaCheckPermission("@el.check('schBaseAcsandlmsinteractivelog:add')")
public ResponseEntity<Object> create(@Validated @RequestBody SchBaseAcsandlmsinteractivelog entity){
schBaseAcsandlmsinteractivelogService.create(entity);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PutMapping
@Log("修改ACS和LMS交互日志表")
@ApiOperation("修改ACS和LMS交互日志表")
//@SaCheckPermission("@el.check('schBaseAcsandlmsinteractivelog:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody SchBaseAcsandlmsinteractivelog entity){
schBaseAcsandlmsinteractivelogService.update(entity);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除ACS和LMS交互日志表")
@ApiOperation("删除ACS和LMS交互日志表")
//@SaCheckPermission("@el.check('schBaseAcsandlmsinteractivelog:del')")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
schBaseAcsandlmsinteractivelogService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -0,0 +1,43 @@
package org.nl.wms.sch.interactivelog.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.sch.interactivelog.service.dao.SchBaseAcsandlmsinteractivelog;
import java.util.Map;
import java.util.Set;
/**
* @description 服务接口
* @author lyd
* @date 2023-05-26
**/
public interface ISchBaseAcsandlmsinteractivelogService extends IService<SchBaseAcsandlmsinteractivelog> {
/**
* 查询数据分页
* @param whereJson 条件
* @param pageable 分页参数
* @return IPage<SchBaseAcsandlmsinteractivelog>
*/
IPage<SchBaseAcsandlmsinteractivelog> queryAll(Map whereJson, PageQuery pageable);
/**
* 创建
* @param entity /
*/
void create(SchBaseAcsandlmsinteractivelog entity);
/**
* 编辑
* @param entity /
*/
void update(SchBaseAcsandlmsinteractivelog entity);
/**
* 多选删除
* @param ids /
*/
void deleteAll(Set<String> ids);
}

View File

@@ -0,0 +1,73 @@
package org.nl.wms.sch.interactivelog.service.dao;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @description /
* @author lyd
* @date 2023-05-26
**/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sch_base_acsandlmsinteractivelog")
public class SchBaseAcsandlmsinteractivelog implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "log_id", type = IdType.NONE)
@ApiModelProperty(value = "日志标识")
private String log_id;
@ApiModelProperty(value = "请求名字")
private String request_name;
@ApiModelProperty(value = "生成任务的请求参数")
private String request_param;
@ApiModelProperty(value = "下发任务的请求参数")
private String response_param;
@ApiModelProperty(value = "链路标识")
private String acs_trace_id;
@ApiModelProperty(value = "请求描述")
private String request_desc;
@ApiModelProperty(value = "请求类型")
private String request_type;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "是否处理完成")
private Boolean is_finish;
@ApiModelProperty(value = "车间编码")
private String workshop_code;
@ApiModelProperty(value = "创建人")
private String create_id;
@ApiModelProperty(value = "创建人")
private String create_name;
@ApiModelProperty(value = "创建时间")
private String create_time;
@ApiModelProperty(value = "修改人")
private String update_id;
@ApiModelProperty(value = "修改人")
private String update_name;
@ApiModelProperty(value = "修改时间")
private String update_time;
}

View File

@@ -0,0 +1,12 @@
package org.nl.wms.sch.interactivelog.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.wms.sch.interactivelog.service.dao.SchBaseAcsandlmsinteractivelog;
/**
* @author lyd
* @date 2023-05-26
**/
public interface SchBaseAcsandlmsinteractivelogMapper extends BaseMapper<SchBaseAcsandlmsinteractivelog> {
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.sch.interactivelog.service.dao.mapper.SchBaseAcsandlmsinteractivelogMapper">
</mapper>

View File

@@ -0,0 +1,61 @@
package org.nl.wms.sch.interactivelog.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @description /
* @author lyd
* @date 2023-05-26
**/
@Data
public class SchBaseAcsandlmsinteractivelogDto implements Serializable {
/** 日志标识 */
private String log_id;
/** 请求名字 */
private String request_name;
/** 生成任务的请求参数 */
private String request_param;
/** 下发任务的请求参数 */
private String response_param;
/** 链路标识 */
private String acs_trace_id;
/** 请求描述 */
private String request_desc;
/** 请求类型 */
private String request_type;
/** 备注 */
private String remark;
/** 是否处理完成 */
private Boolean is_finish;
/** 车间编码 */
private String workshop_code;
/** 创建人 */
private String create_id;
/** 创建人 */
private String create_name;
/** 创建时间 */
private String create_time;
/** 修改人 */
private String update_id;
/** 修改人 */
private String update_name;
/** 修改时间 */
private String update_time;
}

View File

@@ -0,0 +1,12 @@
package org.nl.wms.sch.interactivelog.service.dto;
import org.nl.common.domain.query.BaseQuery;
import org.nl.wms.sch.interactivelog.service.dao.SchBaseAcsandlmsinteractivelog;
/**
* @author lyd
* @date 2023-05-26
**/
public class SchBaseAcsandlmsinteractivelogQuery extends BaseQuery<SchBaseAcsandlmsinteractivelog> {
}

View File

@@ -0,0 +1,80 @@
package org.nl.wms.sch.interactivelog.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.sch.interactivelog.service.ISchBaseAcsandlmsinteractivelogService;
import org.nl.wms.sch.interactivelog.service.dao.mapper.SchBaseAcsandlmsinteractivelogMapper;
import org.nl.wms.sch.interactivelog.service.dao.SchBaseAcsandlmsinteractivelog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.Set;
/**
* @description 服务实现
* @author lyd
* @date 2023-05-26
**/
@Slf4j
@Service
public class SchBaseAcsandlmsinteractivelogServiceImpl extends ServiceImpl<SchBaseAcsandlmsinteractivelogMapper, SchBaseAcsandlmsinteractivelog> implements ISchBaseAcsandlmsinteractivelogService {
@Autowired
private SchBaseAcsandlmsinteractivelogMapper schBaseAcsandlmsinteractivelogMapper;
@Override
public IPage<SchBaseAcsandlmsinteractivelog> queryAll(Map whereJson, PageQuery page){
LambdaQueryWrapper<SchBaseAcsandlmsinteractivelog> lam = new LambdaQueryWrapper<>();
IPage<SchBaseAcsandlmsinteractivelog> pages = new Page<>(page.getPage() + 1, page.getSize());
schBaseAcsandlmsinteractivelogMapper.selectPage(pages, lam);
return pages;
}
@Override
public void create(SchBaseAcsandlmsinteractivelog entity) {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
entity.setLog_id(IdUtil.getSnowflake(1, 1).nextIdStr());
entity.setCreate_id(currentUserId);
entity.setCreate_name(nickName);
entity.setCreate_time(now);
entity.setUpdate_id(currentUserId);
entity.setUpdate_name(nickName);
entity.setUpdate_time(now);
schBaseAcsandlmsinteractivelogMapper.insert(entity);
}
@Override
public void update(SchBaseAcsandlmsinteractivelog entity) {
SchBaseAcsandlmsinteractivelog dto = schBaseAcsandlmsinteractivelogMapper.selectById(entity.getLog_id());
if (dto == null) throw new BadRequestException("被删除或无权限,操作失败!");
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
entity.setUpdate_id(currentUserId);
entity.setUpdate_name(nickName);
entity.setUpdate_time(now);
schBaseAcsandlmsinteractivelogMapper.updateById(entity);
}
@Override
public void deleteAll(Set<String> ids) {
// 真删除
schBaseAcsandlmsinteractivelogMapper.deleteBatchIds(ids);
}
}

View File

@@ -3,10 +3,18 @@ package org.nl.wms.sch.point.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import java.util.List;
/**
* @author lyd
* @date 2023-05-15
**/
public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
/**
* 批量禁用启用
* @param pointCodes
* @param used
*/
void batchChangeUsed(List<String> pointCodes, Boolean used);
}

View File

@@ -2,4 +2,14 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper">
<update id="batchChangeUsed">
UPDATE sch_base_point
SET is_used = #{used}
<where>
point_code IN
<foreach collection="pointCodes" item="code" separator="," open="(" close=")">
#{code}
</foreach>
</where>
</update>
</mapper>

View File

@@ -1,7 +1,9 @@
package org.nl.wms.sch.point.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -26,6 +28,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;
import java.util.stream.Collectors;
/**
* @description 服务实现
@@ -149,7 +152,17 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
@Override
public void changeUsed(JSONObject jsonObject) {
// 不可能为空
JSONArray data = jsonObject.getJSONArray("data");
Boolean used = jsonObject.getBoolean("used");
Assert.notNull(data, "数据为空!");
Assert.notNull(used, "数据为空!");
List<SchBasePoint> schBasePoints = JSONArray.parseArray(JSONArray.toJSONString(data), SchBasePoint.class);
// 获取所有pointCode
List<String> pointCodes = schBasePoints.stream()
.map(SchBasePoint::getPoint_code)
.collect(Collectors.toList());
pointMapper.batchChangeUsed(pointCodes, used);
}
@Override

View File

@@ -24,13 +24,19 @@ public class SchBaseTaskconfig implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "config_code", type = IdType.NONE)
@TableId(value = "config_id", type = IdType.NONE)
@ApiModelProperty(value = "配置标识")
private String config_id;
@ApiModelProperty(value = "配置编码")
private String config_code;
@ApiModelProperty(value = "配置名称")
private String config_name;
@ApiModelProperty(value = "路由编码")
private String route_plan_code;
@ApiModelProperty(value = "任务取放类型")
private String task_qf_type;

View File

@@ -12,12 +12,18 @@ import java.io.Serializable;
@Data
public class SchBaseTaskconfigDto implements Serializable {
/** 配置标识 */
private String config_id;
/** 配置编码 */
private String config_code;
/** 配置名称 */
private String config_name;
/** 路由编码 */
private String route_plan_code;
/** 任务取放类型 */
private String task_qf_type;

View File

@@ -56,6 +56,13 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
String end_time = ObjectUtil.isNotEmpty(whereJson.get("end_time")) ? whereJson.get("end_time").toString() : null;
String more_task_status = ObjectUtil.isNotEmpty(whereJson.get("more_task_status")) ? whereJson.get("more_task_status").toString() : null;
List<String> collect = ObjectUtil.isNotEmpty(more_task_status)?Arrays.stream(more_task_status.split(",")).collect(Collectors.toList()):null;
String unFinished = null;
if (collect != null) {
if (collect.contains(TaskStatus.UNFINISHED.getCode())) {
collect = null;
unFinished = TaskStatus.EXECUTING.getCode();
}
}
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(ObjectUtil.isNotEmpty(task_code), SchBaseTask::getTask_code, task_code)
.eq(ObjectUtil.isNotEmpty(vehicle_code), SchBaseTask::getVehicle_code, vehicle_code)
@@ -63,6 +70,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
.ge(ObjectUtil.isNotEmpty(begin_time), SchBaseTask::getCreate_time, begin_time)
.le(ObjectUtil.isNotEmpty(end_time), SchBaseTask::getCreate_time, end_time)
.in(ObjectUtil.isNotEmpty(collect), SchBaseTask::getTask_status, collect)
.le(ObjectUtil.isNotEmpty(unFinished), SchBaseTask::getTask_status, unFinished)
.orderByDesc(SchBaseTask::getUpdate_time);
IPage<SchBaseTask> pages = new Page<>(page.getPage() + 1, page.getSize());
schBaseTaskMapper.selectPage(pages, lam);
@@ -180,7 +188,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
//...
//4、叫空载具
//...
AbstractTask task = taskFactory.getTask("YZSKTask");
AbstractTask task = taskFactory.getTask("HNMLTask");
// 执行创建任务
task.apply(param);
}
@@ -208,7 +216,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
throw new BadRequestException("任务已完成或已取消!");
}
// 根据配置去工厂类获得类对象
String processing_class = "YZSKTask";
String processing_class = "HNMLTask";
String message = "";
// 根据任务类型获取对应的任务操作类
AbstractTask abstractTask = taskFactory.getTask(processing_class);

View File

@@ -1,6 +1,7 @@
package org.nl.wms.sch.task.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -77,6 +78,7 @@ public class SchBaseTaskconfigServiceImpl extends ServiceImpl<SchBaseTaskconfigM
entity.setNext_region_str(nextRegion);
}
entity.setConfig_id(IdUtil.getSnowflake(1,1).nextIdStr());
entity.setCreate_id(currentUserId);
entity.setCreate_name(nickName);
entity.setCreate_time(now);
@@ -88,7 +90,7 @@ public class SchBaseTaskconfigServiceImpl extends ServiceImpl<SchBaseTaskconfigM
@Override
public void update(SchBaseTaskconfig entity) {
SchBaseTaskconfig dto = schBaseTaskconfigMapper.selectById(entity.getConfig_code());
SchBaseTaskconfig dto = schBaseTaskconfigMapper.selectById(entity.getConfig_id());
if (dto == null) throw new BadRequestException("被删除或无权限,操作失败!");
if (ObjectUtil.isAllEmpty(entity.getStart_region_strs(), entity.getNext_region_strs()))
throw new BadRequestException("起点区域和终点区域不能同时为空!");

View File

@@ -88,10 +88,11 @@ public abstract class AbstractTask {
}
private AcsTaskDto setTask(String config_code, AcsTaskDto taskDto) {
SchBaseTaskconfig taskConfig = taskConfigService.getById(config_code);
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
.eq(SchBaseTaskconfig::getConfig_code, config_code));
taskDto.setPriority(taskConfig.getPriority());
taskDto.setTask_type(taskConfig.getAcs_task_type());
taskDto.setRoute_plan_code("normal");
taskDto.setRoute_plan_code(taskConfig.getRoute_plan_code());
return taskDto;
}
@@ -159,9 +160,10 @@ public abstract class AbstractTask {
// 申请任务
SchBaseTask task = new SchBaseTask(); // 任务实体
String apply_point_code = param.getString("device_code");
String config_code = "YZSKTask";
String config_code = "HNMLTask";
// 1、校验数据
SchBaseTaskconfig taskConfig = taskConfigService.getById(config_code);
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
.eq(SchBaseTaskconfig::getConfig_code, config_code));
// 最大任务数
Integer tcmn = taskConfig.getTask_create_max_num();
List<SchBaseTask> unFinishTasksByTaskConfig = taskService

View File

@@ -6,7 +6,8 @@ public enum TaskStatus {
ISSUED("3", "下发", "下发"),
EXECUTING("4", "执行中", "执行中"),
FINISHED("5", "完成", "完成"),
CANCELED("6", "已取消", "已取消");
CANCELED("6", "已取消", "已取消"),
UNFINISHED("7", "未完成", "未完成");
TaskStatus(String code, String name, String desc) {

View File

@@ -18,6 +18,7 @@ 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.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.sch.task_manage.enums.GroupStatusEnum;
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
@@ -79,7 +80,8 @@ public class HNMLTask extends AbstractTask {
if (status.equals(TaskStatus.FINISHED)) { // 完成
PdmBdWorkorder workorderCode =
ObjectUtil.isNotEmpty(extGroupData.getString("workorder_code"))
? workorderService.getById(extGroupData.getString("workorder_code"))
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>()
.eq(PdmBdWorkorder::getWorkorder_code, extGroupData.getString("workorder_code")))
: null;
// 要把数据存到组盘表
SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
@@ -108,6 +110,7 @@ public class HNMLTask extends AbstractTask {
groupEntity.setPcsn( DateUtil.format(DateUtil.date(), "yyyyMMdd"));
groupEntity.setInstorage_time(DateUtil.now());
groupEntity.setTask_code(taskObj.getTask_code());
groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定
groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
groupEntity.setIs_delete(false);
vehiclematerialgroupService.create(groupEntity);
@@ -147,7 +150,8 @@ public class HNMLTask extends AbstractTask {
// 获取任务
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
// 配置信息
SchBaseTaskconfig taskConfig = taskConfigService.getById(TASK_CONFIG_CODE);
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
for (SchBaseTask task : tasks) {
List<String> nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList());
String extGroupData = task.getExt_group_data();

View File

@@ -86,7 +86,8 @@ public class HNQKTask extends AbstractTask {
private SchBasePoint findStartPoint(List<String> startRegionStr, JSONObject extGroupData) {
String workorderCode = extGroupData.getString("workorder_code");
PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode)
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>().eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>()
.eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
: null;
String vehicleType = ObjectUtil.isNotEmpty(workOrder) && ObjectUtil.isNotEmpty(workOrder.getVehicle_type())
? workOrder.getVehicle_type()

View File

@@ -84,7 +84,8 @@ public class YZSKTask extends AbstractTask {
private SchBasePoint findNextPoint(List<String> nextRegionStr, JSONObject extGroupData) {
String workorderCode = extGroupData.getString("workorder_code");
PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode)
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>().eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>()
.eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
: null;
String vehicleType = ObjectUtil.isNotEmpty(workOrder) && ObjectUtil.isNotEmpty(workOrder.getVehicle_type())
? workOrder.getVehicle_type()

View File

@@ -4,25 +4,60 @@
<div class="head-container">
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<label class="el-form-item-label">工单编号</label>
<el-input
v-model="query.workorder_code"
clearable
placeholder="工单编号"
style="width: 185px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<label class="el-form-item-label">设备编码</label>
<el-input
v-model="query.point_code"
clearable
placeholder="设备编码"
style="width: 185px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<rrOperation :crud="crud" />
<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-date-picker>
</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" />
@@ -228,7 +263,11 @@
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_name',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_name',crud.data,'物料标识')" />
<el-table-column prop="vehicle_type" label="载具类型" :min-width="flexWidth('vehicle_type',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="planproducestart_date"
label="计划开始时间"
@@ -254,8 +293,6 @@
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 ? '是' : '否' }}
@@ -436,6 +473,13 @@ export default {
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()
}
}
}

View File

@@ -25,6 +25,19 @@
/>
</el-select>
</el-form-item>
<el-form-item label="所属区域" prop="region_code">
<el-select
v-model="query.region_code"
placeholder="请选择"
@change="hand"
>
<el-option
v-for="item in regionList"
:label="item.region_name"
:value="item.region_code"
/>
</el-select>
</el-form-item>
<el-form-item label="载具编码">
<el-input
v-model="query.vehicle_code"
@@ -34,6 +47,22 @@
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="绑定状态">
<el-select
v-model="query.group_bind_material_status"
clearable
size="mini"
placeholder="绑定状态"
class="filter-item"
@change="hand"
>
<el-option
v-for="item in dict.group_bind_material_status"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<rrOperation />
</el-form>
</div>
@@ -202,6 +231,11 @@
<el-table-column prop="pcsn" label="批次" :min-width="flexWidth('pcsn',crud.data,'批次')" />
<el-table-column prop="workorder_code" label="工单编码" :min-width="flexWidth('workorder_code',crud.data,'工单编码')" />
<el-table-column prop="instorage_time" label="入库时间" :min-width="flexWidth('instorage_time',crud.data,'入库时间')" />
<el-table-column prop="group_bind_material_status" label="绑定状态" :min-width="flexWidth('group_bind_material_status',crud.data,'入库时间')">
<template slot-scope="scope">
{{ dict.label.group_bind_material_status[scope.row.group_bind_material_status] }}
</template>
</el-table-column>
<el-table-column prop="standing_time" label="静置时间(分钟)" :min-width="flexWidth('standing_time',crud.data,'静置时间(分钟)')" />
<el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
@@ -254,6 +288,7 @@ import crudMdBaseWorkShop from '@/views/wms/basedata/workshop/mdBaseWorkshop'
import MaterialDialog from '@/views/wms/sch/group/MaterialDialog.vue'
import WorkOrderDialog from '@/views/wms/sch/group/WorkOrderDialog.vue'
import crudSchBasePoint from '@/views/wms/sch/point/schBasePoint'
import crudSchBaseRegion from '@/views/wms/sch/region/schBaseRegion'
const defaultForm = {
group_id: null,
@@ -289,14 +324,14 @@ const defaultForm = {
}
export default {
name: 'VehicleMaterialGroup',
dicts: ['group_status'],
dicts: ['group_status', 'group_bind_material_status'],
components: { WorkOrderDialog, MaterialDialog, pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
title: '组盘信息管理',
url: 'api/schBaseVehiclematerialgroup',
idField: 'vehicle_code',
idField: 'group_id',
sort: 'vehicle_code,desc',
optShow: {
add: true,
@@ -305,12 +340,16 @@ export default {
download: false,
reset: true
},
query: {
group_bind_material_status: '2'
},
crudMethod: { ...crudSchBaseVehiclematerialgroup }
})
},
created() {
this.getWorkShopList()
this.getPointList()
this.getRegionList()
},
data() {
return {
@@ -320,6 +359,7 @@ export default {
},
workShopList: [],
pointList: [],
regionList: [],
choose: '物料',
materialDialog: false,
workOrderDialog: false
@@ -335,6 +375,11 @@ export default {
this.workShopList = res
})
},
getRegionList() {
crudSchBaseRegion.getRegionList().then(res => {
this.regionList = res
})
},
getMaterial() {
if (this.choose === '物料') {
this.materialDialog = true
@@ -365,7 +410,10 @@ export default {
setPointName(data) {
var point = this.pointList.find(item => item.point_code === data)
this.form.point_name = point.point_name
}
},
hand(value) {
this.crud.toQuery()
},
}
}
</script>

View File

@@ -24,4 +24,12 @@ export function edit(data) {
})
}
export default { add, edit, del }
export function getGroup(data) {
return request({
url: 'api/schBaseVehiclematerialgroup/getGroup',
method: 'post',
data
})
}
export default { add, edit, del, getGroup }

View File

@@ -0,0 +1,183 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog
:close-on-click-modal="false"
:before-close="crud.cancelCU"
:visible.sync="crud.status.cu > 0"
:title="crud.status.title"
width="500px"
>
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
<el-form-item label="请求名字">
<el-input v-model="form.request_name" style="width: 370px;" />
</el-form-item>
<el-form-item label="生成任务的请求参数">
<el-input v-model="form.request_param" style="width: 370px;" />
</el-form-item>
<el-form-item label="下发任务的请求参数">
<el-input v-model="form.response_param" style="width: 370px;" />
</el-form-item>
<el-form-item label="链路标识">
<el-input v-model="form.acs_trace_id" style="width: 370px;" />
</el-form-item>
<el-form-item label="请求描述">
<el-input v-model="form.request_desc" style="width: 370px;" />
</el-form-item>
<el-form-item label="请求类型">
<el-input v-model="form.request_type" style="width: 370px;" />
</el-form-item>
<el-form-item label="备注">
<el-input v-model="form.remark" style="width: 370px;" />
</el-form-item>
<el-form-item label="是否处理完成">
<el-input v-model="form.is_finish" style="width: 370px;" />
</el-form-item>
<el-form-item label="车间编码">
<el-input v-model="form.workshop_code" style="width: 370px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @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="request_name"
label="请求名字"
:min-width="flexWidth('request_name',crud.data,'请求名字')"
/>
<el-table-column
prop="request_param"
label="生成任务的请求参数"
:min-width="flexWidth('request_param',crud.data,'生成任务的请求参数')"
/>
<el-table-column
prop="response_param"
label="下发任务的请求参数"
:min-width="flexWidth('response_param',crud.data,'下发任务的请求参数')"
/>
<el-table-column
prop="acs_trace_id"
label="链路标识"
:min-width="flexWidth('acs_trace_id',crud.data,'链路标识')"
/>
<el-table-column
prop="request_desc"
label="请求描述"
:min-width="flexWidth('request_desc',crud.data,'请求描述')"
/>
<el-table-column
prop="request_type"
label="请求类型"
:min-width="flexWidth('request_type',crud.data,'请求类型')"
/>
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
<el-table-column
prop="is_finish"
label="是否处理完成"
:min-width="flexWidth('is_finish',crud.data,'是否处理完成')"
/>
<el-table-column
prop="workshop_code"
label="车间编码"
:min-width="flexWidth('workshop_code',crud.data,'车间编码')"
/>
<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>
</div>
</template>
<script>
import crudSchBaseAcsandlmsinteractivelog from './schBaseAcsandlmsinteractivelog'
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'
const defaultForm = {
log_id: null,
request_name: null,
request_param: null,
response_param: null,
acs_trace_id: null,
request_desc: null,
request_type: null,
remark: null,
is_finish: null,
workshop_code: null,
create_id: null,
create_name: null,
create_time: null,
update_id: null,
update_name: null,
update_time: null
}
export default {
name: 'InteractiveLog',
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
title: 'ACS和LMS交互日志表',
url: 'api/schBaseAcsandlmsinteractivelog',
idField: 'log_id',
sort: 'log_id,desc',
crudMethod: { ...crudSchBaseAcsandlmsinteractivelog }
})
},
data() {
return {
permission: {},
rules: {}
}
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,27 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/schBaseAcsandlmsinteractivelog',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/schBaseAcsandlmsinteractivelog/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/schBaseAcsandlmsinteractivelog',
method: 'put',
data
})
}
export default { add, edit, del }

View File

@@ -0,0 +1,219 @@
<template>
<el-dialog
title="点位详情"
append-to-body
fullscreen
:visible.sync="dialogVisible"
@open="open"
@close="close"
>
<el-card class="box-card" shadow="never">
<div slot="header" class="clearfix">
<span style="font-weight: bold;font-size: 15px;">点位信息:</span>
<!-- <el-button style="float: right; padding: 3px 10px;" type="text">操作按钮</el-button>-->
</div>
<el-form ref="form" disabled :inline="true" :model="form" :rules="rules" size="mini" label-width="100px">
<el-form-item label="区域编码">
<el-input v-model="form.region_code" style="width: 200px;"/>
</el-form-item>
<el-form-item label="区域名称">
<el-input v-model="form.region_name" style="width: 200px;"/>
</el-form-item>
<el-form-item label="点位编码">
<el-input v-model="form.point_code" style="width: 200px;"/>
</el-form-item>
<el-form-item label="点位名称">
<el-input v-model="form.point_name" style="width: 200px;"/>
</el-form-item>
<el-form-item label="点位类型">
<el-input v-model="form.point_type_name" style="width: 200px;"/>
</el-form-item>
<el-form-item label="点位状态">
<el-input v-model="form.point_status_name" style="width: 200px;"/>
</el-form-item>
<el-form-item label="载具类型">
<el-input v-model="form.vehicle_type" style="width: 200px;"/>
</el-form-item>
<el-form-item label="载具编码">
<el-input v-model="form.vehicle_code" style="width: 200px;"/>
</el-form-item>
<el-form-item label="载具数量">
<el-input v-model="form.vehicle_qty" style="width: 200px;"/>
</el-form-item>
</el-form>
</el-card>
<el-card class="box-card" shadow="always">
<div slot="header" class="clearfix">
<span style="font-weight: bold;font-size: 15px;">库存信息:</span>
<!-- <el-button style="float: right; padding: 3px 10px;" type="text">操作按钮</el-button>-->
</div>
<el-form ref="form" disabled :inline="true" :model="groups" :rules="rules" size="mini" label-width="100px">
<el-form-item label="物料编码">
<el-input v-model="groups.material_code" style="width: 200px;"/>
</el-form-item>
<el-form-item label="物料名称">
<el-input v-model="groups.material_name" style="width: 200px;"/>
</el-form-item>
<el-form-item label="物料规格">
<el-input v-model="groups.material_spec" style="width: 200px;"/>
</el-form-item>
<el-form-item label="物料批次">
<el-input v-model="groups.pcsn" style="width: 200px;"/>
</el-form-item>
<el-form-item label="物料数量">
<el-input v-model="groups.material_qty" style="width: 200px;"/>
</el-form-item>
<el-form-item label="物料重量">
<el-input v-model="groups.material_weight" style="width: 200px;"/>
</el-form-item>
<el-form-item label="设备">
<el-input v-model="groups.point_name" style="width: 200px;"/>
</el-form-item>
<el-form-item label="入库时间">
<el-input v-model="groups.instorage_time" style="width: 200px;"/>
</el-form-item>
<el-form-item label="静置时间(分)">
<el-input v-model="groups.standing_time" style="width: 200px;"/>
</el-form-item>
<el-form-item label="绑定状态">
<el-input v-model="groups.group_bind_material_status_name" style="width: 200px;"/>
</el-form-item>
</el-form>
</el-card>
</el-dialog>
</template>
<script>
import crudGroupVehicle from '@/views/wms/sch/group/schBaseVehiclematerialgroup'
import { crud } from '@crud/crud'
export default {
name: 'ViewDialog',
components: {},
dicts: ['group_bind_material_status'],
mixins: [crud()],
props: {
dialogShow: {
type: Boolean,
default: false
}
},
data() {
return {
dialogVisible: false,
classes3: [],
parentData: {},
form: {
point_code: null,
point_name: null,
region_code: null,
region_name: null,
point_type: null,
point_status: null,
can_material_type: null,
can_vehicle_type: null,
vehicle_max_qty: null,
vehicle_type: null,
vehicle_code: null,
vehicle_qty: 0,
block_num: null,
row_num: null,
col_num: null,
layer_num: null,
in_order_seq: null,
out_order_seq: null,
in_empty_seq: null,
out_empty_seq: null,
parent_point_code: null,
ext_point_code: null,
ing_task_code: null,
is_has_workder: 'true',
workshop_code: null,
is_auto: 'true',
remark: null,
is_used: 'true',
can_vehicle_types: null
},
groups: {
group_id: null,
vehicle_code: null,
material_id: null,
child_vehicle_code: null,
source_vehicle_code: null,
point_code: null,
point_name: null,
is_full: true,
pcsn: null,
instorage_time: null,
standing_time: null,
material_qty: null,
material_weight: null,
workorder_code: null,
group_number: null,
task_code: null,
ext_data: null,
workshop_code: null,
group_status: null,
table_name: null,
group_bind_material_status_name: null,
table_fk: null,
table_fk_id: null,
buss_move_id: null,
is_first_flow_task: true,
flow_code: null,
flow_num: null,
before_task_code: null,
next_task_code: null,
remark: null,
is_delete: false
},
workprocedureList: [],
tableData: [],
rules: {}
}
},
watch: {
dialogShow: {
handler(newValue) {
this.dialogVisible = newValue
}
}
},
methods: {
open() {
},
close() {
this.$emit('AddChanged')
},
setParentData(parentData) {
if (parentData) {
console.log(parentData)
this.dialogVisible = true
this.form = parentData
// 根据载具编码获取信息
const param = {
vehicle_code: parentData.vehicle_code,
vehicle_type: parentData.vehicle_type
}
crudGroupVehicle.getGroup(param).then(res => {
this.groups = res
})
}
}
}
}
</script>
<style scoped>
::v-deep .el-card__header {
padding: 5px 0 5px 10px;
background-color: #f8f8f9;
}
::v-deep .el-card__body {
padding: 10px 0 10px 0;
}
</style>

View File

@@ -281,18 +281,29 @@
<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">
<el-table-column v-permission="[]" label="操作" width="200px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
style="display: inline"
:data="scope.row"
:permission="permission"
/>
<el-button
v-if="showButton(scope.row.point_status)"
size="mini"
type="text"
icon="el-icon-view"
@click="toView(scope.row)"
>
查看详情
</el-button>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
<ViewDialog ref="viewDialog"/>
</div>
</template>
@@ -305,6 +316,7 @@ 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 ViewDialog from '@/views/wms/sch/point/ViewDialog.vue'
const defaultForm = {
point_code: null,
@@ -340,7 +352,7 @@ const defaultForm = {
export default {
name: 'SchBasePoint',
dicts: ['vehicle_type', 'TrueOrFalse'],
components: { pagination, crudOperation, rrOperation, udOperation },
components: { ViewDialog, pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
@@ -453,6 +465,17 @@ export default {
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
})
},
showButton(point_status) {
if (point_status && point_status === '2') {
return true
}
return false
},
toView(row) {
if (row) {
this.$refs.viewDialog.setParentData(row)
}
}
}
}

View File

@@ -151,6 +151,20 @@
<el-form-item label="终点前缀">
<el-input v-model="form.next_region_pre" style="width: 240px;" />
</el-form-item>
<el-form-item label="任务方向" prop="acs_task_type">
<el-select
v-model="form.task_direction"
size="mini"
placeholder="任务方向"
style="width: 240px;"
>
<el-option
v-for="item in dict.task_direction"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="是否校验工单">
<el-radio-group v-model="form.is_check_workorder" style="width: 240px">
<el-radio :label="true">是</el-radio>
@@ -211,6 +225,9 @@
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="路由编码" prop="config_code">
<el-input v-model="form.route_plan_code" style="width: 240px;" />
</el-form-item>
<el-form-item label="未完成通知时间" prop="unfinish_notify_time">
<el-input-number
v-model.number="form.unfinish_notify_time"
@@ -272,6 +289,12 @@
</el-table-column>
<el-table-column prop="start_point_pre" label="起点前缀" :min-width="flexWidth('start_point_pre',crud.data,'起点前缀')" />
<el-table-column prop="next_region_pre" label="终点前缀" :min-width="flexWidth('next_region_pre',crud.data,'终点前缀')" />
<el-table-column prop="route_plan_code" label="路由编码" :min-width="flexWidth('route_plan_code',crud.data,'终点前缀')" />
<el-table-column prop="task_direction" label="任务方向" :min-width="flexWidth('task_direction',crud.data,'终点前缀')" >
<template slot-scope="scope">
{{ dict.label.task_direction[scope.row.task_direction] }}
</template>
</el-table-column>
<el-table-column prop="is_check_workorder" label="是否校验工单" :min-width="flexWidth('is_check_workorder',crud.data,'是否校验工单')">
<template slot-scope="scope">
{{ scope.row.is_check_workorder?'是':'否' }}
@@ -354,6 +377,7 @@ import crudMdBaseWorkShop from '@/views/wms/basedata/workshop/mdBaseWorkshop'
import crudSchBaseRegion from '@/views/wms/sch/region/schBaseRegion'
const defaultForm = {
config_id: null,
config_code: null,
config_name: null,
task_qf_type: null,
@@ -381,7 +405,9 @@ const defaultForm = {
is_group_congrol_issue_seq: false,
unfinish_notify_time: null,
sql_param: null,
route_plan_code: null,
workshop_code: null,
task_direction: null,
remark: null,
is_used: true,
is_delete: false,
@@ -390,7 +416,7 @@ const defaultForm = {
}
export default {
name: 'TaskConfig',
dicts: ['task_qf_type', 'acs_task_type'],
dicts: ['task_qf_type', 'acs_task_type', 'task_direction'],
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {

View File

@@ -39,43 +39,16 @@
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<!-- <el-form-item label="任务类型">-->
<!-- <treeselect-->
<!-- v-model="query.task_type"-->
<!-- :load-options="loadChildNodes"-->
<!-- :options="classes1"-->
<!-- style="width: 180px"-->
<!-- placeholder="请选择"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="完成方式">-->
<!-- <el-select-->
<!-- v-model="query.finished_type"-->
<!-- style="width: 180px"-->
<!-- placeholder="完成方式"-->
<!-- class="filter-item"-->
<!-- clearable-->
<!-- @change="hand"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in finishTypeList"-->
<!-- :key="item.code"-->
<!-- clearable-->
<!-- :label="item.name"-->
<!-- :value="item.code"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="创建时间">
<el-date-picker
v-model="query.createTime"
type="daterange"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
@change="crud.toQuery"
/>
@change="crud.toQuery">
</el-date-picker>
</el-form-item>
<el-form-item label="任务状态">
<el-select