add:增加CNC区域业务;

This commit is contained in:
2026-06-14 18:48:40 +08:00
parent 02432faa17
commit 9c4e0f16ab
27 changed files with 713 additions and 157 deletions

View File

@@ -27,6 +27,7 @@ import org.nl.wms.basedata_manage.service.dto.StrategyStructMaterialVO;
import org.nl.wms.basedata_manage.service.dto.StrategyStructParam;
import org.nl.wms.pda_manage.ios_manage.service.PdaIosOutService;
import org.nl.wms.pda_manage.util.PdaResponse;
import org.nl.wms.sch_manage.enums.PointStatusEnum;
import org.nl.wms.sch_manage.enums.StatusEnum;
import org.nl.wms.sch_manage.enums.TaskEnum;
import org.nl.wms.sch_manage.service.ISchBasePointService;
@@ -420,10 +421,10 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
throw new BadRequestException("当前货架已绑定在站点:" + sitePoint.getPoint_code() + ",请先解绑。");
}
wrapper.set(SchBasePoint::getVehicle_code, whereJson.getString("shelfCode"))
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有货"));
.set(SchBasePoint::getPoint_status, PointStatusEnum.FULL_POINT.getCode());
} else {
wrapper.set(SchBasePoint::getVehicle_code, null)
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("无货"));
.set(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode());
}
wrapper.set(SchBasePoint::getUpdate_time, DateUtil.now())
.set(SchBasePoint::getUpdate_name, SecurityUtils.getCurrentNickName());

View File

@@ -12,6 +12,7 @@ import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.ext_manage.service.util.AcsResponse;
import org.nl.wms.pda_manage.sch_manage.service.PdaSchTaskService;
import org.nl.wms.pda_manage.util.PdaResponse;
import org.nl.wms.sch_manage.enums.PointStatusEnum;
import org.nl.wms.sch_manage.enums.TaskEnum;
import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
@@ -138,7 +139,7 @@ public class PdaSchTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
attrDao.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
iStructattrService.updateById(attrDao);
} else {
pointStartDao.setPoint_status(IOSEnum.POINT_STATUS.code("有货"));
pointStartDao.setPoint_status(PointStatusEnum.FULL_POINT.getCode());
iSchBasePointService.updateById(pointStartDao);
}
@@ -149,7 +150,7 @@ public class PdaSchTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
attrDao.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
iStructattrService.updateById(attrDao);
} else {
pointEndDao.setPoint_status(IOSEnum.POINT_STATUS.code("有货"));
pointEndDao.setPoint_status(PointStatusEnum.FULL_POINT.getCode());
iSchBasePointService.updateById(pointEndDao);
}
// 校验载具

View File

@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -127,23 +128,28 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
entity.setUpdate_id(currentUserId);
entity.setUpdate_name(nickName);
entity.setUpdate_time(now);
// 获取region_name
SchBaseRegion baseRegion = regionMapper.selectById(entity.getRegion_code());
entity.setRegion_name(baseRegion.getRegion_name());
LambdaUpdateWrapper<SchBasePoint> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(SchBasePoint::getPoint_code, entity.getPoint_code())
.set(SchBasePoint::getUpdate_id, currentUserId)
.set(SchBasePoint::getPoint_status, entity.getPoint_status())
.set(SchBasePoint::getVehicle_code, entity.getVehicle_code())
.set(SchBasePoint::getUpdate_name, nickName)
.set(SchBasePoint::getUpdate_time, now)
.set(SchBasePoint::getRegion_name, baseRegion.getRegion_name());
if (ObjectUtil.isNotEmpty(entity.getCan_vehicle_types())) {
String can_vehicle_type = String.join(",", entity.getCan_vehicle_types());
entity.setCan_vehicle_type(can_vehicle_type);
wrapper.set(SchBasePoint::getCan_vehicle_type, String.join(",", entity.getCan_vehicle_types()));
}
String pointStatus = entity.getPoint_status();
// 根据点位状态来判断更新内容
String pointStatus = entity.getPoint_status();
if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals(PointStatusEnum.EMPTY_POINT.getCode())) {
entity.setVehicle_type("");
entity.setVehicle_code("");
wrapper.set(SchBasePoint::getVehicle_code, (String) null);
wrapper.set(SchBasePoint::getLock_up, false);
}else if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals(PointStatusEnum.FULL_POINT.getCode())) {
wrapper.set(SchBasePoint::getLock_up, true);
}
pointMapper.updateById(entity);
pointMapper.update(null, wrapper);
}
@Override

View File

@@ -85,6 +85,8 @@ public class SchBaseRegionServiceImpl extends ServiceImpl<SchBaseRegionMapper, S
@Override
public void relse() {
}
@Override

View File

@@ -111,7 +111,13 @@ public class AutoTask {
List<SchBaseTask> allTaskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
.eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO)
.lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode()));
Map<Boolean, List<SchBaseTask>> partition1 = allTaskList.stream()
List<SchBaseTask> cnTaskList = allTaskList.stream().filter(r ->(r.getPoint_code2().startsWith("BCPRK6")||r.getPoint_code2().startsWith("BCPCK6"))&&(!TaskStatus.CREATE.getCode().equals(r.getTask_status()))).collect(Collectors.toList());
if (cnTaskList.size() >0) {
//只能存在一个
allTaskList.removeIf(r -> (r.getPoint_code2().startsWith("BCPRK6") || r.getPoint_code2().startsWith("BCPCK6"))
&& TaskStatus.CREATE.getCode().equals(r.getTask_status()));
}
Map<Boolean, List<SchBaseTask>> partition1 = allTaskList.stream()
.collect(Collectors.partitioningBy(task -> TaskStatus.CREATE.getCode().equals(task.getTask_status())));
//生成状态任务
List<SchBaseTask> taskList = partition1.get(true);
@@ -184,6 +190,12 @@ public class AutoTask {
List<SchBaseTask> allTaskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
.eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO)
.lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode()));
List<SchBaseTask> cnTaskList = allTaskList.stream().filter(r ->(r.getPoint_code2().startsWith("BCPRK6")||r.getPoint_code2().startsWith("BCPCK6"))&&(!TaskStatus.CREATE.getCode().equals(r.getTask_status()))).collect(Collectors.toList());
if (cnTaskList.size() >0) {
//只能存在一个
allTaskList.removeIf(r -> (r.getPoint_code2().startsWith("BCPRK6") || r.getPoint_code2().startsWith("BCPCK6"))
&& TaskStatus.CREATE.getCode().equals(r.getTask_status()));
}
Map<Boolean, List<SchBaseTask>> partition1 = allTaskList.stream()
.collect(Collectors.partitioningBy(task -> TaskStatus.CREATE.getCode().equals(task.getTask_status())));
//生成状态任务

View File

@@ -11,6 +11,7 @@ import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.sch_manage.enums.PointStatusEnum;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
@@ -174,7 +175,7 @@ public class CheckMoveTask extends AbstractTask {
iSchBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有货"))
.set(SchBasePoint::getPoint_status, PointStatusEnum.FULL_POINT.getCode())
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
.set(SchBasePoint::getIng_task_code, taskObj.getTask_id())
);
@@ -182,7 +183,6 @@ public class CheckMoveTask extends AbstractTask {
// 更新盘点明细状态
dtlDao.setStatus(IOSEnum.CHECK_DTL_STATUS.code("盘点中"));
iStIvtCheckdtlService.updateById(dtlDao);
// 更新主表状态
iStIvtCheckmstService.updateMst(dtlDao.getCheck_id());

View File

@@ -10,6 +10,7 @@ import org.nl.common.utils.SecurityUtils;
import org.nl.common.utils.IdUtil;;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.sch_manage.enums.PointStatusEnum;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
@@ -77,6 +78,7 @@ public class PdaPointTask extends AbstractTask {
AcsTaskDto acsTaskDto = new AcsTaskDto();
acsTaskDto.setExt_task_uuid(taskDao.getTask_id());
acsTaskDto.setTask_code(taskDao.getTask_code());
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
acsTaskDto.setPriority(taskDao.getPriority());
@@ -142,7 +144,7 @@ public class PdaPointTask extends AbstractTask {
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
.set(SchBasePoint::getVehicle_code, null)
.set(SchBasePoint::getIos_id, null)
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("无货"))
.set(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
);
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
@@ -157,7 +159,7 @@ public class PdaPointTask extends AbstractTask {
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
.set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
.set(SchBasePoint::getIos_id, null)
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有货"))
.set(SchBasePoint::getPoint_status, PointStatusEnum.FULL_POINT.getCode())
);
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
@@ -178,7 +180,7 @@ public class PdaPointTask extends AbstractTask {
iSchBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("无货"))
.set(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
);
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
@@ -189,7 +191,7 @@ public class PdaPointTask extends AbstractTask {
iSchBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("无货"))
.set(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
);
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()

View File

@@ -1192,18 +1192,21 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
}
MdPbStoragevehicletype mdPbStoragevehicletype = iMdPbStoragevehicletypeService.getOutVehicleType(mdPbStoragevehicleinfo.getStoragevehicle_type());
car_width = mdPbStoragevehicletype.getCar_width();
}else{
car_type="1";
} else {
car_type = "1";
}
String pointCode2 = StringUtils.isBlank(whereJson.getString("point_code2")) ? IOSConstant.CKFPW_POINT_CODE : whereJson.getString("point_code2");
//CNC区域只能用PS20
car_type = pointCode2.contains("BCPCK6") ? "1" : car_type;
//创建任务
JSONObject task_form = new JSONObject();
task_form.put("task_type", "STOutTask");
task_form.put("TaskCode",CodeUtil.getNewCode("TASK_CODE"));
task_form.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
task_form.put("PickingLocation", struct_code);
task_form.put("PlacedLocation", IOSConstant.CKFPW_POINT_CODE);
task_form.put("PlacedLocation", pointCode2);
task_form.put("vehicle_code", item.getStoragevehicle_code());
task_form.put("car_type",car_type);
task_form.put("car_width",car_width);
task_form.put("car_type", car_type);
task_form.put("car_width", car_width);
task_form.put("priority", whereJson.getString("priority"));
StOutTask stOutTask = SpringContextHolder.getBean("STOutTask");
String task_id = stOutTask.create(task_form);

View File

@@ -2,15 +2,19 @@ package org.nl.wms.wbwms.controller;
import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.nl.common.exception.BadRequestException;
import org.nl.common.logging.annotation.Log;
import org.nl.common.utils.IdUtil;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.wbwms.service.WmsToIWmsService;
import org.nl.wms.wbwms.service.dto.WmstoIWmsResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -79,7 +83,20 @@ public class WmsToIWmscontroller {
@Log("WMS移库任务推送")
@SaIgnore
public ResponseEntity<Object> moveTask(@RequestBody JSONObject param) {
return new ResponseEntity<>(wmsToIWmsService.moveTask(param), HttpStatus.OK);
WmstoIWmsResponse wmsToIWmsResponse;
JSONArray tableData = param.getJSONArray("tableData");
if (ObjectUtils.isEmpty(tableData)) {
throw new BadRequestException("物料tableData不能为空");
}
String qty = tableData.getJSONObject(0).getString("qty");
if (!"0".equals(qty)) {
//移库
wmsToIWmsResponse = wmsToIWmsService.moveTask(param);
} else {
//点对点
wmsToIWmsResponse = wmsToIWmsService.movePointTask(param);
}
return new ResponseEntity<>(wmsToIWmsResponse, HttpStatus.OK);
}
@PostMapping("/checkBill")
@Log("WMS盘点任务推送")

View File

@@ -16,5 +16,7 @@ public interface WmsToIWmsService {
WmstoIWmsResponse inventory (JSONObject param);
WmstoIWmsResponse moveTask(JSONObject param);
WmstoIWmsResponse movePointTask(JSONObject parm);
WmstoIWmsResponse checkBillTask(JSONObject param);
}

View File

@@ -5,8 +5,10 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
@@ -21,12 +23,16 @@ import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleinfoMapper;
import org.nl.wms.sch_manage.enums.PointStatusEnum;
import org.nl.wms.sch_manage.enums.TaskEnum;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.util.tasks.CheckInTask;
import org.nl.wms.sch_manage.service.util.tasks.CheckOutTask;
import org.nl.wms.sch_manage.service.util.tasks.MoveTask;
import org.nl.wms.sch_manage.service.util.tasks.PdaPointTask;
import org.nl.wms.warehouse_manage.enums.IOSConstant;
import org.nl.wms.warehouse_manage.enums.IOSEnum;
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
@@ -45,7 +51,6 @@ import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
@@ -64,8 +69,10 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
private GroupController groupController;
@Autowired
private IOStorInvDisMapper ioStorInvDisMapper;
@Resource
private SchBasePointMapper schBasePointMapper;
@Autowired
private PdaPointTask pdaPointTask;
@Autowired
private ISchBaseTaskService iSchBaseTaskService;
@Autowired
IInBillService iInBillService;
@Autowired
@@ -357,6 +364,7 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
pointData.put("barcode", StringUtils.isBlank(point.getVehicle_code()) ? "" : point.getVehicle_code());
pointData.put("point_code", point.getPoint_code());
pointData.put("status", point.getPoint_status().equals(PointStatusEnum.EMPTY_POINT.getCode()) && StringUtils.isBlank(point.getVehicle_code()) ? "0" : "1");
pointData.put("lock_status", point.getLock_up()? "1" : "0");
dataList.add(pointData);
}
}
@@ -373,9 +381,37 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
@Override
@Transactional
public WmstoIWmsResponse outBillTask(JSONObject parm) {
log.info("WMS 出库请求参数参数为:-------------------" + parm.toString());
if ("1002".equals(parm.getString("bill_type"))) {
int count = iSchBaseTaskService.count(new LambdaQueryWrapper<SchBaseTask>()
.and(w -> w.like(SchBaseTask::getPoint_code2, "BCPRK6")
.or()
.like(SchBaseTask::getPoint_code2, "BCPCK6"))
.lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
);
if (count > 0) {
throw new BadRequestException("CNC区域有出库或入库任务未完成请检查");
}
//CNC出库区
List<SchBasePoint> regionCode = iSchBasePointService.list(new LambdaQueryWrapper<SchBasePoint>()
.like(SchBasePoint::getPoint_code, "BCPCK6")
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
.eq(SchBasePoint::getLock_up, "0")
.eq(SchBasePoint::getIs_used, "1")
.orderByDesc(SchBasePoint::getOut_order_seq)
);
if (ObjectUtils.isEmpty(regionCode)) {
throw new BadRequestException("当前库区无可用点位");
}
String finishCode = regionCode.get(0).getPoint_code();
SchBasePoint schBasePoint;
schBasePoint = iSchBasePointService.getByCode(finishCode);
schBasePoint.setLock_up(true);
iSchBasePointService.update(schBasePoint);
parm.put("point_code2", finishCode);
}
WmstoIWmsResponse result = new WmstoIWmsResponse();
RedissonUtils.lock(() -> {
log.info("WMS 出库请求参数参数为:-------------------" + parm.toString());
JSONArray tableData = parm.getJSONArray("tableData");
if (CollectionUtils.isEmpty(tableData)) {
throw new BadRequestException("tableData 不能为空");
@@ -388,7 +424,7 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
List<Structattr> structattrList = iStructattrService.list(new LambdaQueryWrapper<Structattr>()
.in(Structattr::getStruct_code, turnoutStructCodes));
if (CollectionUtils.isEmpty(structattrList)) {
throw new BadRequestException("wms 上不存在这些点位");
throw new BadRequestException("wms上不存在这些点位");
}
java.util.Map<String, Structattr> structattrMap = structattrList.stream()
.collect(java.util.stream.Collectors.toMap(Structattr::getStruct_code, s -> s));
@@ -406,6 +442,9 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
if (!"0".equals(structattr.getLock_type())) {
throw new BadRequestException("传入点位有任务:" + turnout_struct_code);
}
if (structattr.getLayer_num() > 3 && "1002".equals(parm.getString("bill_type"))) {
throw new BadRequestException("四层货位需要RT车搬运,RT车无法通过CNC区域,请选择其他库位");
}
}
Structattr structattr = structattrList.get(0);
parm.put("sect_id",structattr.getSect_id());
@@ -425,7 +464,6 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
parm.put("point_code",stuct_code);
parm.put("region_code","CKQ");
iOutBillService.allSetPoint(parm);
// data.put("bill_code",iostorinv_id);
// data.put("turnout_destination_code",pointCode);
result.setCode(String.valueOf(HttpStatus.OK.value()));
@@ -446,26 +484,74 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
WmstoIWmsResponse result = new WmstoIWmsResponse();
JSONArray tableData = parm.getJSONArray("tableData");
//移出位置
String out_struct_code=parm.getString("out_struct_code");
String out_struct_code = parm.getString("out_struct_code");
//移入位置
String in_struct_code=parm.getString("in_struct_code");
String in_struct_code = parm.getString("in_struct_code");
//载具编码
String storage_code=tableData.getJSONObject(0).getString("storage_code");
Structattr structattr=iStructattrService.getByCode(out_struct_code);
Structattr structattr1=iStructattrService.getByCode(in_struct_code);
String storage_code = tableData.getJSONObject(0).getString("storage_code");
Structattr structattr = iStructattrService.getByCode(out_struct_code);
Structattr structattr1 = iStructattrService.getByCode(in_struct_code);
ArrayList<HashMap> rows = (ArrayList<HashMap>) parm.get("tableData");
if(!storage_code.equals(structattr.getStoragevehicle_code())){
if (!storage_code.equals(structattr.getStoragevehicle_code())) {
throw new BadRequestException("该移出点位存放托盘与所传托盘的编码不对");
}
if (structattr1.getStoragevehicle_code() != null) {
throw new BadRequestException("该移出点位存在托盘");
}
//新增移库单
String bill_code =iStIvtMoveinvService.create1(parm);
String bill_code = iStIvtMoveinvService.create1(parm);
result.setCode(String.valueOf(HttpStatus.OK.value()));
result.setMsg("移库任务生成成功");
JSONObject data=new JSONObject();
data.put("bill_code",bill_code);
JSONObject data = new JSONObject();
data.put("bill_code", bill_code);
result.setData(data);
log.info("WMS移库返回参数参数为-------------------" + result.toString());
return result;
}
@Override
@Transactional
public WmstoIWmsResponse movePointTask(JSONObject parm) {
log.info("WMS点位搬运任务请求参数参数为-------------------" + parm.toString());
int count = iSchBaseTaskService.count(new LambdaQueryWrapper<SchBaseTask>()
.and(w -> w.like(SchBaseTask::getPoint_code2, "BCPRK6")
.or()
.like(SchBaseTask::getPoint_code2, "BCPCK6"))
.lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
);
if (count > 0) {
throw new BadRequestException("CNC区域有出库或入库任务未完成请检查");
}
WmstoIWmsResponse result = new WmstoIWmsResponse();
JSONArray tableData = parm.getJSONArray("tableData");
//移出位置
String out_struct_code = parm.getString("out_struct_code");
//移入位置
String in_struct_code = parm.getString("in_struct_code");
//载具编码
String storage_code = tableData.getJSONObject(0).getString("storage_code");
SchBasePoint point1 = iSchBasePointService.getByCode(in_struct_code);
if (StringUtils.isNotBlank(point1.getVehicle_code())) {
throw new BadRequestException("该移出点位存在载具");
}
//生成任务
// 生成转运任务
JSONObject task = new JSONObject();
task.put("config_code", IOSConstant.PDA_POINT_TASK);
task.put("point_code1", out_struct_code);
task.put("point_code2", in_struct_code);
task.put("vehicle_code", storage_code);
task.put("Priority", TaskEnum.ACS_PRIORITY.code("1"));
String taskId = pdaPointTask.create(task);
// 更新起点绑定id
iSchBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getIos_id, null)
.eq(SchBasePoint::getPoint_code, out_struct_code)
);
JSONObject data = new JSONObject();
data.put("bill_code", taskId);
data.put("code", "200");
result.setData(data);
log.info("WMS移库返回参数参数为-------------------" + result.toString());
return result;
@@ -476,28 +562,28 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
public WmstoIWmsResponse checkBillTask(JSONObject parm) {
log.info("WMS盘点请求参数参数为-------------------" + parm.toString());
WmstoIWmsResponse result = new WmstoIWmsResponse();
CheckInsertDto checkInsertDto=new CheckInsertDto();
String check_id=IdUtil.getStringId();
CheckInsertDto checkInsertDto = new CheckInsertDto();
String check_id = IdUtil.getStringId();
checkInsertDto.setCheck_id(check_id);
checkInsertDto.setCheck_type("1");
checkInsertDto.setCreate_mode("1");
checkInsertDto.setDtl_num(BigDecimal.valueOf(1));
checkInsertDto.setStatus(IOSEnum.CHECK_MST_STATUS.code("生成"));
String turnout_struct_code=parm.getString("turnout_struct_code");
Structattr structattr=iStructattrService.getByCode(turnout_struct_code);
String turnout_struct_code = parm.getString("turnout_struct_code");
Structattr structattr = iStructattrService.getByCode(turnout_struct_code);
checkInsertDto.setStor_name(structattr.getStor_name());
checkInsertDto.setStor_id(structattr.getStor_id());
checkInsertDto.setCheck_code(parm.getString("check_code"));
JSONArray tableData = parm.getJSONArray("tableData");
JSONObject tableData1=tableData.getJSONObject(0);
if(!structattr.getStoragevehicle_code().equals(tableData1.getString("storage_code"))){
JSONObject tableData1 = tableData.getJSONObject(0);
if (!structattr.getStoragevehicle_code().equals(tableData1.getString("storage_code"))) {
throw new BadRequestException("该盘点点位存放托盘与所传托盘的编码不对");
}
tableData1.put("stor_id",structattr.getStor_id());
tableData1.put("stor_name",structattr.getStor_name());
tableData1.put("sect_code",structattr.getSect_code());
tableData1.put("status",IOSEnum.CHECK_DTL_STATUS.code("生成"));
tableData1.put("struct_code",parm.getString("turnout_struct_code"));
tableData1.put("stor_id", structattr.getStor_id());
tableData1.put("stor_name", structattr.getStor_name());
tableData1.put("sect_code", structattr.getSect_code());
tableData1.put("status", IOSEnum.CHECK_DTL_STATUS.code("生成"));
tableData1.put("struct_code", parm.getString("turnout_struct_code"));
// 创建一个List并将jsonObject添加进去
List<JSONObject> tableData2 = new ArrayList<>();
tableData2.add(tableData1);
@@ -506,7 +592,7 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
iStIvtCheckmstService.sendMoveTask(checkInsertDto);
result.setCode(String.valueOf(HttpStatus.OK.value()));
result.setMsg("盘点任务生成成功");
JSONObject data=new JSONObject();
JSONObject data = new JSONObject();
result.setData(data);
log.info("WMS盘点返回参数参数为-------------------" + result.toString());
return result;

View File

@@ -11,7 +11,7 @@ spring:
freemarker:
check-template-location: false
profiles:
active: prod
active: dev
# active: dev
# active: prod
jackson: