From 7aa0df7cd7912145f3cbc423403c32b37437b00d Mon Sep 17 00:00:00 2001 From: ls <1793460677@qq.com> Date: Tue, 1 Jul 2025 14:57:50 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=85=A5=E5=BA=93=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSubpackagerelationController.java | 15 + .../dto/PdmBiSubpackagerelationQuery.java | 45 +++ .../IpdmBiSubpackagerelationService.java | 3 + .../PdmBiSubpackagerelationServiceImpl.java | 49 ++- .../impl/BstIvtPackageinfoivtServiceImpl.java | 35 +- .../impl/StIvtIostorinvOutServiceImpl.java | 12 +- .../impl/StIvtIostorinvServiceImpl.java | 71 ++-- .../util/impl/InBussManageServiceImpl.java | 60 +-- .../util/impl/OutBussManageServiceImpl.java | 24 +- .../util/impl/TwoInBussManageServiceImpl.java | 32 +- .../md/dao/MdPdStorageVehicleInfo.java | 119 ++++++ .../md/dao/MdPdStoragevehicleext.java | 104 +++++ .../mapper/MdPdStoragevehicleextMapper.java | 7 + .../mapper/MdPdStoragevehicleextMapper.xml | 5 + .../mapper/MdStorageVehicleInfoMapper.java | 8 + .../dao/mapper/MdStorageVehicleInfoMapper.xml | 5 + .../service/MdPdStoragevehicleextService.java | 4 + .../service/MdStorageVehicleInfoService.java | 4 + .../md/service/StorageVehicleInfoService.java | 4 + .../impl/StorageVehicleInfoServiceImpl.java | 15 + .../acs/service/impl/AcsToWmsServiceImpl.java | 371 +++++++++--------- 21 files changed, 699 insertions(+), 293 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/MdPdStorageVehicleInfo.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/MdPdStoragevehicleext.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdPdStoragevehicleextMapper.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdPdStoragevehicleextMapper.xml create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdStorageVehicleInfoMapper.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdStorageVehicleInfoMapper.xml create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/MdPdStoragevehicleextService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/MdStorageVehicleInfoService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/StorageVehicleInfoService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/impl/StorageVehicleInfoServiceImpl.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java index 277daa1..8cd2453 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java @@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.dto.PdmBiSubpackagerelationQuery; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; @@ -122,6 +123,20 @@ public class PdmBiSubpackagerelationController { } + /** + * 包装关系维护 + * + * + * @return 新增结果 + */ + @PostMapping("/packagerelation") + @Log("包装关系维护") + public ResponseEntity packagerelation(@RequestBody PdmBiSubpackagerelationQuery pdmBiSubpackagerelationQuery) { + pdmBiSubpackagerelationService.packagerelation(pdmBiSubpackagerelationQuery); + return new ResponseEntity<>(HttpStatus.OK); + } + + /** * 修改数据 * diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationQuery.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationQuery.java index 708cb16..78b5597 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationQuery.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationQuery.java @@ -13,5 +13,50 @@ import org.nl.common.domain.query.BaseQuery; @Data @EqualsAndHashCode(callSuper = true) public class PdmBiSubpackagerelationQuery extends BaseQuery { + private String sale_order_name; + + /** + * 子卷号 + */ + private String container_name; + + /** + * 客户编号 + */ + private String customer_name; + + + /** + * 客户名称 + */ + private String customer_description; + + /** + * 产品编码 + */ + private String product_name; + + + /** + * 产品描述 + */ + private String product_description; + + + /** + * 净重 + */ + private String net_weight; + /** + * 产品厚度 + */ + private String thickness; + + + /** 物料类型 */ + private String material_type; + + + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java index cdab672..8acd63d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.dto.PdmBiSubpackagerelationDto; +import org.nl.b_lms.pdm.subpackagerelation.dto.PdmBiSubpackagerelationQuery; import org.nl.common.domain.query.PageQuery; import org.springframework.data.domain.Pageable; @@ -148,6 +149,8 @@ public interface IpdmBiSubpackagerelationService extends IService getSubPackageInfoBySubRolls(List pcsns); + + void packagerelation(PdmBiSubpackagerelationQuery pdmBiSubpackagerelationQuery); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index be6be93..2f3c231 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -33,6 +33,7 @@ import org.nl.b_lms.pdm.productSpec.service.impl.PdmProductSpecServiceImpl; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper; import org.nl.b_lms.pdm.subpackagerelation.dto.PdmBiSubpackagerelationDto; +import org.nl.b_lms.pdm.subpackagerelation.dto.PdmBiSubpackagerelationQuery; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.pdm_manage.enums.SUBEnum; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; @@ -54,8 +55,10 @@ import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.enums.SpecEnum; +import org.nl.common.utils.CodeUtil; import org.nl.common.utils.MapOf; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.FileUtil; import org.nl.modules.logging.service.EsLogService; @@ -139,7 +142,8 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl containers = subList.stream().map(PdmBiSubpackagerelation::getContainer_name).collect(Collectors.toSet()); String boxSn = subList.get(0).getPackage_box_sn(); //子卷到装箱区 - agvTransfer(containers, deviceCode); +// agvTransfer(containers, deviceCode); PdmBiContainerinbound pdmBiContainerinbound = new PdmBiContainerinbound(); pdmBiContainerinbound.setId(org.nl.common.utils.IdUtil.getStringId()); @@ -389,19 +393,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl() - .eq("task_type", "010908") - .eq("is_delete", "0") - .lt("task_status", TaskStatusEnum.FINISHED.getCode())); - int count2 = packageinfoivtService.count(new QueryWrapper() - .eq("point_status",PackageInfoIvtEnum.POINT_STATUS.code("装箱区")) - .eq("ivt_status",PackageInfoIvtEnum.IVT_STATUS.code("合格品"))); - if (count+count2>8){ - throw new BadRequestException("当前装箱区木箱任务已满,稍后再试"); - } -**/ + String[] split = containerName.split(","); //理论毛重 List subList = this.list(new QueryWrapper() @@ -886,5 +878,32 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl (JSONObject) JSON.toJSON(pdmBiSubpackagerelation)); } + + @Override + public void packagerelation(PdmBiSubpackagerelationQuery pdmBiSubpackagerelationQuery) { + PdmBiSubpackagerelation subpackagerelation = new PdmBiSubpackagerelation(); + subpackagerelation.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + subpackagerelation.setSale_order_name(pdmBiSubpackagerelationQuery.getSale_order_name()); + subpackagerelation.setCustomer_name(pdmBiSubpackagerelationQuery.getCustomer_name()); + subpackagerelation.setCustomer_description(pdmBiSubpackagerelationQuery.getCustomer_description()); + subpackagerelation.setProduct_name(pdmBiSubpackagerelationQuery.getProduct_name()); + subpackagerelation.setProduct_description(pdmBiSubpackagerelationQuery.getProduct_description()); + subpackagerelation.setDate_of_FG_inbound(DateUtil.format(DateUtil.date(), "yyyy-MM-dd")); + subpackagerelation.setContainer_name(pdmBiSubpackagerelationQuery.getContainer_name()); + subpackagerelation.setThickness(pdmBiSubpackagerelationQuery.getThickness()); + subpackagerelation.setNet_weight(pdmBiSubpackagerelationQuery.getNet_weight()); + subpackagerelation.setStatus("99"); + subpackagerelation.setIsRePrintPackageBoxLabel("0"); + subpackagerelation.setIsUnPackBox("0"); + subpackagerelation.setSap_pcsn("N" + TaskUtils.getDateTime("yyMMdd") + CodeUtil.getNewCode("SAP_CODE")); + subpackagerelation.setCreate_id(Long.parseLong(SecurityUtils.getCurrentUserId())); + subpackagerelation.setCreate_name(SecurityUtils.getCurrentNickName()); + subpackagerelation.setCreate_time(DateUtil.now()); + subpackagerelation.setCreate_id(Long.parseLong(SecurityUtils.getCurrentUserId())); + subpackagerelation.setExt_code("BC01"); + subpackagerelation.setNeed_delete("99"); + subpackagerelation.setMaterial_type(pdmBiSubpackagerelationQuery.getMaterial_type()); + subpackagerelationService.save(subpackagerelation); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java index f79eb09..b1d0d15 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java @@ -3,6 +3,7 @@ package org.nl.b_lms.sch.point.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -559,7 +560,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl().eq(PdmBiSubpackagerelation::getContainer_name, whereJson.get("container_name"))); if (ObjectUtil.isEmpty(subpackagerelation)) { @@ -567,15 +568,21 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) { - height = "('2','3')"; + height = "'2','3'"; } else { - height = "('3')"; + height = "'3'"; } moveParam.put("height", height); moveParam.put("vehicle_type", boxDao.getVehicle_type()); @@ -1569,11 +1569,11 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) { - height = "('2','3')"; + height = "'2','3'"; } else { - height = "('3')"; + height = "'3'"; } moveParam.put("height", height); moveParam.put("vehicle_type", boxDao.getVehicle_type()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java index 14c53a3..33dce6d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java @@ -17,6 +17,7 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.pdm_manage.enums.SUBEnum; import org.nl.b_lms.sch.tasks.TwoInTask; @@ -32,6 +33,10 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvMapper; 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.TwoInBussManageService; +import org.nl.b_lms.storage_manage.st.dao.StIvtSectattr; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; +import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtSectattrMapper; +import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructattrMapper; import org.nl.b_lms.storage_manage.st.service.StIvtBsrealstorattrService; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; @@ -142,6 +147,16 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPageNumber() + 1, pageQuery.getPageSize()); @@ -182,21 +197,20 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl packageIn = rows.stream() .map(row -> row.getString("package_box_sn")) .distinct() - .collect(Collectors.joining("','")); - - HashMap map = new HashMap<>(); - map.put("status", SUBEnum.STATUS.code("包装")); + .collect(Collectors.toList()); + PdmBiSubpackagerelation pdmBiSubpackagerelation = new PdmBiSubpackagerelation(); + pdmBiSubpackagerelation.setStatus(SUBEnum.STATUS.code("包装")); if (IOSEnum.IN_TYPE.code("报废入库").equals(whereJson.get("bill_type"))) { - WQLObject.getWQLObject("PDM_BI_SubPackageRelation") - .update(map, "package_box_SN IN ('" + packageIn + "') AND status = '" + SUBEnum.STATUS.code("出库") + "'"); + + + pdmBiSubpackagerelationMapper.update(pdmBiSubpackagerelation, new UpdateWrapper().eq("package_box_sn", packageIn).eq("status", SUBEnum.STATUS.code("出库"))); } else { - WQLObject.getWQLObject("PDM_BI_SubPackageRelation") - .update(map, "package_box_SN IN ('" + packageIn + "') AND status = '" + SUBEnum.STATUS.code("生成") + "'"); + pdmBiSubpackagerelationMapper.update(pdmBiSubpackagerelation, new UpdateWrapper().eq("package_box_sn", packageIn).eq("status", SUBEnum.STATUS.code("生成"))); } return mstDao.getIostorinv_id().toString(); @@ -284,8 +298,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl JSONObject @@ -307,7 +320,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl paramLockList = new ArrayList<>(); // 仓位对象 - JSONObject jsonAttr; + StIvtStructattr stIvtStructattr; // 是否自动分配货位 Boolean checked = jsonObject.getBoolean("checked"); String height = ""; @@ -330,33 +343,38 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) { - height = "('2','3')"; + height = "'2','3'"; } else { - height = "('3')"; + height = "'3'"; } attrParam.put("height", height); JSONObject jsonSect = sectTab.query("sect_id = '" + jsonObject.getString("sect_id") + "'").uniqueResult(0); // 判断是否是虚拟区 if (jsonSect.getString("sect_type_attr").equals(IOSEnum.SECT_TYPE.code("虚拟区"))) { - jsonAttr = attrTab.query("sect_id = '" + jsonObject.getString("sect_id") + "' AND lock_type = '1' AND is_delete = '0' AND IFNULL( storagevehicle_code, '' ) = ''").uniqueResult(0); + + stIvtStructattr = stIvtStructattrMapper.selectOne(new QueryWrapper().eq("sect_id", jsonObject.getString("sect_id")).eq("lock_type", "1").eq("is_delete", "0").apply("IFNULL(storagevehicle_code, '') = ''")); + + } else { //TODO jsonAttr = inBussManageService.getOneStruct(attrParam); if (ObjectUtil.isNotEmpty(whereJson.get("in_buss"))) { attrParam.put("move_block_num", MapUtil.getStr(whereJson, "move_block_num")); } - jsonAttr = twoInBussManageService.getOneStruct(attrParam); + stIvtStructattr = twoInBussManageService.getOneStruct(attrParam); } } else { // 指定分配 - jsonAttr = attrTab.query("struct_id = '" + jsonDis.getString("struct_id") + "'").uniqueResult(0); + + stIvtStructattr = stIvtStructattrMapper.selectOne(new QueryWrapper().eq("struct_id", jsonDis.getString("struct_id"))); + } - if (ObjectUtil.isEmpty(jsonAttr)) { + if (ObjectUtil.isEmpty(stIvtStructattr)) { throw new BadRequestException("没有可用仓位!"); } // 调用业务处理类锁定货位 - paramLockList.add(jsonAttr.getString("struct_code")); + paramLockList.add(stIvtStructattr.getStruct_code()); jsonLock.put("inv_type", mstDao.getBill_type()); jsonLock.put("inv_id", mstDao.getIostorinv_id()); jsonLock.put("inv_code", mstDao.getBill_code()); @@ -367,6 +385,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl().eq("sect_id", jsonAttr.getString("sect_id"))); if (jsonSect.getString("sect_type_attr").equals(IOSEnum.SECT_TYPE.code("虚拟区"))) { // 虚拟区:执行状态为完成 work_status = IOSEnum.WORK_STATUS.code("完成"); @@ -377,12 +396,12 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl().lambda() - .set(StIvtIostorinvdis::getStruct_id, jsonAttr.getString("struct_id")) - .set(StIvtIostorinvdis::getStruct_code, jsonAttr.getString("struct_code")) - .set(StIvtIostorinvdis::getStruct_name, jsonAttr.getString("struct_name")) - .set(StIvtIostorinvdis::getSect_id, jsonAttr.getString("sect_id")) - .set(StIvtIostorinvdis::getSect_code, jsonAttr.getString("sect_code")) - .set(StIvtIostorinvdis::getSect_name, jsonAttr.getString("sect_name")) + .set(StIvtIostorinvdis::getStruct_id, stIvtStructattr.getStruct_id()) + .set(StIvtIostorinvdis::getStruct_code, stIvtStructattr.getStruct_code()) + .set(StIvtIostorinvdis::getStruct_name, stIvtStructattr.getStruct_name()) + .set(StIvtIostorinvdis::getSect_id, stIvtStructattr.getSect_id()) + .set(StIvtIostorinvdis::getSect_code, stIvtStructattr.getSect_code()) + .set(StIvtIostorinvdis::getSect_name, stIvtStructattr.getSect_name()) .set(StIvtIostorinvdis::getWork_status, work_status) .set(StIvtIostorinvdis::getTask_id, task_id) .eq(StIvtIostorinvdis::getIostorinv_id, disDao.getIostorinv_id()) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java index 17ad998..d394849 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java @@ -9,6 +9,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.extern.log4j.Log4j; import org.apache.commons.lang3.StringUtils; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper; +import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.pdm_manage.enums.SUBEnum; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; @@ -68,6 +71,9 @@ public class InBussManageServiceImpl implements InBussManageService { @Autowired private LmsToMesServiceImpl lmsToMesServiceImpl; + @Autowired + private PdmBiSubpackagerelationMapper pdmBiSubpackagerelationMapper; + @Resource @Qualifier("threadPoolExecutor") private ThreadPoolExecutor pool; @@ -234,8 +240,6 @@ public class InBussManageServiceImpl implements InBussManageService { @Override @Transactional public void inTask(JSONObject jsonObject) { - // 子卷包装关系表 - WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation"); // 处理子卷号 String material_barcode = jsonObject.getString("material_barcode"); @@ -247,27 +251,27 @@ public class InBussManageServiceImpl implements InBussManageService { } List pcsnList = Arrays.asList(material_barcode.split(",")); // 查询子卷包装关系 - List subList = subTab.query("container_name in ('" + String.join("','", pcsnList) + "') and status in ('0','1','99')") - .getResultJSONArray(0).toJavaList(JSONObject.class); - if (ObjectUtil.isEmpty(subList)) { + + List pdmBiSubpackagerelations = pdmBiSubpackagerelationMapper.selectList(new QueryWrapper().in("container_name", pcsnList).in("status", "0", "1", "99")); + if (ObjectUtil.isEmpty(pdmBiSubpackagerelations)) { throw new BadRequestException("未查询到子卷包装信息!"); } - if (StringUtils.isBlank(subList.get(0).getString("package_box_sn"))) { + if (StringUtils.isBlank(pdmBiSubpackagerelations.get(0).getPackage_box_sn())) { throw new BadRequestException("木箱号不能为空!"); } // 主表 JSONObject mst = new JSONObject(); mst.put("stor_id", IOSEnum.STOR_ID.code("二期")); mst.put("bill_status", IOSEnum.BILL_STATUS.code("生成")); - mst.put("total_qty", subList.stream().map(row -> row.getDoubleValue("net_weight")).reduce(Double::sum).orElse(0.00)); - mst.put("detail_count", subList.size()); + mst.put("total_qty", pdmBiSubpackagerelations.stream().map(row -> Double.valueOf(row.getNet_weight())).reduce(Double::sum).orElse(0.00)); + mst.put("detail_count", pdmBiSubpackagerelations.size()); // 根据子卷类型判断是返检入库还是反切入库 - if (ObjectUtil.isEmpty(subList.get(0).getString("sub_type"))) { + if (ObjectUtil.isEmpty(pdmBiSubpackagerelations.get(0).getSub_type())) { mst.put("bill_type", jsonObject.getString("bill_type")); } else { - if (subList.get(0).getString("sub_type").equals(SUBEnum.SUB_TYPE.code("返检入库"))) { + if (pdmBiSubpackagerelations.get(0).getSub_type().equals(SUBEnum.SUB_TYPE.code("返检入库"))) { mst.put("bill_type", IOSEnum.IN_TYPE.code("返检入库")); - } else if (subList.get(0).getString("sub_type").equals(SUBEnum.SUB_TYPE.code("改切入库"))) { + } else if (pdmBiSubpackagerelations.get(0).getSub_type().equals(SUBEnum.SUB_TYPE.code("改切入库"))) { mst.put("bill_type", IOSEnum.IN_TYPE.code("改切入库")); } else { mst.put("bill_type", jsonObject.getString("bill_type")); @@ -278,33 +282,33 @@ public class InBussManageServiceImpl implements InBussManageService { // 明细 ArrayList tableData = new ArrayList<>(); List subs = new ArrayList<>(); - for (int i = 0; i < subList.size(); i++) { - JSONObject json = subList.get(i); + for (int i = 0; i < pdmBiSubpackagerelations.size(); i++) { + PdmBiSubpackagerelation pdmBiSubpackagerelation = pdmBiSubpackagerelations.get(i); LinkedHashMap jsonDtl = new LinkedHashMap<>(); - jsonDtl.put("package_box_sn", json.getString("package_box_sn")); - jsonDtl.put("thickness", json.getString("thickness")); - jsonDtl.put("plan_qty", json.getString("net_weight")); - jsonDtl.put("customer_description", json.getString("customer_description")); - jsonDtl.put("quanlity_in_box", json.getString("quanlity_in_box")); - jsonDtl.put("product_name", json.getString("product_name")); - jsonDtl.put("net_weight", json.getString("net_weight")); - jsonDtl.put("container_name", json.getString("container_name")); - jsonDtl.put("width", json.getString("width")); - jsonDtl.put("sap_pcsn", json.getString("sap_pcsn")); - jsonDtl.put("customer_name", json.getString("customer_name")); - jsonDtl.put("sale_order_name", json.getString("sale_order_name")); - jsonDtl.put("product_description", json.getString("product_description")); + jsonDtl.put("package_box_sn", pdmBiSubpackagerelation.getPackage_box_sn()); + jsonDtl.put("thickness", pdmBiSubpackagerelation.getThickness()); + jsonDtl.put("plan_qty", pdmBiSubpackagerelation.getNet_weight()); + jsonDtl.put("customer_description", pdmBiSubpackagerelation.getCustomer_description()); + jsonDtl.put("quanlity_in_box", pdmBiSubpackagerelation.getQuanlity_in_box()); + jsonDtl.put("product_name", pdmBiSubpackagerelation.getProduct_name()); + jsonDtl.put("net_weight", pdmBiSubpackagerelation.getNet_weight()); + jsonDtl.put("container_name", pdmBiSubpackagerelation.getContainer_name()); + jsonDtl.put("width", pdmBiSubpackagerelation.getWidth()); + jsonDtl.put("sap_pcsn", pdmBiSubpackagerelation.getSap_pcsn()); + jsonDtl.put("customer_name", pdmBiSubpackagerelation.getCustomer_name()); + jsonDtl.put("sale_order_name", pdmBiSubpackagerelation.getSale_order_name()); + jsonDtl.put("product_description", pdmBiSubpackagerelation.getProduct_description()); jsonDtl.put("quality_scode", IOSEnum.QUALITY_SCODE.code("合格品")); jsonDtl.put("is_active", IOSEnum.IS_SEND.code("是")); tableData.add(jsonDtl); - subs.add(json.getString("container_name")); + subs.add(pdmBiSubpackagerelation.getContainer_name()); } String package_box_sn = (String) tableData.get(0).get("package_box_sn"); try { JSONObject param_jo = new JSONObject(); param_jo.put("box_no", package_box_sn); - param_jo.put("box_weight", subList.get(0).getString("box_weight")); + param_jo.put("box_weight", pdmBiSubpackagerelations.get(0).getBox_weight()); param_jo.put("container_name", subs); lmsToMesServiceImpl.BoxDataCollectionSubmit2(param_jo); } catch (Exception e) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java index 7b2e573..557a1f6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java @@ -445,11 +445,11 @@ public class OutBussManageServiceImpl implements OutBussManageService { String box_high = boxDao.getBox_high(); if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) { - height = "('1','2','3')"; + height = "'1','2','3'"; } else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) { - height = "('2','3')"; + height = "'2','3'"; } else { - height = "('3')"; + height = "'3'"; } moveParam.put("height", height); moveParam.put("vehicle_type", boxDao.getVehicle_type()); @@ -593,11 +593,11 @@ public class OutBussManageServiceImpl implements OutBussManageService { String box_high = boxDao.getBox_high(); if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) { - height = "('1','2','3')"; + height = "'1','2','3'"; } else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) { - height = "('2','3')"; + height = "'2','3'"; } else { - height = "('3')"; + height = "'3'"; } moveParam.put("height", height); moveParam.put("vehicle_type", boxDao.getVehicle_type()); @@ -763,11 +763,11 @@ public class OutBussManageServiceImpl implements OutBussManageService { String box_high = boxDao.getBox_high(); if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) { - height = "('1','2','3')"; + height = "'1','2','3'"; } else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) { - height = "('2','3')"; + height = "'2','3'"; } else { - height = "('3')"; + height = "'3'"; } moveParam.put("height", height); @@ -885,11 +885,11 @@ public class OutBussManageServiceImpl implements OutBussManageService { String box_high = boxDao.getBox_high(); if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) { - height = "('1','2','3')"; + height = "'1','2','3'"; } else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) { - height = "('2','3')"; + height = "'2','3'"; } else { - height = "('3')"; + height = "'3'"; } moveParam.put("height", height); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/TwoInBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/TwoInBussManageServiceImpl.java index 1c21762..614db25 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/TwoInBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/TwoInBussManageServiceImpl.java @@ -3,17 +3,22 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.log4j.Log4j; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.TwoInBussManageService; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; +import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructattrMapper; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.system.service.param.impl.SysParamServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -27,12 +32,16 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { */ private List notInBlockList = new ArrayList<>(); + @Autowired + private StIvtStructattrMapper stIvtStructattrMapper; + @Override - public JSONObject getOneStruct(JSONObject jsonObject) { + public JSONObject getOneStruct(JSONObject jsonObject) { /* * 成品入库规则: - * 1.负载均衡:相同木箱规格(长宽高)、订单、客户、物料的 平均分配在每个巷道 - * 2.相同木箱规格、订单、客户、物料的可以放双伸位,即可以放2个木箱 + * 1.根据托盘类型确认巷道小托盘负载均衡到所有巷道,大托盘去大托盘巷道。 + * 2.负载均衡:相同木箱规格(长宽高)、订单、客户、物料的 平均分配在每个巷道 + * 3.相同木箱规格、订单、客户、物料的可以放双伸位,即可以放2个木箱 * 匹配货位逻辑: * 1.根据仓库、库区查询所有货位,判断是否有空位 * 2.确定巷道:查看每个巷道相同木箱规格等 的数量,找到数量最小的那个巷道 @@ -59,6 +68,10 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { JSONArray attrArry = new JSONArray(); + String input = jsonObject.getString("height"); + List result = Arrays.asList(input.split("','")); + + // if (ObjectUtil.isEmpty(block_num)) { attrArry = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + @@ -66,6 +79,19 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { "AND storagevehicle_type = '" + jsonObject.getString("vehicle_type") + "'" + "AND height IN " + jsonObject.getString("height") + "AND sect_id = '" + jsonObject.getString("sect_id") + "'").getResultJSONArray(0); + + LambdaQueryWrapper stIvtStructattrLambdaQueryWrapper = new LambdaQueryWrapper<>(); + stIvtStructattrLambdaQueryWrapper.eq(StIvtStructattr::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + .eq(StIvtStructattr::getIs_used, IOSEnum.IS_NOTANDYES.code("是")).eq(StIvtStructattr::getSect_id, jsonObject.getString("sect_id")) + .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")).eq(StIvtStructattr::getStor_id, jsonObject.getString("stor_id")) + .in(StIvtStructattr::getHeight, result); + if (){ + + } + stIvtStructattrMapper.selectList() + + + } else { attrArry = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/MdPdStorageVehicleInfo.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/MdPdStorageVehicleInfo.java new file mode 100644 index 0000000..6c8f9d2 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/MdPdStorageVehicleInfo.java @@ -0,0 +1,119 @@ +package org.nl.b_lms.storage_manage.md.dao; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@TableName("md_pb_storagevehicleinfo") +public class MdPdStorageVehicleInfo { + /** + * 载具标识 - 主键 + */ + @TableId(value = "storagevehicle_id", type = IdType.AUTO) + private String storagevehicle_id; + + /** + * 载具编码 - 非空 + */ + private String storagevehicle_code; + + /** + * 载具名称 - 可为空 + */ + private String storagevehicle_name; + + /** + * 一维码 - 可为空 + */ + private String one_code; + + /** + * 二维码 - 可为空 + */ + private String two_code; + + /** + * RFID编码 - 可为空 + */ + private String rfid_code; + + /** + * 创建人 - 非空 + */ + private Long create_id; + + /** + * 创建人姓名 - 可为空 + */ + private String create_name; + + /** + * 创建时间 - 非空 + */ + private String create_time; + + /** + * 修改人 - 可为空 + */ + private Long update_optid; + + /** + * 修改人姓名 - 可为空 + */ + private String update_optname; + + /** + * 修改时间 - 可为空 + */ + private String update_time; + + /** + * 是否删除 - 默认 '0' + */ + private String is_delete; + + /** + * 是否启用 - 默认 '1' + */ + private String is_used; + + /** + * 载具类型 - 非空 + */ + private String storagevehicle_type; + + /** + * 载具宽度 - 可为空 + */ + private BigDecimal vehicle_width; + + /** + * 载具长度 - 可为空 + */ + private BigDecimal vehicle_long; + + /** + * 载具高度 - 可为空 + */ + private BigDecimal vehicle_height; + + /** + * 载具是否超仓位 - 默认 '00' + */ + private String overstruct_type; + + /** + * 占仓位数 - 默认 '1' + */ + private BigDecimal occupystruct_qty; + + /** + * 外部标识 - 可为空 + */ + private String ext_id; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/MdPdStoragevehicleext.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/MdPdStoragevehicleext.java new file mode 100644 index 0000000..187a413 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/MdPdStoragevehicleext.java @@ -0,0 +1,104 @@ +package org.nl.b_lms.storage_manage.md.dao; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@TableName("md_pb_storagevehicleext") +public class MdPdStoragevehicleext { + /** + * 载具扩展标识 + */ + @TableId(value = "storagevehicleext_id", type = IdType.NONE) + private String storagevehicleext_id; + + /** + * 载具标识 + */ + private String storagevehicle_id; + + /** + * 载具编码 + */ + private String storagevehicle_code; + + /** + * 载具类型 + */ + private String storagevehicle_type; + + /** + * 物料标识 + */ + private String material_id; + + /** + * 批次 + */ + private String pcsn; + + /** + * 数量计量单位标识 + */ + private Long qty_unit_id; + + /** + * 数量计量单位名称 + */ + private String qty_unit_name; + + /** + * 数量 + */ + private BigDecimal storage_qty; + + /** + * 工艺指令卡 + */ + private Long workordercard_id; + + /** + * 配方标识 + */ + private Long formula_id; + + /** + * 是否需清洗 + */ + private String is_need_clean; + + /** + * 备注 + */ + private String remark; + + /** + * 修改人 - 可为空 + */ + private Long update_optid; + + /** + * 修改人姓名 - 可为空 + */ + private String update_optname; + + /** + * 修改时间 - 可为空 + */ + private String update_time; + + /** + * 设备标识 + */ + private Long device_uuid; + + /** + * 载具重量 + */ + private String qty; +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdPdStoragevehicleextMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdPdStoragevehicleextMapper.java new file mode 100644 index 0000000..cd35694 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdPdStoragevehicleextMapper.java @@ -0,0 +1,7 @@ +package org.nl.b_lms.storage_manage.md.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.b_lms.storage_manage.md.dao.MdPdStoragevehicleext; + +public interface MdPdStoragevehicleextMapper extends BaseMapper { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdPdStoragevehicleextMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdPdStoragevehicleextMapper.xml new file mode 100644 index 0000000..fa67db5 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdPdStoragevehicleextMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdStorageVehicleInfoMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdStorageVehicleInfoMapper.java new file mode 100644 index 0000000..e8b2cea --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdStorageVehicleInfoMapper.java @@ -0,0 +1,8 @@ +package org.nl.b_lms.storage_manage.md.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.b_lms.storage_manage.md.dao.MdPdStorageVehicleInfo; + +public interface MdStorageVehicleInfoMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdStorageVehicleInfoMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdStorageVehicleInfoMapper.xml new file mode 100644 index 0000000..fc7b52a --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdStorageVehicleInfoMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/MdPdStoragevehicleextService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/MdPdStoragevehicleextService.java new file mode 100644 index 0000000..f72d323 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/MdPdStoragevehicleextService.java @@ -0,0 +1,4 @@ +package org.nl.b_lms.storage_manage.md.service; + +public interface MdPdStoragevehicleextService { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/MdStorageVehicleInfoService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/MdStorageVehicleInfoService.java new file mode 100644 index 0000000..ecd184b --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/MdStorageVehicleInfoService.java @@ -0,0 +1,4 @@ +package org.nl.b_lms.storage_manage.md.service; + +public interface MdStorageVehicleInfoService { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/StorageVehicleInfoService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/StorageVehicleInfoService.java new file mode 100644 index 0000000..f5bb4d5 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/StorageVehicleInfoService.java @@ -0,0 +1,4 @@ +package org.nl.b_lms.storage_manage.md.service; + +public interface StorageVehicleInfoService { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/impl/StorageVehicleInfoServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/impl/StorageVehicleInfoServiceImpl.java new file mode 100644 index 0000000..84d41a6 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/impl/StorageVehicleInfoServiceImpl.java @@ -0,0 +1,15 @@ +package org.nl.b_lms.storage_manage.md.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.storage_manage.md.dao.MdPdStorageVehicleInfo; +import org.nl.b_lms.storage_manage.md.dao.mapper.MdStorageVehicleInfoMapper; +import org.nl.b_lms.storage_manage.md.service.StorageVehicleInfoService; +import org.springframework.stereotype.Service; + + +@Slf4j +@Service +public class StorageVehicleInfoServiceImpl extends ServiceImpl implements StorageVehicleInfoService { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 52912d3..dff4134 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -40,6 +40,10 @@ 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.service.iostorInv.IStIvtIostorinvOutService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.*; +import org.nl.b_lms.storage_manage.md.dao.MdPdStorageVehicleInfo; +import org.nl.b_lms.storage_manage.md.dao.MdPdStoragevehicleext; +import org.nl.b_lms.storage_manage.md.dao.mapper.MdPdStoragevehicleextMapper; +import org.nl.b_lms.storage_manage.md.dao.mapper.MdStorageVehicleInfoMapper; import org.nl.common.enums.NoticeTypeEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.enums.SpecEnum; @@ -84,8 +88,7 @@ import java.util.stream.Collectors; @Slf4j public class AcsToWmsServiceImpl implements AcsToWmsService { - private static Map Task_Status_Convers = MapOf.of("1",TaskStatusEnum.EXECUTING.getCode(),"2",TaskStatusEnum.FINISHED.getCode(),"3","0"); - + private static Map Task_Status_Convers = MapOf.of("1", TaskStatusEnum.EXECUTING.getCode(), "2", TaskStatusEnum.FINISHED.getCode(), "3", "0"); private final StorPublicService storPublicService; @@ -101,7 +104,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { private final ISysNoticeService noticeService; @Autowired - private IPdmBiContainerinboundService iPdmBiContainerinboundService; + private IPdmBiContainerinboundService iPdmBiContainerinboundService; /** * 入库处理类服务 @@ -147,7 +150,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { private IbstIvtPackageinfoivtService packageinfoivtService; - @Autowired private IMdpbBoxtypeService iMdpbBoxtypeService; @@ -158,7 +160,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { private final IPdmBiSlittingproductionplanService slittingproductionplanService; - private final OutBussManageService outBussManageService; + private final OutBussManageService outBussManageService; @Autowired private ProductOutTwoService productOutTwoService; @@ -168,6 +170,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Autowired private IBstIvtShafttubeivtService shafttubeivtService; + @Autowired + private MdStorageVehicleInfoMapper mdStorageVehicleInfoMapper; + + + @Autowired + private MdPdStoragevehicleextMapper mdPdStoragevehicleextMapper; + /** * task_id:任务标识 @@ -195,39 +204,39 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { JSONObject task = WQLObject.getWQLObject("SCH_BASE_Task") .query("task_id = '" + task_id + "'") .uniqueResult(0); - if (ObjectUtil.isEmpty(task)){ - throw new BadRequestException("未找到任务标识为:" + task_id + "的任务!"); + if (ObjectUtil.isEmpty(task)) { + throw new BadRequestException("未找到任务标识为:" + task_id + "的任务!"); } - if ("1".equals(task.getString("is_delete"))){ - log.debug(task_id+"当前LMS任务已删除,不需要再次反馈更新!"); + if ("1".equals(task.getString("is_delete"))) { + log.debug(task_id + "当前LMS任务已删除,不需要再次反馈更新!"); continue; } - if ("08,07".contains(task.getString("task_status"))){ - log.debug(task_id+"当前LMS任务完成或取消,不需要再次反馈更新!"); + if ("08,07".contains(task.getString("task_status"))) { + log.debug(task_id + "当前LMS任务完成或取消,不需要再次反馈更新!"); continue; } if (StrUtil.isNotEmpty(row.getString("car_no"))) { WQLObject.getWQLObject("SCH_BASE_Task") - .update(MapOf.of("car_no",row.getString("car_no")),"task_id = '" + task_id + "'"); + .update(MapOf.of("car_no", row.getString("car_no")), "task_id = '" + task_id + "'"); } String handleClassName = task.getString("handle_class"); if (StrUtil.isEmpty(handleClassName)) { throw new BadRequestException("当前任务的处理类未找到!"); } - AbstractAcsTask abstractTask = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(task.getString("handle_class"))); - abstractTask.updateTaskStatus(row,Task_Status_Convers.get(row.getString("task_status"))); + AbstractAcsTask abstractTask = (AbstractAcsTask) SpringContextHolder.getBean(Class.forName(task.getString("handle_class"))); + abstractTask.updateTaskStatus(row, Task_Status_Convers.get(row.getString("task_status"))); } else { throw new BadRequestException("任务标识为:" + task_id + "的任务正在操作中!"); } - }catch (BadRequestException ex){ - log.error(task_id+"acs更新任务失败:{}", ex); - WQLObject.getWQLObject("SCH_BASE_Task").update(MapOf.of("remark",DateUtil.now()+"更新"+row.getString("task_status")+"失败:"+ex.getMessage()),"task_id = '" + task_id + "'"); + } catch (BadRequestException ex) { + log.error(task_id + "acs更新任务失败:{}", ex); + WQLObject.getWQLObject("SCH_BASE_Task").update(MapOf.of("remark", DateUtil.now() + "更新" + row.getString("task_status") + "失败:" + ex.getMessage()), "task_id = '" + task_id + "'"); throw ex; - }catch (Exception ex){ - log.error(task_id+"acs更新任务失败:{}", ex); - WQLObject.getWQLObject("SCH_BASE_Task").update(MapOf.of("remark",DateUtil.now()+"更新"+row.getString("task_status")+"失败,系统异常"),"task_id = '" + task_id + "'"); + } catch (Exception ex) { + log.error(task_id + "acs更新任务失败:{}", ex); + WQLObject.getWQLObject("SCH_BASE_Task").update(MapOf.of("remark", DateUtil.now() + "更新" + row.getString("task_status") + "失败,系统异常"), "task_id = '" + task_id + "'"); throw ex; - }finally { + } finally { if (lock.isLocked() && lock.isHeldByCurrentThread()) { lock.unlock(); } @@ -267,7 +276,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } - @Override public Map orderFinish(String string) { JSONObject orderJson = JSONObject.parseObject(string); @@ -1079,7 +1087,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { result.put("status", HttpStatus.OK.value()); result.put("message", "反馈成功,ACS上报无货且此时LMS该点位没有任何任务!"); return result; - }else { + } else { boolean need_clean = false; for (int i = 0; i < left_arr.size(); i++) { JSONObject left_jo = left_arr.getJSONObject(i); @@ -1104,7 +1112,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { result.put("status", HttpStatus.OK.value()); result.put("message", "反馈成功,ACS上报无货且此时LMS该点位没有任何任务!"); return result; - }else { + } else { boolean need_clean = false; for (int i = 0; i < right_arr.size(); i++) { JSONObject right_jo = right_arr.getJSONObject(i); @@ -1200,8 +1208,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } - - @Override @Transactional(rollbackFor = Exception.class) @SneakyThrows @@ -1236,93 +1242,86 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (ObjectUtil.isEmpty(whereJson.getString("material_barcode"))) { throw new BadRequestException("子卷号不能为空!"); } - // 5-木箱入库.木箱回库 - String materialBarcode = whereJson.getString("material_barcode"); - if (materialBarcode.contains("BRMX")){ - String brBox = Arrays.asList(materialBarcode.split(",")).get(0); - whereJson.put("box_no", brBox.replace("BR", "")); - inBoxManageService.inBox(whereJson); - }else { - if (whereJson.getIntValue("weight") <= 0) { - throw new BadRequestException("上报的重量不能为0!"); - } - List errorMsg = new ArrayList<>(); - JSONObject jsonObject = ComPareUtil.CompareWhight(whereJson); - Boolean inbound = jsonObject.getBoolean("inbound"); - Boolean compaerResult = jsonObject.getBoolean("compaer_result"); - String box_no = jsonObject.getString("box_no"); - Integer box_weight = jsonObject.getIntValue("box_weight"); - Integer current_weight = jsonObject.getIntValue("current_weight"); - List containers = jsonObject.getObject("containers", List.class); - int count = taskService.count(new QueryWrapper() - .eq("point_code1", whereJson.getString("device_code")) - .eq("vehicle_code2", whereJson.getString("vehicle_code")) - .eq("is_delete", "0") - .lt("task_status", TaskStatusEnum.EXECUTING.getCode())); - JSONObject jsonExt = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonExt)) { - errorMsg.add("载具无数据"+whereJson.getString("vehicle_code")); - }else { - String pcsn = jsonExt.getString("pcsn"); - if (StringUtils.isNotEmpty(pcsn)){ - JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + pcsn + "'").getResultJSONArray(0); - if (stIvtStructattr != null && stIvtStructattr.size() > 0) { - errorMsg.add("载具"+whereJson.getString("vehicle_code")+"已绑定"+pcsn); - } - } - } - if (!compaerResult){ - errorMsg.add("称重"+current_weight+"不匹配"+box_weight); - Param notify = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("weight_notify"); - if (notify!=null && StringUtils.isNotEmpty(notify.getValue())){ - AutoSendFeiShu.sendFeiShuMsg(notify.getValue(),box_no+"称重"+current_weight+",理论"+box_weight,"二期称重异常提醒"); + if (whereJson.getIntValue("weight") <= 0) { + throw new BadRequestException("上报的重量不能为0!"); + } + List errorMsg = new ArrayList<>(); + JSONObject jsonObject = ComPareUtil.CompareWhight(whereJson); + Boolean inbound = jsonObject.getBoolean("inbound"); + Boolean compaerResult = jsonObject.getBoolean("compaer_result"); + String box_no = jsonObject.getString("box_no"); + Integer box_weight = jsonObject.getIntValue("box_weight"); + Integer current_weight = jsonObject.getIntValue("current_weight"); + List containers = jsonObject.getObject("containers", List.class); + int count = taskService.count(new QueryWrapper() + .eq("point_code1", whereJson.getString("device_code")) + .eq("vehicle_code2", whereJson.getString("vehicle_code")) + .eq("is_delete", "0") + .lt("task_status", TaskStatusEnum.EXECUTING.getCode())); + + MdPdStoragevehicleext mdPdStoragevehicleext = mdPdStoragevehicleextMapper.selectOne(new QueryWrapper().eq("storagevehicle_code", whereJson.getString("vehicle_code"))); + if (ObjectUtil.isEmpty(mdPdStoragevehicleext)) { + errorMsg.add("载具无数据" + whereJson.getString("vehicle_code")); + } else { + String pcsn = mdPdStoragevehicleext.getPcsn(); + if (StringUtils.isNotEmpty(pcsn)) { + JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + pcsn + "'").getResultJSONArray(0); + if (stIvtStructattr != null && stIvtStructattr.size() > 0) { + errorMsg.add("载具" + whereJson.getString("vehicle_code") + "已绑定" + pcsn); } } - if (!inbound){ - errorMsg.add("手动至异常口"); - } - if (count>0){ - errorMsg.add(whereJson.getString("vehicle_code")+"存在任务"); + } + if (!compaerResult) { + errorMsg.add("称重" + current_weight + "不匹配" + box_weight); + Param notify = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("weight_notify"); + if (notify != null && StringUtils.isNotEmpty(notify.getValue())) { + AutoSendFeiShu.sendFeiShuMsg(notify.getValue(), box_no + "称重" + current_weight + ",理论" + box_weight, "二期称重异常提醒"); } - //"material_barcode":"C1101,","device_code":"RK1018","weight":500.95,"vehicle_code":"B01401","type":"1" - if (CollectionUtils.isEmpty(errorMsg)) { - whereJson.put("bill_type", IOSEnum.IN_TYPE.code("生产入库")); - inBussManageService.inTask(whereJson); - PdmProductSpecServiceImpl.doRecord(SpecEnum.RK,null,Boolean.TRUE,null,containers); + } + if (!inbound) { + errorMsg.add("手动至异常口"); + } + if (count > 0) { + errorMsg.add(whereJson.getString("vehicle_code") + "存在任务"); + } + //"material_barcode":"C1101,","device_code":"RK1018","weight":500.95,"vehicle_code":"B01401","type":"1" + if (CollectionUtils.isEmpty(errorMsg)) { + whereJson.put("bill_type", IOSEnum.IN_TYPE.code("生产入库")); + inBussManageService.inTask(whereJson); + PdmProductSpecServiceImpl.doRecord(SpecEnum.RK, null, Boolean.TRUE, null, containers); + } else { + iPdmBiContainerinboundService + .update(new UpdateWrapper() + .set("remark", JSONObject.toJSONString(errorMsg)) + .eq("box", box_no)); + //更新子卷入库备注信息 + JSONObject jsonTaskParam = new JSONObject(); + //创建异常任务去异常入库口 + //入库口 + jsonTaskParam.put("point_code1", "RK1018"); + //异常位 + jsonTaskParam.put("point_code2", "RK1003"); + jsonTaskParam.put("vehicle_code", jsonObject.getString("box_no")); + jsonTaskParam.put("vehicle_code2", whereJson.getString("vehicle_code")); + JSONObject request_param = new JSONObject(); + if (whereJson.getString("vehicle_code").startsWith("A")) { + request_param.put("containerType", "2"); + } else if (whereJson.getString("vehicle_code").startsWith("B")) { + request_param.put("containerType", "1"); } else { - iPdmBiContainerinboundService - .update(new UpdateWrapper() - .set("remark",JSONObject.toJSONString(errorMsg)) - .eq("box",box_no)); - //更新子卷入库备注信息 - JSONObject jsonTaskParam = new JSONObject(); - //创建异常任务去异常入库口 - //入库口 - jsonTaskParam.put("point_code1", "RK1018"); - //异常位 - jsonTaskParam.put("point_code2", "RK1003"); - jsonTaskParam.put("vehicle_code", jsonObject.getString("box_no")); - jsonTaskParam.put("vehicle_code2", whereJson.getString("vehicle_code")); - JSONObject request_param = new JSONObject(); - if (whereJson.getString("vehicle_code").startsWith("A")) { - request_param.put("containerType", "2"); - } else if (whereJson.getString("vehicle_code").startsWith("B")) { - request_param.put("containerType", "1"); - } else { - throw new BadRequestException("托盘号有误,无法找到对应的托盘类型!"); - } - // 更新子卷包装关系为生成 - JSONObject param = new JSONObject(); - param.put("status", IOSEnum.IS_NOTANDYES.code("否")); - WQLObject.getWQLObject("pdm_bi_subpackagerelation") - .update(param,"package_box_sn = '"+jsonObject.getString("box_no")+"'"); - - jsonTaskParam.put("request_param", request_param); - TwoExceptionInTask bean = SpringContextHolder.getBean(TwoExceptionInTask.class); - bean.createTask(jsonTaskParam); - bean.immediateNotifyAcs(null); - PdmProductSpecServiceImpl.doRecord(SpecEnum.TYCK,null,Boolean.FALSE,errorMsg.toString(),containers); - } + throw new BadRequestException("托盘号有误,无法找到对应的托盘类型!"); + } + // 更新子卷包装关系为生成 + JSONObject param = new JSONObject(); + param.put("status", IOSEnum.IS_NOTANDYES.code("否")); + WQLObject.getWQLObject("pdm_bi_subpackagerelation") + .update(param, "package_box_sn = '" + jsonObject.getString("box_no") + "'"); + + jsonTaskParam.put("request_param", request_param); + TwoExceptionInTask bean = SpringContextHolder.getBean(TwoExceptionInTask.class); + bean.createTask(jsonTaskParam); + bean.immediateNotifyAcs(null); + PdmProductSpecServiceImpl.doRecord(SpecEnum.TYCK, null, Boolean.FALSE, errorMsg.toString(), containers); } } else if (type.equals(IOSEnum.ACSTOLMS_TYPE.code("空盘入库"))) { @@ -1354,80 +1353,74 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { inBoxManageService.inBox(whereJson); } else if (type.equals(IOSEnum.ACSTOLMS_TYPE.code("退货入库"))) { String materialBarcode = whereJson.getString("material_barcode"); - if(StrUtil.isEmpty(materialBarcode)){ + if (StrUtil.isEmpty(materialBarcode)) { throw new BadRequestException("当前木箱号不能为空!"); } String[] box_arr = materialBarcode.split("-"); if (box_arr.length < 2) { // 处理分割结果不足的情况 - throw new BadRequestException("当前木箱号数据异常!"+box_arr.toString()); + throw new BadRequestException("当前木箱号数据异常!" + box_arr.toString()); } - if (box_arr[1].equals("9")){ - //空木箱入库 - // -{"material_barcode":"MX250324000091-1","device_code":"CK2005","vehicle_code":"B00165","type":"6"} - whereJson.put("box_no", box_arr[0]); - inBoxManageService.inBox(whereJson); - }else { - //退货入库 - WQLObject vehicleTab = WQLObject.getWQLObject("md_pb_storagevehicleinfo"); - // 载具扩展属性表 - WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); - //获取当前的入库类型 - whereJson.put("bill_type", "000" + box_arr[1]); - whereJson.put("box_no", box_arr[0]); - JSONArray resultJSONArray = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + whereJson.getString("box_no") + "' AND status in ('0','1','99')").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"); - } - } - JSONObject jsonVehicle = vehicleTab.query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'") - .uniqueResult(0); - if (ObjectUtil.isEmpty(jsonVehicle)) { - throw new BadRequestException("载具不存在!"); - } - int hasTask = taskService.count(new QueryWrapper() - .eq("is_delete", "0") - .eq("vehicle_code2", whereJson.getString("vehicle_code")) - .lt("task_status", TaskStatusEnum.FINISHED.getCode())); - if (hasTask>0){ - throw new BadRequestException("托盘"+whereJson.getString("vehicle_code")+"存在执行的任务"); - } - JSONObject ext_jo = veExtTab.query("storagevehicle_code = '" + jsonVehicle.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", jsonVehicle.getLongValue("storagevehicle_id")); - jsonVeExt.put("storagevehicle_code", jsonVehicle.getString("storagevehicle_code")); - jsonVeExt.put("storagevehicle_type", jsonVehicle.getString("storagevehicle_type")); - jsonVeExt.put("pcsn", whereJson.getString("box_no")); - jsonVeExt.put("device_uuid", org.nl.common.utils.IdUtil.getLongId()); - jsonVeExt.put("update_time", DateUtil.now()); - veExtTab.insert(jsonVeExt); + //退货入库 + //获取当前的入库类型 + whereJson.put("bill_type", "000" + box_arr[1]); + whereJson.put("box_no", box_arr[0]); + JSONArray resultJSONArray = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + whereJson.getString("box_no") + "' AND status in ('0','1','99')").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 { - String pcsn = ext_jo.getString("pcsn"); - if (StringUtils.isNotEmpty(pcsn)){ - JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + pcsn + "'").getResultJSONArray(0); - if (stIvtStructattr != null && stIvtStructattr.size() > 0) { - throw new BadRequestException("当前托盘"+whereJson.getString("vehicle_code")+"已经绑定木箱"+pcsn); - } + material_barcode += "," + resultObj.getString("container_name"); + } + } + MdPdStorageVehicleInfo mdPdStorageVehicleInfo = mdStorageVehicleInfoMapper.selectOne(new QueryWrapper().eq("storagevehicle_code", whereJson.getString("vehicle_code"))); + if (ObjectUtil.isEmpty(mdPdStorageVehicleInfo)) { + throw new BadRequestException("载具不存在!"); + } + int hasTask = taskService.count(new QueryWrapper() + .eq("is_delete", "0") + .eq("vehicle_code2", whereJson.getString("vehicle_code")) + .lt("task_status", TaskStatusEnum.FINISHED.getCode())); + if (hasTask > 0) { + throw new BadRequestException("托盘" + whereJson.getString("vehicle_code") + "存在执行的任务"); + } + + MdPdStoragevehicleext mdPdStoragevehicleext = mdPdStoragevehicleextMapper.selectOne(new QueryWrapper().eq("storagevehicle_code", mdPdStorageVehicleInfo.getStoragevehicle_code())); + + if (ObjectUtil.isEmpty(mdPdStoragevehicleext)) { + + MdPdStoragevehicleext mdPdStoragevehicleextInsert = new MdPdStoragevehicleext(); + mdPdStoragevehicleextInsert.setStoragevehicleext_id(org.nl.common.utils.IdUtil.getStringId()); + mdPdStoragevehicleextInsert.setStoragevehicle_code(mdPdStorageVehicleInfo.getStoragevehicle_code()); + mdPdStoragevehicleextInsert.setStoragevehicle_id(mdPdStorageVehicleInfo.getStoragevehicle_id()); + mdPdStoragevehicleextInsert.setStoragevehicle_type(mdPdStorageVehicleInfo.getStoragevehicle_type()); + mdPdStoragevehicleextInsert.setPcsn(whereJson.getString("box_no")); + mdPdStoragevehicleextInsert.setDevice_uuid(org.nl.common.utils.IdUtil.getLongId()); + mdPdStoragevehicleextInsert.setUpdate_time(DateUtil.now()); + mdPdStoragevehicleextMapper.insert(mdPdStoragevehicleextInsert); + + } else { + String pcsn = mdPdStoragevehicleext.getPcsn(); + if (StringUtils.isNotEmpty(pcsn)) { + JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + pcsn + "'").getResultJSONArray(0); + if (stIvtStructattr != null && stIvtStructattr.size() > 0) { + throw new BadRequestException("当前托盘" + whereJson.getString("vehicle_code") + "已经绑定木箱" + pcsn); } - ext_jo.put("pcsn", whereJson.getString("box_no")); - ext_jo.put("device_uuid", org.nl.common.utils.IdUtil.getLongId()); - ext_jo.put("update_time", DateUtil.now()); - veExtTab.update(ext_jo); } - whereJson.put("material_barcode", material_barcode); - inBussManageService.inTask(whereJson); + mdPdStoragevehicleext.setPcsn(whereJson.getString("box_no")); + mdPdStoragevehicleext.setDevice_uuid(org.nl.common.utils.IdUtil.getLongId()); + mdPdStoragevehicleext.setUpdate_time(DateUtil.now()); + mdPdStoragevehicleextMapper.updateById(mdPdStoragevehicleext); } + whereJson.put("material_barcode", material_barcode); + inBussManageService.inTask(whereJson); + } result.put("status", HttpStatus.OK.value()); result.put("message", "下发成功!"); @@ -1730,7 +1723,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { updateWrapper.set(PdmBiSlittingproductionplan::getWeight, NumberUtil.round(weight, 2).toString()) .eq(PdmBiSlittingproductionplan::getContainer_name, subVolume); boolean update = slittingproductionplanService.update(updateWrapper); - PdmProductSpecServiceImpl.doRecord(SpecEnum.FQ_WG,param,Boolean.TRUE,null,subVolume); + PdmProductSpecServiceImpl.doRecord(SpecEnum.FQ_WG, param, Boolean.TRUE, null, subVolume); if (update) { res.put("code", cn.hutool.http.HttpStatus.HTTP_OK); res.put("message", "更新成功!"); @@ -1749,33 +1742,33 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public JSONObject getBoxInfo(JSONObject param) { String material_barcode = param.getString("material_barcode"); - if (StringUtils.isEmpty(material_barcode)){ + if (StringUtils.isEmpty(material_barcode)) { throw new BadRequestException("material_barcode参数不能为空"); } String isUncap = "1"; String boxOr子卷 = material_barcode.split("-")[0]; BstIvtBoxinfo boxNo; String desiccantTemplate = null; - if (boxOr子卷.contains("MX")){ + if (boxOr子卷.contains("MX")) { BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( new QueryWrapper().lambda() .eq(BstIvtBoxinfo::getBox_no, boxOr子卷) ); - if (boxDao==null){ - throw new BadRequestException("当前木箱码在木箱表不存在"+boxOr子卷); + if (boxDao == null) { + throw new BadRequestException("当前木箱码在木箱表不存在" + boxOr子卷); } - boxNo=boxDao; - }else { + boxNo = boxDao; + } else { JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation") .query("container_name = '" + boxOr子卷 + "' order by create_time desc").uniqueResult(0); - if (sub_jo==null || StringUtils.isEmpty(sub_jo.getString("package_box_sn"))){ - throw new BadRequestException("当前子卷不存在子卷包装关系"+boxOr子卷); + if (sub_jo == null || StringUtils.isEmpty(sub_jo.getString("package_box_sn"))) { + throw new BadRequestException("当前子卷不存在子卷包装关系" + boxOr子卷); } BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( new QueryWrapper().lambda() .eq(BstIvtBoxinfo::getBox_no, sub_jo.getString("package_box_sn")) ); - boxNo=boxDao; + boxNo = boxDao; String material_type = sub_jo.getString("material_type"); if (material_type.equals("FG1")) { desiccantTemplate = "6"; @@ -1830,7 +1823,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { JSONObject vehicle_info = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + material_barcode + "'").uniqueResult(0); if (ObjectUtil.isEmpty(vehicle_info)) { vehicle_info = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + vehicle_code + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(vehicle_info)){ + if (ObjectUtil.isEmpty(vehicle_info)) { throw new BadRequestException("未查询到载具号【" + vehicle_code + "】对应的载具信息!"); } } @@ -1846,18 +1839,18 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (ObjectUtil.isNotEmpty(sub_jo)) { //木箱类型 String box_type = sub_jo.getString("box_type"); - if(ObjectUtil.isEmpty(box_type)){ + if (ObjectUtil.isEmpty(box_type)) { throw new BadRequestException("未查询到木箱号【" + material_barcode + "】对应的包装关系缺少木箱类型信息!"); } //查询木箱类型数据 LambdaQueryWrapper queryWrapper = new QueryWrapper().lambda(); - queryWrapper.eq(MdpbBoxtype::getBox_type,box_type); + queryWrapper.eq(MdpbBoxtype::getBox_type, box_type); MdpbBoxtype boxType = iMdpbBoxtypeService.getOne(queryWrapper); - if(ObjectUtil.isEmpty(boxType)){ + if (ObjectUtil.isEmpty(boxType)) { throw new BadRequestException("未查询到木箱类型【" + box_type + "】信息!"); } desiccantTemplate = String.valueOf(boxType.getDesiccant_num()); - }else{ + } else { throw new BadRequestException("未查询到木箱号【" + material_barcode + "】对应的包装关系!"); } //根据木箱高度,判断入库仓位的高度 @@ -1986,13 +1979,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (ObjectUtil.isEmpty(qzzSize)) { throw new BadRequestException("气涨轴规格不能为空!"); } - String qzz= qzzSize.substring(qzzSize.length() - 3); + String qzz = qzzSize.substring(qzzSize.length() - 3); String[] split = qzz.split("-"); String size = split[0]; String qzz_generation = split[1]; // 获取空位 - List shafttubeivts = shafttubeivtService.getNotTaskEmptyShaftCache(size, qzz_generation,"0"); + List shafttubeivts = shafttubeivtService.getNotTaskEmptyShaftCache(size, qzz_generation, "0"); if (shafttubeivts.size() == 0) { throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位"); }