# Conflicts:
#	lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java
This commit is contained in:
2024-05-29 16:26:56 +08:00
51 changed files with 759 additions and 321 deletions

View File

@@ -1,6 +1,7 @@
package org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.mapper; package org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt; import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt;
import java.util.List; import java.util.List;
@@ -29,5 +30,5 @@ public interface BstIvtShafttubeivtMapper extends BaseMapper<BstIvtShafttubeivt>
* @param startPoint 点位信息(包含:尺寸、类型、位置) * @param startPoint 点位信息(包含:尺寸、类型、位置)
* @return / * @return /
*/ */
List<BstIvtShafttubeivt> getNotTaskShaftCacheEmpty(BstIvtShafttubeivt startPoint); List<BstIvtShafttubeivt> getNotTaskShaftCacheEmpty(@Param("startPoint") BstIvtShafttubeivt startPoint);
} }

View File

@@ -40,9 +40,11 @@
FROM `bst_ivt_shafttubeivt` b FROM `bst_ivt_shafttubeivt` b
WHERE b.have_qzz = '0' WHERE b.have_qzz = '0'
AND b.point_type = '6' AND b.point_type = '6'
AND b.qzz_size = #{qzz_size} AND b.qzz_size = #{startPoint.qzz_size}
AND b.qzz_generation = #{qzz_generation} <if test="startPoint.qzz_size != 6">
AND b.point_location = #{point_location} AND b.qzz_generation = #{startPoint.qzz_generation}
</if>
AND b.point_location = #{startPoint.point_location}
AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status <![CDATA[ < ]]> '07' AND t.point_code1 = b.point_code) AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status <![CDATA[ < ]]> '07' AND t.point_code1 = b.point_code)
ORDER BY b.sort_seq ASC ORDER BY b.sort_seq ASC
</select> </select>

View File

@@ -46,4 +46,11 @@ public class VehicleTwoController {
public ResponseEntity<Object> returnIn(@RequestBody JSONObject whereJson) { public ResponseEntity<Object> returnIn(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(vehicleTwoService.returnIn(whereJson), HttpStatus.OK); return new ResponseEntity<>(vehicleTwoService.returnIn(whereJson), HttpStatus.OK);
} }
@PostMapping("/reback")
@Log("返检、改切入库")
@SaIgnore
public ResponseEntity<Object> reback(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(vehicleTwoService.reback(whereJson), HttpStatus.OK);
}
} }

View File

@@ -41,4 +41,15 @@ public interface VehicleTwoService {
* @return JSONObject返回前端参数~ * @return JSONObject返回前端参数~
*/ */
JSONObject returnIn(JSONObject whereJson); JSONObject returnIn(JSONObject whereJson);
/**
*
* @param whereJson {
* box_no: 木箱号
* vehicle_code: 载具号
* point_code: 点位
* }
* @return JSONObject返回前端参数~
*/
JSONObject reback(JSONObject whereJson);
} }

View File

@@ -11,8 +11,10 @@ import org.nl.b_lms.sch.point.service.IschBasePointService;
import org.nl.b_lms.sch.tasks.TwoInEmpExcepTask; import org.nl.b_lms.sch.tasks.TwoInEmpExcepTask;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBoxManageService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBoxManageService;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InVehicleManageService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InVehicleManageService;
import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -46,6 +48,9 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
@Autowired @Autowired
private IschBasePointService ischBasePointService; private IschBasePointService ischBasePointService;
@Autowired
private InBussManageService inBussManageService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public JSONObject vehicleIn(JSONObject whereJson) { public JSONObject vehicleIn(JSONObject whereJson) {
@@ -77,7 +82,7 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
JSONObject data = device_data.getJSONArray("data").getJSONObject(0); JSONObject data = device_data.getJSONArray("data").getJSONObject(0);
// 判断是否有货 且托盘类型相同、数量小于5 // 判断是否有货 且托盘类型相同、数量小于5
if (vehicle_type.equals(data.getString("container_type")) && data.getIntValue("qty") < 5 || data.getIntValue("qty") == 0){ if (vehicle_type.equals(data.getString("container_type")) && data.getIntValue("qty") < 5 || data.getIntValue("qty") == 0) {
// 生成入库叠盘机输送任务 // 生成入库叠盘机输送任务
JSONObject jsonTaskParam = new JSONObject(); JSONObject jsonTaskParam = new JSONObject();
jsonTaskParam.put("task_type", "010715"); jsonTaskParam.put("task_type", "010715");
@@ -87,6 +92,8 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code")); jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code"));
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
param.put("containerType", whereJson.getString("vehicle_type")); param.put("containerType", whereJson.getString("vehicle_type"));
//0表示为空托盘
param.put("heightLevel", "0");
jsonTaskParam.put("request_param", param.toString()); jsonTaskParam.put("request_param", param.toString());
TwoInEmpExcepTask taskBean = new TwoInEmpExcepTask(); TwoInEmpExcepTask taskBean = new TwoInEmpExcepTask();
@@ -128,6 +135,7 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
jsonTaskParam.put("vehicle_type", whereJson.getString("vehicle_type")); jsonTaskParam.put("vehicle_type", whereJson.getString("vehicle_type"));
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
param.put("containerType", whereJson.getString("vehicle_type")); param.put("containerType", whereJson.getString("vehicle_type"));
param.put("heightLevel", "0");
jsonTaskParam.put("request_param", param.toString()); jsonTaskParam.put("request_param", param.toString());
TwoInEmpExcepTask taskBean = new TwoInEmpExcepTask(); TwoInEmpExcepTask taskBean = new TwoInEmpExcepTask();
taskBean.createTask(jsonTaskParam); taskBean.createTask(jsonTaskParam);
@@ -158,4 +166,37 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
return result; return result;
} }
@Override
public JSONObject reback(JSONObject whereJson) {
String bill_type = whereJson.getString("bill_type");
whereJson.put("material_barcode",whereJson.getString("box_no"));
whereJson.put("device_code",whereJson.getString("point_code"));
//1-返检入库2-改切入库
if (bill_type.equals("1")){
whereJson.put("bill_type", IOSEnum.IN_TYPE.code("返检入库"));
}else if (bill_type.equals("2")){
whereJson.put("bill_type", IOSEnum.IN_TYPE.code("改切入库"));
}
whereJson.put("box_no", whereJson.getString("box_no"));
JSONArray resultJSONArray = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + whereJson.getString("material_barcode") + "' AND status = '0'").getResultJSONArray(0);
if (ObjectUtil.isEmpty(resultJSONArray)) {
throw new BadRequestException("未查询到子卷包装信息!");
}
String material_barcode = "";
for (int i = 0; i < resultJSONArray.size(); i++) {
JSONObject resultObj = resultJSONArray.getJSONObject(i);
if (i==0){
material_barcode = resultObj.getString("container_name");
}else {
material_barcode += "," + resultObj.getString("container_name");
}
}
whereJson.put("material_barcode", material_barcode);
inBussManageService.inTask(whereJson);
JSONObject result = new JSONObject();
result.put("message", "入库成功!");
return result;
}
} }

View File

@@ -155,6 +155,10 @@ public class PdmBiSlittingproductionplan implements Serializable {
/** 子卷等级*/ /** 子卷等级*/
private String level; private String level;
/** 子卷重量 */ /** 子卷重量 */
private String weight; private String weight;
/** 分切重量 */
private String paper_weight;
} }

View File

@@ -165,7 +165,7 @@ public class TwoExcepionalMoveTask extends AbstractAcsTask {
json.put("create_id", SecurityUtils.getCurrentUserId()); json.put("create_id", SecurityUtils.getCurrentUserId());
json.put("create_name", SecurityUtils.getCurrentUsername()); json.put("create_name", SecurityUtils.getCurrentUsername());
json.put("create_time", DateUtil.now()); json.put("create_time", DateUtil.now());
json.put("priority", "1"); json.put("priority", "3");
json.put("acs_task_type", "7"); json.put("acs_task_type", "7");
WQLObject.getWQLObject("SCH_BASE_Task").insert(json); WQLObject.getWQLObject("SCH_BASE_Task").insert(json);

View File

@@ -76,7 +76,6 @@ public class TwoInBoxTrussTask extends AbstractAcsTask {
map.put("task_status", TaskStatusEnum.EXECUTING.getCode()); map.put("task_status", TaskStatusEnum.EXECUTING.getCode());
} }
// 完成 // 完成
if (status.equals(TaskStatusEnum.FINISHED.getCode())) { if (status.equals(TaskStatusEnum.FINISHED.getCode())) {

View File

@@ -50,6 +50,7 @@ public class TwoInEmpTask extends AbstractAcsTask {
.task_type(json.getString("acs_task_type")) .task_type(json.getString("acs_task_type"))
.start_device_code(json.getString("point_code1")) .start_device_code(json.getString("point_code1"))
.next_device_code(json.getString("point_code2")) .next_device_code(json.getString("point_code2"))
.interaction_json(json.getJSONObject("request_param"))
.vehicle_code(json.getString("vehicle_code")) .vehicle_code(json.getString("vehicle_code"))
.priority(json.getString("priority")) .priority(json.getString("priority"))
.class_type(json.getString("task_type")) .class_type(json.getString("task_type"))
@@ -165,6 +166,7 @@ public class TwoInEmpTask extends AbstractAcsTask {
json.put("point_code1", form.getString("start_device_code")); json.put("point_code1", form.getString("start_device_code"));
json.put("point_code2", form.getString("next_device_code")); json.put("point_code2", form.getString("next_device_code"));
json.put("handle_class", this.getClass().getName()); json.put("handle_class", this.getClass().getName());
json.put("request_param",form.getString("request_param"));
json.put("create_id", SecurityUtils.getCurrentUserId()); json.put("create_id", SecurityUtils.getCurrentUserId());
json.put("create_name", SecurityUtils.getCurrentUsername()); json.put("create_name", SecurityUtils.getCurrentUsername());
json.put("create_time", DateUtil.now()); json.put("create_time", DateUtil.now());

View File

@@ -87,6 +87,7 @@ public class TwoLashTask extends AbstractAcsTask {
interaction_json.put("height",dao.get(0).getBox_high()); interaction_json.put("height",dao.get(0).getBox_high());
interaction_json.put("template","2"); interaction_json.put("template","2");
interaction_json.put("bindingTimes","1"); interaction_json.put("bindingTimes","1");
interaction_json.put("isBinding", IOSEnum.IS_SEND.code(""));
char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1); char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1);
AcsTaskDto dto = AcsTaskDto.builder() AcsTaskDto dto = AcsTaskDto.builder()

View File

@@ -91,6 +91,12 @@ public class TwoOutBoxTask extends AbstractAcsTask {
jsonAttr.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定")); jsonAttr.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定"));
jsonAttr.put("storagevehicle_code",""); jsonAttr.put("storagevehicle_code","");
attrTab.update(jsonAttr); attrTab.update(jsonAttr);
} }
// 取消 // 取消

View File

@@ -167,7 +167,7 @@ public class DjqTask extends AbstractAcsTask {
.is_send(isSend ? "1" : "0") .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")) .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")) .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")) ? "B2" : form.getString("product_area")) .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -159,7 +159,7 @@ public class GzqTask extends AbstractAcsTask {
.is_send(isSend ? "1" : "0") .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")) .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")) .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")) ? "B2" : form.getString("product_area")) .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -176,7 +176,7 @@ public class KzjhcwTask extends AbstractAcsTask {
.is_send(isSend ? "1" : "0") .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")) .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")) .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")) ? "B2" : form.getString("product_area")) .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -1,4 +1,5 @@
package org.nl.b_lms.sch.tasks.first_floor_area; package org.nl.b_lms.sch.tasks.first_floor_area;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.BooleanUtil;
@@ -28,6 +29,7 @@ import org.nl.wms.sch.manage.TaskStatusEnum;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@@ -72,7 +74,6 @@ public class MzhcwTask extends AbstractAcsTask {
private SsxDjwTask ssxDjwTask; private SsxDjwTask ssxDjwTask;
@Override @Override
public List<AcsTaskDto> addTask() { public List<AcsTaskDto> addTask() {
ArrayList<AcsTaskDto> resultList = new ArrayList<>(); ArrayList<AcsTaskDto> resultList = new ArrayList<>();
@@ -106,7 +107,7 @@ public class MzhcwTask extends AbstractAcsTask {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateTaskStatus(JSONObject taskObj, String status) { public void updateTaskStatus(JSONObject taskObj, String status) {
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq( SchBaseTask::getTask_id, taskObj.getString("task_id")), false); SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
if (schBaseTask == null) { if (schBaseTask == null) {
throw new BadRequestException("输送线点位 -> 满轴缓存位更新接口任务号为空!"); throw new BadRequestException("输送线点位 -> 满轴缓存位更新接口任务号为空!");
} }
@@ -133,43 +134,44 @@ public class MzhcwTask extends AbstractAcsTask {
throw new BadRequestException("找不到子卷信息!"); throw new BadRequestException("找不到子卷信息!");
} }
//子卷等级 //子卷等级
String level = containerInfo.getLevel(); String level = containerInfo.getLevel() == null ? "1" : containerInfo.getLevel();
if (Arrays.stream(ContainerLevelEnum.values()).noneMatch(enumItem -> enumItem.getCode().equals(level))) { // if (Arrays.stream(ContainerLevelEnum.values()).noneMatch(enumItem -> enumItem.getCode().equals(level))) {
throw new BadRequestException("非法的子卷等级!"); // throw new BadRequestException("非法的子卷等级!");
} // }
//查询待检区和管制区库位情况 //查询待检区和管制区库位情况
List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>() .list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
.orderByAsc(BstIvtPackageinfoivt::getSort_seq)); .orderByAsc(BstIvtPackageinfoivt::getSort_seq));
JSONObject toDjqTask = new JSONObject(); // JSONObject toDjqTask = new JSONObject();
//获取子卷号 // //获取子卷号
toDjqTask.put("vehicle_code", containerInfo.getContainer_name()); // toDjqTask.put("vehicle_code", containerInfo.getContainer_name());
// 判断子卷等级属于待检区还是管制区,创建满轴缓存位到待检区或管制区的agv任务 // // 判断子卷等级属于待检区还是管制区,创建满轴缓存位到待检区或管制区的agv任务
if (Stream.of(ContainerLevelEnum.BEST, ContainerLevelEnum.WELL, ContainerLevelEnum.COMMON).anyMatch(enumItem -> enumItem.getCode().equals(level))) { // if (Stream.of(ContainerLevelEnum.BEST, ContainerLevelEnum.WELL, ContainerLevelEnum.COMMON).anyMatch(enumItem -> enumItem.getCode().equals(level))) {
List<BstIvtPackageinfoivt> djqPointList = bstIvtPackageinfoivtList.stream() // List<BstIvtPackageinfoivt> djqPointList = bstIvtPackageinfoivtList.stream()
.filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("待检区").equals(r.getPoint_status()) // .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("待检区").equals(r.getPoint_status())
&& PackageInfoIvtEnum.IVT_STATUS.code("").equals(r.getIvt_status())).collect(Collectors.toList()); // && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(djqPointList)) { // if (CollectionUtils.isEmpty(djqPointList)) {
throw new BadRequestException("待检区暂无空余库位!"); // throw new BadRequestException("待检区暂无空余库位!");
} // }
toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区")); // toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"));
toDjqTask.put("point_code1", schBaseTask.getPoint_code2()); // toDjqTask.put("point_code1", schBaseTask.getPoint_code2());
toDjqTask.put("point_code2", djqPointList.get(0).getPoint_code()); // toDjqTask.put("point_code2", djqPointList.get(0).getPoint_code());
djqTask.createTask(toDjqTask); // djqTask.createTask(toDjqTask);
} else if (Stream.of(ContainerLevelEnum.REWORK, ContainerLevelEnum.CONTROL).anyMatch(enumItem -> enumItem.getCode().equals(level))) { // } else if (Stream.of(ContainerLevelEnum.REWORK, ContainerLevelEnum.CONTROL).anyMatch(enumItem -> enumItem.getCode().equals(level))) {
List<BstIvtPackageinfoivt> gkqPointList = bstIvtPackageinfoivtList.stream() // List<BstIvtPackageinfoivt> gkqPointList = bstIvtPackageinfoivtList.stream()
.filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("管制区").equals(r.getPoint_status()) // .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("管制区").equals(r.getPoint_status())
&& PackageInfoIvtEnum.IVT_STATUS.code("").equals(r.getIvt_status())).collect(Collectors.toList()); // && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(gkqPointList)) { // if (CollectionUtils.isEmpty(gkqPointList)) {
throw new BadRequestException("管控区暂无空余库位!"); // throw new BadRequestException("管控区暂无空余库位!");
} // }
toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->管制区")); // toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->管制区"));
toDjqTask.put("point_code1", schBaseTask.getPoint_code2()); // toDjqTask.put("point_code1", schBaseTask.getPoint_code2());
toDjqTask.put("point_code2", gkqPointList.get(0).getPoint_code()); // toDjqTask.put("point_code2", gkqPointList.get(0).getPoint_code());
gzqTask.createTask(toDjqTask); // gzqTask.createTask(toDjqTask);
} // }
//4.创建空载具到输送线任务 //4.创建空载具到输送线任务
// if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))) {
List<BstIvtPackageinfoivt> kzjPointList = bstIvtPackageinfoivtList.stream() List<BstIvtPackageinfoivt> kzjPointList = bstIvtPackageinfoivtList.stream()
.filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位").equals(r.getPoint_status()) .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位").equals(r.getPoint_status())
&& PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())).collect(Collectors.toList()); && PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())).collect(Collectors.toList());
@@ -177,7 +179,7 @@ public class MzhcwTask extends AbstractAcsTask {
toSsxTask.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); toSsxTask.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")); toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
toSsxTask.put("vehicle_code", containerInfo.getContainer_name()); toSsxTask.put("vehicle_code", containerInfo.getContainer_name());
//判断空载具缓存位是否有空载具库存,有就叫agv去任一一个位置搬空载具 //判断空载具缓存位是否有空载具库存,有就叫桁架去任一一个位置搬空载具
if (CollectionUtils.isNotEmpty(kzjPointList)) { if (CollectionUtils.isNotEmpty(kzjPointList)) {
//直接创建搬运空载具任务 //直接创建搬运空载具任务
toSsxTask.put("point_code1", kzjPointList.get(0).getPoint_code()); toSsxTask.put("point_code1", kzjPointList.get(0).getPoint_code());
@@ -227,6 +229,7 @@ public class MzhcwTask extends AbstractAcsTask {
kzjhcwTask.createTask(toKzjhcwTask); kzjhcwTask.createTask(toKzjhcwTask);
} }
} }
//}
} }
} }
// 取消 // 取消
@@ -280,7 +283,7 @@ public class MzhcwTask extends AbstractAcsTask {
.is_send(isSend ? "1" : "0") .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")) .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")) .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")) ? "B2" : form.getString("product_area")) .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -170,7 +170,7 @@ public class SsxDjwTask extends AbstractAcsTask {
.is_send(isSend ? "1" : "0") .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")) .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")) .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")) ? "B2" : form.getString("product_area")) .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -32,6 +32,7 @@ import org.nl.wms.sch.manage.TaskStatusEnum;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -49,7 +50,6 @@ import java.util.stream.Collectors;
public class ZxDjwTask extends AbstractAcsTask { public class ZxDjwTask extends AbstractAcsTask {
@Resource @Resource
private DjqTask djqTask; private DjqTask djqTask;
@Resource @Resource
@@ -202,7 +202,7 @@ public class ZxDjwTask extends AbstractAcsTask {
.is_send(isSend ? "1" : "0") .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")) .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")) .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")) ? "B2" : form.getString("product_area")) .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -95,56 +95,9 @@ public class TrussCallAirShaftTask extends AbstractAcsTask {
// 更改任务状态为完成 // 更改任务状态为完成
task.setTask_status(TaskStatusEnum.FINISHED.getCode()); task.setTask_status(TaskStatusEnum.FINISHED.getCode());
String startPoint = task.getPoint_code1(); String startPoint = task.getPoint_code1();
String endPoint = task.getPoint_code2();
BstIvtCutpointivt startPointObj = bcutpointivtService.getOne(new LambdaQueryWrapper<BstIvtCutpointivt>() BstIvtCutpointivt startPointObj = bcutpointivtService.getOne(new LambdaQueryWrapper<BstIvtCutpointivt>()
.eq(BstIvtCutpointivt::getTruss_point_code1, startPoint).or() .eq(BstIvtCutpointivt::getTruss_point_code1, startPoint).or()
.eq(BstIvtCutpointivt::getTruss_point_code2, startPoint)); .eq(BstIvtCutpointivt::getTruss_point_code2, startPoint));
BstIvtShafttubeivt endPointObj = shafttubeivtService.getOne(new LambdaQueryWrapper<BstIvtShafttubeivt>()
.eq(BstIvtShafttubeivt::getPoint_code, endPoint));
String requestParam = task.getRequest_param();
JSONObject extGroupData = JSONObject.parseObject(requestParam);
// 需要套轴就要把纸管信息进行维护
if ("1".equals(extGroupData.getString("is_bushing"))) {
// 获取分切计划(最多两个)需要获取子卷的纸管设置到点位上 获取分切计划dto中对应的需要套轴的分切计划 最多两个计划
String needPlan = extGroupData.getString("needPlan");
SlitterPlanDistinctDto planDistinctDto = JSONObject.parseObject(needPlan, SlitterPlanDistinctDto.class);
List<PdmBiSlittingproductionplan> needPlans = slittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
.eq(PdmBiSlittingproductionplan::getResource_name, planDistinctDto.getResource_name())
.eq(PdmBiSlittingproductionplan::getParent_container_name, planDistinctDto.getParent_container_name())
.eq(PdmBiSlittingproductionplan::getUp_or_down, planDistinctDto.getUp_or_down())
.eq(PdmBiSlittingproductionplan::getSplit_group, planDistinctDto.getSplit_group())
.eq(PdmBiSlittingproductionplan::getIs_paper_ok, "2"));
if (needPlans.size() == 0) {
throw new BadRequestException("找不到气涨轴编码【" + task.getVehicle_code() + "】对应的气涨轴");
}
for (PdmBiSlittingproductionplan plan : needPlans) {
if (SlitterConstant.SLITTER_SUB_VOLUME_LEFT.equals(plan.getLeft_or_right())) {
// 左卷
if (SlitterConstant.SLITTER_TYPE_PAPER.equals(plan.getPaper_tube_or_FRP())) {
endPointObj.setTube_code1(plan.getPaper_tube_material());
endPointObj.setTube_name1(plan.getPaper_tube_model());
} else {
endPointObj.setTube_code1(plan.getFRP_material());
endPointObj.setTube_name1(plan.getFRP_model());
}
endPointObj.setContainer_name1(plan.getContainer_name());
} else {
// 右卷
if (SlitterConstant.SLITTER_TYPE_PAPER.equals(plan.getPaper_tube_or_FRP())) {
endPointObj.setTube_code2(plan.getPaper_tube_material());
endPointObj.setTube_name2(plan.getPaper_tube_model());
} else {
endPointObj.setTube_code2(plan.getFRP_material());
endPointObj.setTube_name2(plan.getFRP_model());
}
endPointObj.setContainer_name2(plan.getContainer_name());
}
}
}
endPointObj.setHave_qzz("1");
endPointObj.setQzz_size(extGroupData.getString("qzz_size"));
TaskUtils.updateOptMessageByBShaftPoint(endPointObj);
shafttubeivtService.updateById(endPointObj);
// 起点清空 // 起点清空
if (startPoint.equals(startPointObj.getTruss_point_code1())) { if (startPoint.equals(startPointObj.getTruss_point_code1())) {
startPointObj.setQzz_no1(""); startPointObj.setQzz_no1("");
@@ -156,7 +109,6 @@ public class TrussCallAirShaftTask extends AbstractAcsTask {
} }
TaskUtils.updateOptMessageByBCutPoint(startPointObj); TaskUtils.updateOptMessageByBCutPoint(startPointObj);
bcutpointivtService.updateById(startPointObj); bcutpointivtService.updateById(startPointObj);
} }
// 取消 // 取消
if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) { if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) {

View File

@@ -149,6 +149,8 @@ public class AutoCallAirShaftTask {
if (oldQzzNo == null) { if (oldQzzNo == null) {
throw new BadRequestException("当前气胀轴的编码为空!"); throw new BadRequestException("当前气胀轴的编码为空!");
} }
// 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划
saveCutPlanMessage(empty, needPlans, qzzSize);
// 最多两条 // 最多两条
List<PdmBiSlittingproductionplan> oldPlans = slittingproductionplanService.getByQzzNo(oldQzzNo); List<PdmBiSlittingproductionplan> oldPlans = slittingproductionplanService.getByQzzNo(oldQzzNo);
SlitterTaskUtil.putCurrentPaperSpec(param, oldPlans); SlitterTaskUtil.putCurrentPaperSpec(param, oldPlans);
@@ -225,9 +227,7 @@ public class AutoCallAirShaftTask {
private void saveCutPlanMessage(BstIvtShafttubeivt empty, List<PdmBiSlittingproductionplan> needPlans, String qzzSize) { private void saveCutPlanMessage(BstIvtShafttubeivt empty, List<PdmBiSlittingproductionplan> needPlans, String qzzSize) {
empty.setHave_qzz(SlitterConstant.SLITTER_YES); empty.setHave_qzz(SlitterConstant.SLITTER_YES);
empty.setQzz_size(qzzSize); empty.setQzz_size(qzzSize);
empty.setUpdate_optid(SecurityUtils.getCurrentUserId()); TaskUtils.updateOptMessageByBShaftPoint(empty);
empty.setUpdate_optname(SecurityUtils.getCurrentUsername());
empty.setUpdate_time(DateUtil.now());
for (PdmBiSlittingproductionplan plan : needPlans) { for (PdmBiSlittingproductionplan plan : needPlans) {
if (SlitterConstant.SLITTER_SUB_VOLUME_LEFT.equals(plan.getLeft_or_right())) { if (SlitterConstant.SLITTER_SUB_VOLUME_LEFT.equals(plan.getLeft_or_right())) {
// 左卷 // 左卷
@@ -242,11 +242,11 @@ public class AutoCallAirShaftTask {
} else { } else {
// 右卷 // 右卷
if (SlitterConstant.SLITTER_TYPE_PAPER.equals(plan.getPaper_tube_or_FRP())) { if (SlitterConstant.SLITTER_TYPE_PAPER.equals(plan.getPaper_tube_or_FRP())) {
empty.setTube_code1(plan.getPaper_tube_material()); empty.setTube_code2(plan.getPaper_tube_material());
empty.setTube_name1(plan.getPaper_tube_model()); empty.setTube_name2(plan.getPaper_tube_model());
} else { } else {
empty.setTube_code1(plan.getFRP_material()); empty.setTube_code2(plan.getFRP_material());
empty.setTube_name1(plan.getFRP_model()); empty.setTube_name2(plan.getFRP_model());
} }
empty.setContainer_name2(plan.getContainer_name()); empty.setContainer_name2(plan.getContainer_name());
} }

View File

@@ -173,10 +173,11 @@ public class SlitterServiceImpl implements SlitterService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public JSONObject acsFinishLoadShaft(JSONObject param) { public JSONObject acsFinishLoadShaft(JSONObject param) {
log.info("ACS申请套管完成参数: {}", param);
JSONObject res = new JSONObject(); JSONObject res = new JSONObject();
// 穿拔轴位 // 穿拔轴位
String deviceCode = param.getString("device_code"); String deviceCode = param.getString("device_code");
// todo: 纸管 // 纸管
String weight1 = param.getString("weight1"); String weight1 = param.getString("weight1");
String material1 = param.getString("material1"); String material1 = param.getString("material1");
String weight2 = param.getString("weight2"); String weight2 = param.getString("weight2");
@@ -205,6 +206,18 @@ public class SlitterServiceImpl implements SlitterService {
log.error("找不到[{}]对应的分切计划!", collect); log.error("找不到[{}]对应的分切计划!", collect);
throw new BadRequestException("找不到[" + collect + "]对应的分切计划!"); throw new BadRequestException("找不到[" + collect + "]对应的分切计划!");
} }
// 分切计划设置纸卷重量
for (PdmBiSlittingproductionplan plan : plans) {
if (ObjectUtil.isNotEmpty(material1) && material1.equals(plan.getContainer_name())) {
plan.setPaper_weight(weight1);
}
if (ObjectUtil.isNotEmpty(material2) && material2.equals(plan.getContainer_name())) {
plan.setPaper_weight(weight2);
}
TaskUtils.updateOptMessageBySlitterPlan(plan);
}
slittingproductionplanService.updateBatchById(plans);
// 当前套轴的分切计划 // 当前套轴的分切计划
PdmBiSlittingproductionplan demoPlan = plans.get(0); PdmBiSlittingproductionplan demoPlan = plans.get(0);
// 查找是否有同组的气胀轴位置 // 查找是否有同组的气胀轴位置
@@ -555,6 +568,7 @@ public class SlitterServiceImpl implements SlitterService {
public JSONObject acsSendSubVolume(JSONObject param) { public JSONObject acsSendSubVolume(JSONObject param) {
JSONObject res = new JSONObject(); JSONObject res = new JSONObject();
String deviceCode = param.getString("device_code"); String deviceCode = param.getString("device_code");
BstIvtShafttubeivt device = shafttubeivtService.getByPointCode(deviceCode, false);
// 气涨轴编码 // 气涨轴编码
String qzzNo = param.getString("qzz_no"); String qzzNo = param.getString("qzz_no");
String direction = param.getString("direction"); String direction = param.getString("direction");
@@ -572,12 +586,17 @@ public class SlitterServiceImpl implements SlitterService {
log.error("设备{}, 找不到气胀轴编码{}对应的分切计划!参数:{}", deviceCode, qzzNo, param); log.error("设备{}, 找不到气胀轴编码{}对应的分切计划!参数:{}", deviceCode, qzzNo, param);
throw new BadRequestException("找不到气胀轴编码{ " + qzzNo + " }的分切计划!"); throw new BadRequestException("找不到气胀轴编码{ " + qzzNo + " }的分切计划!");
} }
// 查找终点 todo: 如何确认是废箔还是成品 if (ObjectUtil.isEmpty(plan.getLevel())) {
// todo: 暂时写死去成品称重 throw new BadRequestException("子卷[" + plan.getContainer_name() + "]对应的级别不能为空");
// BstIvtShafttubeivt one = shafttubeivtService.getOne(new LambdaQueryWrapper<BstIvtShafttubeivt>() }
// .eq(BstIvtShafttubeivt::getPoint_type, "4").eq(BstIvtShafttubeivt::getPoint_location, "0")); String point_type = "5".equals(plan.getLevel()) ? "5" : "4";
// 查找终点 确认是废箔还是成品: 根据分切计划的子卷等级来区分5为报废
BstIvtShafttubeivt one = shafttubeivtService.getOne(new LambdaQueryWrapper<BstIvtShafttubeivt>()
.eq(BstIvtShafttubeivt::getPoint_type, point_type)
.eq(BstIvtShafttubeivt::getPoint_location, device.getPoint_location())
.eq(BstIvtShafttubeivt::getIs_used, SlitterConstant.SLITTER_YES));
JSONObject taskParam = new JSONObject(); JSONObject taskParam = new JSONObject();
taskParam.put("point_code2", "B_CZW01"); taskParam.put("point_code2", one.getPoint_code());
taskParam.put("material_code", plan.getContainer_name()); taskParam.put("material_code", plan.getContainer_name());
res.put("code", HttpStatus.HTTP_OK); res.put("code", HttpStatus.HTTP_OK);
res.put("message", "请求成功!"); res.put("message", "请求成功!");

View File

@@ -1284,7 +1284,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
.eq(BstIvtBoxinfo::getBox_no, json.getString("storagevehicle_code")) .eq(BstIvtBoxinfo::getBox_no, json.getString("storagevehicle_code"))
); );
request_param.put("containerType", boxDao.getVehicle_type()); request_param.put("containerType", boxDao.getVehicle_type());
request_param.put("request_param", request_param); jsonTaskParam.put("request_param", request_param);
jsonTaskParam.put("table_fk", disDaoList.get(0).getIostorinv_id().toString()); jsonTaskParam.put("table_fk", disDaoList.get(0).getIostorinv_id().toString());
if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("")) || if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("")) ||

View File

@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; 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.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper;
import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation;
@@ -285,6 +286,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
JSONObject jsonAttr; JSONObject jsonAttr;
// 是否自动分配货位 // 是否自动分配货位
Boolean checked = jsonObject.getBoolean("checked"); Boolean checked = jsonObject.getBoolean("checked");
String height = "";
if (ObjectUtil.isNotEmpty(checked) && checked) { if (ObjectUtil.isNotEmpty(checked) && checked) {
// 自动分配: 根据仓库、库区匹配一个合适的仓位 // 自动分配: 根据仓库、库区匹配一个合适的仓位
JSONObject attrParam = new JSONObject(); JSONObject attrParam = new JSONObject();
@@ -300,7 +302,6 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
jsonObject.put("vehicle_type",boxDao.getVehicle_type()); jsonObject.put("vehicle_type",boxDao.getVehicle_type());
attrParam.put("vehicle_type", boxDao.getVehicle_type()); attrParam.put("vehicle_type", boxDao.getVehicle_type());
//根据木箱高度,判断入库仓位的高度 //根据木箱高度,判断入库仓位的高度
String height = "";
String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue(); String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue();
String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue(); String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue();
String box_high = boxDao.getBox_high(); String box_high = boxDao.getBox_high();
@@ -395,6 +396,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
jsonSend.put("vehicle_code2", jsonObject.getString("vehicle_code")); jsonSend.put("vehicle_code2", jsonObject.getString("vehicle_code"));
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
param.put("containerType", jsonObject.getString("vehicle_type")); param.put("containerType", jsonObject.getString("vehicle_type"));
param.put("heightLevel", height);
jsonSend.put("request_param", param.toString()); jsonSend.put("request_param", param.toString());
String task_id1 = this.setPoint(jsonSend); String task_id1 = this.setPoint(jsonSend);
// 下发任务 // 下发任务
@@ -405,15 +407,27 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
} }
private BstIvtBoxinfo getBstIvtBoxinfo(Map whereJson) { private BstIvtBoxinfo getBstIvtBoxinfo(Map whereJson) {
//查询木箱 //查询木箱信息
String containerName;
if (whereJson.get("tableMater") != null) {
JSONArray jsonArray = JSON.parseArray(JSON.toJSONString(whereJson.get("tableMater")));
containerName = jsonArray.getJSONObject(0).getString("pcsn");
} else {
containerName = whereJson.get("material_barcode").toString().split(",")[0];
}
if (StringUtils.isBlank(containerName)) {
throw new BadRequestException("子卷号不能为空");
}
PdmBiSubpackagerelation pdmBiSubpackagerelation = ipdmBiSubpackagerelationService.getOne(new LambdaQueryWrapper<PdmBiSubpackagerelation>() PdmBiSubpackagerelation pdmBiSubpackagerelation = ipdmBiSubpackagerelationService.getOne(new LambdaQueryWrapper<PdmBiSubpackagerelation>()
.eq(PdmBiSubpackagerelation::getContainer_name, whereJson.get("material_barcode"))); .eq(PdmBiSubpackagerelation::getContainer_name, containerName));
if (pdmBiSubpackagerelation == null) {
throw new BadRequestException("子卷包装关系不存在");
}
// 查询木箱信息 // 查询木箱信息
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( return iBstIvtBoxinfoService.getOne(
new QueryWrapper<BstIvtBoxinfo>().lambda() new QueryWrapper<BstIvtBoxinfo>().lambda()
.eq(BstIvtBoxinfo::getBox_no, pdmBiSubpackagerelation.getPackage_box_sn()) .eq(BstIvtBoxinfo::getBox_no, pdmBiSubpackagerelation.getPackage_box_sn())
); );
return boxDao;
} }
@Override @Override
@@ -511,7 +525,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
jsonTaskParam.put("task_type", "010703"); jsonTaskParam.put("task_type", "010703");
jsonTaskParam.put("start_device_code", pointDto.getPoint_code()); jsonTaskParam.put("start_device_code", pointDto.getPoint_code());
jsonTaskParam.put("next_device_code", jsonDis.getString("struct_code")); jsonTaskParam.put("next_device_code", jsonDis.getString("struct_code"));
jsonTaskParam.put("vehicle_code", whereJson.get("vehicle_code")); //jsonTaskParam.put("vehicle_code", whereJson.get("vehicle_code"));
jsonTaskParam.put("vehicle_code", "A00010");
jsonTaskParam.put("vehicle_code2", whereJson.get("vehicle_code2")); jsonTaskParam.put("vehicle_code2", whereJson.get("vehicle_code2"));
jsonTaskParam.put("inv_type", mstDao.getBill_type()); jsonTaskParam.put("inv_type", mstDao.getBill_type());
jsonTaskParam.put("inv_id", mstDao.getIostorinv_id()); jsonTaskParam.put("inv_id", mstDao.getIostorinv_id());

View File

@@ -2,6 +2,7 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl;
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.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -162,7 +163,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
// 载具表 // 载具表
WQLObject vehicleTab = WQLObject.getWQLObject("md_pb_storagevehicleinfo"); WQLObject vehicleTab = WQLObject.getWQLObject("md_pb_storagevehicleinfo");
// 载具扩展属性表 // 载具扩展属性表
// WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
/* /*
* 查询mes木箱信息插入木箱信息表 * 查询mes木箱信息插入木箱信息表
*/ */
@@ -176,28 +177,56 @@ public class InBoxManageServiceImpl implements InBoxManageService {
* 插入木箱对应载具表 * 插入木箱对应载具表
*/ */
String box_no = whereJson.getString("box_no");
String[] split = box_no.split(",");
String boxType = "";
for (int i = 0; i < split.length; i++) {
String boxNo = split[i];
BstIvtBoxinfo boxinfo = iBstIvtBoxinfoService.getOne(
new QueryWrapper<BstIvtBoxinfo>().lambda()
.eq(BstIvtBoxinfo::getBox_no, boxNo));
if (StrUtil.isEmpty(boxType)) {
boxType = boxinfo.getMaterial_code();
} else {
if (!boxType.equals(boxinfo.getMaterial_code())) {
throw new BadRequestException("请扫码相同规格的木箱进行堆叠入库!");
}
}
}
//查询对应的木箱信息 //查询对应的木箱信息
// 查询木箱信息 // 查询木箱信息
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
new QueryWrapper<BstIvtBoxinfo>().lambda() new QueryWrapper<BstIvtBoxinfo>().lambda()
.eq(BstIvtBoxinfo::getBox_no, whereJson.getString("box_no")) .eq(BstIvtBoxinfo::getBox_no, split[0])
); );
if (boxDao == null) { if (boxDao == null) {
throw new BadRequestException("木箱不存在!"); throw new BadRequestException("木箱不存在!");
} }
JSONObject jsonVehicle = vehicleTab.query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'") JSONObject jsonVehicle = vehicleTab.query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'")
.uniqueResult(0); .uniqueResult(0);
// if (ObjectUtil.isEmpty(jsonVehicle)) { if (ObjectUtil.isEmpty(jsonVehicle)) {
// throw new BadRequestException("载具不存在!"); throw new BadRequestException("载具不存在!");
// } }
// JSONObject jsonVeExt = new JSONObject(); JSONObject ext_jo = veExtTab.query("storagevehicle_code = '"+jsonVehicle.getString("storagevehicle_code")+"'").uniqueResult(0);
// jsonVeExt.put("storagevehicleext_id", IdUtil.getLongId()); if (ObjectUtil.isEmpty(ext_jo)) {
// jsonVeExt.put("storagevehicle_id", jsonVehicle.getLongValue("storagevehicle_id")); JSONObject jsonVeExt = new JSONObject();
// jsonVeExt.put("storagevehicle_code", jsonVehicle.getString("storagevehicle_code")); jsonVeExt.put("storagevehicleext_id", IdUtil.getLongId());
// jsonVeExt.put("storagevehicle_type", jsonVehicle.getString("storagevehicle_type")); jsonVeExt.put("storagevehicle_id", jsonVehicle.getLongValue("storagevehicle_id"));
// jsonVeExt.put("pcsn", whereJson.getString("box_no")); jsonVeExt.put("storagevehicle_code", jsonVehicle.getString("storagevehicle_code"));
// jsonVeExt.put("device_uuid", IdUtil.getLongId()); jsonVeExt.put("storagevehicle_type", jsonVehicle.getString("storagevehicle_type"));
// veExtTab.insert(jsonVeExt); jsonVeExt.put("pcsn", whereJson.getString("box_no"));
jsonVeExt.put("device_uuid", IdUtil.getLongId());
jsonVeExt.put("update_time", DateUtil.now());
veExtTab.insert(jsonVeExt);
}else {
ext_jo.put("pcsn", whereJson.getString("box_no"));
ext_jo.put("device_uuid", IdUtil.getLongId());
ext_jo.put("update_time", DateUtil.now());
veExtTab.update(ext_jo);
}
// 下发桁架任务 // 下发桁架任务
//查询当前入库拆叠盘位的托盘类型是否一致如果一致 //查询当前入库拆叠盘位的托盘类型是否一致如果一致
@@ -254,6 +283,19 @@ public class InBoxManageServiceImpl implements InBoxManageService {
param.put("height", boxDao.getBox_high()); param.put("height", boxDao.getBox_high());
param.put("containerType", boxDao.getVehicle_type()); param.put("containerType", boxDao.getVehicle_type());
param.put("barcode", whereJson.getString("box_no")); param.put("barcode", whereJson.getString("box_no"));
//根据木箱高度,判断入库仓位的高度
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";
}
param.put("heightLevel", height);
taskParam.put("request_param", param.toString()); taskParam.put("request_param", param.toString());
TwoInBoxTrussTask taskBean = new TwoInBoxTrussTask(); TwoInBoxTrussTask taskBean = new TwoInBoxTrussTask();
taskBean.createTask(taskParam); taskBean.createTask(taskParam);
@@ -265,7 +307,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
// 载具表 // 载具表
WQLObject vehicleTab = WQLObject.getWQLObject("md_pb_storagevehicleinfo"); WQLObject vehicleTab = WQLObject.getWQLObject("md_pb_storagevehicleinfo");
// 载具扩展属性表 // 载具扩展属性表
// WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
/* /*
* 查询mes木箱信息插入木箱信息表 * 查询mes木箱信息插入木箱信息表
*/ */
@@ -288,19 +330,30 @@ public class InBoxManageServiceImpl implements InBoxManageService {
if (boxDao == null) { if (boxDao == null) {
throw new BadRequestException("木箱不存在!"); throw new BadRequestException("木箱不存在!");
} }
JSONObject jsonVehicle = vehicleTab.query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'") JSONObject jsonVehicle = vehicleTab.query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'")
.uniqueResult(0); .uniqueResult(0);
// if (ObjectUtil.isEmpty(jsonVehicle)) { if (ObjectUtil.isEmpty(jsonVehicle)) {
// throw new BadRequestException("载具不存在!"); throw new BadRequestException("载具不存在!");
// } }
// JSONObject jsonVeExt = new JSONObject(); JSONObject ext_jo = veExtTab.query("storagevehicle_code = '"+jsonVehicle.getString("storagevehicle_code")+"'").uniqueResult(0);
// jsonVeExt.put("storagevehicleext_id", IdUtil.getLongId()); if (ObjectUtil.isEmpty(ext_jo)) {
// jsonVeExt.put("storagevehicle_id", jsonVehicle.getLongValue("storagevehicle_id")); JSONObject jsonVeExt = new JSONObject();
// jsonVeExt.put("storagevehicle_code", jsonVehicle.getString("storagevehicle_code")); jsonVeExt.put("storagevehicleext_id", IdUtil.getLongId());
// jsonVeExt.put("storagevehicle_type", jsonVehicle.getString("storagevehicle_type")); jsonVeExt.put("storagevehicle_id", jsonVehicle.getLongValue("storagevehicle_id"));
// jsonVeExt.put("pcsn", whereJson.getString("box_no")); jsonVeExt.put("storagevehicle_code", jsonVehicle.getString("storagevehicle_code"));
// jsonVeExt.put("device_uuid", IdUtil.getLongId()); jsonVeExt.put("storagevehicle_type", jsonVehicle.getString("storagevehicle_type"));
// veExtTab.insert(jsonVeExt); jsonVeExt.put("pcsn", whereJson.getString("box_no"));
jsonVeExt.put("device_uuid", IdUtil.getLongId());
jsonVeExt.put("update_time", DateUtil.now());
veExtTab.insert(jsonVeExt);
}else {
ext_jo.put("pcsn", whereJson.getString("box_no"));
ext_jo.put("device_uuid", IdUtil.getLongId());
ext_jo.put("update_time", DateUtil.now());
veExtTab.update(ext_jo);
}
// 下发桁架任务 // 下发桁架任务
JSONObject taskParam = new JSONObject(); JSONObject taskParam = new JSONObject();
taskParam.put("task_type", "010713"); taskParam.put("task_type", "010713");
@@ -315,6 +368,20 @@ public class InBoxManageServiceImpl implements InBoxManageService {
param.put("height", boxDao.getBox_high()); param.put("height", boxDao.getBox_high());
param.put("containerType", boxDao.getVehicle_type()); param.put("containerType", boxDao.getVehicle_type());
param.put("barcode", whereJson.getString("box_no")); param.put("barcode", whereJson.getString("box_no"));
//根据木箱高度,判断入库仓位的高度
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";
}
param.put("heightLevel", height);
taskParam.put("request_param", param.toString()); taskParam.put("request_param", param.toString());
TwoInBoxTrussTask taskBean = new TwoInBoxTrussTask(); TwoInBoxTrussTask taskBean = new TwoInBoxTrussTask();
taskBean.createTask(taskParam); taskBean.createTask(taskParam);
@@ -323,7 +390,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
@Override @Override
@Transactional @Transactional
public String taskExceptional(JSONObject jsonObject) { public JSONObject taskExceptional(JSONObject jsonObject) {
// 仓位表 // 仓位表
WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr");
@@ -365,7 +432,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
taskDao.setPoint_code2(jsonAttrNow.getString("struct_code")); taskDao.setPoint_code2(jsonAttrNow.getString("struct_code"));
ischBaseTaskService.updateById(taskDao); ischBaseTaskService.updateById(taskDao);
return jsonAttrNow.getString("struct_code"); return jsonAttrNow;
} }
/** /**

View File

@@ -7,8 +7,11 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.checkerframework.checker.units.qual.A;
import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.task.service.IschBaseTaskService;
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.enums.IOSEnum;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdisService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdisService;
@@ -57,6 +60,9 @@ public class InBussManageServiceImpl implements InBussManageService {
@Autowired @Autowired
private IschBaseTaskService ischBaseTaskService; private IschBaseTaskService ischBaseTaskService;
@Autowired
private IBstIvtBoxinfoService iBstIvtBoxinfoService;
/** /**
* 不需要查询的排集合 * 不需要查询的排集合
*/ */
@@ -81,7 +87,7 @@ public class InBussManageServiceImpl implements InBussManageService {
String operate = json.getString("operate"); String operate = json.getString("operate");
if (operate.equals(IOSEnum.IO_TYPE.code("入库"))) { if (operate.equals(IOSEnum.IO_TYPE.code("入库"))) {
attrTab.update(json, "struct_code IN ('"+ String.join("','", param) +"')"); attrTab.update(json, "struct_code IN ('" + String.join("','", param) + "')");
} }
} }
@@ -114,10 +120,10 @@ public class InBussManageServiceImpl implements InBussManageService {
*/ */
JSONArray attrArry = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + JSONArray attrArry = attrTab.query("IFNULL(storagevehicle_code,'') = '' " +
"AND is_used = '" + IOSEnum.IS_NOTANDYES.code("") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.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 lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonObject.getString("stor_id") + "' " +
"AND storagevehicle_type = '" + jsonObject.getString("vehicle_type") + "'" + "AND storagevehicle_type = '" + jsonObject.getString("vehicle_type") + "'" +
"AND height = '" + jsonObject.getString("height") + "'" + "AND height = '" + jsonObject.getString("height") + "'" +
"AND sect_id = '"+jsonObject.getString("sect_id")+"'").getResultJSONArray(0); "AND sect_id = '" + jsonObject.getString("sect_id") + "'").getResultJSONArray(0);
if (ObjectUtil.isEmpty(attrArry)) { if (ObjectUtil.isEmpty(attrArry)) {
notInRowList.clear(); notInRowList.clear();
@@ -140,13 +146,13 @@ public class InBussManageServiceImpl implements InBussManageService {
/* /*
* 确定哪排:查看每排相同木箱规格等 的数量,找到数量最小的那排 * 确定哪排:查看每排相同木箱规格等 的数量,找到数量最小的那排
*/ */
jsonSub.put("block_num",block_num); jsonSub.put("block_num", block_num);
String row_num = getMinRow(jsonSub); String row_num = getMinRow(jsonSub);
/* /*
* 确定伸位,找仓位 * 确定伸位,找仓位
*/ */
jsonSub.put("row_num",row_num); jsonSub.put("row_num", row_num);
JSONObject jsonAttr = queryStruct(jsonSub); JSONObject jsonAttr = queryStruct(jsonSub);
// 为空则新找巷道 // 为空则新找巷道
@@ -173,7 +179,7 @@ public class InBussManageServiceImpl implements InBussManageService {
json.put("box_high", jsonSub.getString("box_high")); json.put("box_high", jsonSub.getString("box_high"));
String row_num_2 = getMinRow(json); String row_num_2 = getMinRow(json);
json.put("row_num",row_num_2); json.put("row_num", row_num_2);
JSONObject jsonAttr_2 = queryStruct(json); JSONObject jsonAttr_2 = queryStruct(json);
if (ObjectUtil.isNotEmpty(jsonAttr_2)) { if (ObjectUtil.isNotEmpty(jsonAttr_2)) {
@@ -208,6 +214,12 @@ public class InBussManageServiceImpl implements InBussManageService {
throw new BadRequestException("设备号不能为空!"); throw new BadRequestException("设备号不能为空!");
} }
// 查询木箱信息
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
new QueryWrapper<BstIvtBoxinfo>().lambda()
.eq(BstIvtBoxinfo::getBox_no, jsonObject.getString("box_no"))
);
List<String> pcsnList = Arrays.asList(material_barcode.split(",")); List<String> pcsnList = Arrays.asList(material_barcode.split(","));
// 查询子卷包装关系 // 查询子卷包装关系
@@ -252,7 +264,7 @@ public class InBussManageServiceImpl implements InBussManageService {
jsonDtl.put("is_active", IOSEnum.IS_SEND.code("")); jsonDtl.put("is_active", IOSEnum.IS_SEND.code(""));
tableData.add(jsonDtl); tableData.add(jsonDtl);
} }
mst.put("tableData",tableData); mst.put("tableData", tableData);
// 判断是否已经生成过入库单 // 判断是否已经生成过入库单
String package_box_sn = (String) tableData.get(0).get("package_box_sn"); String package_box_sn = (String) tableData.get(0).get("package_box_sn");
@@ -282,21 +294,22 @@ public class InBussManageServiceImpl implements InBussManageService {
).stream().map(row -> JSONObject.parseObject(JSON.toJSONString(row), LinkedHashMap.class)) ).stream().map(row -> JSONObject.parseObject(JSON.toJSONString(row), LinkedHashMap.class))
.collect(Collectors.toList()); .collect(Collectors.toList());
jsonDiv.put("dtl_row",JSONObject.parseObject(JSON.toJSONString(dtlDao))); jsonDiv.put("dtl_row", JSONObject.parseObject(JSON.toJSONString(dtlDao)));
jsonDiv.put("tableMater", disList); jsonDiv.put("tableMater", disList);
jsonDiv.put("checked", true); jsonDiv.put("checked", true);
jsonDiv.put("is_send", IOSEnum.IS_SEND.code("")); jsonDiv.put("is_send", IOSEnum.IS_SEND.code(""));
jsonDiv.put("point_code", jsonObject.getString("device_code")); jsonDiv.put("point_code", jsonObject.getString("device_code"));
jsonDiv.put("sect_id", IOSEnum.SECT_ID.code("二期主存区")); jsonDiv.put("sect_id", IOSEnum.SECT_ID.code("二期主存区"));
jsonDiv.put("stor_id", IOSEnum.STOR_ID.code("二期")); jsonDiv.put("stor_id", IOSEnum.STOR_ID.code("二期"));
jsonDiv.put("material_barcode",jsonObject.getString("material_barcode")); jsonDiv.put("material_barcode", jsonObject.getString("material_barcode"));
jsonDiv.put("vehicle_code",jsonObject.getString("vehicle_code")); jsonDiv.put("vehicle_code", jsonObject.getString("vehicle_code"));
jsonDiv.put("vehicle_type", boxDao.getVehicle_type());
iStIvtIostorinvService.divStruct(jsonDiv); iStIvtIostorinvService.divStruct(jsonDiv);
} }
@Override @Override
@Transactional @Transactional
public String taskExceptional(JSONObject jsonObject) { public JSONObject taskExceptional(JSONObject jsonObject) {
/* /*
* 1.锁定原货位 * 1.锁定原货位
* 2.重新找新货位 * 2.重新找新货位
@@ -346,7 +359,7 @@ public class InBussManageServiceImpl implements InBussManageService {
).get(0); ).get(0);
JSONObject jsonDiv = new JSONObject(); JSONObject jsonDiv = new JSONObject();
jsonDiv.put("dtl_row",JSONObject.parseObject(JSON.toJSONString(dtlDao))); jsonDiv.put("dtl_row", JSONObject.parseObject(JSON.toJSONString(dtlDao)));
jsonDiv.put("tableMater", disList); jsonDiv.put("tableMater", disList);
jsonDiv.put("checked", true); jsonDiv.put("checked", true);
jsonDiv.put("is_send", IOSEnum.IS_SEND.code("")); jsonDiv.put("is_send", IOSEnum.IS_SEND.code(""));
@@ -371,11 +384,12 @@ public class InBussManageServiceImpl implements InBussManageService {
taskDao.setPoint_code2(disListNow.get(0).getStruct_code()); taskDao.setPoint_code2(disListNow.get(0).getStruct_code());
ischBaseTaskService.updateById(taskDao); ischBaseTaskService.updateById(taskDao);
return disListNow.get(0).getStruct_code(); return JSONObject.parseObject(JSON.toJSONString(disListNow.get(0)));
} }
/** /**
* 获取最小巷道 * 获取最小巷道
*
* @param jsonSub { * @param jsonSub {
* jsonSub木箱信息 * jsonSub木箱信息
* sect_id库区 * sect_id库区
@@ -399,7 +413,7 @@ public class InBussManageServiceImpl implements InBussManageService {
.collect(Collectors.joining("','")); .collect(Collectors.joining("','"));
jsonSub.put("flag", "2"); jsonSub.put("flag", "2");
jsonSub.put("block_in", "('"+block_in+"')"); jsonSub.put("block_in", "('" + block_in + "')");
List<JSONObject> boxAllList = WQL.getWO("BST_INRULE").addParamMap(jsonSub) List<JSONObject> boxAllList = WQL.getWO("BST_INRULE").addParamMap(jsonSub)
.process().getResultJSONArray(0).toJavaList(JSONObject.class); .process().getResultJSONArray(0).toJavaList(JSONObject.class);
@@ -425,7 +439,7 @@ public class InBussManageServiceImpl implements InBussManageService {
} }
// 区分木箱规格:最小木箱的巷道 // 区分木箱规格:最小木箱的巷道
JSONObject jsonBlockLikeMin = sumBlockMinNum(blockList,boxAllLikeList); JSONObject jsonBlockLikeMin = sumBlockMinNum(blockList, boxAllLikeList);
/* /*
* 比较两个巷道的总木箱数,取最小的 * 比较两个巷道的总木箱数,取最小的
@@ -441,6 +455,7 @@ public class InBussManageServiceImpl implements InBussManageService {
/** /**
* 计算最小巷道木箱数 * 计算最小巷道木箱数
*
* @param blockList : 所有巷道 * @param blockList : 所有巷道
* @param boxAllList: 所有木箱 * @param boxAllList: 所有木箱
* @return JSONObject最小木箱数的巷道 JSONObject{block_numbox_num} * @return JSONObject最小木箱数的巷道 JSONObject{block_numbox_num}
@@ -471,6 +486,7 @@ public class InBussManageServiceImpl implements InBussManageService {
/** /**
* 获取最小排 * 获取最小排
*
* @param jsonSub { * @param jsonSub {
* jsonSub木箱信息 * jsonSub木箱信息
* sect_id库区 * sect_id库区
@@ -497,7 +513,7 @@ public class InBussManageServiceImpl implements InBussManageService {
.collect(Collectors.joining("','")); .collect(Collectors.joining("','"));
jsonSub.put("flag", "2"); jsonSub.put("flag", "2");
jsonSub.put("row_in", "('"+row_in+"')"); jsonSub.put("row_in", "('" + row_in + "')");
List<JSONObject> boxAllList = WQL.getWO("BST_INRULE").addParamMap(jsonSub) List<JSONObject> boxAllList = WQL.getWO("BST_INRULE").addParamMap(jsonSub)
.process().getResultJSONArray(0).toJavaList(JSONObject.class); .process().getResultJSONArray(0).toJavaList(JSONObject.class);
@@ -542,6 +558,7 @@ public class InBussManageServiceImpl implements InBussManageService {
/** /**
* 计算最小木箱的排 * 计算最小木箱的排
*
* @param rowList : 所有排 * @param rowList : 所有排
* @param boxAllList: 所有木箱 * @param boxAllList: 所有木箱
* @return JSONObject最小木箱数的排 JSONObject{row_numbox_num} * @return JSONObject最小木箱数的排 JSONObject{row_numbox_num}
@@ -572,6 +589,7 @@ public class InBussManageServiceImpl implements InBussManageService {
/** /**
* 获取仓位 * 获取仓位
*
* @param jsonSub { * @param jsonSub {
* jsonSub木箱信息 * jsonSub木箱信息
* sect_id库区 * sect_id库区
@@ -595,7 +613,7 @@ public class InBussManageServiceImpl implements InBussManageService {
// 新的一排 // 新的一排
String row_num_new = this.getMinRow(jsonSub); String row_num_new = this.getMinRow(jsonSub);
jsonSub.put("row_num",row_num_new); jsonSub.put("row_num", row_num_new);
jsonAttr = this.getStruct(jsonSub); jsonAttr = this.getStruct(jsonSub);
} }
@@ -605,6 +623,7 @@ public class InBussManageServiceImpl implements InBussManageService {
/** /**
* 获取一个货位公共方法 * 获取一个货位公共方法
*
* @param jsonSub { * @param jsonSub {
* jsonSub木箱信息 * jsonSub木箱信息
* sect_id库区 * sect_id库区

View File

@@ -89,6 +89,10 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
jsonTaskParam.put("next_device_code", jsonAttr.getString("struct_code")); jsonTaskParam.put("next_device_code", jsonAttr.getString("struct_code"));
jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code")); jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code"));
jsonTaskParam.put("vehicle_type", whereJson.getString("vehicle_type")); jsonTaskParam.put("vehicle_type", whereJson.getString("vehicle_type"));
JSONObject param = new JSONObject();
param.put("containerType", whereJson.getString("vehicle_type"));
//0表示为空托盘
jsonTaskParam.put("request_param", param.toString());
TwoInEmpTask taskBean = new TwoInEmpTask(); TwoInEmpTask taskBean = new TwoInEmpTask();
taskBean.createTask(jsonTaskParam); taskBean.createTask(jsonTaskParam);
@@ -106,7 +110,7 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
@Override @Override
@Transactional @Transactional
public String taskExceptional(JSONObject jsonObject) { public JSONObject taskExceptional(JSONObject jsonObject) {
// 仓位表 // 仓位表
WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr");
@@ -141,7 +145,7 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
taskDao.setPoint_code2(jsonAttrNow.getString("struct_code")); taskDao.setPoint_code2(jsonAttrNow.getString("struct_code"));
ischBaseTaskService.updateById(taskDao); ischBaseTaskService.updateById(taskDao);
return jsonAttrNow.getString("struct_code"); return jsonAttrNow;
} }
/** /**

View File

@@ -208,16 +208,16 @@ public class LashManageServiceImpl implements LashManageService {
result.put("length", boxDao.getBox_length()); result.put("length", boxDao.getBox_length());
result.put("width", boxDao.getBox_width()); result.put("width", boxDao.getBox_width());
result.put("height", boxDao.getBox_high()); result.put("height", boxDao.getBox_high());
result.put("case", boxDao.getMaterial_code());
result.put("isBinding", IOSEnum.IS_SEND.code("")); result.put("isBinding", IOSEnum.IS_SEND.code(""));
result.put("isLabeling", IOSEnum.IS_SEND.code("")); result.put("isLabeling", IOSEnum.IS_SEND.code(""));
result.put("labelingTemplate", boxDao.getLash_num()); result.put("labelingTemplate", boxDao.getLash_num());
result.put("bindingTemplate", "1"); result.put("bindingTemplate", boxDao.getLash_num());
result.put("printDevice", "1"); result.put("printDevice", "1");
result.put("printQty", "1"); result.put("printQty", "1");
result.put("bundleTimes", "2"); result.put("bundleTimes", "1");
return result; return result;
} }

View File

@@ -116,7 +116,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
@Override @Override
@Transactional @Transactional
public String taskExceptional(JSONObject jsonObject) { public JSONObject taskExceptional(JSONObject jsonObject) {
// 仓位表 // 仓位表
WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr");
@@ -160,7 +160,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
taskDao.setVehicle_code(jsonAttrNow.getString("storagevehicle_code")); taskDao.setVehicle_code(jsonAttrNow.getString("storagevehicle_code"));
ischBaseTaskService.updateById(taskDao); ischBaseTaskService.updateById(taskDao);
return jsonAttrNow.getString("struct_code"); return jsonAttrNow;
} }
@Override @Override

View File

@@ -113,7 +113,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
@Override @Override
@Transactional @Transactional
public String taskExceptional(JSONObject jsonObject) { public JSONObject taskExceptional(JSONObject jsonObject) {
// 仓位表 // 仓位表
WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr");
@@ -150,7 +150,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
taskDao.setVehicle_code(jsonAttrNow.getString("storagevehicle_code")); taskDao.setVehicle_code(jsonAttrNow.getString("storagevehicle_code"));
ischBaseTaskService.updateById(taskDao); ischBaseTaskService.updateById(taskDao);
return jsonAttrNow.getString("struct_code"); return jsonAttrNow;
} }
@Override @Override

View File

@@ -70,14 +70,8 @@ public class SendOutManageServiceImpl implements SendOutManageService {
.eq(SchBasePoint::getIs_delete, IOSEnum.IS_NOTANDYES.code("")) .eq(SchBasePoint::getIs_delete, IOSEnum.IS_NOTANDYES.code(""))
); );
// 根据载具号找到对应的木箱号
JSONObject jsonExt = extTab.query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonExt)) {
throw new BadRequestException("此载具上没有木箱,请检查!"+whereJson.getString("vehicle_code"));
}
// 1.查询此木箱号的子卷包装关系 // 1.查询此木箱号的子卷包装关系
JSONObject jsonSub = subTab.query("package_box_sn = '" + jsonExt.getString("pcsn") + "'").uniqueResult(0); JSONObject jsonSub = subTab.query("package_box_sn = '" + whereJson.getString("vehicle_code") + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonSub)) { if (ObjectUtil.isEmpty(jsonSub)) {
throw new BadRequestException("未查询到该木箱对应的包装关系!"); throw new BadRequestException("未查询到该木箱对应的包装关系!");
} }
@@ -215,6 +209,6 @@ public class SendOutManageServiceImpl implements SendOutManageService {
); );
// 删除载具对应木箱记录 // 删除载具对应木箱记录
extTab.delete(jsonExt); //extTab.delete(jsonExt);
} }
} }

View File

@@ -44,7 +44,7 @@ public interface InBoxManageService {
* } * }
* @return point_code: 货位编码 * @return point_code: 货位编码
*/ */
String taskExceptional(JSONObject jsonObject); JSONObject taskExceptional(JSONObject jsonObject);
void returnIn(JSONObject whereJson); void returnIn(JSONObject whereJson);

View File

@@ -60,6 +60,6 @@ public interface InBussManageService {
* } * }
* @return point_code: 货位编码 * @return point_code: 货位编码
*/ */
String taskExceptional(JSONObject jsonObject); JSONObject taskExceptional(JSONObject jsonObject);
} }

View File

@@ -29,6 +29,6 @@ public interface InVehicleManageService {
* } * }
* @return point_code: 货位编码 * @return point_code: 货位编码
*/ */
String taskExceptional(JSONObject jsonObject); JSONObject taskExceptional(JSONObject jsonObject);
} }

View File

@@ -32,7 +32,7 @@ public interface OutBoxManageService {
* } * }
* @return point_code: 货位编码 * @return point_code: 货位编码
*/ */
String taskExceptional(JSONObject jsonObject); JSONObject taskExceptional(JSONObject jsonObject);
/** /**
* 任务异常处理(2.浅货位有货-取货时) * 任务异常处理(2.浅货位有货-取货时)

View File

@@ -28,7 +28,7 @@ public interface OutVehicleManageService {
* } * }
* @return point_code: 货位编码 * @return point_code: 货位编码
*/ */
String taskExceptional(JSONObject jsonObject); JSONObject taskExceptional(JSONObject jsonObject);
/** /**
* 任务异常处理(2.浅货位有货-取货时) * 任务异常处理(2.浅货位有货-取货时)

View File

@@ -22,7 +22,7 @@ public enum PackageInfoIvtEnum {
//任务类型 //任务类型
TASK_TYPE(MapOf.of("输送线->满轴缓存位", "010701", "满轴缓存位->待检区", "010702", "满轴缓存位->管制区", "010703", "放空(空载具缓存位->输送线)", TASK_TYPE(MapOf.of("输送线->满轴缓存位", "010701", "满轴缓存位->待检区", "010702", "满轴缓存位->管制区", "010703", "放空(空载具缓存位->输送线)",
"010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709","放空(装箱区->待检区)", "010710")), "010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709","放空(装箱区->待检区)", "010710","输送线四个点任务", "010711")),
//ACS任务类型 //ACS任务类型
ACS_TASK_TYPE(MapOf.of("agv任务", "1", "桁架任务", "6")), ACS_TASK_TYPE(MapOf.of("agv任务", "1", "桁架任务", "6")),

View File

@@ -48,8 +48,8 @@ public class StoragevehicleinfoController {
@Log("修改载具") @Log("修改载具")
//@PreAuthorize("@el.check('mdPbStoragevehicleinfo:edit')") //@PreAuthorize("@el.check('mdPbStoragevehicleinfo:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody StoragevehicleinfoDto dto) { public ResponseEntity<Object> update(@RequestBody JSONObject map) {
storagevehicleinfoService.update(dto); storagevehicleinfoService.update(map);
return new ResponseEntity<>(HttpStatus.NO_CONTENT); return new ResponseEntity<>(HttpStatus.NO_CONTENT);
} }

View File

@@ -61,7 +61,7 @@ public interface StoragevehicleinfoService {
* *
* @param dto / * @param dto /
*/ */
void update(StoragevehicleinfoDto dto); void update(JSONObject dto);
/** /**
* 多选删除 * 多选删除

View File

@@ -160,24 +160,47 @@ public class StoragevehicleinfoServiceImpl implements StoragevehicleinfoService
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void update(StoragevehicleinfoDto dto) { public void update(JSONObject dto) {
WQLObject wo = WQLObject.getWQLObject("md_pb_storagevehicleinfo"); WQLObject wo = WQLObject.getWQLObject("md_pb_storagevehicleinfo");
JSONObject jsonObject = wo.query("storagevehicle_code = '" + dto.getStoragevehicle_code() + "' and is_delete = '0'").uniqueResult(0); WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
JSONObject jsonObject = wo.query("storagevehicle_code = '" + dto.getString("storagevehicle_code") + "' and is_delete = '0' AND storagevehicle_id != '" + dto.getString("storagevehicle_id") + "'").uniqueResult(0);
if (!ObjectUtil.isEmpty(jsonObject)) { if (!ObjectUtil.isEmpty(jsonObject)) {
throw new BadRequestException("此载具已存在"); throw new BadRequestException("此载具已存在");
} }
StoragevehicleinfoDto entity = this.findById(dto.getStoragevehicle_id());
if (entity == null) {
throw new BadRequestException("被删除或无权限,操作失败!");
}
String currentUserId = SecurityUtils.getCurrentUserId(); String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName(); String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now(); String qty = dto.getString("qty");
dto.setUpdate_time(now); String pcsn = dto.getString("pcsn");
dto.setUpdate_optid(currentUserId); if (StrUtil.isNotEmpty(qty) || StrUtil.isNotEmpty(pcsn)) {
dto.setUpdate_optname(nickName); JSONObject ext_jo = veExtTab.query("storagevehicle_code = '"+dto.getString("storagevehicle_code")+"'").uniqueResult(0);
if (ObjectUtil.isEmpty(ext_jo)) {
//新增一条记录
JSONObject jsonVeExt = new JSONObject();
jsonVeExt.put("storagevehicleext_id", org.nl.common.utils.IdUtil.getLongId());
jsonVeExt.put("storagevehicle_id", dto.getLongValue("storagevehicle_id"));
jsonVeExt.put("storagevehicle_code", dto.getString("storagevehicle_code"));
jsonVeExt.put("storagevehicle_type", dto.getString("storagevehicle_type"));
if (StrUtil.isNotEmpty(pcsn)) {
jsonVeExt.put("pcsn", pcsn);
}
if (StrUtil.isNotEmpty(qty)) {
jsonVeExt.put("qty", qty);
}
jsonVeExt.put("device_uuid", org.nl.common.utils.IdUtil.getLongId());
jsonVeExt.put("update_time", DateUtil.now());
veExtTab.insert(jsonVeExt);
} else {
if (StrUtil.isNotEmpty(pcsn)) {
ext_jo.put("pcsn", pcsn);
}
if (StrUtil.isNotEmpty(qty)) {
ext_jo.put("qty", qty);
}
veExtTab.update(ext_jo);
}
}
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
wo.update(json); wo.update(json);

View File

@@ -45,6 +45,9 @@
PAGEQUERY PAGEQUERY
SELECT SELECT
s.*, s.*,
ext.pcsn,
ext.qty,
ext.update_time AS change_time,
mater.material_code, mater.material_code,
mater.material_name, mater.material_name,
point.point_code, point.point_code,
@@ -56,6 +59,7 @@
LEFT JOIN ST_IVT_StructIvt ivt ON point.source_id = ivt.struct_id LEFT JOIN ST_IVT_StructIvt ivt ON point.source_id = ivt.struct_id
LEFT JOIN md_me_materialbase mater ON mater.material_id = ivt.material_id LEFT JOIN md_me_materialbase mater ON mater.material_id = ivt.material_id
LEFT JOIN md_pb_classstandard class ON class.class_code = s.storagevehicle_type LEFT JOIN md_pb_classstandard class ON class.class_code = s.storagevehicle_type
LEFT JOIN md_pb_storagevehicleext ext ON ext.storagevehicle_code = s.storagevehicle_code
WHERE WHERE
s.is_delete = '0' s.is_delete = '0'
ENDOPTION ENDOPTION

View File

@@ -204,4 +204,11 @@ public class AcsToWmsController {
public ResponseEntity<Object> applicationForLabeling(@RequestBody JSONObject param) { public ResponseEntity<Object> applicationForLabeling(@RequestBody JSONObject param) {
return new ResponseEntity<>(acsToWmsService.applicationForLabeling(param), HttpStatus.OK); return new ResponseEntity<>(acsToWmsService.applicationForLabeling(param), HttpStatus.OK);
} }
@PostMapping("/getBoxInfo")
@Log(value = "二期获取木箱高度", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS)
@SaIgnore
public ResponseEntity<Object> getBoxInfo(@RequestBody JSONObject param) {
return new ResponseEntity<>(acsToWmsService.getBoxInfo(param), HttpStatus.OK);
}
} }

View File

@@ -195,4 +195,11 @@ public interface AcsToWmsService {
* @return / * @return /
*/ */
JSONObject applicationForLabeling(JSONObject param); JSONObject applicationForLabeling(JSONObject param);
/**
* 二期输送机申请贴标
* @param param /
* @return /
*/
JSONObject getBoxInfo(JSONObject param);
} }

View File

@@ -27,6 +27,8 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService;
import org.nl.b_lms.sch.tasks.TwoBoxExcepTask; import org.nl.b_lms.sch.tasks.TwoBoxExcepTask;
import org.nl.b_lms.sch.tasks.first_floor_area.MzhcwTask; import org.nl.b_lms.sch.tasks.first_floor_area.MzhcwTask;
import org.nl.b_lms.sch.tasks.slitter.service.SlitterService; import org.nl.b_lms.sch.tasks.slitter.service.SlitterService;
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.enums.IOSEnum;
import org.nl.b_lms.storage_manage.ios.enums.TASKEnum; import org.nl.b_lms.storage_manage.ios.enums.TASKEnum;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.*; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.*;
@@ -38,6 +40,7 @@ import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder; import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.system.service.notice.ISysNoticeService; import org.nl.system.service.notice.ISysNoticeService;
import org.nl.system.service.param.ISysParamService;
import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.system.service.param.impl.SysParamServiceImpl;
import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.ext.acs.service.AcsToWmsService;
import org.nl.wms.pda.mps.service.CasingService; import org.nl.wms.pda.mps.service.CasingService;
@@ -65,6 +68,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Service @Service
@@ -124,6 +128,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
*/ */
private final OutBoxManageService outBoxManageService; private final OutBoxManageService outBoxManageService;
private final IBstIvtBoxinfoService iBstIvtBoxinfoService;
@Resource @Resource
private IschBaseTaskService taskService; private IschBaseTaskService taskService;
@@ -133,6 +139,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Resource @Resource
private MzhcwTask mzhcwTask; private MzhcwTask mzhcwTask;
@Autowired
private ISysParamService iSysParamService;
private final SlitterService slitterService; private final SlitterService slitterService;
private final IPdmBiSlittingproductionplanService slittingproductionplanService; private final IPdmBiSlittingproductionplanService slittingproductionplanService;
@@ -1738,25 +1747,35 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
if (StringUtils.isBlank(whereJson.getString("device_code")) || StringUtils.isBlank(whereJson.getString("material_barcode"))) { if (StringUtils.isBlank(whereJson.getString("device_code")) || StringUtils.isBlank(whereJson.getString("material_barcode"))) {
throw new BadRequestException("接口sendProductToFirstFloor任务号或子卷号参数为空"); throw new BadRequestException("接口sendProductToFirstFloor任务号或子卷号参数为空");
} }
//1.查询满轴缓存位是否有空位 //1.查询满轴缓存位是否有空位
List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>() .list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位")) .orderByAsc(BstIvtPackageinfoivt::getSort_seq));
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) List<BstIvtPackageinfoivt> mzPointList = bstIvtPackageinfoivtList.stream()
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("")).orderByAsc(BstIvtPackageinfoivt::getSort_seq)); .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位").equals(r.getPoint_status())
&& PackageInfoIvtEnum.IVT_STATUS.code("").equals(r.getIvt_status())).collect(Collectors.toList());
JSONObject jo = new JSONObject(); JSONObject jo = new JSONObject();
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
//todo 获取子卷号,子卷号就是载具号?
jo.put("vehicle_code", whereJson.getString("material_barcode")); jo.put("vehicle_code", whereJson.getString("material_barcode"));
//2.创建输送线->满轴位桁架任务, //2.创建输送线->满轴位桁架任务,
String point_code1 = whereJson.getString("device_code"); String point_code1 = whereJson.getString("device_code");
jo.put("point_code1", point_code1); jo.put("point_code1", point_code1);
if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)) { if (CollectionUtils.isNotEmpty(mzPointList)) {
//任意一个满轴缓存位为终点 //任意一个满轴缓存位为终点
jo.put("point_code2", bstIvtPackageinfoivtList.get(0).getPoint_code()); jo.put("point_code2", mzPointList.get(0).getPoint_code());
List<BstIvtPackageinfoivt> kzjPointList = bstIvtPackageinfoivtList.stream()
.filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位").equals(r.getPoint_status())
&& PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())).collect(Collectors.toList());
//空载具缓存位有空载具
if (CollectionUtils.isNotEmpty(kzjPointList)) {
jo.put("point_code3", kzjPointList.get(0).getPoint_code());
//终点为输送线点位
jo.put("point_code4", whereJson.getString("device_code"));
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"));
} else {
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
}
jo.put("is_send", true); jo.put("is_send", true);
mzhcwTask.createTask(jo); mzhcwTask.createTask(jo);
result.put("status", HttpStatus.OK.value()); result.put("status", HttpStatus.OK.value());
@@ -1868,16 +1887,16 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 6-退货入库 // 6-退货入库
whereJson.put("bill_type", IOSEnum.IN_TYPE.code("退货入库")); whereJson.put("bill_type", IOSEnum.IN_TYPE.code("退货入库"));
whereJson.put("box_no", whereJson.getString("material_barcode")); whereJson.put("box_no", whereJson.getString("material_barcode"));
JSONArray resultJSONArray = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + whereJson.getString("material_barcode") + "' AND status = '0'").getResultJSONArray(0); JSONArray resultJSONArray = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + whereJson.getString("material_barcode") + "' AND status in ('0','1')").getResultJSONArray(0);
if (ObjectUtil.isEmpty(resultJSONArray)) { if (ObjectUtil.isEmpty(resultJSONArray)) {
throw new BadRequestException("未查询到子卷包装信息!"); throw new BadRequestException("未查询到子卷包装信息!");
} }
String material_barcode = ""; String material_barcode = "";
for (int i = 0; i < resultJSONArray.size(); i++) { for (int i = 0; i < resultJSONArray.size(); i++) {
JSONObject resultObj = resultJSONArray.getJSONObject(i); JSONObject resultObj = resultJSONArray.getJSONObject(i);
if (i==0){ if (i == 0) {
material_barcode = resultObj.getString("container_name"); material_barcode = resultObj.getString("container_name");
}else { } else {
material_barcode += "," + resultObj.getString("container_name"); material_barcode += "," + resultObj.getString("container_name");
} }
} }
@@ -2000,7 +2019,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
.eq(SchBaseTask::getTask_code, whereJson.getString("task_code")) .eq(SchBaseTask::getTask_code, whereJson.getString("task_code"))
); );
String point_code = ""; JSONObject point_code = new JSONObject();
// 判断任务类型 // 判断任务类型
if (taskDao.getTask_type().equals(TASKEnum.BOX_TYPE.code("木箱入库"))) { if (taskDao.getTask_type().equals(TASKEnum.BOX_TYPE.code("木箱入库"))) {
// 木箱入库:满入、浅货位有货-放货时 // 木箱入库:满入、浅货位有货-放货时
@@ -2043,7 +2062,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
result.put("status", HttpStatus.OK.value()); result.put("status", HttpStatus.OK.value());
result.put("message", "下发成功!"); result.put("message", "下发成功!");
result.put("point_code", point_code); result.put("point_code", point_code.getString("struct_code"));
result.put("vehicle_code", point_code.getString("struct_code"));
log.info("deviceApplyExceptional返回参数---------------------------------------------" + result.toString()); log.info("deviceApplyExceptional返回参数---------------------------------------------" + result.toString());
return result; return result;
} }
@@ -2157,4 +2177,40 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
return param; return param;
} }
@Override
public JSONObject getBoxInfo(JSONObject param) {
String device_code = param.getString("device_code");
String material_barcode = param.getString("material_barcode");
String vehicle_code = param.getString("vehicle_code");
if (device_code.equals("RK1018")) {
JSONObject vehicle_info = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + vehicle_code + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(vehicle_info)) {
throw new BadRequestException("未查询到载具号【" + vehicle_code + "】对应的载具信息!");
}
material_barcode = vehicle_info.getString("pcsn");
}
// 查询木箱信息
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
new QueryWrapper<BstIvtBoxinfo>().lambda()
.eq(BstIvtBoxinfo::getBox_no, material_barcode)
);
//根据木箱高度,判断入库仓位的高度
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 jsonObject = new JSONObject();
jsonObject.put("heightLevel", height);
jsonObject.put("status", HttpStatus.OK.value());
return jsonObject;
}
} }

View File

@@ -113,7 +113,7 @@ public class MesToLmsController {
return new ResponseEntity<>(mesToLmsService.sendProcessInfo(jo), HttpStatus.OK); return new ResponseEntity<>(mesToLmsService.sendProcessInfo(jo), HttpStatus.OK);
} }
@PostMapping("/processFoilStart") @PostMapping("/momRollTRStartMock")
@Log("表处工单推送") @Log("表处工单推送")
@SaIgnore @SaIgnore
public ResponseEntity<Object> processFoilStart(@RequestBody JSONObject jo) { public ResponseEntity<Object> processFoilStart(@RequestBody JSONObject jo) {
@@ -128,5 +128,59 @@ public class MesToLmsController {
return new ResponseEntity<>(mesToLmsService.sendTargetHouse(jo), HttpStatus.OK); return new ResponseEntity<>(mesToLmsService.sendTargetHouse(jo), HttpStatus.OK);
} }
@PostMapping("/momSendSplitMfgOrderBOM")
@Log("MES传递LMS订单BOM")
@SaIgnore
public ResponseEntity<Object> momSendSplitMfgOrderBOM(@RequestBody JSONObject jo) {
return new ResponseEntity<>(mesToLmsService.momSendSplitMfgOrderBOM(jo), HttpStatus.OK);
}
@PostMapping("/getRollInfo")
@Log("MES传递LMS获取子卷重量信息")
@SaIgnore
public ResponseEntity<Object> getRollInfo(@RequestBody JSONObject jo) {
return new ResponseEntity<>(mesToLmsService.getRollInfo(jo), HttpStatus.OK);
}
@PostMapping("/sendLevelInfo")
@Log("MES传递LMS定级数据")
@SaIgnore
public ResponseEntity<Object> sendLevelInfo(@RequestBody JSONObject jo) {
return new ResponseEntity<>(mesToLmsService.sendLevelInfo(jo), HttpStatus.OK);
}
@PostMapping("/containerNeedDown")
@Log("子卷拼接完成是否下轴")
@SaIgnore
public ResponseEntity<Object> containerNeedDown(@RequestBody JSONObject jo) {
return new ResponseEntity<>(mesToLmsService.containerNeedDown(jo), HttpStatus.OK);
}
@PostMapping("/sendSubInfo")
@Log("子卷下料信息MES传递给LMS")
@SaIgnore
public ResponseEntity<Object> sendSubInfo(@RequestBody JSONObject jo) {
return new ResponseEntity<>(mesToLmsService.sendSubInfo(jo), HttpStatus.OK);
}
@PostMapping("/changeSect")
@Log("MES传递给LMS入线边库或者入成品库、撤销入线边库、人工改变入线边还是包装")
@SaIgnore
public ResponseEntity<Object> changeSect(@RequestBody JSONObject jo) {
return new ResponseEntity<>(mesToLmsService.changeSect(jo), HttpStatus.OK);
}
@PostMapping("/getWasteFoilWeight")
@Log("分切子卷获取LMSAGV废箔称重重量")
@SaIgnore
public ResponseEntity<Object> getWasteFoilWeight(@RequestBody JSONObject jo) {
return new ResponseEntity<>(mesToLmsService.getWasteFoilWeight(jo), HttpStatus.OK);
}
@PostMapping("/WasteFoilSuccess")
@Log("分切子卷获取LMSAGV废箔称重重量")
@SaIgnore
public ResponseEntity<Object> WasteFoilSuccess(@RequestBody JSONObject jo) {
return new ResponseEntity<>(mesToLmsService.WasteFoilSuccess(jo), HttpStatus.OK);
}
} }

View File

@@ -70,6 +70,22 @@ public interface MesToLmsService {
*/ */
JSONObject sendTargetHouse(JSONObject param); JSONObject sendTargetHouse(JSONObject param);
JSONObject momSendSplitMfgOrderBOM(JSONObject param);
JSONObject getRollInfo(JSONObject param);
JSONObject sendLevelInfo(JSONObject param);
JSONObject containerNeedDown(JSONObject param);
JSONObject sendSubInfo(JSONObject param);
JSONObject changeSect(JSONObject param);
JSONObject getWasteFoilWeight(JSONObject param);
JSONObject WasteFoilSuccess(JSONObject param);
} }

View File

@@ -7,11 +7,14 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
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.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService;
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan;
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
import org.nl.b_lms.sch.tasks.ProcessTask; import org.nl.b_lms.sch.tasks.ProcessTask;
@@ -33,6 +36,7 @@ import org.nl.wms.sch.manage.AbstractAcsTask;
import org.nl.wms.sch.tasks.CoolCutTask; import org.nl.wms.sch.tasks.CoolCutTask;
import org.nl.wms.st.inbill.service.CheckOutBillService; import org.nl.wms.st.inbill.service.CheckOutBillService;
import org.nl.wms.st.instor.service.impl.ProductScrapServiceImpl; import org.nl.wms.st.instor.service.impl.ProductScrapServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -53,6 +57,9 @@ public class MesToLmsServiceImpl implements MesToLmsService {
private final InService inService; private final InService inService;
@Autowired
private IPdmBiSlittingproductionplanService slittingproductionplanService;
@Resource @Resource
private DjqTask djqTask; private DjqTask djqTask;
@Resource @Resource
@@ -183,15 +190,26 @@ public class MesToLmsServiceImpl implements MesToLmsService {
JSONArray arr = new JSONArray(); JSONArray arr = new JSONArray();
String ContainerName = param.getString("ContainerName"); String ContainerName = param.getString("ContainerName");
String ResourceName = param.getString("ResourceName"); String ResourceName = param.getString("ResourceName");
String Type = param.getString("Type");
JSONObject raw_jo = new JSONObject();
if (Type.equals("TR")) {
raw_jo = WQLObject.getWQLObject("PDM_BI_SurProcessOrder").query("container_name ='" + ContainerName + "' AND resource_name = '" + ResourceName + "'").uniqueResult(0);
} else {
raw_jo = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").query("container_name ='" + ContainerName + "' AND resource_name = '" + ResourceName + "'").uniqueResult(0);
}
//查询该母卷号、设备号对应的生箔工单 //查询该母卷号、设备号对应的生箔工单
JSONObject raw_jo = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").query("container_name ='" + ContainerName + "' AND resource_name = '" + ResourceName + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(raw_jo)) { if (ObjectUtil.isEmpty(raw_jo)) {
throw new BadRequestException("未查询到对应的生箔工单!"); throw new BadRequestException("未查询到对应的工单!");
} }
//查询对应的设备是否启用 //查询对应的设备是否启用
JSONObject jsonPoint = WQLObject.getWQLObject("ST_IVT_SbPointIvt").query("ext_code ='" + ResourceName + "'").uniqueResult(0); JSONObject jsonPoint = new JSONObject();
if (Type.equals("TR")) {
jsonPoint = WQLObject.getWQLObject("ST_IVT_StPointIvt").query("ext_code ='" + ResourceName + "'").uniqueResult(0);
} else {
jsonPoint = WQLObject.getWQLObject("ST_IVT_SbPointIvt").query("ext_code ='" + ResourceName + "'").uniqueResult(0);
}
if (ObjectUtil.isEmpty(jsonPoint)) { if (ObjectUtil.isEmpty(jsonPoint)) {
jsonPoint = new JSONObject(); jsonPoint = new JSONObject();
} }
@@ -398,7 +416,8 @@ public class MesToLmsServiceImpl implements MesToLmsService {
} else { } else {
log.info("当前AGV启用参数为否"); log.info("当前AGV启用参数为否");
//判断当前位置是否在冷却区如果不在则提醒人工报错 //判断当前位置是否在冷却区如果不在则提醒人工报错
JSONObject container_jo = coolIvtTab.query("container_name = '" + containerName + "' and full_point_status = '02' and cool_ivt_status <> '04' AND point_type = '1'").uniqueResult(0); if (ObjectUtil.isEmpty(container_jo)) { JSONObject container_jo = coolIvtTab.query("container_name = '" + containerName + "' and full_point_status = '02' and cool_ivt_status <> '04' AND point_type = '1'").uniqueResult(0);
if (ObjectUtil.isEmpty(container_jo)) {
throw new BadRequestException("该母卷已经被烘烤或现在还未绑定在冷却区上且AGV未启用请使用人工烘烤功能【出箱】将母卷绑定到冷却区"); throw new BadRequestException("该母卷已经被烘烤或现在还未绑定在冷却区上且AGV未启用请使用人工烘烤功能【出箱】将母卷绑定到冷却区");
} }
container_jo.put("cool_ivt_status", "04"); container_jo.put("cool_ivt_status", "04");
@@ -1503,11 +1522,14 @@ public class MesToLmsServiceImpl implements MesToLmsService {
String up_scroll = device_jo.getString("up_scroll"); String up_scroll = device_jo.getString("up_scroll");
//查询母卷所在点位 //查询母卷所在点位
JSONObject jsonCoolIvt = coolIvtTab.query("container_name = '" + containerName + "' and full_point_status = '02' and cool_ivt_status <> '04'").uniqueResult(0); JSONObject jsonCoolIvt = coolIvtTab.query("container_name = '" + containerName + "' and full_point_status = '02' and cool_ivt_status <> '04'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonCoolIvt)) {
throw new BadRequestException("未查询到母卷【" + containerName + "】所在的半成品暂存点!");
}
JSONObject form = new JSONObject(); JSONObject form = new JSONObject();
if (StrUtil.isEmpty(up_scroll)) { if (StrUtil.isEmpty(up_scroll)) {
//取满放满 //取满放满
form.put("point_code1", jsonCoolIvt.getString("full_point_code")); form.put("point_code1", jsonCoolIvt.getString("full_point_code"));
form.put("point_code2", device_jo.getString("up_point_code")+"_M"); form.put("point_code2", device_jo.getString("up_point_code") + "_M");
form.put("task_type", "010702"); form.put("task_type", "010702");
form.put("material_code", containerName); form.put("material_code", containerName);
form.put("vehicle_code", jsonCoolIvt.getString("full_vehicle_code")); form.put("vehicle_code", jsonCoolIvt.getString("full_vehicle_code"));
@@ -1515,8 +1537,8 @@ public class MesToLmsServiceImpl implements MesToLmsService {
} else { } else {
//取满取空放满放空 //取满取空放满放空
form.put("point_code1", jsonCoolIvt.getString("full_point_code")); form.put("point_code1", jsonCoolIvt.getString("full_point_code"));
form.put("point_code2", device_jo.getString("up_point_code")+"_M"); form.put("point_code2", device_jo.getString("up_point_code") + "_M");
form.put("point_code3", device_jo.getString("up_point_code")+"_K"); form.put("point_code3", device_jo.getString("up_point_code") + "_K");
//判断对应空轴点位是否为空,为空用当前点位,不为空查询其他点位 //判断对应空轴点位是否为空,为空用当前点位,不为空查询其他点位
if (jsonCoolIvt.getString("empty_point_status").equals("01")) { if (jsonCoolIvt.getString("empty_point_status").equals("01")) {
form.put("point_code4", jsonCoolIvt.getString("empty_point_code")); form.put("point_code4", jsonCoolIvt.getString("empty_point_code"));
@@ -1542,7 +1564,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
map.put("flag", "1"); map.put("flag", "1");
map.put("product_area", device_jo.getString("product_area")); map.put("product_area", device_jo.getString("product_area"));
JSONObject jsonIvt = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0); JSONObject jsonIvt = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0);
form.put("point_code1", device_jo.getString("up_point_code")+"_M"); form.put("point_code1", device_jo.getString("up_point_code") + "_M");
//寻找可用的冷却区满轴点位 //寻找可用的冷却区满轴点位
form.put("point_code2", jsonIvt.getString("full_point_code")); form.put("point_code2", jsonIvt.getString("full_point_code"));
form.put("task_type", "010704"); form.put("task_type", "010704");
@@ -1710,5 +1732,104 @@ public class MesToLmsServiceImpl implements MesToLmsService {
return resultParam; return resultParam;
} }
@Override
public JSONObject momSendSplitMfgOrderBOM(JSONObject param) {
log.info("momSendSplitMfgOrderBOM输入参数为-------------------" + param.toString());
JSONObject resultParam = new JSONObject();
resultParam.put("RTYPE", "S");
resultParam.put("Code", "0");
resultParam.put("RTMSG", "操作成功!");
return resultParam;
}
@Override
public JSONObject getRollInfo(JSONObject param) {
String ContainerName = param.getString("ContainerName");
PdmBiSlittingproductionplan one = slittingproductionplanService.getOne(new LambdaQueryWrapper<PdmBiSlittingproductionplan>().eq(PdmBiSlittingproductionplan::getContainer_name, ContainerName));
if (ObjectUtil.isEmpty(one)){
throw new BadRequestException("未查询到子卷号为["+ContainerName+"]的分切计划!");
}
JSONObject resultParam = new JSONObject();
resultParam.put("ContainerName",ContainerName);
resultParam.put("ResourceName","");
resultParam.put("Weight",one.getWeight());
resultParam.put("WeighDate",DateUtil.now());
resultParam.put("Type",one.getPaper_tube_or_FRP());
resultParam.put("CarrierWeight",one.getPaper_weight());
return resultParam;
}
@Override
public JSONObject sendLevelInfo(JSONObject param) {
log.info("sendLevelInfo输入参数为-------------------" + param.toString());
JSONObject resultParam = new JSONObject();
resultParam.put("RTYPE", "S");
resultParam.put("Code", "0");
resultParam.put("RTMSG", "操作成功!");
return resultParam;
}
@Override
public JSONObject containerNeedDown(JSONObject param) {
log.info("containerNeedDown输入参数为-------------------" + param.toString());
JSONObject resultParam = new JSONObject();
resultParam.put("RTYPE", "S");
resultParam.put("Code", "0");
resultParam.put("RTMSG", "操作成功!");
return resultParam;
}
@Override
public JSONObject sendSubInfo(JSONObject param) {
log.info("sendSubInfo输入参数为-------------------" + param.toString());
JSONObject resultParam = new JSONObject();
resultParam.put("RTYPE", "S");
resultParam.put("Code", "0");
resultParam.put("RTMSG", "操作成功!");
return resultParam;
}
@Override
public JSONObject changeSect(JSONObject param) {
log.info("changeSect输入参数为-------------------" + param.toString());
JSONObject resultParam = new JSONObject();
resultParam.put("RTYPE", "S");
resultParam.put("Code", "0");
resultParam.put("RTMSG", "操作成功!");
return resultParam;
}
@Override
public JSONObject getWasteFoilWeight(JSONObject param) {
log.info("getWasteFoilWeight输入参数为-------------------" + param.toString());
JSONObject resultParam = new JSONObject();
resultParam.put("RTYPE", "S");
resultParam.put("Code", "0");
resultParam.put("RTMSG", "操作成功!");
return resultParam;
}
@Override
public JSONObject WasteFoilSuccess(JSONObject param) {
log.info("WasteFoilSuccess输入参数为-------------------" + param.toString());
JSONObject resultParam = new JSONObject();
resultParam.put("RTYPE", "S");
resultParam.put("Code", "0");
resultParam.put("RTMSG", "操作成功!");
return resultParam;
}
} }

View File

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

View File

@@ -1,5 +1,5 @@
server: server:
port: 8010 port: 9999
#配置数据源 #配置数据源
spring: spring:
datasource: datasource:
@@ -7,10 +7,9 @@ spring:
db-type: com.alibaba.druid.pool.DruidDataSource db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
# url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:lms_test2}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true # url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:lms_test2}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lzhl_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lzhl_two_test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
# username: ${DB_USER:root}
username: ${DB_USER:root} username: ${DB_USER:root}
password: ${DB_PWD:root} password: ${DB_PWD:12356}
# 初始连接数 # 初始连接数
initial-size: 5 initial-size: 5
# 最小连接数 # 最小连接数
@@ -161,9 +160,6 @@ sa-token:
jwt-secret-key: opsjajisdnnca0sdkksdfaaasdfwwq jwt-secret-key: opsjajisdnnca0sdkksdfaaasdfwwq
# token 前缀 # token 前缀
token-prefix: Bearer token-prefix: Bearer
cookie:
# 配置 Cookie 作用域:根据二级域名实现sso登入如lms.sso.com;acs.sso.com
domain:
loki: loki:
url: http://localhost:3100/loki/api/v1 url: http://localhost:3100/loki/api/v1

View File

@@ -1,8 +1,8 @@
ENV = 'development' ENV = 'development'
# 接口地址 # 接口地址
VUE_APP_BASE_API = 'http://localhost:8011' VUE_APP_BASE_API = 'http://localhost:9999'
VUE_APP_WS_API = 'ws://localhost:8011' VUE_APP_WS_API = 'ws://localhost:9999'
# 是否启用 babel-plugin-dynamic-import-node插件 # 是否启用 babel-plugin-dynamic-import-node插件
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true

View File

@@ -68,7 +68,7 @@
width="450px" width="450px"
> >
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" size="mini" label-width="100px">
<el-form-item label="载具类型" prop="storagevehicle_type"> <el-form-item label="载具类型" v-if="crud.status.add > 0" prop="storagevehicle_type">
<treeselect <treeselect
v-model="form.storagevehicle_type" v-model="form.storagevehicle_type"
:load-options="loadChildNodes" :load-options="loadChildNodes"
@@ -78,8 +78,14 @@
/> />
</el-form-item> </el-form-item>
<br> <br>
<el-form-item label="载具数量" prop="num"> <el-form-item label="载具数量" v-if="crud.status.add > 0" prop="num">
<el-input-number v-model="form.num" :precision="0" style="width: 150px;"/> <el-input-number v-model="form.num" v-if="crud.status.add > 0" :precision="0" style="width: 150px;"/>
</el-form-item>
<el-form-item label="载具重量" v-if="crud.status.edit > 0" prop="qty">
<el-input-number v-model="form.qty" :precision="0" style="width: 150px;"/>
</el-form-item>
<el-form-item label="绑定物料" v-if="crud.status.edit > 0" prop="pcsn">
<el-input v-model="form.pcsn" :precision="0" style="width: 150px;"/>
</el-form-item> </el-form-item>
<el-form-item label="是否启用"> <el-form-item label="是否启用">
<el-radio v-model="form.is_used" label="0">否</el-radio> <el-radio v-model="form.is_used" label="0">否</el-radio>
@@ -88,8 +94,8 @@
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="info" @click="crud.cancelCU">取消</el-button> <el-button type="info" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">生成</el-button> <el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">保存</el-button>
<el-button type="primary" @click="addAndprint">生成并打印</el-button> <el-button v-if="crud.status.add > 0" type="primary" @click="addAndprint">保存并打印</el-button>
</div> </div>
</el-dialog> </el-dialog>
<!--表格渲染--> <!--表格渲染-->
@@ -110,8 +116,8 @@
<!--<el-table-column prop="point_code" label="当前点位" width="120px"/> <!--<el-table-column prop="point_code" label="当前点位" width="120px"/>
<el-table-column prop="start_point_code" label="起点" width="120px"/> <el-table-column prop="start_point_code" label="起点" width="120px"/>
<el-table-column prop="next_point_code" label="终点" width="120px"/>--> <el-table-column prop="next_point_code" label="终点" width="120px"/>-->
<el-table-column prop="material_code" label="物料编码"/> <el-table-column prop="pcsn" label="绑定物料"/>
<el-table-column prop="material_name" label="物料名称"/> <el-table-column prop="qty" label="托盘重量"/>
<el-table-column label="是否启用" align="center" prop="is_used"> <el-table-column label="是否启用" align="center" prop="is_used">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch
@@ -127,7 +133,7 @@
<el-table-column <el-table-column
v-permission="['admin','storagevehicleinfo:edit','storagevehicleinfo:del']" v-permission="['admin','storagevehicleinfo:edit','storagevehicleinfo:del']"
label="操作" label="操作"
width="100px" width="150px"
align="center" align="center"
fixed="right" fixed="right"
> >
@@ -135,7 +141,6 @@
<udOperation <udOperation
:data="scope.row" :data="scope.row"
:permission="permission" :permission="permission"
:is-visiable-edit="false"
/> />
</template> </template>
</el-table-column> </el-table-column>
@@ -180,7 +185,9 @@ const defaultForm = {
overstruct_type: null, overstruct_type: null,
occupystruct_qty: null, occupystruct_qty: null,
ext_id: null, ext_id: null,
num: '1' num: '1',
qty: null,
pcsn: null
} }
export default { export default {
name: 'Storagevehicleinfo', name: 'Storagevehicleinfo',