opt: 优化任务优先级,组盘管理的页面显示
This commit is contained in:
@@ -135,4 +135,11 @@ public class HandheldController {
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/selectPointByRegion")
|
||||
@Log("根据工序查询设备点位")
|
||||
public ResponseEntity<Object> selectPointByRegion(String regionCode) {
|
||||
return new ResponseEntity<>(handheldService.selectPointByRegion(regionCode),HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -107,4 +107,10 @@ public interface HandheldService {
|
||||
* @return
|
||||
*/
|
||||
boolean isLock();
|
||||
|
||||
/**
|
||||
* 根据工序获取所有设备点位
|
||||
* @return
|
||||
*/
|
||||
List<JSONObject> selectPointByRegion(String regionCode);
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@ import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.task.TaskFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
@@ -394,29 +395,39 @@ public class HandheldServiceImpl implements HandheldService {
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
||||
public String pointLock(JSONObject param) {
|
||||
Assert.noNullElements(new Object[]{param.getString("region_code"), param.getString("status")}, "参数不能为空!");
|
||||
JSONArray region_code = param.getJSONArray("region_code");
|
||||
String region_code = param.getString("region_code");
|
||||
String status = param.getString("status");
|
||||
region_code.stream().forEach(region -> {
|
||||
String s = StrUtil.toString(region);
|
||||
SchBaseRegion schBaseRegion = iSchBaseRegionService.getOne(Wrappers.lambdaQuery(SchBaseRegion.class)
|
||||
.eq(SchBaseRegion::getRegion_code, s));
|
||||
if (ObjectUtil.isEmpty(schBaseRegion)) throw new BadRequestException("该区域不存在!");
|
||||
List<String> pointCodes = iSchBasePointService.getByRegionCode(s);
|
||||
if (StrUtil.equals(status, "0")) {
|
||||
iSchBasePointService.releasePoint(s);
|
||||
iSchBaseTaskService.updateTaskStatusByPointCode(pointCodes);
|
||||
} else if (StrUtil.equals(status, "1")) {
|
||||
boolean is_executing = iSchBaseTaskService.selectByPointCodeAndStatus(pointCodes);
|
||||
if (is_executing) {
|
||||
throw new BadRequestException("该区域有任务正在执行,请等待任务执行完成再锁定!");
|
||||
}
|
||||
iSchBaseTaskService.selectByPointCodeAndTaskStatus(pointCodes);
|
||||
iSchBasePointService.lockPoint(s);
|
||||
SchBaseRegion schBaseRegion = iSchBaseRegionService.getOne(Wrappers.lambdaQuery(SchBaseRegion.class)
|
||||
.eq(SchBaseRegion::getRegion_code, region_code));
|
||||
if (ObjectUtil.isEmpty(schBaseRegion)) throw new BadRequestException("该区域不存在!");
|
||||
List<String> pointCodes = iSchBasePointService.getByRegionCode(region_code);
|
||||
if (StrUtil.equals(status, "0")) {
|
||||
iSchBaseTaskService.updateTaskStatusByPointCode(pointCodes);
|
||||
if (param.getJSONArray("pointCodes").size() > 0) {
|
||||
param.getJSONArray("pointCodes").stream().forEach(pointCode -> {
|
||||
cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(pointCode);
|
||||
iSchBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, jsonObject.get("vehicle_code")));
|
||||
iSchBasePointService.update(Wrappers.lambdaUpdate(SchBasePoint.class)
|
||||
.eq(SchBasePoint::getPoint_code, jsonObject.get("point_code"))
|
||||
.set(SchBasePoint::getPoint_status, GoodsEnum.OUT_OF_STOCK.getValue())
|
||||
.set(SchBasePoint::getIs_lock, false)
|
||||
.set(SchBasePoint::getVehicle_code, null));
|
||||
});
|
||||
}
|
||||
});
|
||||
return "操作成功";
|
||||
iSchBasePointService.updatePointLock(region_code, false);
|
||||
} else if (StrUtil.equals(status, "1")) {
|
||||
boolean is_executing = iSchBaseTaskService.selectByPointCodeAndStatus(pointCodes);
|
||||
if (is_executing) {
|
||||
throw new BadRequestException("该区域有任务正在执行,请等待任务执行完成再锁定!");
|
||||
}
|
||||
iSchBaseTaskService.selectByPointCodeAndTaskStatus(pointCodes);
|
||||
iSchBasePointService.updatePointLock(region_code, true);
|
||||
}
|
||||
return "succeed";
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -625,4 +636,11 @@ public class HandheldServiceImpl implements HandheldService {
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<JSONObject> selectPointByRegion(String regionCode) {
|
||||
Assert.notNull(regionCode, "参数不能为空!");
|
||||
return iSchBasePointService.selectPointByRegion(regionCode);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -132,7 +132,7 @@ public class SortingServiceImpl implements SortingService {
|
||||
//TODO:呼叫两个空笼框
|
||||
if (SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)) {
|
||||
taskParam.put("device_code", pointCode + "_01");
|
||||
taskParam.put("task_seq", "1");
|
||||
taskParam.put("task_seq", "2");
|
||||
taskParam.put("config_code", "SortingTwoCNTTask");
|
||||
taskParam.put("task_code", task_code + "A");
|
||||
connectorTask.apply(taskParam);
|
||||
@@ -141,7 +141,7 @@ public class SortingServiceImpl implements SortingService {
|
||||
.set("remark", task_code)
|
||||
.eq("point_code", pointCode + "_01"));
|
||||
taskParam.put("device_code", pointCode + "_02");
|
||||
taskParam.put("task_seq", "2");
|
||||
taskParam.put("task_seq", "1");
|
||||
taskParam.put("task_code", task_code + "B");
|
||||
connectorTask.apply(taskParam);
|
||||
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
|
||||
@@ -164,7 +164,7 @@ public class SortingServiceImpl implements SortingService {
|
||||
}
|
||||
taskParam.put("config_code", "SortingSMTTask");
|
||||
taskParam.put("vehicle_code", vehicle_code);
|
||||
taskParam.put("task_seq", "2");
|
||||
taskParam.put("task_seq", "1");
|
||||
taskParam.put("device_code", pointCode + "_01");
|
||||
taskParam.put("task_code", task_code + "A");
|
||||
connectorTask.apply(taskParam);
|
||||
@@ -176,7 +176,7 @@ public class SortingServiceImpl implements SortingService {
|
||||
taskParam = new JSONObject(MapOf.of("task_code", task_code, "job_name", jobname, "device_code", pointCode, "requestNo"
|
||||
, "sorting_" + IdUtil.getStringId(), "ext_data", jsonObject, "vehicle_code", vehicle_code, "ext_data", jsonObject));
|
||||
taskParam.put("config_code", "SortingSMTTask");
|
||||
taskParam.put("task_seq", "1");
|
||||
taskParam.put("task_seq", "2");
|
||||
taskParam.put("vehicle_code", jsonObject.getString("vehicle_code2"));
|
||||
taskParam.put("device_code", pointCode + "_02");
|
||||
taskParam.put("task_code", task_code + "B");
|
||||
|
||||
@@ -72,4 +72,12 @@ public class SchBaseVehiclematerialgroupController {
|
||||
public ResponseEntity<Object> getGroup(@RequestBody JSONObject entity){
|
||||
return new ResponseEntity<>(schBaseVehiclematerialgroupService.getGroup(entity), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/selectByVehicleCode")
|
||||
@Log("根据载具号获取阻盘信息")
|
||||
@ApiOperation("根据载具号获取阻盘信息")
|
||||
public ResponseEntity<Object> selectByVehicleCode(@RequestBody JSONObject entity){
|
||||
return new ResponseEntity<>(schBaseVehiclematerialgroupService.selectByVehicleCode(entity), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,4 +80,11 @@ public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVeh
|
||||
* @return
|
||||
*/
|
||||
List<Map> selectMaterialByVehicleCode(String vehicle_code);
|
||||
|
||||
/**
|
||||
* 根据载具号查找物料信息
|
||||
* @param entity
|
||||
* @return
|
||||
*/
|
||||
List<SchBaseVehiclematerialgroup> selectByVehicleCode(JSONObject entity);
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author lyd
|
||||
@@ -162,6 +163,12 @@ public class SchBaseVehiclematerialgroup implements Serializable {
|
||||
@TableField(exist = false)
|
||||
private String material_name;
|
||||
@TableField(exist = false)
|
||||
private String theLocation;
|
||||
@TableField(exist = false)
|
||||
private boolean hasChildren;
|
||||
@TableField(exist = false)
|
||||
private List<SchBaseVehiclematerialgroup> children;
|
||||
@TableField(exist = false)
|
||||
private String material_code;
|
||||
@TableField(exist = false)
|
||||
private String material_spec;
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
||||
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
|
||||
|
||||
@@ -12,9 +13,9 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author lyd
|
||||
* @date 2023-05-16
|
||||
**/
|
||||
* @author lyd
|
||||
* @date 2023-05-16
|
||||
**/
|
||||
public interface SchBaseVehiclematerialgroupMapper extends BaseMapper<SchBaseVehiclematerialgroup> {
|
||||
|
||||
IPage<SchBaseVehiclematerialgroup> selectPageLeftJoin(IPage<SchBaseVehiclematerialgroup> pages, SchBaseVehiclematerialgroupQuery query);
|
||||
@@ -24,4 +25,6 @@ public interface SchBaseVehiclematerialgroupMapper extends BaseMapper<SchBaseVeh
|
||||
List<String> selectOrders(@Param("list") List<String> vehicleCodes);
|
||||
|
||||
List<Map> selectMaterialByVehicleCode(String vehicle_code);
|
||||
|
||||
IPage<SchBaseVehiclematerialgroup> selectAllByPage(IPage<SchBaseVehiclematerialgroup> page, @Param("query") SchBaseVehiclematerialgroupQuery query);
|
||||
}
|
||||
|
||||
@@ -71,5 +71,29 @@
|
||||
GROUP BY
|
||||
sbv.order_code
|
||||
</select>
|
||||
|
||||
<select id="selectAllByPage" resultType="org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup">
|
||||
WITH RankedVehicles AS (
|
||||
SELECT
|
||||
vg.*,
|
||||
ROW_NUMBER() OVER (PARTITION BY vg.vehicle_code ORDER BY vg.due_date) AS rn
|
||||
FROM
|
||||
sch_base_vehiclematerialgroup vg
|
||||
where 1=1
|
||||
<if test="query.vehicle_code != null">
|
||||
AND vg.vehicle_code = #{query.vehicle_code}
|
||||
</if>
|
||||
<if test="query.workshop_code != null">
|
||||
AND vg.workshop_code = #{query.workshop_code}
|
||||
</if>
|
||||
<if test="query.job_name != null">
|
||||
AND vg.job_name = #{query.job_name}
|
||||
</if>
|
||||
<if test="query.region_code != null">
|
||||
AND vg.region_code = #{query.region_code}
|
||||
</if>
|
||||
)
|
||||
SELECT *
|
||||
FROM RankedVehicles
|
||||
WHERE rn = 1
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -27,6 +27,7 @@ import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
|
||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch.process_flow.service.ProcessFlowService;
|
||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -49,19 +50,13 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
private IMdBaseMaterialService iMdBaseMaterialService;
|
||||
@Autowired
|
||||
private ProcessFlowService processFlowService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
|
||||
@Override
|
||||
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page) {
|
||||
IPage<SchBaseVehiclematerialgroup> pages = new Page<>(page.getPage() + 1, page.getSize());
|
||||
IPage<SchBaseVehiclematerialgroup> schBaseVehiclematerialgroupIPage = vehiclematerialgroupMapper.selectPage(pages, Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||
.eq(StrUtil.isNotBlank(whereJson.getVehicle_code()), SchBaseVehiclematerialgroup::getVehicle_code, whereJson.getVehicle_code())
|
||||
.eq(StrUtil.isNotBlank(whereJson.getWorkshop_code()), SchBaseVehiclematerialgroup::getWorkshop_code, whereJson.getWorkshop_code())
|
||||
.eq(StrUtil.isNotBlank(whereJson.getJob_name()), SchBaseVehiclematerialgroup::getJob_name, whereJson.getJob_name())
|
||||
.eq(StrUtil.isNotBlank(whereJson.getRegion_code()), SchBaseVehiclematerialgroup::getRegion_code, whereJson.getRegion_code()));
|
||||
IPage<SchBaseVehiclematerialgroup> schBaseVehiclematerialgroupIPage = vehiclematerialgroupMapper.selectAllByPage(pages, whereJson);
|
||||
schBaseVehiclematerialgroupIPage.getRecords().forEach(item -> {
|
||||
if (StrUtil.isNotBlank(item.getMaterial_id())) {
|
||||
MdBaseMaterial mdBaseMaterial = iMdBaseMaterialService.getOne(Wrappers.lambdaQuery(MdBaseMaterial.class)
|
||||
@@ -73,11 +68,23 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotBlank(item.getRegion_code())) {
|
||||
// item.setRegion_name(pointService.list(Wrappers.lambdaQuery(SchBasePoint.class).eq(SchBasePoint::getRegion_code, item.getRegion_code())).get(0).getRegion_name());
|
||||
item.setRegion_name(item.getRegion_code());
|
||||
} else {
|
||||
item.setRegion_name("未知");
|
||||
}
|
||||
SchBasePoint one = pointService.getOne(Wrappers.lambdaQuery(SchBasePoint.class)
|
||||
.eq(SchBasePoint::getVehicle_code, item.getVehicle_code()));
|
||||
if (ObjectUtil.isNotEmpty(one)) {
|
||||
item.setTheLocation(one.getPoint_name());
|
||||
}
|
||||
List<SchBaseVehiclematerialgroup> schBaseVehiclematerialgroups = vehiclematerialgroupMapper.selectList(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, item.getVehicle_code())
|
||||
.ne(SchBaseVehiclematerialgroup::getGroup_id, item.getGroup_id()));
|
||||
if (CollUtil.isNotEmpty(schBaseVehiclematerialgroups)) {
|
||||
item.setHasChildren(true);
|
||||
item.setChildren(schBaseVehiclematerialgroups);
|
||||
}
|
||||
});
|
||||
// pages = vehiclematerialgroupMapper.selectPageLeftJoin(pages, whereJson);
|
||||
return schBaseVehiclematerialgroupIPage;
|
||||
}
|
||||
|
||||
@@ -158,7 +165,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
}
|
||||
});
|
||||
maps = maps.stream().sorted(Comparator.comparingLong(order -> {
|
||||
if(ObjectUtil.isNotEmpty(order.get("due_date"))){
|
||||
if (ObjectUtil.isNotEmpty(order.get("due_date"))) {
|
||||
return getTime(StrUtil.toString(order.get("due_date")));
|
||||
}
|
||||
return 0;
|
||||
@@ -166,7 +173,15 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
return maps;
|
||||
}
|
||||
|
||||
private Long getTime(String dateString){
|
||||
@Override
|
||||
public List<SchBaseVehiclematerialgroup> selectByVehicleCode(JSONObject entity) {
|
||||
List<SchBaseVehiclematerialgroup> schBaseVehiclematerialgroups = vehiclematerialgroupMapper.selectList(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, entity.getString("vehicle_code"))
|
||||
.ne(SchBaseVehiclematerialgroup::getGroup_id, entity.getString("group_id")));
|
||||
return schBaseVehiclematerialgroups;
|
||||
}
|
||||
|
||||
private Long getTime(String dateString) {
|
||||
String pattern = "yyyy-MM-dd HH:mm:ss";
|
||||
java.util.Date date = DateUtil.parse(dateString, pattern);
|
||||
long timestamp = date.getTime();
|
||||
|
||||
@@ -92,7 +92,7 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
||||
*
|
||||
* @param region_code
|
||||
*/
|
||||
SchBasePoint selectByRegionCode(String region_code, String vehicleCode,String point_type);
|
||||
SchBasePoint selectByRegionCode(String region_code, String vehicleCode, String point_type);
|
||||
|
||||
/**
|
||||
* 根据工序查询区域空载具
|
||||
@@ -158,37 +158,35 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
||||
* @param vehicle_type
|
||||
* @return
|
||||
*/
|
||||
SchBasePoint selectByGroundPoint(String region_code,String pointStatus, String vehicle_type, int seq);
|
||||
SchBasePoint selectByGroundPoint(String region_code, String pointStatus, String vehicle_type, int seq);
|
||||
|
||||
|
||||
/**
|
||||
* 呼叫空料笼
|
||||
*
|
||||
* @param region_code
|
||||
* @param vehicle_type
|
||||
* @return
|
||||
*/
|
||||
SchBasePoint selectByEmptyCage(String region_code,String vehicle_type,String pointStatus ,boolean isVehicle,SchBaseTask task);
|
||||
SchBasePoint selectByEmptyCage(String region_code, String vehicle_type, String pointStatus, boolean isVehicle, SchBaseTask task);
|
||||
|
||||
/**
|
||||
* 释放点位
|
||||
* 修改点位锁状态
|
||||
*
|
||||
* @param region_code
|
||||
*/
|
||||
void releasePoint(String region_code);
|
||||
|
||||
/**
|
||||
* 锁定点位
|
||||
* @param region_code
|
||||
*/
|
||||
void lockPoint(String region_code);
|
||||
void updatePointLock(String region_code, Boolean lock);
|
||||
|
||||
/**
|
||||
* 根据区域编码查找点位名称
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<String> getByRegionCode(String region_code);
|
||||
|
||||
/**
|
||||
* 查找地面区域的空点位
|
||||
*
|
||||
* @param targetRegionCode
|
||||
* @param value
|
||||
*/
|
||||
@@ -201,8 +199,17 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
||||
|
||||
/**
|
||||
* 根据工序查询订单
|
||||
*
|
||||
* @param regionCode
|
||||
* @return
|
||||
*/
|
||||
List<OrderMater> selectOrder(String regionCode);
|
||||
|
||||
/**
|
||||
* 根据工序查找设备点位
|
||||
*
|
||||
* @param regionCode
|
||||
* @return
|
||||
*/
|
||||
List<JSONObject> selectPointByRegion(String regionCode);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.wms.sch.point.service.dao.mapper;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.wms.ext.fab.service.dto.OrderMater;
|
||||
@@ -29,4 +30,11 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
|
||||
List<String> selectByRegionCode(@Param("region_code") String region_code);
|
||||
|
||||
List<Map> selectJobDevice();
|
||||
|
||||
/**
|
||||
* 根据工序查询设备点位
|
||||
* @param regionCode
|
||||
* @return
|
||||
*/
|
||||
List<JSONObject> selectPointByRegion(String regionCode);
|
||||
}
|
||||
|
||||
@@ -13,48 +13,54 @@
|
||||
</where>
|
||||
</update>
|
||||
<select id="selectByIdLock" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
|
||||
SELECT
|
||||
p.*
|
||||
FROM
|
||||
`sch_base_point` p
|
||||
SELECT p.*
|
||||
FROM `sch_base_point` p
|
||||
WHERE p.point_code = #{id}
|
||||
FOR UPDATE
|
||||
</select>
|
||||
<select id="getStructList" resultType="org.nl.wms.ext.fab.service.dto.OrderMater">
|
||||
SELECT
|
||||
sch_base_point.point_code,
|
||||
sch_base_point.vehicle_code,
|
||||
sch_base_vehiclematerialgroup.material_id,
|
||||
sch_base_vehiclematerialgroup.material_qty,
|
||||
sch_base_vehiclematerialgroup.region_code,
|
||||
sch_base_vehiclematerialgroup.order_code,
|
||||
sch_base_vehiclematerialgroup.due_date,
|
||||
sch_base_vehiclematerialgroup.has_work
|
||||
sch_base_point.point_code,
|
||||
sch_base_point.vehicle_code,
|
||||
sch_base_vehiclematerialgroup.material_id,
|
||||
sch_base_vehiclematerialgroup.material_qty,
|
||||
sch_base_vehiclematerialgroup.region_code,
|
||||
sch_base_vehiclematerialgroup.order_code,
|
||||
sch_base_vehiclematerialgroup.due_date,
|
||||
sch_base_vehiclematerialgroup.has_work
|
||||
FROM
|
||||
sch_base_point
|
||||
inner JOIN sch_base_vehiclematerialgroup ON sch_base_point.vehicle_code = sch_base_vehiclematerialgroup.vehicle_code
|
||||
sch_base_point
|
||||
inner JOIN sch_base_vehiclematerialgroup ON sch_base_point.vehicle_code =
|
||||
sch_base_vehiclematerialgroup.vehicle_code
|
||||
WHERE
|
||||
is_lock = FALSE
|
||||
AND sch_base_point.vehicle_code IS NOT NULL
|
||||
and sch_base_point.point_status = '2'
|
||||
is_lock = FALSE
|
||||
AND sch_base_point.vehicle_code IS NOT NULL
|
||||
and sch_base_point.point_status = '2'
|
||||
<if test="vehicle_type != null and vehicle_type != ''">
|
||||
and sch_base_point.can_vehicle_type = #{vehicle_type}
|
||||
</if>
|
||||
<if test="due_date != null and due_date != ''">
|
||||
and #{due_date} > sch_base_vehiclematerialgroup.due_date
|
||||
</if>
|
||||
AND sch_base_vehiclematerialgroup.region_code = #{region_code}
|
||||
AND sch_base_vehiclematerialgroup.region_code = #{region_code}
|
||||
|
||||
</select>
|
||||
<select id="selectByRegionCode" resultType="java.lang.String">
|
||||
select
|
||||
sbp.point_code
|
||||
from
|
||||
sch_base_point sbp
|
||||
where
|
||||
sbp.region_code = #{region_code}
|
||||
select sbp.point_code
|
||||
from sch_base_point sbp
|
||||
where sbp.region_code = #{region_code}
|
||||
</select>
|
||||
<select id="selectJobDevice" resultType="java.util.Map">
|
||||
select sbp.point_code,sbp.point_name from sch_base_point sbp where is_lock = true and region_code = 'GZQ' and region_points is not null
|
||||
select sbp.point_code, sbp.point_name
|
||||
from sch_base_point sbp
|
||||
where is_lock = true
|
||||
and region_code = 'GZQ'
|
||||
and region_points is not null
|
||||
</select>
|
||||
<select id="selectPointByRegion" resultType="com.alibaba.fastjson.JSONObject"
|
||||
parameterType="java.lang.String">
|
||||
select point_code, point_name
|
||||
from sch_base_point
|
||||
where region_code = #{regionCode}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -467,13 +467,10 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
}
|
||||
|
||||
@Override
|
||||
public void releasePoint(String region_code) {
|
||||
update(Wrappers.lambdaUpdate(SchBasePoint.class).eq(SchBasePoint::getRegion_code, region_code).set(SchBasePoint::getIs_lock, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void lockPoint(String region_code) {
|
||||
update(Wrappers.lambdaUpdate(SchBasePoint.class).eq(SchBasePoint::getRegion_code, region_code).set(SchBasePoint::getIs_lock, true));
|
||||
public void updatePointLock(String region_code, Boolean lock) {
|
||||
update(Wrappers.lambdaUpdate(SchBasePoint.class)
|
||||
.eq(SchBasePoint::getRegion_code, region_code)
|
||||
.set(SchBasePoint::getIs_lock, lock));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -519,6 +516,11 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
return collect;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JSONObject> selectPointByRegion(String regionCode) {
|
||||
return pointMapper.selectPointByRegion(regionCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderMater> getStructList(String region_code, String vehicle_type) {
|
||||
//1.查询的结果一个托盘有多个800,PC需要怎么展示?
|
||||
@@ -543,7 +545,7 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
return collect;
|
||||
}
|
||||
|
||||
private Long getTime(String dateString){
|
||||
private Long getTime(String dateString) {
|
||||
String pattern = "yyyy-MM-dd HH:mm:ss";
|
||||
java.util.Date date = DateUtil.parse(dateString, pattern);
|
||||
long timestamp = date.getTime();
|
||||
|
||||
@@ -26,6 +26,8 @@ import org.nl.wms.sch.task_manage.task.TaskFactory;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -67,7 +67,7 @@ public class CNTTask extends AbstractTask {
|
||||
// 找起点
|
||||
SchBasePoint schBasePoint = null;
|
||||
if (TaskType.CARRY_TASK.getValue().equals(task.getTask_type())) {
|
||||
schBasePoint = schBasePointService.selectByRegionCode(RegionEnum.LAG_ROBOT_BEANDING_CELL.getRegion_code(), task.getVehicle_code(),"1");
|
||||
schBasePoint = schBasePointService.selectByRegionCode(RegionEnum.LAG_ROBOT_BEANDING_CELL.getRegion_code(), task.getVehicle_code(), "1");
|
||||
}/* else if (TaskType.REASSIGN_TASK.getValue().equals(task.getTask_type())) {
|
||||
schBasePoint = schBasePointService.selectByReassign(RegionEnum.LAG_ROBOT_BEANDING_CELL.getRegion_code(), task.getVehicle_code());
|
||||
}*/
|
||||
@@ -85,6 +85,9 @@ public class CNTTask extends AbstractTask {
|
||||
task.setVehicle_type(schBasePoint.getCan_vehicle_type());
|
||||
task.setRemark("");
|
||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||
if (task.getPoint_code1().endsWith("2")) {
|
||||
task.setAcs_trace_id("4");
|
||||
}
|
||||
taskService.updateById(task);
|
||||
|
||||
schBasePoint.setIng_task_code(task.getTask_code());
|
||||
|
||||
@@ -72,9 +72,9 @@ public class SortingSMTTask extends AbstractTask {
|
||||
// 获取任务
|
||||
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
||||
// 配置信息
|
||||
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
||||
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
||||
tasks = tasks.stream().sorted(Comparator.comparing(SchBaseTask::getAcs_trace_id)).collect(Collectors.toList());
|
||||
/*SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
||||
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));*/
|
||||
tasks = tasks.stream().sorted(Comparator.comparing(SchBaseTask::getAcs_trace_id, Comparator.nullsLast(Comparator.naturalOrder())).reversed()).collect(Collectors.toList());
|
||||
for (SchBaseTask task : tasks) {
|
||||
TaskUtils.setUpdateByAcs(task);
|
||||
// 找起点
|
||||
|
||||
@@ -224,7 +224,7 @@ export default {
|
||||
popSecList: [],
|
||||
currentRow: null,
|
||||
value: '',
|
||||
options: [{ value: 'G01', label: '钢托盘' }, { value: 'R01', label: '990mm笼框' }, { value: 'R02', label: '450mm 笼框' }, { value: 'S04', label: '1670mm料架' }, { value: 'S06', label: '1700mm料架' }],
|
||||
options: [{ value: 'G01', label: 'G01' }, { value: 'R01', label: 'R01' }, { value: 'R02', label: 'R02' }, { value: 'S04', label: 'S04' }, { value: 'S06', label: 'S06' }],
|
||||
value1: '',
|
||||
options1: [{ value: '1', label: '货架' }, { value: '2', label: '内部' }, { value: '3', label: '外协' }],
|
||||
value2: '',
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属区域" prop="region_code">
|
||||
<el-form-item label="下道工序" prop="region_code">
|
||||
<el-select
|
||||
v-model="query.region_code"
|
||||
placeholder="请选择"
|
||||
@@ -228,12 +228,27 @@
|
||||
</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
|
||||
ref="table"
|
||||
v-loading="crud.loading"
|
||||
:load="load"
|
||||
lazy
|
||||
:data="crud.data"
|
||||
row-key="group_id"
|
||||
border
|
||||
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
|
||||
size="small"
|
||||
style="width: 100%;"
|
||||
@select="crud.selectChange"
|
||||
@select-all="crud.selectAllChange"
|
||||
@selection-change="crud.selectionChangeHandler"
|
||||
>
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column v-if="false" prop="group_id" label="组盘编码" :min-width="flexWidth('group_id',crud.data,'组盘编码')" />
|
||||
<el-table-column prop="vehicle_code" label="载具编码" :min-width="flexWidth('vehicle_code',crud.data,'载具编码')" />
|
||||
<!-- <el-table-column prop="child_vehicle_code" label="子载具编码" :min-width="flexWidth('child_vehicle_code',crud.data,'子载具编码')"/>-->
|
||||
<!-- <el-table-column prop="source_vehicle_code" label="来源载具" :min-width="flexWidth('source_vehicle_code',crud.data,'来源载具')" /> -->
|
||||
<el-table-column prop="region_name" label="所属区域" :min-width="flexWidth('region_name',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="is_full" label="是否满托" :min-width="flexWidth('is_full',crud.data,'是否满托')">
|
||||
@@ -251,10 +266,12 @@
|
||||
</el-table-column>
|
||||
<el-table-column prop="standing_time" label="静置时间(分钟)" :min-width="flexWidth('standing_time',crud.data,'静置时间(分钟)')" /> -->
|
||||
<el-table-column v-if="false" prop="material_name" label="物料名称" show-overflow-tooltip :min-width="flexWidth('material_name',crud.data,'物料数量')" />
|
||||
<el-table-column prop="material_id" label="物料编码" show-overflow-tooltip :min-width="flexWidth('material_id',crud.data,'物料数量')" />
|
||||
<el-table-column prop="material_id" label="物料编码" show-overflow-tooltip :min-width="flexWidth('material_id',crud.data,'物料编码')" />
|
||||
<el-table-column prop="material_qty" label="物料数量" show-overflow-tooltip :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
|
||||
<el-table-column prop="job_name" label="jobName" show-overflow-tooltip :min-width="flexWidth('job_name',crud.data,'jobName')" />
|
||||
<el-table-column prop="due_date" label="交期时间" show-overflow-tooltip :min-width="flexWidth('due_date',crud.data,'交期时间')" />
|
||||
<el-table-column v-if="false" prop="material_spec" label="物料规格" :min-width="flexWidth('material_spec',crud.data,'物料规格')" />
|
||||
<el-table-column prop="theLocation" label="存放点位" :min-width="flexWidth('theLocation',crud.data,'存放点位')" />
|
||||
<!-- <el-table-column prop="material_qty" label="物料数量" :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
|
||||
<el-table-column prop="material_weight" label="物料重量" :min-width="flexWidth('material_weight',crud.data,'物料重量')" />
|
||||
<el-table-column prop="group_number" label="组盘次数" :min-width="flexWidth('group_number',crud.data,'组盘次数')" />
|
||||
@@ -427,6 +444,14 @@ export default {
|
||||
},
|
||||
hand(value) {
|
||||
this.crud.toQuery()
|
||||
},
|
||||
load(tree, treeNode, resolve) {
|
||||
setTimeout(() => {
|
||||
crudSchBaseVehiclematerialgroup.selectByVehicle(tree).then(res => {
|
||||
console.log(res)
|
||||
resolve(res)
|
||||
})
|
||||
}, 100)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user