diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml index 5dc6c32..a73eacd 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml @@ -173,7 +173,7 @@ ex.material_id = #{material_id} AND - st.lock_type = 0 + st.lock_type IN ('0','2') AND ex.pcsn = #{pcsn} @@ -205,7 +205,7 @@ AND ex.canuse_qty > 0 AND - st.lock_type = 0 + st.lock_type IN ('0','2') AND ex.pcsn = #{pcsn} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaUpdatePointServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaUpdatePointServiceImpl.java index f013461..59557d4 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaUpdatePointServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaUpdatePointServiceImpl.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import java.util.stream.Collectors; /** *

@@ -48,6 +49,13 @@ public class PdaUpdatePointServiceImpl implements PdaPublicInterfaceService { new QueryWrapper().lambda() .eq(ObjectUtil.isNotEmpty(region_code), SchBaseRegion::getRegion_code, region_code) ); - return PdaResponse.requestParamOk(regionList); + List collect = regionList.stream() + .map(row -> JSONObject.parseObject(JSONObject.toJSONString(row), JSONObject.class)) + .collect(Collectors.toList()); + collect.forEach(item -> { + item.put("text", item.getString("region_name")); + item.put("value", item.getString("region_code")); + }); + return PdaResponse.requestParamOk(collect); } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaWarehouseServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaWarehouseServiceImpl.java index edcd65c..c5bc46b 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaWarehouseServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaWarehouseServiceImpl.java @@ -179,12 +179,20 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService { public PdaResponse queryReceiveSect() { List sectList = sectattrService.list( new QueryWrapper().lambda() - .eq(Sectattr::getStor_id, IOSEnum.STOR_ID.code("物料室仓库")) + .in(Sectattr::getStor_id, IOSEnum.STOR_ID.code("物料室仓库"),IOSEnum.STOR_ID.code("内包材仓库")) .eq(Sectattr::getIs_delete, IOSConstant.ZERO) .eq(Sectattr::getIs_used, IOSConstant.ONE) ); - return PdaResponse.requestParamOk(sectList); + List collect = sectList.stream() + .map(row -> JSONObject.parseObject(JSONObject.toJSONString(row), JSONObject.class)) + .collect(Collectors.toList()); + collect.forEach(item -> { + item.put("text", item.getString("sect_name")); + item.put("value", item.getString("sect_code")); + }); + + return PdaResponse.requestParamOk(collect); } @Override diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/packaging_management/service/impl/PdaPackagingServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/packaging_management/service/impl/PdaPackagingServiceImpl.java index 5145ff5..8d9a246 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/packaging_management/service/impl/PdaPackagingServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/packaging_management/service/impl/PdaPackagingServiceImpl.java @@ -76,7 +76,10 @@ public class PdaPackagingServiceImpl implements PdaPackagingService { if (ObjectUtil.isEmpty(pointDao)) { throw new BadRequestException("当前点位不存在!【" + whereJson.getString("point_code") + "】"); } - return pdaPublicInterfaceService.queryRegionDropdown(JSONObjectOf.of("region", pointDao.getRegion_code())); + + JSONObject jsonObject = new JSONObject(); + jsonObject.put("region_code",pointDao.getRegion_code()); + return pdaPublicInterfaceService.queryRegionDropdown(jsonObject); } @Override @@ -170,7 +173,14 @@ public class PdaPackagingServiceImpl implements PdaPackagingService { .eq(SchBasePoint::getRegion_code, IOSEnum.REGION_CODE.code("外包材区域")) .eq(SchBasePoint::getIs_used, IOSConstant.ONE) ); - return PdaResponse.requestParamOk(pointDaoList); + List collect = pointDaoList.stream() + .map(row -> JSONObject.parseObject(JSONObject.toJSONString(row), JSONObject.class)) + .collect(Collectors.toList()); + collect.forEach(item -> { + item.put("text", item.getString("point_name")); + item.put("value", item.getString("point_code")); + }); + return PdaResponse.requestParamOk(collect); } @Override diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PackagingMiddleTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PackagingMiddleTask.java index cc5caf8..2467634 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PackagingMiddleTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PackagingMiddleTask.java @@ -28,7 +28,7 @@ import javax.annotation.Resource; /** *

- * 内包材送入任务类 + * 外包材送入任务类 *

* * @author Liuxy @@ -122,9 +122,7 @@ public class PackagingMiddleTask extends AbstractTask { if (ObjectUtil.isEmpty(taskObj)) { throw new BadRequestException("该任务不存在"); } - taskObj.setTask_status(TaskStatus.FINISHED.getCode()); - taskObj.setRemark("已完成"); - taskService.updateById(taskObj); + this.finishTask(taskObj); } @Override @@ -150,8 +148,8 @@ public class PackagingMiddleTask extends AbstractTask { // 跟更新库存点位 iMdPdmPackagingService.update( new UpdateWrapper().lambda() - .set(MdPdmPackaging::getPoint_code, taskObj.getPoint_code3()) .eq(MdPdmPackaging::getPoint_code, taskObj.getPoint_code1()) + .set(MdPdmPackaging::getPoint_code, taskObj.getPoint_code3()) ); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java index 18d5791..d167803 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java @@ -82,7 +82,7 @@ public enum IOSEnum { PLACEMENT_TYPE(MapOf.of("深货位", "1", "浅货位", "2")), // 仓库ID - STOR_ID(MapOf.of("物料室仓库", "1582991156504039424")), + STOR_ID(MapOf.of("物料室仓库", "1582991156504039424","内包材仓库","1582991156504039425")), // 库区编码 SECT_CODE(MapOf.of("合格区", "HG01", "待检区", "DJ01", "不合格区", "BHG01", "大料箱区", "DLX01")), diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml index ee0df56..a7b510a 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml @@ -100,7 +100,7 @@ md_pb_groupplate late INNER JOIN md_me_materialbase mater ON mater.material_id = late.material_id INNER JOIN md_cs_supplierbase supp ON supp.supp_code = late.supp_code - INNER JOIN md_pb_classstandard class ON class.class_id = mater.material_type_id + LEFT JOIN md_pb_classstandard class ON class.class_id = mater.material_type_id late.status = '1' diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java index c6b248c..37aa102 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java @@ -109,9 +109,9 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl row.getMaterial_id().equals(groupPlate.getMaterial_id())); - } - if (!is_yl) { - throw new BadRequestException("原料组盘物料必须相同!"); + if (!is_like) { + throw new BadRequestException("原料组盘物料必须相同!"); + } } List createList = tableData.stream() diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java index 8f0243f..89967e3 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java @@ -1095,6 +1095,10 @@ public class OutBillServiceImpl extends ServiceImpl @Override @Transactional public void createTask(IOStorInvDis ioStorInvDis, String point_code, IOStorInv ioStorInv) { + IOStorInvDis newDis = ioStorInvDisMapper.selectById(ioStorInvDis.getIostorinvdis_id()); + if (newDis.getWork_status().equals(IOSEnum.INBILL_DIS_STATUS.code("生成"))) { + return; + } //创建任务 JSONObject task_form = new JSONObject(); task_form.put("TaskCode", CodeUtil.getNewCode("TASK_CODE")); @@ -1112,14 +1116,22 @@ public class OutBillServiceImpl extends ServiceImpl AbstractTask task = taskFactory.getTask(IOSEnum.OUT_CONFIG_CODE.code(ioStorInv.getBill_type())); String task_id = task.create(task_form); - //分配明细表更新任务相关数据 - IOStorInvDis dis = new IOStorInvDis(); - dis.setIostorinvdis_id(ioStorInvDis.getIostorinvdis_id()); - dis.setWork_status(IOSEnum.INBILL_DIS_STATUS.code("生成")); - dis.setTask_id(task_id); - dis.setIs_issued(BaseDataEnum.IS_YES_NOT.code("是")); - dis.setPoint_code(point_code); - ioStorInvDisMapper.updateById(dis); + // 查询单据下是否有相同载具 + List disList = ioStorInvDisMapper.selectList( + new QueryWrapper().lambda() + .eq(IOStorInvDis::getIostorinv_id, ioStorInv.getIostorinv_id()) + .eq(IOStorInvDis::getStoragevehicle_code, ioStorInvDis.getStoragevehicle_code()) + .eq(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("未生成")) + ); + + for (IOStorInvDis dis : disList) { + //分配明细表更新任务相关数据 + dis.setWork_status(IOSEnum.INBILL_DIS_STATUS.code("生成")); + dis.setTask_id(task_id); + dis.setIs_issued(BaseDataEnum.IS_YES_NOT.code("是")); + dis.setPoint_code(point_code); + ioStorInvDisMapper.updateById(dis); + } } @Override @@ -1263,102 +1275,104 @@ public class OutBillServiceImpl extends ServiceImpl String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - IOStorInvDis ioStorInvDis = ioStorInvDisMapper.selectOne(new LambdaQueryWrapper<>(IOStorInvDis.class) + List disList = ioStorInvDisMapper.selectList(new LambdaQueryWrapper<>(IOStorInvDis.class) .eq(IOStorInvDis::getTask_id, task.getTask_id()) ); - if (ObjectUtil.isEmpty(ioStorInvDis)) { + if (ObjectUtil.isEmpty(disList)) { throw new BadRequestException("未找到任务对应的分配明细"); } //查询主表信息 - IOStorInv ioStorInv = ioStorInvMapper.selectById(ioStorInvDis.getIostorinv_id()); + IOStorInv ioStorInv = ioStorInvMapper.selectById(disList.get(0).getIostorinv_id()); - //查询明细信息 - IOStorInvDtl ioStorInvDtl = ioStorInvDtlMapper.selectById(ioStorInvDis.getIostorinvdtl_id()); - if (ObjectUtil.isEmpty(ioStorInvDtl)) { - throw new BadRequestException("未找到明细"); - } - - ioStorInvDisMapper.update(ioStorInvDis, new LambdaUpdateWrapper<>(IOStorInvDis.class) - .set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("完成")) - .set(IOStorInvDis::getReal_qty, task.getMaterial_qty()) - .eq(IOStorInvDis::getIostorinvdis_id, ioStorInvDis.getIostorinvdis_id()) - ); - - //解锁库位 - JSONObject finish_map = new JSONObject(); - finish_map.put("struct_code", ioStorInvDis.getStruct_code()); - finish_map.put("storagevehicle_code", null); - finish_map.put("inv_type", null); - finish_map.put("inv_id", null); - finish_map.put("inv_code", null); - iStructattrService.updateStatusByCode("1", finish_map); - - //修改库存 恢复库存 手持进行减扣 - List updateIvtList = new ArrayList<>(); - JSONObject jsonIvt = new JSONObject(); - jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_SUB_FROZEN); - jsonIvt.put("storagevehicle_code", ioStorInvDis.getStoragevehicle_code()); - jsonIvt.put("material_id", ioStorInvDis.getMaterial_id()); - jsonIvt.put("pcsn", ioStorInvDis.getPcsn()); - jsonIvt.put("qty_unit_id", ioStorInvDis.getQty_unit_id()); - jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name()); - jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); - updateIvtList.add(jsonIvt); - iMdPbStoragevehicleextService.updateIvt(updateIvtList); - - List lateList = groupPlateMapper.selectList( - new QueryWrapper().lambda() - .eq(GroupPlate::getPcsn, ioStorInvDis.getPcsn()) - .eq(GroupPlate::getVehicle_code, ioStorInvDis.getStoragevehicle_code()) - .eq(GroupPlate::getMaterial_id, ioStorInvDis.getMaterial_id()) - .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) - ); - if (ObjectUtil.isEmpty(lateList)) { - throw new BadRequestException("此载具没有组盘【"+ioStorInvDis.getStoragevehicle_code()+"】"); - } - - // 如果有袋码则不更新组盘信息,由手持进行更新 - boolean is_emp = lateList.stream() - .anyMatch(row -> ObjectUtil.isEmpty(row.getBag_code())); - if (is_emp) { - GroupPlate groupPlate = lateList.get(0); - double sub_qty = NumberUtil.sub(groupPlate.getQty(), ioStorInvDis.getPlan_qty()).doubleValue(); - if (sub_qty != 0) { - groupPlate.setQty(BigDecimal.valueOf(sub_qty)); + for (IOStorInvDis ioStorInvDis : disList) { + //查询明细信息 + IOStorInvDtl ioStorInvDtl = ioStorInvDtlMapper.selectById(ioStorInvDis.getIostorinvdtl_id()); + if (ObjectUtil.isEmpty(ioStorInvDtl)) { + throw new BadRequestException("未找到明细"); } - groupPlate.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("出库")); - groupPlateMapper.updateById(groupPlate); - } - // 查询该明细下是否还有未完成的分配明细 - int countDis = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class) - .eq(IOStorInvDis::getIostorinvdtl_id, ioStorInvDis.getIostorinvdtl_id()) - .ne(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("完成")) - ); - - // 如果分配明细全部完成则更新明细表状态 - if (countDis == 0) { - // 更新明细表状态 - ioStorInvDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成")); - ioStorInvDtl.setReal_qty(ioStorInvDtl.getAssign_qty()); - ioStorInvDtlMapper.updateById(ioStorInvDtl); - - // 查看明细是否全部完成 - int countDtl = ioStorInvDtlMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDtl.class) - .eq(IOStorInvDtl::getIostorinv_id, ioStorInvDtl.getIostorinv_id()) - .ne(IOStorInvDtl::getBill_status, IOSEnum.BILL_STATUS.code("完成")) + ioStorInvDisMapper.update(ioStorInvDis, new LambdaUpdateWrapper<>(IOStorInvDis.class) + .set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("完成")) + .set(IOStorInvDis::getReal_qty, task.getMaterial_qty()) + .eq(IOStorInvDis::getIostorinvdis_id, ioStorInvDis.getIostorinvdis_id()) ); - // 如果明细全部完成则更新主表状态 - if (countDtl == 0) { - //更新主表状态 - ioStorInvMapper.update(new IOStorInv(), new LambdaUpdateWrapper<>(IOStorInv.class) - .set(IOStorInv::getBill_status, IOSEnum.BILL_STATUS.code("完成")) - .set(IOStorInv::getConfirm_optid, currentUserId) - .set(IOStorInv::getConfirm_optname, nickName) - .set(IOStorInv::getConfirm_time, now) - .eq(IOStorInv::getIostorinv_id, ioStorInvDtl.getIostorinv_id()) + //解锁库位 + JSONObject finish_map = new JSONObject(); + finish_map.put("struct_code", ioStorInvDis.getStruct_code()); + finish_map.put("storagevehicle_code", null); + finish_map.put("inv_type", null); + finish_map.put("inv_id", null); + finish_map.put("inv_code", null); + iStructattrService.updateStatusByCode("1", finish_map); + + //修改库存 恢复库存 手持进行减扣 + List updateIvtList = new ArrayList<>(); + JSONObject jsonIvt = new JSONObject(); + jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_SUB_FROZEN); + jsonIvt.put("storagevehicle_code", ioStorInvDis.getStoragevehicle_code()); + jsonIvt.put("material_id", ioStorInvDis.getMaterial_id()); + jsonIvt.put("pcsn", ioStorInvDis.getPcsn()); + jsonIvt.put("qty_unit_id", ioStorInvDis.getQty_unit_id()); + jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name()); + jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); + updateIvtList.add(jsonIvt); + iMdPbStoragevehicleextService.updateIvt(updateIvtList); + + List lateList = groupPlateMapper.selectList( + new QueryWrapper().lambda() + .eq(GroupPlate::getPcsn, ioStorInvDis.getPcsn()) + .eq(GroupPlate::getVehicle_code, ioStorInvDis.getStoragevehicle_code()) + .eq(GroupPlate::getMaterial_id, ioStorInvDis.getMaterial_id()) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) + ); + if (ObjectUtil.isEmpty(lateList)) { + throw new BadRequestException("此载具没有组盘【"+ioStorInvDis.getStoragevehicle_code()+"】"); + } + + // 如果有袋码则不更新组盘信息,由手持进行更新 + boolean is_emp = lateList.stream() + .anyMatch(row -> ObjectUtil.isEmpty(row.getBag_code())); + if (is_emp) { + GroupPlate groupPlate = lateList.get(0); + double sub_qty = NumberUtil.sub(groupPlate.getQty(), ioStorInvDis.getPlan_qty()).doubleValue(); + if (sub_qty != 0) { + groupPlate.setQty(BigDecimal.valueOf(sub_qty)); + } + groupPlate.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("出库")); + groupPlateMapper.updateById(groupPlate); + } + + // 查询该明细下是否还有未完成的分配明细 + int countDis = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class) + .eq(IOStorInvDis::getIostorinvdtl_id, ioStorInvDis.getIostorinvdtl_id()) + .ne(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("完成")) + ); + + // 如果分配明细全部完成则更新明细表状态 + if (countDis == 0) { + // 更新明细表状态 + ioStorInvDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成")); + ioStorInvDtl.setReal_qty(ioStorInvDtl.getAssign_qty()); + ioStorInvDtlMapper.updateById(ioStorInvDtl); + + // 查看明细是否全部完成 + int countDtl = ioStorInvDtlMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDtl.class) + .eq(IOStorInvDtl::getIostorinv_id, ioStorInvDtl.getIostorinv_id()) + .ne(IOStorInvDtl::getBill_status, IOSEnum.BILL_STATUS.code("完成")) ); + + // 如果明细全部完成则更新主表状态 + if (countDtl == 0) { + //更新主表状态 + ioStorInvMapper.update(new IOStorInv(), new LambdaUpdateWrapper<>(IOStorInv.class) + .set(IOStorInv::getBill_status, IOSEnum.BILL_STATUS.code("完成")) + .set(IOStorInv::getConfirm_optid, currentUserId) + .set(IOStorInv::getConfirm_optname, nickName) + .set(IOStorInv::getConfirm_time, now) + .eq(IOStorInv::getIostorinv_id, ioStorInvDtl.getIostorinv_id()) + ); + } } } }