Merge branch 'b_lms' into master_merge

This commit is contained in:
2024-06-19 15:01:02 +08:00
24 changed files with 193 additions and 103 deletions

View File

@@ -5,6 +5,7 @@ import cn.dev33.satoken.annotation.SaIgnore;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.pda.service.VehicleTwoService; import org.nl.b_lms.pda.service.VehicleTwoService;
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
import org.nl.modules.logging.annotation.Log; import org.nl.modules.logging.annotation.Log;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
@@ -14,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/** /**
* @author liuxy * @author liuxy
* @date 2022-05-25 * @date 2022-05-25
@@ -26,6 +29,10 @@ public class VehicleTwoController {
@Autowired @Autowired
private VehicleTwoService vehicleTwoService; private VehicleTwoService vehicleTwoService;
@Resource
private IbstIvtPackageinfoivtService bstIvtPackageInfoIvtService;
@PostMapping("/vehicleIn") @PostMapping("/vehicleIn")
@Log("入空载具") @Log("入空载具")
@SaIgnore @SaIgnore
@@ -53,4 +60,13 @@ public class VehicleTwoController {
public ResponseEntity<Object> reback(@RequestBody JSONObject whereJson) { public ResponseEntity<Object> reback(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(vehicleTwoService.reback(whereJson), HttpStatus.OK); return new ResponseEntity<>(vehicleTwoService.reback(whereJson), HttpStatus.OK);
} }
@PostMapping("/updatePackageInfo")
@Log("一楼待检区-管制区子卷质检")
@SaIgnore
public ResponseEntity<Object> updatePackageInfo(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(bstIvtPackageInfoIvtService.update(whereJson), HttpStatus.OK);
}
} }

View File

@@ -28,4 +28,6 @@ public interface PdmBiSubpackagerelationMapper extends BaseMapper<PdmBiSubpackag
@Param("status") String status); @Param("status") String status);
List<PdmBiSubpackagerelation> queryContainerNameBySaleOrder( @Param("sale_order_name") String sale_order_name);
} }

View File

@@ -72,5 +72,17 @@
ORDER BY ORDER BY
MAX(create_time) DESC MAX(create_time) DESC
</select> </select>
<select id="queryContainerNameBySaleOrder" resultType="org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation">
SELECT
a.*,b.*
FROM
`pdm_bi_subpackagerelation` a
LEFT JOIN bst_ivt_packageinfoivt b ON a.container_name = b.container_name
WHERE
b.point_status = '6'
AND a.sale_order_name = #{sale_order_name}
ORDER BY box_group DESC
</select>
</mapper> </mapper>

View File

@@ -153,25 +153,10 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
*/ */
@Override @Override
public List<PdmBiSubpackagerelation> queryContainerNameBySaleOrder(Map whereJson) { public List<PdmBiSubpackagerelation> queryContainerNameBySaleOrder(Map whereJson) {
LambdaQueryWrapper<PdmBiSubpackagerelation> queryWrapper = new LambdaQueryWrapper<>(); if (!whereJson.containsKey("sale_order_name")) {
if (whereJson.containsKey("customer_description")) { return null;
queryWrapper.like(PdmBiSubpackagerelation::getCustomer_description, whereJson.get("customer_description"));
} }
if (whereJson.containsKey("sale_order_name")) { List<PdmBiSubpackagerelation> pdmBiSubpackagerelationList = pdmBiSubpackagerelationMapper.queryContainerNameBySaleOrder(whereJson.get("sale_order_name").toString());
queryWrapper.eq(PdmBiSubpackagerelation::getSale_order_name, whereJson.get("sale_order_name"));
}
if (whereJson.containsKey("customer_name")) {
queryWrapper.like(PdmBiSubpackagerelation::getCustomer_name, whereJson.get("customer_name"));
}
if (whereJson.containsKey("status")) {
if ("99".equals(whereJson.get("status"))) {
queryWrapper.eq(PdmBiSubpackagerelation::getStatus, whereJson.get("status"));
} else {
queryWrapper.ge(PdmBiSubpackagerelation::getStatus, whereJson.get("status"));
}
}
queryWrapper.orderByDesc(PdmBiSubpackagerelation::getBox_group);
List<PdmBiSubpackagerelation> pdmBiSubpackagerelationList = pdmBiSubpackagerelationMapper.selectList(queryWrapper);
Map<String, Long> countByGroup = pdmBiSubpackagerelationList.stream() Map<String, Long> countByGroup = pdmBiSubpackagerelationList.stream()
.filter(item -> item.getBox_group() != null) .filter(item -> item.getBox_group() != null)
.collect(Collectors.groupingBy(PdmBiSubpackagerelation::getBox_group, Collectors.counting())); .collect(Collectors.groupingBy(PdmBiSubpackagerelation::getBox_group, Collectors.counting()));

View File

@@ -0,0 +1,59 @@
package org.nl.b_lms.sch.point.controller;
import java.util.Set;
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
import org.springframework.web.bind.annotation.*;
import lombok.RequiredArgsConstructor;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
/**
* {@code @Description:} 装箱区点位库存表(BstIvtPackageinfoivt)控制层
* {@code @Author:} gbx
*
* @since 2024-06-18
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/bstIvtPackageinfoivt")
@Slf4j
public class BstIvtPackageinfoivtController {
@Resource
private IbstIvtPackageinfoivtService bstIvtPackageinfoivtService;
/**
* 新增数据
*
* @param params 实体对象
* @return 新增结果
*/
@PostMapping
public ResponseEntity<Object> create(@RequestBody BstIvtPackageinfoivt params) {
bstIvtPackageinfoivtService.create(params);
return new ResponseEntity<>(HttpStatus.OK);
}
/**
* 删除数据
*
* @param ids 多个主键Id
* @return 删除结果
*/
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
bstIvtPackageinfoivtService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -106,7 +106,7 @@
LEFT JOIN sch_base_point point2 ON point1.row_num = point2.row_num LEFT JOIN sch_base_point point2 ON point1.row_num = point2.row_num
WHERE WHERE
IFNULL( point2.vehicle_code, '' ) != '' IFNULL( point2.vehicle_code, '' ) != ''
AND point2.out_order_seq > point1.out_order_seq AND point1.out_order_seq > point2.out_order_seq
<if test="point_code != null and point_code != ''"> <if test="point_code != null and point_code != ''">
AND point1.point_code= #{point_code} AND point1.point_code= #{point_code}
@@ -125,7 +125,7 @@
LEFT JOIN sch_base_point point2 ON point1.row_num = point2.row_num LEFT JOIN sch_base_point point2 ON point1.row_num = point2.row_num
WHERE WHERE
IFNULL( point2.vehicle_code, '' ) = '' IFNULL( point2.vehicle_code, '' ) = ''
AND point2.out_order_seq > point1.out_order_seq AND point1.out_order_seq > point2.out_order_seq
<if test="point_code != null and point_code != ''"> <if test="point_code != null and point_code != ''">
AND point1.point_code= #{point_code} AND point1.point_code= #{point_code}

View File

@@ -1,5 +1,6 @@
package org.nl.b_lms.sch.point.service; package org.nl.b_lms.sch.point.service;
import com.alibaba.fastjson.JSONObject;
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@@ -54,9 +55,9 @@ public interface IbstIvtPackageinfoivtService extends IService<BstIvtPackageinfo
/** /**
* 编辑 * 编辑
* *
* @param entity / * @param whereJson /
*/ */
void update(BstIvtPackageinfoivt entity); JSONObject update(JSONObject whereJson);
/** /**
* 多选删除 * 多选删除

View File

@@ -1,9 +1,11 @@
package org.nl.b_lms.sch.point.service.impl; package org.nl.b_lms.sch.point.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import jodd.net.HttpStatus;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
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.dao.mapper.BstIvtPackageinfoivtMapper; import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper;
@@ -16,6 +18,7 @@ import org.nl.common.enums.PackageInfoIvtEnum;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.manage.TaskStatusEnum;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -139,15 +142,27 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
/** /**
* 编辑 * 编辑
* *
* @param entity 对象实体
*/ */
@Override @Override
public void update(BstIvtPackageinfoivt entity) { public JSONObject update(JSONObject whereJson) {
// BstIvtPackageinfoivt dto = bstIvtPackageinfoivtMapper.selectById(entity.getId); JSONObject result = new JSONObject();
// if (dto == null) { if (!whereJson.containsKey("ivt_status") || !whereJson.containsKey("container_name")) {
// throw new BadRequestException("不存在该数据!"); result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
// } result.put("message", "子卷号或子卷品质为空");
bstIvtPackageinfoivtMapper.updateById(getBasicInfo(entity, false)); return result;
}
//"有子卷","2","合格品","3","管制品","4"
BstIvtPackageinfoivt dto = bstIvtPackageinfoivtMapper.selectOne(new LambdaQueryWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getContainer_name, whereJson.getString("container_name")));
if (dto == null) {
result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
result.put("message", "不存在该数据!");
return result;
}
dto.setIvt_status(whereJson.getString("ivt_status"));
bstIvtPackageinfoivtMapper.updateById(getBasicInfo(dto, false));
result.put("status", org.springframework.http.HttpStatus.OK.value());
result.put("message", "检验成功!");
return result;
} }
@@ -170,14 +185,14 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
* @param isCreate 是否创建 * @param isCreate 是否创建
*/ */
private BstIvtPackageinfoivt getBasicInfo(BstIvtPackageinfoivt entity, boolean isCreate) { private BstIvtPackageinfoivt getBasicInfo(BstIvtPackageinfoivt entity, boolean isCreate) {
// if (isCreate) { if (isCreate) {
// entity.setCreate_id(Long.valueOf(SecurityUtils.getCurrentUserId())); entity.setCreate_id(Long.valueOf(SecurityUtils.getCurrentUserId()));
// entity.setCreate_name(SecurityUtils.getCurrentNickName()); entity.setCreate_name(SecurityUtils.getCurrentNickName());
// entity.setCreate_time(DateUtil.now()); entity.setCreate_time(DateUtil.now());
// } }
// entity.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId())); entity.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
// entity.setUpdate_optname(SecurityUtils.getCurrentNickName()); entity.setUpdate_optname(SecurityUtils.getCurrentNickName());
// entity.setUpdate_time(DateUtil.now()); entity.setUpdate_time(DateUtil.now());
return entity; return entity;
} }

View File

@@ -184,7 +184,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")) ? "BLK" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -169,7 +169,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")) ? "BLK" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -173,7 +173,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")) ? "BLK" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);
@@ -217,7 +217,7 @@ public class KzjhcwTask extends AbstractAcsTask {
*/ */
public void toKzjHcw1(String pointCode) { public void toKzjHcw1(String pointCode) {
//存在空载具缓存位无空载具的点位 //存在空载具缓存位无空载具的点位
List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code(""), "2",""); List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code(""), "2", "");
String pointCode1 = null; String pointCode1 = null;
JSONObject toKzjHcwTask = new JSONObject(); JSONObject toKzjHcwTask = new JSONObject();
if (StringUtils.isNotBlank(pointCode)) { if (StringUtils.isNotBlank(pointCode)) {
@@ -255,23 +255,25 @@ public class KzjhcwTask extends AbstractAcsTask {
public void toKzjHcw(String pointCode) { public void toKzjHcw(String pointCode) {
//存在空载具缓存位无空载具的点位 //存在空载具缓存位无空载具的点位
List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code(""), "2",""); List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code(""), "2", "");
String pointCode1 = null; String pointCode1 = null;
JSONObject toKzjHcwTask = new JSONObject(); JSONObject toKzjHcwTask = new JSONObject();
if (StringUtils.isNotBlank(pointCode)) { if (StringUtils.isNotBlank(pointCode)) {
pointCode1 = pointCode; pointCode1 = pointCode;
} else { } else {
//查询装箱区有空载具 //查询装箱区有空载具
List<BstIvtPackageinfoivt> zxqPointList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), "1",""); List<BstIvtPackageinfoivt> zxqPointList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), "1", "");
//装箱区有空载具 //装箱区有空载具
if (CollectionUtils.isNotEmpty(zxqPointList)) { if (CollectionUtils.isNotEmpty(zxqPointList)) {
pointCode1 = zxqPointList.get(0).getPoint_code(); pointCode1 = zxqPointList.get(0).getPoint_code();
} else { } else {
//待检区有空载具 //待检区有空载具
List<BstIvtPackageinfoivt> djqPointList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), "1",""); List<BstIvtPackageinfoivt> djqPointList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), "1", "");
if (CollectionUtils.isNotEmpty(djqPointList)) {
pointCode1 = djqPointList.get(0).getPoint_code(); pointCode1 = djqPointList.get(0).getPoint_code();
} }
} }
}
//去装箱区搬运空载具 //去装箱区搬运空载具
if (CollectionUtils.isNotEmpty(kzjIvtList) && pointCode1 != null) { if (CollectionUtils.isNotEmpty(kzjIvtList) && pointCode1 != null) {
toKzjHcwTask.put("point_code1", pointCode1); toKzjHcwTask.put("point_code1", pointCode1);

View File

@@ -135,7 +135,6 @@ 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", schBaseTask.getVehicle_code()); toSsxTask.put("vehicle_code", schBaseTask.getVehicle_code());
//toSsxTask.put("vehicle_code", containerInfo.getContainer_name());
//判断空载具缓存位是否有空载具库存,有就叫桁架去任一位置搬空载具 //判断空载具缓存位是否有空载具库存,有就叫桁架去任一位置搬空载具
if (CollectionUtils.isNotEmpty(kzjPointList)) { if (CollectionUtils.isNotEmpty(kzjPointList)) {
//直接创建搬运空载具任务 //直接创建搬运空载具任务
@@ -327,7 +326,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")) ? "BLK" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -146,7 +146,7 @@ public class SendKzjTask 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")) ? "BLK" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -165,7 +165,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")) ? "BLK" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -196,7 +196,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")) ? "BLK" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -270,7 +270,7 @@ public class ZxqTask extends AbstractAcsTask {
.request_param(form.getString("request_param")) .request_param(form.getString("request_param"))
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type")) .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")) ? "BLK" : form.getString("product_area"))
.build(); .build();
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
BeanUtils.copyProperties(schBaseTaskVo, task); BeanUtils.copyProperties(schBaseTaskVo, task);

View File

@@ -1271,6 +1271,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
.filter(row -> row.getString("task_id").equals(json.getString("task_code"))) .filter(row -> row.getString("task_id").equals(json.getString("task_code")))
.collect(Collectors.toList()).get(0); .collect(Collectors.toList()).get(0);
// 完成 // 完成
if (jsonTask.getString("task_status").equals(TaskStatusEnum.FINISHED.getCode())) { if (jsonTask.getString("task_status").equals(TaskStatusEnum.FINISHED.getCode())) {
start_device_code = jsonTask.getString("point_code2"); start_device_code = jsonTask.getString("point_code2");

View File

@@ -240,11 +240,7 @@ public class InBussManageServiceImpl implements InBussManageService {
} }
List<String> pcsnList = Arrays.asList(material_barcode.split(",")); List<String> pcsnList = Arrays.asList(material_barcode.split(","));
// 查询子卷包装关系 // 查询子卷包装关系
// List<JSONObject> subList = subTab.query("container_name ='B2512402242302B1A1' and status in ('0','1')") List<JSONObject> subList = subTab.query("container_name in ('" + String.join("','", pcsnList) + "') and status in ('0','1','99')")
// .getResultJSONArray(0).toJavaList(JSONObject.class);
// List<JSONObject> subList = subTab.query("container_name ='B2512402242302B1A1' and status in ('0','1')")
// .getResultJSONArray(0).toJavaList(JSONObject.class);
List<JSONObject> subList = subTab.query("container_name in ('" + String.join("','", pcsnList) + "') and status in ('0','1')")
.getResultJSONArray(0).toJavaList(JSONObject.class); .getResultJSONArray(0).toJavaList(JSONObject.class);
if (ObjectUtil.isEmpty(subList)) { if (ObjectUtil.isEmpty(subList)) {
throw new BadRequestException("未查询到子卷包装信息!"); throw new BadRequestException("未查询到子卷包装信息!");

View File

@@ -1,11 +1,13 @@
package org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl; package org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
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 lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.nl.b_lms.sch.point.dao.SchBasePoint; import org.nl.b_lms.sch.point.dao.SchBasePoint;
import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper; import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper;
import org.nl.b_lms.sch.point.service.IschBasePointService; import org.nl.b_lms.sch.point.service.IschBasePointService;
@@ -20,6 +22,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -58,7 +61,6 @@ public class SendOutManageServiceImpl implements SendOutManageService {
* 1有相同订单号有空位的相同订单号的放在一排 * 1有相同订单号有空位的相同订单号的放在一排
* 2没有相同订单号的新开一排 * 2没有相同订单号的新开一排
* 3有相同订单号的但是没有空位新开一排 * 3有相同订单号的但是没有空位新开一排
* 2.删除载具对应木箱记录
*/ */
CutConveyorTask cutConveyorTask = new CutConveyorTask(); CutConveyorTask cutConveyorTask = new CutConveyorTask();
@@ -70,8 +72,9 @@ public class SendOutManageServiceImpl implements SendOutManageService {
.eq(SchBasePoint::getIs_delete, IOSEnum.IS_NOTANDYES.code("")) .eq(SchBasePoint::getIs_delete, IOSEnum.IS_NOTANDYES.code(""))
); );
// 1.查询此木箱号的子卷包装关系 //木箱号可能用逗号隔开
JSONObject jsonSub = subTab.query("package_box_sn = '" + whereJson.getString("vehicle_code") + "'").uniqueResult(0); String vehicleCode = Arrays.asList(whereJson.getString("vehicle_code").split(",")).get(0);
JSONObject jsonSub = subTab.query("package_box_sn = '" + vehicleCode + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonSub)) { if (ObjectUtil.isEmpty(jsonSub)) {
throw new BadRequestException("未查询到该木箱对应的包装关系!"); throw new BadRequestException("未查询到该木箱对应的包装关系!");
} }
@@ -93,7 +96,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
ObjectUtil.isEmpty(row.getVehicle_code()) && ObjectUtil.isEmpty(row.getVehicle_code()) &&
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定")) row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
) )
.sorted(Comparator.comparing(SchBasePoint::getOut_order_seq)) .sorted(Comparator.comparing(SchBasePoint::getIn_order_seq))
.collect(Collectors.toList()); .collect(Collectors.toList());
joArr.addAll(rowPointList); joArr.addAll(rowPointList);
@@ -116,10 +119,9 @@ public class SendOutManageServiceImpl implements SendOutManageService {
ObjectUtil.isEmpty(row.getVehicle_code()) && ObjectUtil.isEmpty(row.getVehicle_code()) &&
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定")) row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
) )
.sorted(Comparator.comparing(SchBasePoint::getOut_order_seq)) .sorted(Comparator.comparing(SchBasePoint::getIn_order_seq))
.collect(Collectors.toList()); .collect(Collectors.toList());
if (rowPointList.size() == 4) {
JSONObject jsonNewRow = JSONObject.parseObject(JSON.toJSONString(rowPointList.get(0))); JSONObject jsonNewRow = JSONObject.parseObject(JSON.toJSONString(rowPointList.get(0)));
if (cutConveyorTask.isSingleTask(jsonNewRow.getString("point_code"))) { if (cutConveyorTask.isSingleTask(jsonNewRow.getString("point_code"))) {
@@ -129,7 +131,6 @@ public class SendOutManageServiceImpl implements SendOutManageService {
point_code = jsonNewRow.getString("point_code"); point_code = jsonNewRow.getString("point_code");
break; break;
} }
}
} else { } else {
// 校验此货位是否被堵住1.如果被堵住则判断下一个是否被堵住 2.如果全部被堵住则新开一排 // 校验此货位是否被堵住1.如果被堵住则判断下一个是否被堵住 2.如果全部被堵住则新开一排
for (int i = 0; i < joArr.size(); i++) { for (int i = 0; i < joArr.size(); i++) {
@@ -172,10 +173,9 @@ public class SendOutManageServiceImpl implements SendOutManageService {
ObjectUtil.isEmpty(row.getVehicle_code()) && ObjectUtil.isEmpty(row.getVehicle_code()) &&
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定")) row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
) )
.sorted(Comparator.comparing(SchBasePoint::getOut_order_seq)) .sorted(Comparator.comparing(SchBasePoint::getIn_order_seq))
.collect(Collectors.toList()); .collect(Collectors.toList());
if (rowPointList.size() == 4) {
JSONObject jsonNewRow = JSONObject.parseObject(JSON.toJSONString(rowPointList.get(0))); JSONObject jsonNewRow = JSONObject.parseObject(JSON.toJSONString(rowPointList.get(0)));
if (cutConveyorTask.isSingleTask(jsonNewRow.getString("point_code"))) { if (cutConveyorTask.isSingleTask(jsonNewRow.getString("point_code"))) {
@@ -186,7 +186,6 @@ public class SendOutManageServiceImpl implements SendOutManageService {
break; break;
} }
} }
}
if (ObjectUtil.isEmpty(point_code)) { if (ObjectUtil.isEmpty(point_code)) {
throw new BadRequestException("未查询到相同销售订单的放货区点位或空的一排!"); throw new BadRequestException("未查询到相同销售订单的放货区点位或空的一排!");
@@ -194,8 +193,8 @@ public class SendOutManageServiceImpl implements SendOutManageService {
//创建任务 //创建任务
JSONObject task_jo = new JSONObject(); JSONObject task_jo = new JSONObject();
task_jo.put("point_code1", whereJson.getString("device_code")); task_jo.put("point_code1", whereJson.getString("device_code"));
task_jo.put("point_code2", "CK2023"); task_jo.put("point_code2", point_code);
task_jo.put("vehicle_code", whereJson.getString("vehicle_code")); task_jo.put("vehicle_code", vehicleCode);
task_jo.put("task_type", "010708"); task_jo.put("task_type", "010708");
TwoSendOutTask taskBean = new TwoSendOutTask(); TwoSendOutTask taskBean = new TwoSendOutTask();
taskBean.createTask(task_jo); taskBean.createTask(task_jo);
@@ -203,9 +202,9 @@ public class SendOutManageServiceImpl implements SendOutManageService {
// 锁住点位 // 锁住点位
ischBasePointService.update( ischBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda() new UpdateWrapper<SchBasePoint>().lambda()
.eq(SchBasePoint::getPoint_code, "CK2023") .eq(SchBasePoint::getPoint_code, point_code)
.set(SchBasePoint::getLock_type, IOSEnum.LOCK_TYPE.code("其它")) .set(SchBasePoint::getLock_type, IOSEnum.LOCK_TYPE.code("其它"))
.set(SchBasePoint::getVehicle_code, whereJson.getString("vehicle_code")) .set(SchBasePoint::getVehicle_code, vehicleCode)
); );
// 删除载具对应木箱记录 // 删除载具对应木箱记录

View File

@@ -67,10 +67,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -1795,7 +1792,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
log.info("二楼到一楼成品子卷到达一楼输送线sendProductToFirstFloor--------------------------" + whereJson.toString()); log.info("二楼到一楼成品子卷到达一楼输送线sendProductToFirstFloor--------------------------" + whereJson.toString());
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目标站点或子卷号参数为空!");
}
if (whereJson.getString("device_code").equals("null") || whereJson.getString("material_barcode").equals("null")) {
throw new BadRequestException("接口sendProductToFirstFloor目标站点或子卷号参数为null");
} }
RLock lock = redissonClient.getLock(whereJson.getString("material_barcode")); RLock lock = redissonClient.getLock(whereJson.getString("material_barcode"));
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
@@ -1819,7 +1819,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
jo.put("point_code2", mzPointList.get(0).getPoint_code()); jo.put("point_code2", mzPointList.get(0).getPoint_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()))
.sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq).reversed()).collect(Collectors.toList());
//空载具缓存位有空载具 //空载具缓存位有空载具
if (CollectionUtils.isNotEmpty(kzjPointList)) { if (CollectionUtils.isNotEmpty(kzjPointList)) {
jo.put("point_code3", kzjPointList.get(0).getPoint_code()); jo.put("point_code3", kzjPointList.get(0).getPoint_code());
@@ -1836,6 +1837,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""))); .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("")));
if (CollectionUtils.isEmpty(existTaskList)) { if (CollectionUtils.isEmpty(existTaskList)) {
JSONObject jo1 = new JSONObject(); JSONObject jo1 = new JSONObject();
//创建确定终点任务
jo1.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); jo1.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
jo1.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")); jo1.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
jo1.put("point_code2", "NBJ1002"); jo1.put("point_code2", "NBJ1002");
@@ -1947,7 +1949,7 @@ 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 in ('0','1')").getResultJSONArray(0); JSONArray resultJSONArray = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + whereJson.getString("material_barcode") + "' AND status in ('0','1','99')").getResultJSONArray(0);
if (ObjectUtil.isEmpty(resultJSONArray)) { if (ObjectUtil.isEmpty(resultJSONArray)) {
throw new BadRequestException("未查询到子卷包装信息!"); throw new BadRequestException("未查询到子卷包装信息!");
} }
@@ -1968,8 +1970,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
log.info("applyTwo返回参数---------------------------------------------" + result.toString()); log.info("applyTwo返回参数---------------------------------------------" + result.toString());
return result; return result;
} }
} } finally {
finally {
if (tryLock) { if (tryLock) {
lock.unlock(); lock.unlock();
} }

View File

@@ -117,7 +117,9 @@ 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 ="10.21.1.196:8011/"+ api;
try { try {
String resultMsg = HttpRequest.post(url) String resultMsg = HttpRequest.post(url)
.body(String.valueOf(list)) .body(String.valueOf(list))

View File

@@ -114,6 +114,7 @@ public abstract class AbstractAcsTask {
return AcsUtil.notifyAcs("api/wms/task", arr); return AcsUtil.notifyAcs("api/wms/task", arr);
} }
return null; return null;
} }
/** /**

View File

@@ -46,7 +46,6 @@
<el-table-column show-overflow-tooltip prop="package_box_sn" label="木箱号" align="center" /> <el-table-column show-overflow-tooltip prop="package_box_sn" label="木箱号" align="center" />
<el-table-column show-overflow-tooltip prop="container_name" label="子卷号" align="center" /> <el-table-column show-overflow-tooltip prop="container_name" label="子卷号" align="center" />
<el-table-column show-overflow-tooltip prop="sap_pcsn" label="sap批次" align="center" /> <el-table-column show-overflow-tooltip prop="sap_pcsn" label="sap批次" align="center" />
</el-table> </el-table>
</el-card> </el-card>
<div style="margin-bottom: 20px;" /> <div style="margin-bottom: 20px;" />

View File

@@ -66,7 +66,7 @@ export default {
url: 'api/Materialbase', url: 'api/Materialbase',
idField: 'material_id', idField: 'material_id',
sort: 'material_id,desc', sort: 'material_id,desc',
query: { box: '木箱', material_id: '' }, query: { box: '木箱', search: 'MX', material_id: '' },
crudMethod: { ...crudMaterattr } crudMethod: { ...crudMaterattr }
}) })
}, },