add 新增需求

This commit is contained in:
zhoujj
2025-10-17 10:19:37 +08:00
parent 7a93ff9cb1
commit 84c6ea5cbd
36 changed files with 514 additions and 72 deletions

View File

@@ -542,6 +542,12 @@
<artifactId>lucene-analyzers-common</artifactId>
<version>${lucene.version}</version>
</dependency>
<!--redisson-->
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.16.4</version>
</dependency>
<dependency>
<groupId>com.github.magese</groupId>
<artifactId>ik-analyzer</artifactId>

View File

@@ -118,5 +118,11 @@ public class AcsToWmsController {
public ResponseEntity<Object> feedTaskStatus(@RequestBody JSONObject param) {
return new ResponseEntity<>(acsToWmsService.feedTaskStatus(param), HttpStatus.OK);
}
@PostMapping("/actionFinishRequest2")
@SaIgnore
public ResponseEntity<Object> actionFinishRequest2(@RequestBody JSONObject jo) {
return new ResponseEntity<>(acsToWmsService.actionFinishRequest2(jo), HttpStatus.OK);
}
}

View File

@@ -49,4 +49,11 @@ public interface AcsToWmsService {
* @return
*/
Object feedTaskStatus(JSONObject param);
/**
* 二楼取货完成请求
* @param param /
* @return /
*/
JSONObject actionFinishRequest2(JSONObject param);
}

View File

@@ -3,6 +3,7 @@ package org.nl.wms.ext.acs.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@@ -330,6 +331,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
break;
}
}
return null;
}
@@ -377,7 +379,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Override
public Object feedTaskStatus(JSONObject param) {
if (ObjectUtil.isNotEmpty(param)) {
// String pickupcomplete= param.getString("pickupcomplete");
// if (ObjectUtil.isNotEmpty(param)&&pickupcomplete.equals("0")) {
if (ObjectUtil.isNotEmpty(param)) {
String task_code = param.getString("task_code");
String task_status = param.getString("task_status");
if (StrUtil.isEmpty(task_code) || StrUtil.isEmpty(task_status)) {
@@ -398,11 +402,25 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
AbstractTask connectorTask = taskFactory.getTask(schBaseTask.getConfig_code());
connectorTask.forceFinish(schBaseTask.getTask_code());
break;
case "3":
//任务取消
taskService.update(Wrappers.lambdaUpdate(SchBaseTask.class)
.set(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode())
.eq(SchBaseTask::getTask_code, task_code));
default:
break;
}
}
// else{
// String task_code = param.getString("task_code");
// SchBaseTask schBaseTask = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class)
// .eq(SchBaseTask::getTask_code, task_code).in(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode(), TaskStatus.ISSUED.getCode()));
// if (ObjectUtil.isEmpty(schBaseTask)) throw new BadRequestException("任务不存在!task_code" + task_code);
// taskService.update(Wrappers.lambdaUpdate(SchBaseTask.class)
// .eq(SchBaseTask::getTask_code, task_code)
// .set(SchBaseTask::getIs_pickup, "1"));
// }
return null;
}
@@ -682,5 +700,25 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
return result;
}
@Override
public JSONObject actionFinishRequest2(JSONObject param) {
String taskCode = param.getString("task_code");
String deviceCode = param.getString("device_code");
Assert.notBlank(taskCode, "任务编码不能为空");
SchBaseTask task = taskService.getByCode(taskCode);
SchBasePoint schBasePoint=pointService.getByCode(deviceCode);
if (ObjectUtil.isNotEmpty(schBasePoint)) {
PointUtils.updateByIngTaskCode(schBasePoint);
pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class)
.eq(SchBasePoint::getPoint_code, deviceCode)
.set(SchBasePoint::getIs_lock, false)
.set(SchBasePoint::getVehicle_code, null)
.set(SchBasePoint::getPoint_status, GoodsEnum.OUT_OF_STOCK.getValue()));
}
JSONObject result = new JSONObject();
result.put("status", org.springframework.http.HttpStatus.OK.value());
result.put("message", "取货完成请求成功!");
return result;
}
}

View File

@@ -28,12 +28,15 @@ import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.task.ConnectorUtil;
import org.nl.wms.sch.task_manage.task.TaskFactory;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@Slf4j
@Service
@@ -50,6 +53,8 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService {
private TaskFactory taskFactory;
@Autowired
private ISchBaseVehiclematerialgroupService iSchBaseVehiclematerialgroupService;
@Autowired
private RedissonClient redissonClient;
@Override
public Map createTaskByConnector(JSONArray jsonArray) {
@@ -89,30 +94,43 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService {
} else if (schBasePoint.getIs_lock()) {
map1.put("task_code", task_code);
map1.put("status", HttpStatus.HTTP_INTERNAL_ERROR);
map1.put("message", start_device_code + "该设备正在执行任务!");
map1.put("message", start_device_code + "·!");
log.info(start_device_code + "该设备正在执行任务!");
return map1;
}
//TODO:固定的载具类型,根据载具类型来决定终点
String task_type = data.getString("task_type");
String is_empty = data.getString("is_empty");
String remark = data.getString("remark");
String params = data.getString("params");
task_type = "1".equals(task_type) ? "1" : "2";
AbstractTask connectorTask = taskFactory.getTask("CNTTask");
// 准备参数:设备编码
JSONObject param = new JSONObject();
param.put("device_code", start_device_code);
param.put("config_code", "CNTTask");
param.put("create_mode", GeneralDefinition.AUTO_CREATION);
param.put("vehicle_code", vehicle_code);
param.put("task_type", task_type);
param.put("task_code", task_code);
param.put("remark", remark);
param.put("ext_data", data);
connectorTask.apply(param);
schBasePoint.setIs_lock(true);
schBasePointService.updateById(schBasePoint);
String tasktype ="CNTTask";
RLock lock = redissonClient.getLock(tasktype);
boolean tryLock = lock.tryLock(10, TimeUnit.SECONDS);
try {
if (tryLock) {
String task_type = data.getString("task_type");
String is_empty = data.getString("is_empty");
String remark = data.getString("remark");
String params = data.getString("params");
task_type = "1".equals(task_type) ? "1" : "2";
AbstractTask connectorTask = taskFactory.getTask("CNTTask");
// 准备参数:设备编码
JSONObject param = new JSONObject();
param.put("device_code", start_device_code);
param.put("config_code", "CNTTask");
param.put("create_mode", GeneralDefinition.AUTO_CREATION);
param.put("vehicle_code", vehicle_code);
param.put("task_type", task_type);
param.put("task_code", task_code);
param.put("remark", remark);
param.put("ext_data", data);
connectorTask.apply(param);
schBasePoint.setIs_lock(true);
schBasePointService.updateById(schBasePoint);
} else {
throw new BadRequestException("其他设备占用锁,等待结束!");
}
}finally{
if (tryLock) {
lock.unlock();
}
}
}
map.put("status", HttpStatus.HTTP_OK);
map.put("message", "操作成功!");

View File

@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo;
import org.nl.common.enums.GoodsEnum;
import org.nl.common.enums.VehicleTypeEnum;
import org.nl.common.enums.region.RegionEnum;
import org.nl.common.exception.BadRequestException;
@@ -244,11 +245,23 @@ public class FabController {
if (REGION_CODE.get("内部加工").equals(materInfo.getPoint_code())) {
List<SendVehicleVo> mater = materInfo.getMater();
if (CollUtil.isEmpty(mater)) throw new BadRequestException("物料信息为空,请确认!");
SchBasePoint schBasePoint = iSchBasePointService.selectGroundByRegionCode(RegionEnum.NBJG.getRegion_code(), GoodsEnum.OUT_OF_STOCK.getValue());
if (ObjectUtil.isEmpty(schBasePoint)) {
throw new BadRequestException("仓库收货区域点位已满请清理");
}
toJSON.put("material_info", mater);
toJSON.put("region_code", RegionEnum.NBJG.getRegion_code());
} else if (REGION_CODE.get("外协加工").equals(materInfo.getPoint_code())) {
SchBasePoint schBasePoint = iSchBasePointService.selectGroundByRegionCode(RegionEnum.WXJG.getRegion_code(), GoodsEnum.OUT_OF_STOCK.getValue());
if (ObjectUtil.isEmpty(schBasePoint)) {
throw new BadRequestException("外协加工区域点位已满请清理");
}
toJSON.put("region_code", RegionEnum.WXJG.getRegion_code());
} else if (REGION_CODE.get("内部过道").equals(materInfo.getPoint_code())) {
SchBasePoint schBasePoint = iSchBasePointService.selectGroundByRegionCode(RegionEnum.NBGD.getRegion_code(), GoodsEnum.OUT_OF_STOCK.getValue());
if (ObjectUtil.isEmpty(schBasePoint)) {
throw new BadRequestException("内部过道区域点位已满请清理");
}
toJSON.put("region_code", RegionEnum.NBGD.getRegion_code());
} else if (REGION_CODE.get("其他加工").equals(materInfo.getPoint_code())) {
toJSON.put("region_code", RegionEnum.QTJG.getRegion_code());

View File

@@ -141,16 +141,32 @@ public class HandheldController {
return new ResponseEntity<>(handheldService.selectPointByRegion(regionCode),HttpStatus.OK);
}
@GetMapping("/createPointInPointTask")
@Log("创建点对点任务")
public ResponseEntity<Object> createPointTask(String regionCode) {
return new ResponseEntity<>(handheldService.selectPointByRegion(regionCode), HttpStatus.OK);
@PostMapping("/deletevehiclemessage")
@Log("根据点位删除点位所在的载具信息")
public ResponseEntity<Object> deletevehiclemessage(String pointCode) {
return new ResponseEntity<>(handheldService.deletevehiclemessage(pointCode),HttpStatus.OK);
}
@GetMapping("/selectMaterialAndJpg")
@PostMapping("/createPointInPointTask")
@Log("创建点对点任务")
public ResponseEntity<Object> createPointTask(String pointCode) {
return new ResponseEntity<>(handheldService.selectPointByRegion(pointCode), HttpStatus.OK);
}
@PostMapping("/selectMaterialAndJpg")
@Log("查询托盘物料信息")
public ResponseEntity<Object> selectMaterialAndJpg(String pointCode) {
return new ResponseEntity<>(handheldService.selectMaterialAndJpg(pointCode), HttpStatus.OK);
}
@PostMapping("/getLlddw")
@Log("查询料笼对接位点位状态")
public ResponseEntity<Object> getLlddw() {
return new ResponseEntity<>(handheldService.getLlddw(), HttpStatus.OK);
}
@PostMapping("/fillUpEmpty")
@Log("料笼对接位点位变成空载具")
public ResponseEntity<Object> fillUpEmpty(@RequestBody JSONObject json) {
handheldService.fillUpEmpty(json);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -120,4 +120,12 @@ public interface HandheldService {
* @return
*/
JSONObject selectMaterialAndJpg(String pointCode);
/**
* 根据点位删除点位所在的载具信息
* @param pointCode
* @return
*/
JSONObject deletevehiclemessage(String pointCode);
List<JSONObject> getLlddw();
void fillUpEmpty(JSONObject json);
}

View File

@@ -27,8 +27,10 @@ import org.nl.wms.ext.connector.service.WmsToConnectorService;
import org.nl.wms.ext.handheld.service.HandheldService;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
import org.nl.wms.sch.region.service.ISchBaseRegionService;
import org.nl.wms.sch.region.service.dao.SchBaseRegion;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
@@ -73,6 +75,10 @@ public class HandheldServiceImpl implements HandheldService {
private RedisUtils redisUtils;
@Autowired
private WmsToAcsService wmsToAcsService;
@Autowired
private SchBaseVehiclematerialgroupMapper vehiclematerialgroupMapper;
@Autowired
private SchBasePointMapper schBasePointMapper;
static final Map<String, String> STATUS = MapOf.of("释放", "0", "锁定", "1");
@@ -126,6 +132,7 @@ public class HandheldServiceImpl implements HandheldService {
.set(SchBasePoint::getIs_lock, true));
}
/**
* 内部过道送托盘
*/
@@ -241,7 +248,6 @@ public class HandheldServiceImpl implements HandheldService {
public Object applyEmptyVehicle(JSONObject param) {
return null;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void cageBlankingTask(JSONObject param) {
@@ -660,6 +666,9 @@ public class HandheldServiceImpl implements HandheldService {
keys.add(MapOf.of("material_id", item.get("material_id"), "material_path", item.get("material_path")));
});
JSONObject json = new JSONObject();
Map<String, String> map = new HashMap<>();
map.put("vehicle_code", schBasePoint.getVehicle_code());
keys.add(map);
json.put("vehiclePath", maps.get(0).get("vehicle_path"));
json.put("materialList", keys);
return json;
@@ -667,4 +676,34 @@ public class HandheldServiceImpl implements HandheldService {
return null;
}
@Override
public JSONObject deletevehiclemessage(String pointCode) {
if (StrUtil.isEmpty(pointCode)) {
throw new BadRequestException("当前点位不能为空!");
}
SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(pointCode);
String vehicle_code=schBasePoint.getVehicle_code();
List<SchBaseVehiclematerialgroup> schBaseVehiclematerialgroup=iSchBaseVehiclematerialgroupService.selectByVehicleCode(vehicle_code);
iSchBasePointService.update(Wrappers.lambdaUpdate(schBasePoint)
.set(SchBasePoint::getPoint_status, "0")
.set(SchBasePoint::getVehicle_code, null));
for (SchBaseVehiclematerialgroup item : schBaseVehiclematerialgroup) {
String group_id = item.getGroup_id();
vehiclematerialgroupMapper.deleteById(group_id);
}
return null;
}
@Override
public List<JSONObject> getLlddw(){
return schBasePointMapper.getLlddw();
}
@Override
public void fillUpEmpty(JSONObject json) {
String pointCode=json.getString("point_code");
SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(pointCode);
iSchBasePointService.update(Wrappers.lambdaUpdate(SchBasePoint.class)
.eq(SchBasePoint::getPoint_code,pointCode)
.set(SchBasePoint::getPoint_status, "1"));
}
}

View File

@@ -97,4 +97,11 @@ public class SchBaseVehiclematerialgroupController {
public ResponseEntity<Object> createTask(@RequestBody JSONObject entity){
return new ResponseEntity<>(schBaseVehiclematerialgroupService.createTask(entity), HttpStatus.OK);
}
@PostMapping("/fixnextstyle")
@Log("修改下道工序")
@ApiOperation("修改下道工序")
public ResponseEntity<Object> fixnextstyle(@RequestBody JSONObject entity){
return new ResponseEntity<>(schBaseVehiclematerialgroupService.fixnextstyle(entity), HttpStatus.OK);
}
}

View File

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.ext.fab.service.dto.SendVehicleVo;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import java.util.List;
import java.util.Map;
@@ -45,6 +46,7 @@ public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVeh
*/
void deleteAll(Set<String> ids);
/**
* 根据载具编码返回数据
* @param entity
@@ -96,6 +98,13 @@ public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVeh
*/
Object createTask(JSONObject entity);
/**
* 修改下道工序
* @param entity
* @return
*/
Object fixnextstyle(JSONObject entity);
/**
* 查询物料路径是空的
*/
@@ -114,4 +123,12 @@ public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVeh
* @return
*/
String selectDueDateByVehicleCode(SendVehicleVo sendVehicleVo);
/**
* 根据点载具编码查询
*
* @param
* @return
*/
List<SchBaseVehiclematerialgroup> selectByVehicleCode(String vehicle_code);
}

View File

@@ -32,4 +32,6 @@ public interface SchBaseVehiclematerialgroupMapper extends BaseMapper<SchBaseVeh
List<String> selectMaterialPathByIsEmpty();
String selectDueDateByVehicleCode(@Param("sendVehicle") SendVehicleVo sendVehicleVo);
String selectRegioncodeByVehicleCode(String vehicle_code);
}

View File

@@ -48,6 +48,7 @@
<if test="vehicle_type != null">
AND vg.vehicle_type = #{vehicle_type}
</if>
AND vg.group_bind_material_status = '2'
</select>
@@ -71,6 +72,7 @@
ROW_NUMBER() OVER (PARTITION BY vg.vehicle_code ORDER BY vg.due_date) AS rn
FROM
sch_base_vehiclematerialgroup vg
LEFT JOIN sch_base_point po ON vg.vehicle_code = po.vehicle_code
<where>
<if test="query.vehicle_code != null">
AND vg.vehicle_code LIKE CONCAT('%', #{query.vehicle_code}, '%')
@@ -161,6 +163,11 @@
WHERE sbv.material_id = #{sendVehicle.material_code}
AND sbv.order_code = #{sendVehicle.order_code} limit 1
</select>
<select id="selectRegioncodeByVehicleCode" resultType="java.lang.String">
SELECT sbv.region_code
FROM sch_base_vehiclematerialgroup sbv
WHERE sbv.vehicle_code = #{vehicle_code}
</select>
<select id="selectOrders" resultType="java.util.Map">
SELECT
sbv.order_code,

View File

@@ -68,7 +68,6 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
@Autowired
private SchBaseVehiclematerialgroupMapper vehiclematerialgroupMapper;
@Autowired
private IMdBaseMaterialService iMdBaseMaterialService;
@Autowired
@@ -106,6 +105,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
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()));
@@ -120,6 +120,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
return schBaseVehiclematerialgroupIPage;
}
@Override
public void create(SchBaseVehiclematerialgroup entity) {
String currentUserId = SecurityUtils.getCurrentUserId();
@@ -144,6 +145,9 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
throw new BadRequestException("托盘号不存在");
}
}
if(entity.getRegion_code().equals("111-100")){
entity.setRegion_code("");
}
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
@@ -214,7 +218,6 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
})).collect(Collectors.toList());
return maps;
}
@Override
public List<SchBaseVehiclematerialgroup> selectByVehicleCode(JSONObject entity) {
List<SchBaseVehiclematerialgroup> schBaseVehiclematerialgroups = vehiclematerialgroupMapper.selectList(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
@@ -251,6 +254,15 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
.set(SchBaseVehiclematerialgroup::getIs_delete, true));
return null;
}
@Override
public Object fixnextstyle(JSONObject entity) {
String vehicle_code=entity.getString("vehicle_code");
String region_code=entity.getString("region_name");
this.update(Wrappers.lambdaUpdate(SchBaseVehiclematerialgroup.class)
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicle_code)
.set(SchBaseVehiclematerialgroup::getRegion_code, region_code));
return null;
}
@Override
public List<String> selectMaterialPathIsEmpty() {
@@ -318,4 +330,10 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
return timestamp;
}
@Override
public List<SchBaseVehiclematerialgroup> selectByVehicleCode(String vehicle_code) {
List<SchBaseVehiclematerialgroup> schBaseVehiclematerialgroups = vehiclematerialgroupMapper.selectList(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicle_code));
return schBaseVehiclematerialgroups;
}
}

View File

@@ -65,6 +65,8 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
*/
List<SchBasePoint> getPointList(SchBasePoint region);
SchBasePoint getByCode(String device_code);
/**
* 更改固化室点位状态
*

View File

@@ -25,7 +25,9 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
SchBasePoint selectByIdLock(String id);
List<OrderMater> getStructList(@Param("region_code") String region_code, @Param("vehicle_type")String vehicle_type,@Param("due_date")String due_date);
List<OrderMater> getStructList(@Param("region_code") String region_code, @Param("due_date")String due_date);
List<OrderMater> getStructList1(@Param("region_code") String region_code,@Param("due_date")String due_date);
List<String> selectByRegionCode(@Param("region_code") String region_code);
@@ -37,4 +39,5 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
* @return
*/
List<JSONObject> selectPointByRegion(String regionCode);
List<JSONObject> getLlddw();
}

View File

@@ -40,9 +40,6 @@
AND sch_base_point.vehicle_code IS NOT NULL
AND sch_base_point.point_status = '2'
AND sch_base_vehiclematerialgroup.is_delete = FALSE
<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>
@@ -57,6 +54,37 @@
AND sch_base_vehiclematerialgroup.due_date IS NULL
</if>
</select>
<select id="getStructList1" 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_vehiclematerialgroup.create_time,
sch_base_vehiclematerialgroup.priority
FROM
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'
AND sch_base_vehiclematerialgroup.is_delete = FALSE
<if test="due_date != null and due_date != ''">
AND #{due_date} > sch_base_vehiclematerialgroup.due_date
</if>
<if test="region_code != null and region_code != ''">
AND sch_base_vehiclematerialgroup.region_code = #{region_code}
</if>
<if test="due_date == null">
AND sch_base_vehiclematerialgroup.due_date IS NULL
</if>
</select>
<select id="selectByRegionCode" resultType="java.lang.String">
select sbp.point_code
@@ -71,13 +99,19 @@
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, point_status
from sch_base_point
where region_code = #{regionCode}
AND is_used = true
</select>
<select id="getLlddw" resultType="com.alibaba.fastjson.JSONObject">
select sbp.point_code, sbp.point_status
from sch_base_point sbp
WHERE sbp.point_code LIKE 'LLDDW%'
and sbp.row_num = '1'
ORDER BY sbp.block_num ASC;
</select>
</mapper>

View File

@@ -219,6 +219,12 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
.eq(ObjectUtil.isNotEmpty(region.getPoint_type()), SchBasePoint::getPoint_type, region.getPoint_type())
.orderByAsc(SchBasePoint::getPoint_code));
}
@Override
public SchBasePoint getByCode(String device_code) {
LambdaQueryWrapper<SchBasePoint> lam = new QueryWrapper<SchBasePoint>().lambda();
lam.eq(SchBasePoint::getPoint_code, device_code);
return this.getOne(lam);
}
@Override
public void updateStatus(JSONObject jsonObject) {
@@ -530,7 +536,7 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
s = null;
}
List<OrderMater> collect = null;
List<OrderMater> structList = pointMapper.getStructList(regionCode, null, s);
List<OrderMater> structList = pointMapper.getStructList(regionCode, s);
if ("1".equals(last_regionCode)) {
collect = structList.stream().collect(Collectors.groupingBy(
OrderMater::getVehicle_code,
@@ -638,9 +644,20 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
.eq(SchBasePoint::getPoint_code, pointCode));
List<OrderMater> structList=null;
if(schBasePoint.getPoint_code().equals("13-01-01")||schBasePoint.getPoint_code().equals("13-01-04")){
structList = pointMapper.getStructList(null, "G01", s);
}else{
structList = pointMapper.getStructList(schBasePoint.getRegion_code(), "G01", s);
structList = pointMapper.getStructList(null, s);
} else if(schBasePoint.getPoint_code().equals("QTJGDJW01")||schBasePoint.getPoint_code().equals("QTJGDJW02")){
String[] regionlist = {"111-06", "111-12", "111-13", "111-14", "111-15", "111-22", "111-23", "111-24", "111-26"};
for (int i = 0; i <regionlist.length; i++) {
List<OrderMater> structList1=null;
structList1 = pointMapper.getStructList1(regionlist[i], s);
if (structList == null) {
structList = new ArrayList<>();
}
structList.addAll(structList1);
}
}
else{
structList = pointMapper.getStructList(schBasePoint.getRegion_code(),s);
}
List<OrderMater> collect = structList.stream().collect(Collectors.groupingBy(
OrderMater::getVehicle_code,

View File

@@ -143,5 +143,6 @@ public class SchBaseTask implements Serializable {
private String start_wait_point;
@ApiModelProperty(value = "放货等待点")
private String next_wait_point;
private String startcode_name;
private String finishcode_name;
}

View File

@@ -8,5 +8,7 @@ import org.nl.wms.sch.task.service.dao.SchBaseTask;
* @date 2023-05-15
**/
public interface SchBaseTaskMapper extends BaseMapper<SchBaseTask> {
//根据点位编码得到点位名称
String getdevicename(String point_code);
}

View File

@@ -1,5 +1,9 @@
<?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.task.service.dao.mapper.SchBaseTaskMapper">
<select id="getdevicename" resultType="java.lang.String">
SELECT point_name
FROM sch_base_point
WHERE point_code = #{point_code}
</select>
</mapper>

View File

@@ -104,6 +104,14 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
lam.orderByDesc(SchBaseTask::getUpdate_time);
IPage<SchBaseTask> pages = new Page<>(page.getPage() + 1, page.getSize());
schBaseTaskMapper.selectPage(pages, lam);
// 遍历结果,手动添加 startcode_name 和 finishcode_name 字段
for (SchBaseTask task : pages.getRecords()) {
// 假设 getStartCodeName() 和 getFinishCodeName() 是你根据 task 的代码来查询名称的逻辑
String startCodeName = schBaseTaskMapper.getdevicename(task.getPoint_code1());
String finishCodeName = schBaseTaskMapper.getdevicename(task.getPoint_code2());
task.setStartcode_name(startCodeName);
task.setFinishcode_name(finishCodeName);
}
return pages;
}

View File

@@ -19,6 +19,9 @@ import org.nl.wms.sch.task_manage.AcsTaskDto;
import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.springframework.http.HttpStatus;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -172,7 +175,11 @@ public class ConnectorUtil {
schBaseVehiclematerialgroup.setRegion_code(connectorDto.getNextOperation());
schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(connectorDto));
schBaseVehiclematerialgroup.setOrder_code(connectorDto.getProductionOrder());
schBaseVehiclematerialgroup.setDue_date(connectorDto.getDueDate());
if(connectorDto.getDue_date()==null){
LocalDateTime currentDateTime = LocalDateTime.now();
schBaseVehiclematerialgroup.setDue_date(currentDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}else{
schBaseVehiclematerialgroup.setDue_date(connectorDto.getDue_date());}
schBaseVehiclematerialgroup.setPriority(connectorDto.getPriority());
schBaseVehiclematerialgroup.setCreate_name(connectorDto.getCreate_name());
return schBaseVehiclematerialgroup;

View File

@@ -70,9 +70,9 @@ public class CNTTask extends AbstractTask {
tasks = tasks.stream().sorted(numericSuffixComparator).collect(Collectors.toList());
for (SchBaseTask task : tasks) {
SchBasePoint schBasePoint = null;
if(CollUtil.contains(Arrays.asList(CUSTOMIZE_POINT),task.getPoint_code1())){
schBasePoint = precedencePoint();
}
// if(CollUtil.contains(Arrays.asList(CUSTOMIZE_POINT),task.getPoint_code1())){
// schBasePoint = precedencePoint();
// }
if (ObjectUtil.isEmpty(schBasePoint) && TaskType.CARRY_TASK.getValue().equals(task.getTask_type())) {
schBasePoint = schBasePointService.selectByRegionCode(RegionEnum.LAG_ROBOT_BEANDING_CELL.getRegion_code(), task.getVehicle_code(), "1");
}
@@ -101,12 +101,14 @@ public class CNTTask extends AbstractTask {
if (task.getPoint_code1().endsWith("1") || task.getPoint_code1().endsWith("3") || task.getPoint_code1().endsWith("5")) {
task.setAcs_trace_id("4");
} else {
if(task.getPoint_code1().endsWith("2")){
updateTaskStop("2","1", task);
} else if(task.getPoint_code1().endsWith("4")){
updateTaskStop("4","3", task);
} else if(task.getPoint_code1().endsWith("6")){
updateTaskStop("6","5", task);
if (task.getPoint_code1().startsWith("CY")) {
if (task.getPoint_code1().endsWith("2")) {
updateTaskStop("2", "1", task);
} else if (task.getPoint_code1().endsWith("4")) {
updateTaskStop("4", "3", task);
} else if (task.getPoint_code1().endsWith("6")) {
updateTaskStop("6", "5", task);
}
}
}
TaskUtils.setUpdateByAcs(task);

View File

@@ -150,7 +150,7 @@ public class PcOperationSMTTask extends AbstractTask {
schBaseVehiclematerialgroup.setPoint_code(schBasePoint.getPoint_code());
schBaseVehiclematerialgroup.setMaterial_id(smv.getMaterial_code());
schBaseVehiclematerialgroup.setMaterial_qty(smv.getMaterial_qty());
schBaseVehiclematerialgroup.setRegion_code(smv.getRegion_code());
schBaseVehiclematerialgroup.setRegion_code(sendMaterVo.getRegion_code());
schBaseVehiclematerialgroup.setOrder_code(smv.getOrder_code());
schBaseVehiclematerialgroup.setDue_date(smv.getDue_date());
schBaseVehiclematerialgroup.setPriority(smv.getPriority());

View File

@@ -32,6 +32,7 @@ import org.nl.wms.ext.fab.service.dto.SendVehicleVo;
import org.nl.wms.ext.wms.service.LmsToWmsService;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
@@ -83,6 +84,8 @@ public class ProcessingSMTTask extends AbstractTask {
private LmsToWmsService lmsToWmsService;
@Autowired
private SysParamServiceImpl sysParamService;
@Autowired
private SchBaseVehiclematerialgroupMapper vehiclematerialgroupMapper;
@Override
protected void create() throws BadRequestException {
@@ -170,6 +173,8 @@ public class ProcessingSMTTask extends AbstractTask {
cn.hutool.json.JSONObject jsonObject2 = JSONUtil.parseObj(taskObj.getRequest_param());
String region_code = jsonObject2.getStr("region_code");
JSONArray materials = jsonObject2.getJSONArray("material");
String vehicle_code=taskObj.getVehicle_code();
String region_code1=vehiclematerialgroupMapper.selectRegioncodeByVehicleCode(vehicle_code);
if (CollUtil.isEmpty(materials)) {
materials = jsonObject2.getJSONArray("mater");
}