Merge remote-tracking branch 'origin/b_lms' into b_lms

This commit is contained in:
2024-05-16 16:12:13 +08:00
20 changed files with 243 additions and 101 deletions

View File

@@ -110,12 +110,10 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
// 判断点位状态
device_jo.put("device_code", "CK2005");
JSONArray device_ja2 = new JSONArray();
device_ja2.add(device_jo);
JSONObject device_data2 = wmsToAcsService.getPointStatus(device_ja2);
JSONObject data2 = device_data2.getJSONArray("data").getJSONObject(0);
/*// 判断是否有货 且数量小于5
if (data2.getString("move").equals(IOSEnum.IS_NOTANDYES.code("否")) ||
(data2.getString("move").equals(IOSEnum.IS_NOTANDYES.code("是"))
@@ -131,7 +129,6 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
JSONObject param = new JSONObject();
param.put("containerType", whereJson.getString("vehicle_type"));
jsonTaskParam.put("request_param", param.toString());
TwoInEmpExcepTask taskBean = new TwoInEmpExcepTask();
taskBean.createTask(jsonTaskParam);
taskBean.immediateNotifyAcs(null);
@@ -139,7 +136,6 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
result.put("message", "入库失败! 出库叠盘位已叠满!" + next_device_code);
return result;
}*/
result.put("message", "入库成功!");
return result;
}

View File

@@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan;
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper;
import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation;
import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper;
import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService;
@@ -22,6 +24,8 @@ import org.nl.common.utils.SecurityUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.pdm.service.SlittingproductionplanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;
@@ -43,11 +47,12 @@ import java.util.stream.Collectors;
public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpackagerelationMapper, PdmBiSubpackagerelation> implements IpdmBiSubpackagerelationService {
@Resource
private ZxqTask zxqTask;
@Resource
private OutBoxManageService outBoxManageService;
@Resource
private PdmBiSlittingproductionplanMapper pdmBiSlittingproductionplanMapper;
@Resource
private PdmBiSubpackagerelationMapper pdmBiSubpackagerelationMapper;
@@ -172,7 +177,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
@Override
@Transactional(rollbackFor = Exception.class)
public void updateEntityList(JSONObject whereJson) {
List<PdmBiSubpackagerelation> packagerelationList= JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class);
List<PdmBiSubpackagerelation> packagerelationList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class);
List<String> entityList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class).stream()
.map(PdmBiSubpackagerelation::getWorkorder_id)
.map(String::valueOf)
@@ -196,14 +201,13 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
updateWrapper.set("box_group", maxBoxGroup);
updateWrapper.in("workorder_id", entityList);
pdmBiSubpackagerelationMapper.update(null, updateWrapper);
//下发空木箱出库任务
//下发空木箱出库任务
JSONObject boxInfo = new JSONObject();
//todo 测试暂时默认ZXQ_1_1
boxInfo.put("device_code", "ZXQ_1_1");
boxInfo.put("material_code", boxType);
boxInfo.put("num", entityList.size());
// String boxSn = outBoxManageService.outBox(boxInfo);
String boxSn = "111";
String boxSn = outBoxManageService.outBox(boxInfo);
if (StringUtils.isBlank(boxSn)) {
throw new BadRequestException("满轴缓存位 -> 待检区,木箱码不能为空!");
}
@@ -212,49 +216,70 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
updateWrapper1.set("package_box_sn", boxSn);
updateWrapper1.in("workorder_id", entityList);
pdmBiSubpackagerelationMapper.update(null, updateWrapper1);
//创建子卷搬运到装箱区任务
// List<BstIvtPackageinfoivt> zxqPointList = packageinfoivtService
// .list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
// .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("装箱区"))
// .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
// .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空"))
// .orderByAsc(BstIvtPackageinfoivt::getSort_seq));
// //装箱区有点位,就下发
// if (CollectionUtils.isNotEmpty(zxqPointList)) {
//下发装箱区->装箱对接位桁架任务
JSONObject jo = new JSONObject();
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"));
//todo 测试,装箱点位-1-1
jo.put("point_code1", "ZXQ_1_2");
//todo 测试装箱对接位01
jo.put("point_code2", "ZXQ_1_1");
jo.put("vehicle_code", packagerelationList.get(0).getContainer_name());
jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
jo.put("is_send", "1");
//todo 测试,扩展参数
JSONObject param = new JSONObject();
//木箱最大数量
param.put("maxNo", "1");
//木箱放入子卷数量
param.put("boxNo", "1");
//是否最后子卷
param.put("lastOne", "1");
//子卷号
param.put("barcode", packagerelationList.get(0).getContainer_name());
//子卷长度
param.put("len", packagerelationList.get(0).getLength());
//托盘类型 1小托盘 2大托盘
param.put("containerType", "2");
jo.put("request_param", param.toString());
zxqTask.createTask(jo);
// } else {
// throw new BadRequestException("装箱区暂无空余库位!");
// }
transferToPacking(packagerelationList);
} catch (Exception e) {
throw new BadRequestException(e.getMessage());
}
}
private void transferToPacking(List<PdmBiSubpackagerelation> packagerelationList) {
//创建子卷搬运到装箱区任务
// List<BstIvtPackageinfoivt> zxqPointList = packageinfoivtService
// .list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
// .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("装箱区"))
// .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
// .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空"))
// .orderByAsc(BstIvtPackageinfoivt::getSort_seq));
// //装箱区有点位,就下发
// if (CollectionUtils.isNotEmpty(zxqPointList)) {
//下发装箱区->装箱对接位桁架任务
JSONObject jo = new JSONObject();
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"));
//todo 测试,装箱点位-1-1
jo.put("point_code1", "ZXQ_1_9");
//todo 测试装箱对接位01
jo.put("point_code2", "ZXQ_1_1");
jo.put("vehicle_code", packagerelationList.get(0).getContainer_name());
jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
jo.put("is_send", "1");
List<PdmBiSlittingproductionplan> productionPlanList = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper<PdmBiSlittingproductionplan>().eq(PdmBiSlittingproductionplan::getContainer_name, packagerelationList.get(0).getContainer_name()));
if (productionPlanList.isEmpty()) {
throw new BadRequestException("该子卷暂无分切计划信息");
}
//获取纸管长度
String containerLength = productionPlanList.get(0).getPaper_tube_or_FRP().equals("1") ? productionPlanList.get(0).getPaper_tube_description() : productionPlanList.get(0).getFRP_description();
int maxNum = 0;
for (String part : containerLength.split("\\|")) {
String numStr = part.replaceAll("\\D+", "");
if (!numStr.isEmpty()) {
int num = Integer.parseInt(numStr);
if (num > maxNum) {
maxNum = num;
}
}
}
//todo 测试,扩展参数
JSONObject param = new JSONObject();
//木箱最大数量
param.put("maxNo", "1");
//木箱放入子卷数量
param.put("boxNo", "1");
//是否最后子卷
param.put("lastOne", "1");
//子卷号
param.put("barcode", packagerelationList.get(0).getContainer_name());
//子卷长度
param.put("len", maxNum);
//托盘类型 1小托盘 2大托盘
param.put("containerType", "2");
jo.put("request_param", param.toString());
zxqTask.createTask(jo);
// } else {
// throw new BadRequestException("装箱区暂无空余库位!");
// }
}
/**
* 多选删除

View File

@@ -63,7 +63,8 @@ public class TwoInTask extends AbstractAcsTask {
.task_type(json.getString("acs_task_type"))
.start_device_code(json.getString("point_code1"))
.next_device_code(json.getString("point_code2"))
.vehicle_code(json.getString("vehicle_code"))
.vehicle_code(json.getString("vehicle_code2"))
.interaction_json(json.getJSONObject("request_param"))
.priority(json.getString("priority"))
.class_type(json.getString("task_type"))
.dtl_type(String.valueOf(dtl_type))
@@ -168,11 +169,13 @@ public class TwoInTask extends AbstractAcsTask {
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
json.put("task_type", form.getString("task_type"));
json.put("vehicle_code", form.getString("vehicle_code"));
json.put("vehicle_code2", form.getString("vehicle_code2"));
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
json.put("point_code1", form.getString("start_device_code"));
json.put("point_code2", form.getString("next_device_code"));
json.put("handle_class", this.getClass().getName());
json.put("create_id", SecurityUtils.getCurrentUserId());
json.put("request_param", form.getString("request_param"));
json.put("create_name", SecurityUtils.getCurrentUsername());
json.put("create_time", DateUtil.now());
json.put("priority", "1");

View File

@@ -175,7 +175,7 @@ public class DjqTask extends AbstractAcsTask {
.is_send(isSend ? "1" : "0")
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "A1" : form.getString("product_area"))
//.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
.build();
SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -159,7 +159,7 @@ public class GzqTask extends AbstractAcsTask {
.is_send(isSend ? "1" : "0")
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "A1" : form.getString("product_area"))
//.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
.build();
SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -176,7 +176,7 @@ public class KzjhcwTask extends AbstractAcsTask {
.is_send(isSend ? "1" : "0")
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "A1" : form.getString("product_area"))
//.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
.build();
SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -280,7 +280,7 @@ public class MzhcwTask extends AbstractAcsTask {
.is_send(isSend ? "1" : "0")
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "A1" : form.getString("product_area"))
//.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
.build();
SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -170,7 +170,7 @@ public class SsxDjwTask extends AbstractAcsTask {
.is_send(isSend ? "1" : "0")
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "A1" : form.getString("product_area"))
//.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
.build();
SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -180,7 +180,7 @@ public class ZxDjwTask extends AbstractAcsTask {
.is_send(isSend ? "1" : "0")
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "A1" : form.getString("product_area"))
//.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
.build();
SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -193,7 +193,7 @@ public class ZxqTask extends AbstractAcsTask {
.request_param(form.getString("request_param"))
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "A1" : form.getString("product_area"))
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
.build();
SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -7,14 +7,22 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService;
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper;
import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation;
import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper;
import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService;
import org.nl.b_lms.pdm_manage.enums.SUBEnum;
import org.nl.b_lms.sch.tasks.TwoInTask;
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdisService;
@@ -31,6 +39,7 @@ import org.nl.modules.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.system.service.param.ISysParamService;
import org.nl.wms.basedata.st.service.StorattrService;
import org.nl.wms.basedata.st.service.dto.StorattrDto;
import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl;
@@ -47,6 +56,7 @@ 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.*;
import java.util.stream.Collectors;
@@ -63,6 +73,12 @@ import java.util.stream.Collectors;
@Slf4j
public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper, StIvtIostorinv> implements IStIvtIostorinvService {
/**
* 木箱信息服务
*/
@Autowired
private IBstIvtBoxinfoService iBstIvtBoxinfoService;
/**
* 仓库服务
*/
@@ -99,6 +115,13 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
@Autowired
private PointService pointService;
@Autowired
private ISysParamService iSysParamService;
@Resource
private IpdmBiSubpackagerelationService ipdmBiSubpackagerelationService;
@Override
public Object pageQuery(Map query, Pageable pageQuery) {
Page<Object> page = PageHelper.startPage(pageQuery.getPageNumber() + 1, pageQuery.getPageSize());
@@ -278,6 +301,25 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
attrParam.put("sect_id", jsonObject.getString("sect_id"));
attrParam.put("material_id", disDao.getMaterial_id());
attrParam.put("box_no", disDao.getBox_no());
// 查询木箱信息
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
new QueryWrapper<BstIvtBoxinfo>().lambda()
.eq(BstIvtBoxinfo::getBox_no, disDao.getBox_no())
);
attrParam.put("vehicle_type", boxDao.getVehicle_type());
//根据木箱高度,判断入库仓位的高度
String height = "";
String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue();
String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue();
String box_high = boxDao.getBox_high();
if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) {
height = "1";
} else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) {
height = "2";
} else {
height = "3";
}
attrParam.put("height", height);
JSONObject jsonSect = sectTab.query("sect_id = '" + jsonObject.getString("sect_id") + "'").uniqueResult(0);
@@ -322,12 +364,12 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
// 更新分配明细
iStIvtIostorinvdisService.update(
new UpdateWrapper<StIvtIostorinvdis>().lambda()
.set(StIvtIostorinvdis::getStruct_id,jsonAttr.getString("struct_id"))
.set(StIvtIostorinvdis::getStruct_code,jsonAttr.getString("struct_code"))
.set(StIvtIostorinvdis::getStruct_name,jsonAttr.getString("struct_name"))
.set(StIvtIostorinvdis::getSect_id,jsonAttr.getString("sect_id"))
.set(StIvtIostorinvdis::getSect_code,jsonAttr.getString("sect_code"))
.set(StIvtIostorinvdis::getSect_name,jsonAttr.getString("sect_name"))
.set(StIvtIostorinvdis::getStruct_id, jsonAttr.getString("struct_id"))
.set(StIvtIostorinvdis::getStruct_code, jsonAttr.getString("struct_code"))
.set(StIvtIostorinvdis::getStruct_name, jsonAttr.getString("struct_name"))
.set(StIvtIostorinvdis::getSect_id, jsonAttr.getString("sect_id"))
.set(StIvtIostorinvdis::getSect_code, jsonAttr.getString("sect_code"))
.set(StIvtIostorinvdis::getSect_name, jsonAttr.getString("sect_name"))
.set(StIvtIostorinvdis::getWork_status, work_status)
.set(StIvtIostorinvdis::getTask_id, task_id)
.eq(StIvtIostorinvdis::getIostorinv_id, disDao.getIostorinv_id())
@@ -340,7 +382,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
.eq(StIvtIostorinvdis::getIostorinv_id, disDao.getIostorinv_id())
.eq(StIvtIostorinvdis::getBox_no, disDao.getBox_no())
);
upateIvt(disDaoList, mstDao,IOSEnum.IVT_CHANGE.code("加待入"));
upateIvt(disDaoList, mstDao, IOSEnum.IVT_CHANGE.code("加待入"));
// 更新明细状态
iStIvtIostorinvdtlService.updateStatus(disDao.getIostorinvdtl_id());
@@ -362,21 +404,36 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
).get(0);
List<LinkedHashMap> disList = iStIvtIostorinvdisService.list(
new QueryWrapper<StIvtIostorinvdis>().lambda()
.eq(StIvtIostorinvdis::getIostorinv_id, mst.getIostorinv_id())
).stream().map(row -> JSONObject.parseObject(JSON.toJSONString(row), LinkedHashMap.class))
new QueryWrapper<StIvtIostorinvdis>().lambda()
.eq(StIvtIostorinvdis::getIostorinv_id, mst.getIostorinv_id())
).stream().map(row -> JSONObject.parseObject(JSON.toJSONString(row), LinkedHashMap.class))
.collect(Collectors.toList());
//查询木箱码
PdmBiSubpackagerelation pdmBiSubpackagerelation = ipdmBiSubpackagerelationService.getOne(new LambdaQueryWrapper<PdmBiSubpackagerelation>()
.eq(PdmBiSubpackagerelation::getContainer_name, whereJson.get("material_barcode")));
// 查询木箱信息
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
new QueryWrapper<BstIvtBoxinfo>().lambda()
.eq(BstIvtBoxinfo::getBox_no, pdmBiSubpackagerelation.getPackage_box_sn())
);
if (boxDao == null) {
throw new BadRequestException("未找到该木箱信息!");
}
jsonSend.put("dtl_row",JSONObject.parseObject(JSON.toJSONString(dtlDao)));
jsonSend.put("dtl_row", JSONObject.parseObject(JSON.toJSONString(dtlDao)));
jsonSend.put("tableMater", disList);
jsonSend.put("point_code", jsonObject.getString("point_code"));
jsonSend.put("stor_id", mst.getStor_id());
//成品入库托盘类型
jsonSend.put("vehicle_code", boxDao.getBox_no());
jsonSend.put("vehicle_code2", jsonObject.getString("vehicle_code"));
JSONObject param = new JSONObject();
param.put("containerType", boxDao.getVehicle_type());
jsonSend.put("request_param", param.toString());
String task_id1 = this.setPoint(jsonSend);
// 下发任务
JSONObject sendJson = new JSONObject();
sendJson.put("task_id",task_id1);
sendJson.put("task_id", task_id1);
this.reIssueTask(sendJson);
}
}
@@ -420,15 +477,15 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
.eq(StIvtIostorinvdis::getBox_no, jsonDis.getString("box_no"))
);
upateIvt(disDaoList,mstDao,IOSEnum.IVT_CHANGE.code("减待入"));
upateIvt(disDaoList, mstDao, IOSEnum.IVT_CHANGE.code("减待入"));
// 更新分配明细状态
iStIvtIostorinvdisService.update(
new UpdateWrapper<StIvtIostorinvdis>().lambda()
.eq(StIvtIostorinvdis::getStruct_code, jsonDis.getString("struct_code"))
.eq(StIvtIostorinvdis::getIostorinv_id, jsonDis.getString("iostorinv_id"))
.eq(StIvtIostorinvdis::getBox_no, jsonDis.getString("box_no"))
.set(StIvtIostorinvdis::getPoint_id, null)
.eq(StIvtIostorinvdis::getStruct_code, jsonDis.getString("struct_code"))
.eq(StIvtIostorinvdis::getIostorinv_id, jsonDis.getString("iostorinv_id"))
.eq(StIvtIostorinvdis::getBox_no, jsonDis.getString("box_no"))
.set(StIvtIostorinvdis::getPoint_id, null)
.set(StIvtIostorinvdis::getSect_id, null)
.set(StIvtIostorinvdis::getSect_code, "")
.set(StIvtIostorinvdis::getSect_name, "")
@@ -476,11 +533,12 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
jsonTaskParam.put("task_type", "010703");
jsonTaskParam.put("start_device_code", pointDto.getPoint_code());
jsonTaskParam.put("next_device_code", jsonDis.getString("struct_code"));
jsonTaskParam.put("vehicle_code", jsonDis.getString("box_no"));
jsonTaskParam.put("vehicle_code", whereJson.get("vehicle_code"));
jsonTaskParam.put("vehicle_code2", whereJson.get("vehicle_code2"));
jsonTaskParam.put("inv_type", mstDao.getBill_type());
jsonTaskParam.put("inv_id", mstDao.getIostorinv_id());
jsonTaskParam.put("inv_code", mstDao.getBill_code());
jsonTaskParam.put("request_param", whereJson.get("request_param"));
String task_id = new TwoInTask().createTask(jsonTaskParam);
// 更新分配明细
@@ -540,7 +598,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
JSONObject jsonTask = WQLObject.getWQLObject("sch_base_task").query("task_id = '" + task_id + "'").uniqueResult(0);
AbstractAcsTask taskClass = new TwoInTask();
taskClass.updateTaskStatus(jsonTask,IOSEnum.IS_NOTANDYES.code(""));
taskClass.updateTaskStatus(jsonTask, IOSEnum.IS_NOTANDYES.code(""));
}
@Override
@@ -551,7 +609,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
JSONObject jsonTask = WQLObject.getWQLObject("sch_base_task").query("task_id = '" + task_id + "'").uniqueResult(0);
AbstractAcsTask taskClass = new TwoInTask();
taskClass.updateTaskStatus(jsonTask,TaskStatusEnum.FINISHED.getCode());
taskClass.updateTaskStatus(jsonTask, TaskStatusEnum.FINISHED.getCode());
}
@Override
@@ -664,6 +722,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
/**
* 更新主表状态
*
* @param iostorinv_id 主表标识
*/
public StIvtIostorinv updateMstStatus(Long iostorinv_id) {
@@ -728,6 +787,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
/**
* 完成单据:更新主表、明细表、分配明细表、更新库存、更新仓位、更新任务
*
* @param mstDao :主表实体类
*/
private void confirmMst(StIvtIostorinv mstDao) {
@@ -750,7 +810,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
.eq(StIvtIostorinvdis::getIostorinv_id, mstDao.getIostorinv_id())
);
upateIvt(disDaoList,mstDao,IOSEnum.IVT_CHANGE.code("加库存"));
upateIvt(disDaoList, mstDao, IOSEnum.IVT_CHANGE.code("加库存"));
// 更新仓位:解锁仓位、加载具、清除锁定信息
String struct_code_in = disDaoList.stream()
@@ -779,7 +839,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
.collect(Collectors.toList());
if (ObjectUtil.isEmpty(jsonAttrList)) {
throw new BadRequestException("仓位信息错误,请检查!"+jsonObject.getString("struct_code"));
throw new BadRequestException("仓位信息错误,请检查!" + jsonObject.getString("struct_code"));
}
JSONObject jsonAttr = jsonAttrList.get(0);
@@ -828,7 +888,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
}
}
taskService.update(jsonTaskParam,"task_id IN ('"+String.join("','", needUpdateTaskList)+"') AND task_status <> '"+TaskStatusEnum.FINISHED.getCode()+"'");
taskService.update(jsonTaskParam, "task_id IN ('" + String.join("','", needUpdateTaskList) + "') AND task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'");
// 更新子卷包装关系
String pcsn_in = disDaoList.stream()
@@ -838,7 +898,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
JSONObject jsonSubParam = new JSONObject();
jsonSubParam.put("status", SUBEnum.STATUS.code("入库"));
subTab.update(jsonSubParam,"container_name IN ('"+pcsn_in+"')");
subTab.update(jsonSubParam, "container_name IN ('" + pcsn_in + "')");
/*
* 插入子卷包装关系出入记录

View File

@@ -19,6 +19,7 @@ import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.system.service.param.ISysParamService;
import org.nl.wms.ext.acs.service.AcsToWmsService;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
@@ -70,6 +71,9 @@ public class InBoxManageServiceImpl implements InBoxManageService {
@Autowired
private AcsToWmsService acsToWmsService;
@Autowired
private ISysParamService iSysParamService;
@Override
@Transactional(rollbackFor = Exception.class)
public void inBox(JSONObject whereJson) {
@@ -103,6 +107,20 @@ public class InBoxManageServiceImpl implements InBoxManageService {
}*/
// 找一个木箱区空位
//根据木箱高度,判断入库仓位的高度
String height = "";
String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue();
String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue();
String box_high = boxDao.getBox_high();
if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) {
height = "1";
} else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) {
height = "2";
} else {
height = "3";
}
JSONObject jsonParam = new JSONObject();
jsonParam.put("stor_id", IOSEnum.STOR_ID.code("二期"));
jsonParam.put("sect_id", RegionTypeEnum.TWO_MX01.getId());
@@ -110,6 +128,9 @@ public class InBoxManageServiceImpl implements InBoxManageService {
jsonParam.put("box_width", boxDao.getBox_width());
jsonParam.put("box_high", boxDao.getBox_high());
jsonParam.put("vehicle_type", boxDao.getVehicle_type());
jsonParam.put("height", height);
JSONObject jsonAttr = getStruct(jsonParam);
@@ -318,6 +339,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
JSONArray structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " +
"AND is_used = '" + IOSEnum.IS_NOTANDYES.code("") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("") + "' " +
"AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" +
"AND height = '" + jsonParam.getString("height") + "'" +
"AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " +
"AND sect_id = '" + jsonParam.getString("sect_id") + "'").getResultJSONArray(0);

View File

@@ -111,6 +111,8 @@ public class InBussManageServiceImpl implements InBussManageService {
JSONArray attrArry = attrTab.query("IFNULL(storagevehicle_code,'') = '' " +
"AND is_used = '" + IOSEnum.IS_NOTANDYES.code("") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("") + "' " +
"AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '"+jsonObject.getString("stor_id")+"' " +
"AND storagevehicle_type = '" + jsonObject.getString("vehicle_type") + "'" +
"AND height = '" + jsonObject.getString("height") + "'" +
"AND sect_id = '"+jsonObject.getString("sect_id")+"'").getResultJSONArray(0);
if (ObjectUtil.isEmpty(attrArry)) {
@@ -127,6 +129,8 @@ public class InBussManageServiceImpl implements InBussManageService {
jsonSub.put("stor_id", jsonObject.getString("stor_id"));
jsonSub.put("sect_id", jsonObject.getString("sect_id"));
jsonSub.put("material_id", jsonObject.getString("material_id"));
jsonSub.put("vehicle_type", jsonObject.getString("vehicle_type"));
jsonSub.put("height", jsonObject.getString("height"));
String block_num = getMinBlock(jsonSub);
/*
@@ -270,7 +274,8 @@ public class InBussManageServiceImpl implements InBussManageService {
jsonDiv.put("point_code", jsonObject.getString("device_code"));
jsonDiv.put("sect_id", IOSEnum.SECT_ID.code("二期主存区"));
jsonDiv.put("stor_id", IOSEnum.STOR_ID.code("二期"));
jsonDiv.put("material_barcode",jsonObject.getString("material_barcode"));
jsonDiv.put("vehicle_code",jsonObject.getString("vehicle_code"));
iStIvtIostorinvService.divStruct(jsonDiv);
}

View File

@@ -17,7 +17,9 @@
输入.stor_id TYPEAS s_string
输入.sect_id TYPEAS s_string
输入.block_num TYPEAS s_string
输入.height TYPEAS s_string
输入.row_num TYPEAS s_string
输入.vehicle_type TYPEAS s_string
输入.block_in TYPEAS f_string
输入.row_in TYPEAS f_string
输入.not_row_in TYPEAS f_string
@@ -58,7 +60,8 @@
AND IFNULL(attr.storagevehicle_code,'') = ''
AND attr.stor_id = 输入.stor_id
AND attr.sect_id = 输入.sect_id
AND attr.storagevehicle_type = 输入.vehicle_type
AND attr.height = 输入.height
OPTION 输入.not_block <> ""
attr.block_num NOT IN 输入.not_block
ENDOPTION
@@ -81,8 +84,10 @@
AND attr.is_delete = '0'
AND attr.stor_id = 输入.stor_id
AND attr.sect_id = 输入.sect_id
AND attr.height = 输入.height
AND IFNULL(attr.storagevehicle_code,'') <> ''
AND attr.storagevehicle_type = 输入.vehicle_type
AND attr.height = 输入.height
OPTION 输入.block_in <> ""
attr.block_num in 输入.block_in
ENDOPTION
@@ -108,7 +113,8 @@
AND IFNULL(attr.storagevehicle_code,'') = ''
AND attr.stor_id = 输入.stor_id
AND attr.sect_id = 输入.sect_id
AND attr.storagevehicle_type = 输入.vehicle_type
AND attr.height = 输入.height
OPTION 输入.block_num <> ""
attr.block_num = 输入.block_num
ENDOPTION
@@ -139,7 +145,8 @@
AND attr.sect_id = 输入.sect_id
AND attr.block_num = 输入.block_num
AND attr.row_num = 输入.row_num
AND attr.storagevehicle_type = 输入.vehicle_type
AND attr.height = 输入.height
order by attr.col_num DESC,attr.layer_num ASC,attr.zdepth DESC
ENDSELECT
@@ -160,6 +167,8 @@
AND attr.sect_id = 输入.sect_id
AND attr.block_num = 输入.block_num
AND attr.row_num = 输入.row_num
AND attr.storagevehicle_type = 输入.vehicle_type
AND attr.height = 输入.height
ENDSELECT
ENDQUERY

View File

@@ -22,6 +22,8 @@
输入.box_length TYPEAS s_string
输入.box_width TYPEAS s_string
输入.box_high TYPEAS s_string
输入.vehicle_type TYPEAS s_string
输入.height TYPEAS s_string
输入.block_in TYPEAS f_string
输入.row_in TYPEAS f_string
输入.block_num TYPEAS s_string
@@ -64,6 +66,8 @@
AND IFNULL(attr.storagevehicle_code,'') = ''
AND attr.stor_id = 输入.stor_id
AND attr.sect_id = 输入.sect_id
AND attr.height = 输入.height
AND attr.storagevehicle_type = 输入.vehicle_type
OPTION 输入.not_block <> ""
attr.block_num NOT IN 输入.not_block
@@ -203,6 +207,8 @@
AND IFNULL(attr.storagevehicle_code,'') = ''
AND attr.stor_id = 输入.stor_id
AND attr.sect_id = 输入.sect_id
AND attr.height = 输入.height
AND attr.storagevehicle_type = 输入.vehicle_type
OPTION 输入.block_num <> ""
attr.block_num = 输入.block_num
@@ -229,6 +235,8 @@
AND attr.is_delete = '0'
AND attr.stor_id = 输入.stor_id
AND attr.sect_id = 输入.sect_id
AND attr.height = 输入.height
AND attr.storagevehicle_type = 输入.vehicle_type
OPTION 输入.block_num <> ""
attr.block_num = 输入.block_num

View File

@@ -16,7 +16,8 @@
输入.flag TYPEAS s_string
输入.stor_id TYPEAS s_string
输入.sect_id TYPEAS s_string
输入.block_num TYPEAS s_string
输入.block_num TYPEAS s_string
输入.material_code TYPEAS s_string
输入.row_num TYPEAS s_string
输入.block_num_in TYPEAS f_string
输入.row_num_in TYPEAS f_string
@@ -91,6 +92,10 @@
box.num = 输入.num
ENDOPTION
OPTION 输入.material_code <> ""
box.material_code = 输入.material_code
ENDOPTION
OPTION 输入.num <> ""
box.material_code = 输入.material_code
ENDOPTION
@@ -129,6 +134,9 @@
attr.row_num in 输入.row_num_in
ENDOPTION
OPTION 输入.material_code <> ""
box.material_code = 输入.material_code
ENDOPTION
OPTION 输入.box_length <> ""
box.box_length = 输入.box_length
@@ -182,6 +190,10 @@
box.box_width = 输入.box_width
ENDOPTION
OPTION 输入.material_code <> ""
box.material_code = 输入.material_code
ENDOPTION
OPTION 输入.box_high <> ""
box.box_high = 输入.box_high
ENDOPTION
@@ -216,6 +228,9 @@
attr.block_num = 输入.block_num
ENDOPTION
OPTION 输入.material_code <> ""
box.material_code = 输入.material_code
ENDOPTION
OPTION 输入.row_num <> ""
attr.row_num = 输入.row_num
@@ -294,6 +309,10 @@
box.box_high = 输入.box_high
ENDOPTION
OPTION 输入.material_code <> ""
box.material_code = 输入.material_code
ENDOPTION
OPTION 输入.num <> ""
box.num = 输入.num
ENDOPTION

View File

@@ -300,7 +300,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
* 4.出库口申请入发货区任务
*/
if ("1".equals(type)) {
boolean checked = true;
boolean auto_div = false;
if (ObjectUtil.isEmpty(vehicle_code)) {
@@ -308,34 +307,27 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
//通过该木箱码查询对应的分配明细
JSONArray dis_rows = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("box_no", vehicle_code).addParam("flag", "28").process().getResultJSONArray(0);
// 校验木箱高度
String height = whereJson.getString("height"); // 高度类型
JSONObject jsonSub = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + vehicle_code + "'").uniqueResult(0);
double box_high = jsonSub.getDoubleValue("box_high");
// 入库木箱下限
String in_download_box_high = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("in_download_box_high").getValue();
// 入库木箱上线
String in_up_box_high = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("in_up_box_high").getValue();
String box_type = "";
if (Double.parseDouble(in_download_box_high) < box_high && box_high <= Double.parseDouble(in_up_box_high)) {
box_type = "2";
}
if (Double.parseDouble(in_download_box_high) > box_high) {
box_type = "1";
}
if (ObjectUtil.isEmpty(box_type)) {
throw new BadRequestException("木箱高度超出指定范围,比对失败!");
}
if (!StrUtil.equals(box_type, height)) {
throw new BadRequestException("木箱高度类型错误:当前类型为" + height + ",实际类型应为" + box_type);
}
if (ObjectUtil.isEmpty(dis_rows)) {
throw new BadRequestException("未查询到木箱:" + vehicle_code + "相关入库分配明细记录!");
}

View File

@@ -330,7 +330,9 @@ public class RawFoilServiceImpl implements RawFoilService {
@Override
@Transactional(rollbackFor = Exception.class)
public JSONObject needEmptyVehicle(JSONObject whereJson) {
String point_code = whereJson.getString("point_code");
throw new BadRequestException("请点击呼叫按钮进行搬运!");
/*String point_code = whereJson.getString("point_code");
if (ObjectUtil.isEmpty(point_code)) {
throw new BadRequestException("输入的点位不能为空!");
}
@@ -352,10 +354,10 @@ public class RawFoilServiceImpl implements RawFoilService {
// 3.如果没找到则继续找下一节点
String start_pint_code = "";
if (ObjectUtil.isEmpty(jsonIvt)) {
/*String point_location = jsonSb.getString("point_location");
*//*String point_location = jsonSb.getString("point_location");
if (StrUtil.equals(point_location, "0")) map.put("point_location", "1");
if (StrUtil.equals(point_location, "1")) map.put("point_location", "0");
JSONObject jsonIvt_tow = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0);*/
JSONObject jsonIvt_tow = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0);*//*
throw new BadRequestException("未查询到有空轴且母卷位置为空的点位!");
} else {
start_pint_code = jsonIvt.getString("empty_point_code");
@@ -373,7 +375,7 @@ public class RawFoilServiceImpl implements RawFoilService {
JSONObject jo = new JSONObject();
jo.put("message", "操作成功!");
return jo;
return jo;*/
}
@Override

View File

@@ -49,7 +49,8 @@ public class AcsUtil {
log.info(product_area);
throw new BadRequestException("未查询到区域对应的acs地址");
}
String url = acs_url + api;
//String url =acs_url + api;
String url ="10.1.3.96:8011/"+ api;
try {
JSONArray rows = new JSONArray();
rows.add(jo);