rev:现场调试优化

This commit is contained in:
2025-10-20 11:03:38 +08:00
parent a3f2c69f32
commit 0e19688493
18 changed files with 485 additions and 149 deletions

View File

@@ -12,7 +12,8 @@
WHERE WHERE
1=1 1=1
<if test="param.blurry != null and param.blurry != ''"> <if test="param.blurry != null and param.blurry != ''">
AND (material_code = #{param.blurry} OR material_name = #{param.blurry}) AND (material_code LIKE CONCAT('%', #{param.blurry}, '%')
OR material_name LIKE CONCAT('%', #{param.blurry}, '%'))
</if> </if>
<if test="param.material_type != null and param.material_type != ''"> <if test="param.material_type != null and param.material_type != ''">
AND material_type = #{param.material_type} AND material_type = #{param.material_type}

View File

@@ -123,11 +123,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
public Map<String, Object> secondaryAllocationPoint(String taskCode, String actionType, String type) { public Map<String, Object> secondaryAllocationPoint(String taskCode, String actionType, String type) {
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value()); result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
// RedissonUtils.lock(c -> { RedissonUtils.lock(c -> {
// try { try {
// Thread.sleep(1000); Thread.sleep(1000);
// } catch (InterruptedException e) { } catch (InterruptedException e) {
// } }
String pointCode = ""; String pointCode = "";
String action = ""; String action = "";
switch (actionType) { switch (actionType) {
@@ -146,16 +146,16 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
} }
result.put("status", org.springframework.http.HttpStatus.OK.value()); result.put("status", org.springframework.http.HttpStatus.OK.value());
return result; return result;
// }, "secondaryAllocationPoint" + actionType, null); }, "secondaryAllocationPoint" + actionType, null);
// log.info("二次分配" + taskCode + "---------------------------------------------" + result); log.info("二次分配" + taskCode + "---------------------------------------------" + result);
// return result; return result;
} }
private String getNewPoint(String taskCode, String actionType, String type) { private String getNewPoint(String taskCode, String actionType, String type) {
SchBasePoint newPoint = null; SchBasePoint newPoint = null;
String taskPointType = null; String taskPointType = null;
//执行中的任务 //执行中的任务
List<String> status = Arrays.asList(TaskStatus.EXECUTING.getCode(), TaskStatusEnum.PICK_UP_COMPLETED.getCode()); List<String> status = Arrays.asList(TaskStatus.EXECUTING.getCode(), TaskStatus.PICK_UP_COMPLETED.getCode());
SchBaseTask baseTask = taskService.getOne(new LambdaQueryWrapper<SchBaseTask>() SchBaseTask baseTask = taskService.getOne(new LambdaQueryWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_code, taskCode) .eq(SchBaseTask::getTask_code, taskCode)
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code("")) .eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code(""))
@@ -349,7 +349,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
SchBasePoint startPoint = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, start_point)); SchBasePoint startPoint = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, start_point));
PointUtils.setUpdateByAcs(startPoint); PointUtils.setUpdateByAcs(startPoint);
PointUtils.clearPoint(startPoint); PointUtils.clearPoint(startPoint);
task.setTask_status(TaskStatusEnum.PICK_UP_COMPLETED.getCode()); task.setTask_status(TaskStatus.PICK_UP_COMPLETED.getCode());
TaskUtils.setUpdateByAcs(task); TaskUtils.setUpdateByAcs(task);
taskService.updateById(task); taskService.updateById(task);
return result; return result;

View File

@@ -84,6 +84,12 @@ public class PdaTaskController {
return new ResponseEntity<>(pdaTaskService.getChargeRegions(), HttpStatus.OK); return new ResponseEntity<>(pdaTaskService.getChargeRegions(), HttpStatus.OK);
} }
@PostMapping("/getCallRegions")
@Log("获取所有区域")
public ResponseEntity<Object> getCallRegions() {
return new ResponseEntity<>(pdaTaskService.getCallRegions(), HttpStatus.OK);
}
@PostMapping("/getPointInfo") @PostMapping("/getPointInfo")
@Log("获取点位信息") @Log("获取点位信息")
public ResponseEntity<Object> getPointInfo(@RequestBody JSONObject whereJson) { public ResponseEntity<Object> getPointInfo(@RequestBody JSONObject whereJson) {
@@ -230,6 +236,11 @@ public class PdaTaskController {
return new ResponseEntity<>(pdaTaskService.selectMaterialByRegion(whereJson), HttpStatus.OK); return new ResponseEntity<>(pdaTaskService.selectMaterialByRegion(whereJson), HttpStatus.OK);
} }
@PostMapping("/selectFullMaterials")
@Log("根据区域编码查询用料清单")
@SaIgnore
public ResponseEntity<Object> selectFullMaterials(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(pdaTaskService.selectFullMaterials(whereJson), HttpStatus.OK);
}
} }

View File

@@ -53,6 +53,8 @@ public interface PdaTaskService {
JSONObject selectMaterialByRegion(JSONObject whereJson); JSONObject selectMaterialByRegion(JSONObject whereJson);
JSONObject selectFullMaterials(JSONObject whereJson);
JSONObject inArea(JSONObject whereJson); JSONObject inArea(JSONObject whereJson);
JSONObject outArea(JSONObject whereJson); JSONObject outArea(JSONObject whereJson);
@@ -65,6 +67,8 @@ public interface PdaTaskService {
JSONObject getChargeRegions(); JSONObject getChargeRegions();
JSONObject getCallRegions();
JSONObject getMaterialTypes(); JSONObject getMaterialTypes();
JSONObject selectMaterialByPointCode(JSONObject whereJson); JSONObject selectMaterialByPointCode(JSONObject whereJson);

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpStatus; import cn.hutool.http.HttpStatus;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -52,6 +53,7 @@ import org.nl.wms.sch.task.service.dao.mapper.SchBaseTaskMapper;
import org.nl.wms.sch.task_manage.AbstractTask; import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.GeneralDefinition; import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.enums.PointStatusEnum; import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
import org.nl.wms.sch.task_manage.enums.PointTypeEnum;
import org.nl.wms.sch.task_manage.enums.RegionTypeEnum; import org.nl.wms.sch.task_manage.enums.RegionTypeEnum;
import org.nl.wms.sch.task_manage.task.TaskFactory; import org.nl.wms.sch.task_manage.task.TaskFactory;
import org.nl.wms.sch.tasks.PdaPointTask; import org.nl.wms.sch.tasks.PdaPointTask;
@@ -96,10 +98,13 @@ public class PdaTaskServiceImpl implements PdaTaskService {
private RegionChargeMapper regionChargeMapper; private RegionChargeMapper regionChargeMapper;
@Autowired @Autowired
private WmsToAcsService wmsToAcsService; private WmsToAcsService wmsToAcsService;
@Autowired
private MdPbGroupplatedtlMapper mdPbGroupplatedtlMapper;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public PdaResponseVo loading(JSONObject whereJson) { public PdaResponseVo loading(JSONObject whereJson) {
log.info("产线叫料,请求参数:" + whereJson);
String point_code = whereJson.getString("point_code"); String point_code = whereJson.getString("point_code");
String region_code = whereJson.getString("region_code"); String region_code = whereJson.getString("region_code");
String material_code = whereJson.getString("material_code"); String material_code = whereJson.getString("material_code");
@@ -198,6 +203,18 @@ public class PdaTaskServiceImpl implements PdaTaskService {
throw new BadRequestException("点位" + point_code + "不存在!"); throw new BadRequestException("点位" + point_code + "不存在!");
} }
String region_code = point.getRegion_code(); String region_code = point.getRegion_code();
if ("N1".equals(region_code) || "N3".equals(region_code)) {
if (!point.getPoint_type().equals(PointTypeEnum.NET_IN_POINT.getCode())){
throw new BadRequestException("点位" + point_code + "不为NET的上料位请扫描正确上料位再重新操作!");
}
}else if ("L1".equals(region_code) || "L2".equals(region_code)) {
List<String> regions = Arrays.asList("1", "2", "3");
if (!regions.contains(point.getPoint_type())){
throw new BadRequestException("点位" + point_code + "不为贴合加工区的上料位,请扫描正确上料位再重新操作!");
}
}else {
throw new BadRequestException("当前点位" + point_code + "不是上料位!");
}
String region_name = point.getRegion_name(); String region_name = point.getRegion_name();
JSONObject jo = new JSONObject(); JSONObject jo = new JSONObject();
jo.put("region_code", region_code); jo.put("region_code", region_code);
@@ -208,6 +225,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public PdaResponseVo blanking(JSONObject whereJson) { public PdaResponseVo blanking(JSONObject whereJson) {
log.info("产线下料,请求参数:" + whereJson);
String point_code = whereJson.getString("point_code"); String point_code = whereJson.getString("point_code");
String region_code = whereJson.getString("region_code"); String region_code = whereJson.getString("region_code");
JSONArray data = whereJson.getJSONArray("data"); JSONArray data = whereJson.getJSONArray("data");
@@ -224,6 +242,9 @@ public class PdaTaskServiceImpl implements PdaTaskService {
if (ObjectUtil.isEmpty(point)) { if (ObjectUtil.isEmpty(point)) {
throw new BadRequestException("点位" + point_code + "不存在!"); throw new BadRequestException("点位" + point_code + "不存在!");
} }
if (point.getPoint_status().equals(PointStatusEnum.EMPTY_VEHICLE.getCode())){
throw new BadRequestException("点位" + point_code + "已有货,请先检查再操作!");
}
List<SchBaseTask> list = taskService.findTaskByPoint(point_code); List<SchBaseTask> list = taskService.findTaskByPoint(point_code);
if (list.size() > 0) { if (list.size() > 0) {
throw new BadRequestException("点位" + point_code + "已经存在agv任务!"); throw new BadRequestException("点位" + point_code + "已经存在agv任务!");
@@ -234,16 +255,24 @@ public class PdaTaskServiceImpl implements PdaTaskService {
if (mdMeMaterialbase == null) { if (mdMeMaterialbase == null) {
throw new BadRequestException("当前物料不存在【" + material_code + ""); throw new BadRequestException("当前物料不存在【" + material_code + "");
} }
String vehicleCode = "TP" + TaskUtils.getDateTime("yyMMddHHmmss") + CodeUtil.getNewCode("VEHICLE_CODE");
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
param.put("device_code", point.getPoint_code()); param.put("device_code", point.getPoint_code());
param.put("material_code", mdMeMaterialbase.getMaterial_code()); param.put("material_code", mdMeMaterialbase.getMaterial_code());
param.put("requestNo", IdUtil.simpleUUID()); param.put("requestNo", IdUtil.simpleUUID());
if ("N1".equals(point.getRegion_code()) || "N3".equals(point.getRegion_code())) { if ("N1".equals(point.getRegion_code()) || "N3".equals(point.getRegion_code())) {
if (!point.getPoint_type().equals(PointTypeEnum.NET_OUT_POINT.getCode())){
throw new BadRequestException("点位" + point_code + "不为NET的下料位请扫描正确下料位再重新操作!");
}
param.put("config_code", "NETXLTask"); param.put("config_code", "NETXLTask");
} else if ("L1".equals(point.getRegion_code()) || "L2".equals(point.getRegion_code())) { } else if ("L1".equals(point.getRegion_code()) || "L2".equals(point.getRegion_code())) {
param.put("config_code", "THXLTask"); if (!point.getPoint_type().equals(PointTypeEnum.L_OUT_POINT.getCode())){
throw new BadRequestException("点位" + point_code + "不为贴合加工下料位,请扫描正确下料位再重新操作!");
} }
param.put("config_code", "THXLTask");
}else {
throw new BadRequestException("当前点位" + point_code + "不是下料位!");
}
String vehicleCode = "TP" + TaskUtils.getDateTime("yyMMddHHmmss") + CodeUtil.getNewCode("VEHICLE_CODE");
param.put("vehicle_code", vehicleCode); param.put("vehicle_code", vehicleCode);
// param.put("vehicle_qty", "1"); // param.put("vehicle_qty", "1");
param.put("user_id", "1"); param.put("user_id", "1");
@@ -400,6 +429,27 @@ public class PdaTaskServiceImpl implements PdaTaskService {
return ret; return ret;
} }
@Override
public JSONObject getCallRegions() {
List<String> regions = Arrays.asList("MB","H1", "H2","E1", "E2","GC","HXTFZW");
List<SchBaseRegion> list = regionMapper.selectList(new LambdaQueryWrapper<SchBaseRegion>().in(SchBaseRegion::getRegion_code, regions));
List<JSONObject> ja = new ArrayList<>();
list.forEach(region -> {
JSONObject jo = new JSONObject();
jo.put("value", region.getRegion_code());
jo.put("text", region.getRegion_name());
ja.add(jo);
});
JSONObject ret = new JSONObject();
if (ObjectUtil.isNotEmpty(list)) {
ret.put("code", String.valueOf(HttpStatus.HTTP_OK));
ret.put("message", "查询成功");
ret.put("data", ja);
return ret;
}
return ret;
}
@Override @Override
public JSONObject getChargeRegions() { public JSONObject getChargeRegions() {
List<String> regions = Arrays.asList("H1", "H2"); List<String> regions = Arrays.asList("H1", "H2");
@@ -605,6 +655,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
@Override @Override
public PdaResponseVo sendPointTask(JSONObject whereJson) { public PdaResponseVo sendPointTask(JSONObject whereJson) {
log.info("创建定点任务");
// 校验数据 // 校验数据
checkPoint(whereJson); checkPoint(whereJson);
// 创建任务 // 创建任务
@@ -619,6 +670,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
@Override @Override
public PdaResponseVo unlock(JSONObject whereJson) { public PdaResponseVo unlock(JSONObject whereJson) {
log.info("库位解锁");
JSONArray data = whereJson.getJSONArray("data"); JSONArray data = whereJson.getJSONArray("data");
if (ObjectUtil.isEmpty(data)) { if (ObjectUtil.isEmpty(data)) {
throw new BadRequestException("数据不能为空!"); throw new BadRequestException("数据不能为空!");
@@ -643,6 +695,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
@Override @Override
public PdaResponseVo lock(JSONObject whereJson) { public PdaResponseVo lock(JSONObject whereJson) {
log.info("库位锁定");
JSONArray data = whereJson.getJSONArray("data"); JSONArray data = whereJson.getJSONArray("data");
if (ObjectUtil.isEmpty(data)) { if (ObjectUtil.isEmpty(data)) {
throw new BadRequestException("数据不能为空!"); throw new BadRequestException("数据不能为空!");
@@ -667,6 +720,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
@Override @Override
public JSONObject comfirmGetting(JSONObject whereJson) { public JSONObject comfirmGetting(JSONObject whereJson) {
log.info("人工开始取货");
String point_code = whereJson.getString("point_code"); String point_code = whereJson.getString("point_code");
if (ObjectUtil.isEmpty(point_code)) { if (ObjectUtil.isEmpty(point_code)) {
throw new BadRequestException("点位不能为空!"); throw new BadRequestException("点位不能为空!");
@@ -676,17 +730,24 @@ public class PdaTaskServiceImpl implements PdaTaskService {
throw new BadRequestException("点位不存在!"); throw new BadRequestException("点位不存在!");
} }
if (ObjectUtil.isNotEmpty(point.getStoragevehicle_code())) { if (ObjectUtil.isNotEmpty(point.getStoragevehicle_code())) {
GroupPlate groupPlate = groupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, point.getStoragevehicle_code()) GroupPlate groupPlate = groupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, point.getStoragevehicle_code()));
.eq(GroupPlate::getStatus, GroupStatus.START.getCode()) if (ObjectUtil.isNotEmpty(groupPlate)) {
.eq(GroupPlate::getIs_delete, GeneralDefinition.NO)); //删除组盘信息
groupPlate.setStatus(GroupStatus.OUT.getCode()); List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
groupPlate.setUpdate_id(SecurityUtils.getCurrentUserId()); if (list.size() > 0) {
groupPlate.setUpdate_name(SecurityUtils.getCurrentUsername()); Set<String> ids = new HashSet<String>();
groupPlate.setUpdate_time(DateUtil.now()); list.forEach(groupPlatedtl ->{
groupplateMapper.updateById(groupPlate); String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
groupplateMapper.deleteById(groupPlate);
}
} }
point.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode()); point.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
point.setStoragevehicle_code(""); point.setStoragevehicle_code("");
point.setMaterial_code("");
pointMapper.updateById(point); pointMapper.updateById(point);
JSONObject ret = new JSONObject(); JSONObject ret = new JSONObject();
ret.put("status", String.valueOf(HttpStatus.HTTP_OK)); ret.put("status", String.valueOf(HttpStatus.HTTP_OK));
@@ -696,6 +757,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
@Override @Override
public JSONObject vehicleBinding(JSONObject whereJson) { public JSONObject vehicleBinding(JSONObject whereJson) {
log.info("载具绑定,请求参数:" + whereJson);
String point_code = whereJson.getString("point_code"); String point_code = whereJson.getString("point_code");
SchBasePoint point = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, point_code)); SchBasePoint point = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, point_code));
point.setPoint_status("2"); point.setPoint_status("2");
@@ -710,6 +772,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public JSONObject materialBinding(JSONObject whereJson) { public JSONObject materialBinding(JSONObject whereJson) {
log.info("物料绑定,请求参数:" + whereJson);
String point_code = whereJson.getString("point_code"); String point_code = whereJson.getString("point_code");
//校验该点位是否存在任务 //校验该点位是否存在任务
List<SchBaseTask> taskList = taskService.findTaskByPoint(point_code); List<SchBaseTask> taskList = taskService.findTaskByPoint(point_code);
@@ -806,7 +869,14 @@ public class PdaTaskServiceImpl implements PdaTaskService {
List<JSONObject> list = pointMapper.queryPointInfo(whereJson); List<JSONObject> list = pointMapper.queryPointInfo(whereJson);
JSONArray arr = new JSONArray(); JSONArray arr = new JSONArray();
list.forEach(item -> { list.forEach(item -> {
JSONArray ext_code = item.getJSONArray("ext_code"); String ext_code = item.getString("ext_code");
String substring = ext_code.substring(1, ext_code.length() - 1);
List<String> containerList = new ArrayList<>();
String[] containers = substring.split(",");
for (int i = 0; i < containers.length; i++) {
String s = containers[i].replace("\"", "").replace("\"", "");
containerList.add(s);
}
JSONObject jo = new JSONObject(); JSONObject jo = new JSONObject();
jo.put("point_code", item.getString("point_code")); jo.put("point_code", item.getString("point_code"));
jo.put("is_used", item.getString("is_used")); jo.put("is_used", item.getString("is_used"));
@@ -814,7 +884,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
jo.put("material_name", item.getString("material_name")); jo.put("material_name", item.getString("material_name"));
jo.put("qty", item.getString("qty")); jo.put("qty", item.getString("qty"));
jo.put("measure_unit_id", item.getString("unit_name")); jo.put("measure_unit_id", item.getString("unit_name"));
jo.put("containers", ext_code); jo.put("containers", containerList);
arr.add(jo); arr.add(jo);
}); });
JSONObject ret = new JSONObject(); JSONObject ret = new JSONObject();
@@ -854,8 +924,28 @@ public class PdaTaskServiceImpl implements PdaTaskService {
return ret; return ret;
} }
@Override
public JSONObject selectFullMaterials(JSONObject whereJson) {
String region_code = whereJson.getString("region_code");
List<JSONObject> list = materialRecordMapper.selectMaterialByRegionCode(region_code);
JSONArray arr = new JSONArray();
list.forEach(item -> {
JSONObject jo = new JSONObject();
jo.put("material_code", item.getString("material_code"));
jo.put("material_name", item.getString("material_name"));
arr.add(jo);
});
JSONObject ret = new JSONObject();
ret.put("code", String.valueOf(HttpStatus.HTTP_OK));
ret.put("message", "查询成功");
ret.put("data", arr);
return ret;
}
@Override @Override
public JSONObject inArea(JSONObject whereJson) { public JSONObject inArea(JSONObject whereJson) {
log.info("请求进入,请求参数:" + whereJson);
String region_code = whereJson.getString("region_code"); String region_code = whereJson.getString("region_code");
if (StrUtil.isEmpty(region_code)) { if (StrUtil.isEmpty(region_code)) {
throw new BadRequestException("区域编码不能为空!"); throw new BadRequestException("区域编码不能为空!");
@@ -888,6 +978,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
@Override @Override
public JSONObject outArea(JSONObject whereJson) { public JSONObject outArea(JSONObject whereJson) {
log.info("请求离开,请求参数:" + whereJson);
String region_name = whereJson.getString("region_name"); String region_name = whereJson.getString("region_name");
String create_name = whereJson.getString("create_name"); String create_name = whereJson.getString("create_name");
SchBasePoint schBasePoint = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getRegion_name, region_name) SchBasePoint schBasePoint = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getRegion_name, region_name)
@@ -927,7 +1018,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
SchBasePoint pointStartDao = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>() SchBasePoint pointStartDao = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, start_point_code)); .eq(SchBasePoint::getPoint_code, start_point_code));
if (!pointStartDao.getPoint_status().equals("2")) { if (!pointStartDao.getPoint_status().equals("2")) {
throw new BadRequestException(end_point_code + "点位不是满位状态"); throw new BadRequestException(start_point_code + "点位不是满位状态");
} }
// 校验终点 // 校验终点

View File

@@ -15,4 +15,6 @@ public interface MaterialRecordMapper extends BaseMapper<MaterialRecord> {
List<JSONObject> selectMaterialByRegion(@Param("region_code") String region_code); List<JSONObject> selectMaterialByRegion(@Param("region_code") String region_code);
List<JSONObject> getMaterialTypes(); List<JSONObject> getMaterialTypes();
List<JSONObject> selectMaterialByRegionCode(@Param("region_code") String region_code);
} }

View File

@@ -36,4 +36,28 @@
GROUP BY GROUP BY
material_type material_type
</select> </select>
<select id="selectMaterialByRegionCode" resultType="com.alibaba.fastjson.JSONObject"
parameterType="java.lang.String">
SELECT
p.material_code,
MAX(plate.material_name) as material_name
FROM `sch_base_point` p
LEFT JOIN md_pb_groupplate plate ON plate.storagevehicle_code = p.storagevehicle_code
WHERE
p.region_code = #{region_code}
AND 0 = (
SELECT COUNT(*)
FROM sch_base_task
WHERE (point_code1 = p.point_code
OR point_code2 = p.point_code
OR point_code3 = p.point_code
OR point_code4 = p.point_code
)
AND task_status <![CDATA[<]]> '5'
AND is_delete = '0'
)
AND p.point_status = '2'
AND p.is_used = 1
GROUP BY p.material_code
</select>
</mapper> </mapper>

View File

@@ -40,16 +40,16 @@
<if test="whereJson.is_used != null"> <if test="whereJson.is_used != null">
AND is_used = #{whereJson.is_used} AND is_used = #{whereJson.is_used}
</if> </if>
<choose> <!-- <choose>-->
<!-- Case: whereJson.lock_type is true --> <!-- &lt;!&ndash; Case: whereJson.lock_type is true &ndash;&gt;-->
<when test="whereJson.lock_type"> <!-- <when test="whereJson.lock_type">-->
AND (ing_task_code IS NOT NULL AND ing_task_code <![CDATA[<>]]> '') <!-- AND (ing_task_code IS NOT NULL AND ing_task_code <![CDATA[<>]]> '')-->
</when> <!-- </when>-->
<!-- Case: whereJson.lock_type is false --> <!-- &lt;!&ndash; Case: whereJson.lock_type is false &ndash;&gt;-->
<otherwise> <!-- <otherwise>-->
AND (ing_task_code IS NULL OR ing_task_code = '') <!-- AND (ing_task_code IS NULL OR ing_task_code = '')-->
</otherwise> <!-- </otherwise>-->
</choose> <!-- </choose>-->
</where> </where>
ORDER BY region_code, point_code, point_type ORDER BY region_code, point_code, point_type
</select> </select>

View File

@@ -59,12 +59,13 @@
WHEN '2' THEN '创建完成' WHEN '2' THEN '创建完成'
WHEN '3' THEN '下发' WHEN '3' THEN '下发'
WHEN '4' THEN '执行中' WHEN '4' THEN '执行中'
WHEN '071' THEN '取货完成'
END) AS task_status END) AS task_status
FROM FROM
sch_base_task sch_base_task
<where> <where>
is_delete = '0' is_delete = '0'
AND task_status IN ('0','1','2','3','4') AND task_status IN ('0','1','2','3','4','071')
<if test="param.task_code != null and param.task_code != ''"> <if test="param.task_code != null and param.task_code != ''">
AND AND
(task_code = #{param.task_code} or (task_code = #{param.task_code} or

View File

@@ -0,0 +1,20 @@
package org.nl.wms.sch.task_manage.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum PointTypeEnum {
NET_IN_POINT("1", "N1/N3下料位"),
NET_OUT_POINT("2", "N1/N3下料位"),
L_IN_POINT("4", "L1/L2位"),
L_OUT_POINT("4", "L1/L2下料位");
private final String code;
private final String label;
}

View File

@@ -33,12 +33,16 @@ public enum TaskStatus {
* 已取消 * 已取消
*/ */
CANCELED("6", "已取消", "已取消"), CANCELED("6", "已取消", "已取消"),
PICK_UP_COMPLETED("071", "取货完成,执行中","取货完成,执行中"),
/** /**
* 未完成 * 未完成
*/ */
UNFINISHED("7", "未完成", "未完成"); UNFINISHED("7", "未完成", "未完成");
TaskStatus(String code, String name, String desc) { TaskStatus(String code, String name, String desc) {
this.code = code; this.code = code;
this.name = name; this.name = name;

View File

@@ -30,6 +30,7 @@ import org.nl.wms.util.TaskUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import oshi.driver.mac.net.NetStat;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;

View File

@@ -21,6 +21,10 @@ import org.nl.wms.sch.forewarn.service.dao.StIvtForewarningconfig;
import org.nl.wms.sch.forewarn.service.dao.StIvtForewarningmaterial; import org.nl.wms.sch.forewarn.service.dao.StIvtForewarningmaterial;
import org.nl.wms.sch.forewarn.service.dao.mapper.StIvtForewarningconfigMapper; import org.nl.wms.sch.forewarn.service.dao.mapper.StIvtForewarningconfigMapper;
import org.nl.wms.sch.forewarn.service.dao.mapper.StIvtForewarningmaterialMapper; import org.nl.wms.sch.forewarn.service.dao.mapper.StIvtForewarningmaterialMapper;
import org.nl.wms.sch.group.service.dao.GroupPlate;
import org.nl.wms.sch.group.service.dao.GroupPlatedtl;
import org.nl.wms.sch.group.service.dao.mapper.MdPbGroupplateMapper;
import org.nl.wms.sch.group.service.dao.mapper.MdPbGroupplatedtlMapper;
import org.nl.wms.sch.point.service.ISchBasePointService; 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.SchBasePoint;
import org.nl.wms.sch.point.service.dto.SchBasePointDto; import org.nl.wms.sch.point.service.dto.SchBasePointDto;
@@ -43,9 +47,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Arrays; import java.util.*;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
// NET加工区上料任务 // NET加工区上料任务
@@ -74,6 +76,10 @@ public class NETSLTask extends AbstractTask {
private StIvtForewarningconfigMapper stIvtForewarningconfigMapper; private StIvtForewarningconfigMapper stIvtForewarningconfigMapper;
@Autowired @Autowired
private MdMeMaterialbaseMapper mdMeMaterialbaseMapper; private MdMeMaterialbaseMapper mdMeMaterialbaseMapper;
@Autowired
private MdPbGroupplateMapper mdPbGroupplateMapper;
@Autowired
private MdPbGroupplatedtlMapper mdPbGroupplatedtlMapper;
@Override @Override
public void create() throws BadRequestException { public void create() throws BadRequestException {
@@ -201,6 +207,7 @@ public class NETSLTask extends AbstractTask {
if (ObjectUtil.isNotEmpty(endPointObj)) { if (ObjectUtil.isNotEmpty(endPointObj)) {
endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode());
endPointObj.setStoragevehicle_code(taskObj.getVehicle_code()); endPointObj.setStoragevehicle_code(taskObj.getVehicle_code());
endPointObj.setMaterial_code(taskObj.getMaterial_code());
// endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); // endPointObj.setVehicle_qty(taskObj.getVehicle_qty());
endPointObj.setUpdate_time(DateUtil.now()); endPointObj.setUpdate_time(DateUtil.now());
PointUtils.setUpdateByType(endPointObj, taskFinishedType); PointUtils.setUpdateByType(endPointObj, taskFinishedType);
@@ -240,6 +247,43 @@ public class NETSLTask extends AbstractTask {
SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1()); SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1());
// 起点解锁 // 起点解锁
if (ObjectUtil.isNotEmpty(startPointObj)) { if (ObjectUtil.isNotEmpty(startPointObj)) {
String storagevehicle_code = startPointObj.getStoragevehicle_code();
//取货完成会清空托盘号
//托盘号不为空,还未取货
if (ObjectUtil.isEmpty(storagevehicle_code)&&startPointObj.getPoint_type().equals("1")) {
String vehicle_code = taskObj.getVehicle_code();
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, vehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息
List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
if (list.size()>0){
Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
mdPbGroupplateMapper.deleteById(groupPlate);
}
}else {
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, storagevehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息
List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
if (list.size() > 0) {
Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
mdPbGroupplateMapper.deleteById(groupPlate);
}
startPointObj.setMaterial_code("");
startPointObj.setStoragevehicle_code("");
}
startPointObj.setIng_task_code(""); startPointObj.setIng_task_code("");
PointUtils.setUpdateByType(startPointObj, taskFinishedType); PointUtils.setUpdateByType(startPointObj, taskFinishedType);
pointService.updateById(startPointObj); pointService.updateById(startPointObj);

View File

@@ -37,7 +37,9 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -163,7 +165,7 @@ public class NETXLTask extends AbstractTask {
List<SchBasePoint> list = pointService.getSamePoints(regionCode, task.getMaterial_code()); List<SchBasePoint> list = pointService.getSamePoints(regionCode, task.getMaterial_code());
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)) {
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
SchBasePoint point = list.get(0); SchBasePoint point = list.get(i);
int col_num = point.getCol_num(); int col_num = point.getCol_num();
if (col_num == 1) { if (col_num == 1) {
continue; continue;
@@ -195,7 +197,7 @@ public class NETXLTask extends AbstractTask {
return null; return null;
} }
for (int i = 0; i < points.size(); i++) { for (int i = 0; i < points.size(); i++) {
SchBasePoint thirdColPoint = points.get(0); SchBasePoint thirdColPoint = points.get(i);
String firstColPointCode = thirdColPoint.getPoint_code().substring(0, thirdColPoint.getPoint_code().length() - 1) + "1"; String firstColPointCode = thirdColPoint.getPoint_code().substring(0, thirdColPoint.getPoint_code().length() - 1) + "1";
String secondColPointCode = thirdColPoint.getPoint_code().substring(0, thirdColPoint.getPoint_code().length() - 1) + "2"; String secondColPointCode = thirdColPoint.getPoint_code().substring(0, thirdColPoint.getPoint_code().length() - 1) + "2";
@@ -301,6 +303,7 @@ public class NETXLTask extends AbstractTask {
if (ObjectUtil.isNotEmpty(endPointObj)) { if (ObjectUtil.isNotEmpty(endPointObj)) {
endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode());
endPointObj.setStoragevehicle_code(taskObj.getVehicle_code()); endPointObj.setStoragevehicle_code(taskObj.getVehicle_code());
endPointObj.setMaterial_code(taskObj.getMaterial_code());
endPointObj.setUpdate_time(DateUtil.now()); endPointObj.setUpdate_time(DateUtil.now());
PointUtils.setUpdateByType(endPointObj, taskFinishedType); PointUtils.setUpdateByType(endPointObj, taskFinishedType);
pointService.updateById(endPointObj); pointService.updateById(endPointObj);
@@ -320,14 +323,44 @@ public class NETXLTask extends AbstractTask {
// 起点解锁 // 起点解锁
if (ObjectUtil.isNotEmpty(startPointObj)) { if (ObjectUtil.isNotEmpty(startPointObj)) {
String storagevehicle_code = startPointObj.getStoragevehicle_code(); String storagevehicle_code = startPointObj.getStoragevehicle_code();
if (ObjectUtil.isNotEmpty(storagevehicle_code)) { //取货完成会清空托盘号
//托盘号不为空,还未取货
if (ObjectUtil.isEmpty(storagevehicle_code)) {
String vehicle_code = taskObj.getVehicle_code();
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, vehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息
List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
if (list.size()>0){
Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
mdPbGroupplateMapper.deleteById(groupPlate);
}
}else {
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, storagevehicle_code)); GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, storagevehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) { if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息 //删除组盘信息
groupPlate.setIs_delete(GeneralDefinition.YES); List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
mdPbGroupplateMapper.updateById(groupPlate); if (list.size() > 0) {
Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
mdPbGroupplateMapper.deleteById(groupPlate);
} }
} }
startPointObj.setMaterial_code("");
startPointObj.setStoragevehicle_code("");
startPointObj.setIng_task_code("");
startPointObj.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
PointUtils.setUpdateByType(startPointObj, taskFinishedType); PointUtils.setUpdateByType(startPointObj, taskFinishedType);
pointService.updateById(startPointObj); pointService.updateById(startPointObj);
} }

View File

@@ -3,11 +3,16 @@ package org.nl.wms.sch.tasks.thsl;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.enums.PackageInfoIvtEnum;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.system.service.notice.ISysNoticeService; import org.nl.system.service.notice.ISysNoticeService;
import org.nl.wms.sch.group.service.dao.GroupPlate;
import org.nl.wms.sch.group.service.dao.GroupPlatedtl;
import org.nl.wms.sch.group.service.dao.mapper.MdPbGroupplateMapper;
import org.nl.wms.sch.group.service.dao.mapper.MdPbGroupplatedtlMapper;
import org.nl.wms.sch.point.service.ISchBasePointService; 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.SchBasePoint;
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper; import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
@@ -32,9 +37,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import oshi.driver.mac.net.NetStat; import oshi.driver.mac.net.NetStat;
import java.util.Arrays; import java.util.*;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
//// 贴合区上料任务 //// 贴合区上料任务
@@ -54,6 +57,10 @@ public class THSLTask extends AbstractTask {
private THSLMapper thslMapper; private THSLMapper thslMapper;
@Autowired @Autowired
private SchBasePointMapper pointMapper; private SchBasePointMapper pointMapper;
@Autowired
private MdPbGroupplateMapper mdPbGroupplateMapper;
@Autowired
private MdPbGroupplatedtlMapper mdPbGroupplatedtlMapper;
@Override @Override
public void create() throws BadRequestException { public void create() throws BadRequestException {
@@ -124,6 +131,12 @@ public class THSLTask extends AbstractTask {
task.setPoint_code1(schBasePointDto.getPoint_code()); task.setPoint_code1(schBasePointDto.getPoint_code());
task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务")); task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务"));
} }
String requestParam = task.getRequest_param();
JSONObject jsonObject = JSONObject.parseObject(requestParam);
String point4 = jsonObject.getString("point4");
if (StrUtil.isNotEmpty(point4)){
task.setPoint_code4(point4);
}
// 设置终点并修改创建成功状态 // 设置终点并修改创建成功状态
task.setVehicle_code(schBasePointDto.getStoragevehicle_code()); task.setVehicle_code(schBasePointDto.getStoragevehicle_code());
task.setRemark(""); task.setRemark("");
@@ -188,6 +201,7 @@ public class THSLTask extends AbstractTask {
if (ObjectUtil.isNotEmpty(endPointObj)) { if (ObjectUtil.isNotEmpty(endPointObj)) {
endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode());
endPointObj.setStoragevehicle_code(taskObj.getVehicle_code()); endPointObj.setStoragevehicle_code(taskObj.getVehicle_code());
endPointObj.setMaterial_code(taskObj.getMaterial_code());
endPointObj.setUpdate_time(DateUtil.now()); endPointObj.setUpdate_time(DateUtil.now());
PointUtils.setUpdateByType(endPointObj, taskFinishedType); PointUtils.setUpdateByType(endPointObj, taskFinishedType);
pointService.updateById(endPointObj); pointService.updateById(endPointObj);
@@ -206,6 +220,43 @@ public class THSLTask extends AbstractTask {
SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1()); SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1());
// 起点解锁 // 起点解锁
if (ObjectUtil.isNotEmpty(startPointObj)) { if (ObjectUtil.isNotEmpty(startPointObj)) {
String storagevehicle_code = startPointObj.getStoragevehicle_code();
//取货完成会清空托盘号
//托盘号不为空,还未取货
if (ObjectUtil.isEmpty(storagevehicle_code)&&startPointObj.getPoint_type().equals("1")) {
String vehicle_code = taskObj.getVehicle_code();
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, vehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息
List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
if (list.size()>0){
Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
mdPbGroupplateMapper.deleteById(groupPlate);
}
}else {
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, storagevehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息
List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
if (list.size() > 0) {
Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
mdPbGroupplateMapper.deleteById(groupPlate);
}
startPointObj.setMaterial_code("");
startPointObj.setStoragevehicle_code("");
}
startPointObj.setIng_task_code(""); startPointObj.setIng_task_code("");
PointUtils.setUpdateByType(startPointObj, taskFinishedType); PointUtils.setUpdateByType(startPointObj, taskFinishedType);
pointService.updateById(startPointObj); pointService.updateById(startPointObj);

View File

@@ -8,6 +8,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.enums.PackageInfoIvtEnum;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.system.service.notice.ISysNoticeService; import org.nl.system.service.notice.ISysNoticeService;
import org.nl.wms.sch.group.service.dao.GroupPlate;
import org.nl.wms.sch.group.service.dao.GroupPlatedtl;
import org.nl.wms.sch.group.service.dao.mapper.MdPbGroupplateMapper;
import org.nl.wms.sch.group.service.dao.mapper.MdPbGroupplatedtlMapper;
import org.nl.wms.sch.point.service.ISchBasePointService; 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.SchBasePoint;
import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.ISchBaseTaskService;
@@ -31,7 +35,9 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
//// 贴合区下料任务 //// 贴合区下料任务
@@ -49,6 +55,10 @@ public class THXLTask extends AbstractTask {
private ISysNoticeService noticeService; private ISysNoticeService noticeService;
@Autowired @Autowired
private THXLMapper thxlMapper; private THXLMapper thxlMapper;
@Autowired
private MdPbGroupplateMapper mdPbGroupplateMapper;
@Autowired
private MdPbGroupplatedtlMapper mdPbGroupplatedtlMapper;
@Override @Override
public void create() throws BadRequestException { public void create() throws BadRequestException {
@@ -125,7 +135,7 @@ public class THXLTask extends AbstractTask {
List<SchBasePoint> list = pointService.getSamePoints(regionCode, task.getMaterial_code()); List<SchBasePoint> list = pointService.getSamePoints(regionCode, task.getMaterial_code());
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)) {
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
SchBasePoint point = list.get(0); SchBasePoint point = list.get(i);
int col_num = point.getCol_num(); int col_num = point.getCol_num();
if (col_num == 1) { if (col_num == 1) {
continue; continue;
@@ -158,7 +168,7 @@ public class THXLTask extends AbstractTask {
return null; return null;
} }
for (int i = 0; i < points.size(); i++) { for (int i = 0; i < points.size(); i++) {
SchBasePoint twoColPoint = points.get(0); SchBasePoint twoColPoint = points.get(i);
String firstColPointCode = twoColPoint.getPoint_code().substring(0, twoColPoint.getPoint_code().length() - 1) + "1"; String firstColPointCode = twoColPoint.getPoint_code().substring(0, twoColPoint.getPoint_code().length() - 1) + "1";
// 查询第一列 // 查询第一列
SchBasePoint firstColPoint = pointService.findByCode(firstColPointCode); SchBasePoint firstColPoint = pointService.findByCode(firstColPointCode);
@@ -279,6 +289,7 @@ public class THXLTask extends AbstractTask {
endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode());
endPointObj.setStoragevehicle_code(taskObj.getVehicle_code()); endPointObj.setStoragevehicle_code(taskObj.getVehicle_code());
endPointObj.setMaterial_code(taskObj.getMaterial_code());
endPointObj.setUpdate_time(DateUtil.now()); endPointObj.setUpdate_time(DateUtil.now());
PointUtils.setUpdateByType(endPointObj, taskFinishedType); PointUtils.setUpdateByType(endPointObj, taskFinishedType);
pointService.updateById(endPointObj); pointService.updateById(endPointObj);
@@ -297,7 +308,45 @@ public class THXLTask extends AbstractTask {
SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1()); SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1());
// 起点解锁 // 起点解锁
if (ObjectUtil.isNotEmpty(startPointObj)) { if (ObjectUtil.isNotEmpty(startPointObj)) {
String storagevehicle_code = startPointObj.getStoragevehicle_code();
//取货完成会清空托盘号
//托盘号不为空,还未取货
if (ObjectUtil.isEmpty(storagevehicle_code)) {
String vehicle_code = taskObj.getVehicle_code();
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, vehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息
List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
if (list.size()>0){
Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
mdPbGroupplateMapper.deleteById(groupPlate);
}
}else {
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, storagevehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息
List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
if (list.size() > 0) {
Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
mdPbGroupplateMapper.deleteById(groupPlate);
}
}
startPointObj.setMaterial_code("");
startPointObj.setStoragevehicle_code("");
startPointObj.setIng_task_code(""); startPointObj.setIng_task_code("");
startPointObj.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
PointUtils.setUpdateByType(startPointObj, taskFinishedType); PointUtils.setUpdateByType(startPointObj, taskFinishedType);
pointService.updateById(startPointObj); pointService.updateById(startPointObj);
} }

View File

@@ -94,16 +94,16 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="锁定类型"> <!-- <el-form-item label="锁定类型">-->
<el-switch <!-- <el-switch-->
v-model="query.lock_type" <!-- v-model="query.lock_type"-->
:active-value="true" <!-- :active-value="true"-->
:inactive-value="false" <!-- :inactive-value="false"-->
active-color="#409EFF" <!-- active-color="#409EFF"-->
inactive-color="#C0CCDA" <!-- inactive-color="#C0CCDA"-->
@change="hand" <!-- @change="hand"-->
/> <!-- />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="是否启用"> <el-form-item label="是否启用">
<el-switch <el-switch
v-model="query.is_used" v-model="query.is_used"
@@ -305,9 +305,9 @@
</el-table-column> </el-table-column>
<el-table-column prop="storagevehicle_code" label="载具编码" :min-width="flexWidth('storagevehicle_code',crud.data,'载具编码')" /> <el-table-column prop="storagevehicle_code" label="载具编码" :min-width="flexWidth('storagevehicle_code',crud.data,'载具编码')" />
<el-table-column prop="vehicle_qty" label="载具数量" :min-width="flexWidth('vehicle_qty',crud.data,'载具数量')" /> <el-table-column prop="vehicle_qty" label="载具数量" :min-width="flexWidth('vehicle_qty',crud.data,'载具数量')" />
<el-table-column label="是否锁定" :min-width="flexWidth('vehicle_qty',crud.data,'是否锁定')"> <el-table-column label="是否锁定" :min-width="flexWidth('lock_type',crud.data,'是否锁定')">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.ing_task_code?'是':'否' }} {{ scope.row.lock_type == 1?'是':'否' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'载具数量')" /> <el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'载具数量')" />

View File

@@ -249,20 +249,20 @@
:label="$t('Task.table.point_code4')" :label="$t('Task.table.point_code4')"
:min-width="flexWidth('point_code4',crud.data,$t('Task.table.point_code4'))" :min-width="flexWidth('point_code4',crud.data,$t('Task.table.point_code4'))"
/> />
<el-table-column <!-- <el-table-column-->
prop="vehicle_type" <!-- prop="vehicle_type"-->
:label="$t('Task.table.vehicle_type')" <!-- :label="$t('Task.table.vehicle_type')"-->
:min-width="flexWidth('vehicle_type',crud.data,$t('Task.table.vehicle_type'), 20)" <!-- :min-width="flexWidth('vehicle_type',crud.data,$t('Task.table.vehicle_type'), 20)"-->
> <!-- >-->
<template slot-scope="scope"> <!-- <template slot-scope="scope">-->
{{ dict.label.vehicle_type[scope.row.vehicle_type] }} <!-- {{ dict.label.vehicle_type[scope.row.vehicle_type] }}-->
</template> <!-- </template>-->
</el-table-column> <!-- </el-table-column>-->
<el-table-column <!-- <el-table-column-->
prop="vehicle_qty" <!-- prop="vehicle_qty"-->
:label="$t('Task.table.vehicle_qty')" <!-- :label="$t('Task.table.vehicle_qty')"-->
:min-width="flexWidth('vehicle_qty',crud.data,$t('Task.table.vehicle_qty'))" <!-- :min-width="flexWidth('vehicle_qty',crud.data,$t('Task.table.vehicle_qty'))"-->
/> <!-- />-->
<el-table-column <el-table-column
prop="priority" prop="priority"
:label="$t('Task.table.priority')" :label="$t('Task.table.priority')"
@@ -317,20 +317,20 @@
}} }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <!-- <el-table-column-->
prop="create_mode" <!-- prop="create_mode"-->
:label="$t('Task.table.create_mode')" <!-- :label="$t('Task.table.create_mode')"-->
:min-width="flexWidth('create_mode',crud.data,$t('Task.table.create_mode'))" <!-- :min-width="flexWidth('create_mode',crud.data,$t('Task.table.create_mode'))"-->
> <!-- >-->
<template slot-scope="scope"> <!-- <template slot-scope="scope">-->
{{ dict.label.create_mode[scope.row.create_mode] }} <!-- {{ dict.label.create_mode[scope.row.create_mode] }}-->
</template> <!-- </template>-->
</el-table-column> <!-- </el-table-column>-->
<el-table-column <!-- <el-table-column-->
prop="acs_trace_id" <!-- prop="acs_trace_id"-->
:label="$t('Task.table.acs_trace_id')" <!-- :label="$t('Task.table.acs_trace_id')"-->
:min-width="flexWidth('acs_trace_id',crud.data,$t('Task.table.acs_trace_id'))" <!-- :min-width="flexWidth('acs_trace_id',crud.data,$t('Task.table.acs_trace_id'))"-->
/> <!-- />-->
<!-- <el-table-column--> <!-- <el-table-column-->
<!-- prop="request_param"--> <!-- prop="request_param"-->
<!-- :label="$t('Task.table.request_param')"--> <!-- :label="$t('Task.table.request_param')"-->
@@ -341,11 +341,11 @@
<!-- :label="$t('Task.table.response_param')"--> <!-- :label="$t('Task.table.response_param')"-->
<!-- :min-width="flexWidth('response_param',crud.data,$t('Task.table.response_param'))"--> <!-- :min-width="flexWidth('response_param',crud.data,$t('Task.table.response_param'))"-->
<!-- />--> <!-- />-->
<el-table-column <!-- <el-table-column-->
prop="workshop_code" <!-- prop="workshop_code"-->
:label="$t('Task.table.workshop_code')" <!-- :label="$t('Task.table.workshop_code')"-->
:min-width="flexWidth('workshop_code',crud.data,$t('Task.table.workshop_code'))" <!-- :min-width="flexWidth('workshop_code',crud.data,$t('Task.table.workshop_code'))"-->
/> <!-- />-->
<el-table-column <el-table-column
v-if="false" v-if="false"
prop="ext_group_data" prop="ext_group_data"