diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml index 753f752..417f074 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml @@ -260,9 +260,8 @@ AND - (attr.struct_code LIKE CONCAT('%', #{params.struct_code}, '%') + (attr.struct_code LIKE CONCAT('%', #{params.struct_code}, '%')) - AND ext.pcsn LIKE #{params.pcsn} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/BsrealStorattrServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/BsrealStorattrServiceImpl.java index 26545e2..d8c0b22 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/BsrealStorattrServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/BsrealStorattrServiceImpl.java @@ -3,16 +3,12 @@ package org.nl.wms.basedata_manage.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.apache.commons.lang3.StringUtils; import org.nl.common.domain.query.PageQuery; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.IdUtil; @@ -26,15 +22,10 @@ import org.nl.wms.basedata_manage.service.dao.BsrealStorattrDto; import org.nl.wms.basedata_manage.service.dao.Sectattr; import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.mapper.BsrealStorattrMapper; -import org.nl.wms.basedata_manage.service.dao.mapper.SectattrMapper; -import org.nl.wms.basedata_manage.service.dao.mapper.StructattrMapper; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -85,8 +76,10 @@ public class BsrealStorattrServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(BsrealStorattr.class) - .eq(BsrealStorattr::getStor_code, code) - .eq(BsrealStorattr::getIs_delete, BaseDataEnum.IS_YES_NOT.code("否")); + .eq(BsrealStorattr::getIs_delete, BaseDataEnum.IS_YES_NOT.code("否")) + .and(r -> r.eq(BsrealStorattr::getStor_code, code) + .or() + .eq(BsrealStorattr::getStor_id, code)); return bsrealStorattrMapper.selectOne(queryWrapper); } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java index 3540630..ecaa71f 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java @@ -130,6 +130,9 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl 1) { for (int i = 1; i < read.size(); i++) { List list = read.get(i); - if (ObjectUtil.isEmpty(list.get(0)) || ObjectUtil.isEmpty(list.get(2)) || ObjectUtil.isEmpty(list.get(3)) || ObjectUtil.isEmpty(list.get(4))) { + if (ObjectUtil.isEmpty(list.get(1)) || ObjectUtil.isEmpty(list.get(4)) || ObjectUtil.isEmpty(list.get(5)) || ObjectUtil.isEmpty(list.get(6))) { if (ObjectUtil.isEmpty(list.get(1))) { throw new BadRequestException("第" + i + "行,物料编码不能为空,请检查。"); } @@ -224,7 +227,7 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl() + .eq(Structattr::getStoragevehicle_code,m3) + ); + if (struct!=null) { + continue; + } iStructattrService.update(new LambdaUpdateWrapper<>(Structattr.class) .set(Structattr::getStoragevehicle_code, mdPbStoragevehicleinfo.getStoragevehicle_code()) .set(Structattr::getUpdate_optid, currentUserId) @@ -264,6 +275,7 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl bindOrUnbind(@RequestBody JSONObject whereJson) { assertNotBlankJson(whereJson, "请求参数不能为空", "mode"); RedissonUtils.lock(() -> { - if (StringUtils.isBlank( whereJson.getString("siteCode"))&&StringUtils.isBlank( whereJson.getString("shelfCode"))) { + if (StringUtils.isBlank(whereJson.getString("siteCode"))&&StringUtils.isBlank( whereJson.getString("shelfCode"))) { throw new BadRequestException("点位编号和载具编号需要扫其中一个,不能同时为空"); } - pdaIosOutService.bindOrUnbind(whereJson); - }, "bindOrUnbind" + whereJson.getString("siteCode") + whereJson.getString("shelfCode"), null); + pdaIosOutService.bindOrUnbind(whereJson.getString("siteCode"), whereJson.getString("shelfCode"), whereJson.getString("mode")); + }, "bindOrUnbind" , null); return new ResponseEntity<>(PdaResponse.requestParamOk(whereJson), HttpStatus.OK); } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosOutService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosOutService.java index 3409465..9a6d1da 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosOutService.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosOutService.java @@ -85,15 +85,12 @@ public interface PdaIosOutService { /** * 货架与站点绑定或解绑 - * - * @param whereJson { - * siteCode: 点位 - * shelfCode: 货架编号 - * mode: 0解绑1绑定 - * } + * siteCode: 点位 + *shelfCode: 货架编号 + *mode: 0解绑1绑定 * @return PdaResponse */ - PdaResponse bindOrUnbind(JSONObject whereJson); + PdaResponse bindOrUnbind(String siteCode, String shelfCode, String mode); /** * 查询物料列表 diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java index d8078ea..137efe9 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java @@ -166,7 +166,7 @@ public class PdaIosInServiceImpl implements PdaIosInService { MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(materialId); MdPbMeasureunit unitDao = iMdPbMeasureunitService.getById(materDao.getBase_unit_id()); // 校验 - if (ObjectUtil.isEmpty(vehicleDao) || ObjectUtil.isEmpty(materDao) || ObjectUtil.isEmpty(materDao)) { + if (ObjectUtil.isEmpty(vehicleDao) || ObjectUtil.isEmpty(materDao) || ObjectUtil.isEmpty(unitDao)) { throw new BadRequestException("载具,物料或单位信息有误!"); } whereJson.put("material_id", materDao.getMaterial_id()); @@ -177,16 +177,16 @@ public class PdaIosInServiceImpl implements PdaIosInService { List groupPlateList = iMdPbGroupplateService.list( new LambdaQueryWrapper() .eq(GroupPlate::getStoragevehicle_code, vehicleDao.getStoragevehicle_code()) - .lt(GroupPlate::getStatus, GROUP_PLATE_STATUS.code("入库")) + .lt(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库")) ); - //判断该载具编号是否已经存在库内 - long count = iStructattrService.count( - new LambdaQueryWrapper() - .eq(Structattr::getStoragevehicle_code, vehicleDao.getStoragevehicle_code()) - ); - if (count > 0) { - throw new BadRequestException("载具编码:" + vehicleDao.getStoragevehicle_code() + "已存在库内,请对数据进行核实!"); - } + //校验该载具编号是否已经存在库内 + // long count = iStructattrService.count( + // new LambdaQueryWrapper() + // .eq(Structattr::getStoragevehicle_code, vehicleDao.getStoragevehicle_code()) + // ); + // if (count > 0) { + // throw new BadRequestException("载具编码:" + vehicleDao.getStoragevehicle_code() + "已存在库内,请对数据进行核实!"); + // } if (ObjectUtils.isNotEmpty(groupPlateList)) { //出库重新组盘 mdPbGroupplateMapper.update(null, new LambdaUpdateWrapper() @@ -206,7 +206,7 @@ public class PdaIosInServiceImpl implements PdaIosInService { .qty_unit_id(unitDao.getMeasure_unit_id()) .qty_unit_name(unitDao.getUnit_name()) .qty(new BigDecimal(qty)) - .status(StringUtils.isBlank(whereJson.getString("groupStatus")) ? GROUP_PLATE_STATUS.code("组盘") : whereJson.getString("groupStatus")) + .status(StringUtils.isBlank(whereJson.getString("groupStatus")) ? IOSEnum.GROUP_PLATE_STATUS.code("组盘") : whereJson.getString("groupStatus")) .ext_code(whereJson.getString("ext_code")) .create_id(SecurityUtils.getCurrentUserId()) .create_name(SecurityUtils.getCurrentNickName()) @@ -215,10 +215,9 @@ public class PdaIosInServiceImpl implements PdaIosInService { .build(); iMdPbGroupplateService.save(groupDao); if (StringUtils.isNotBlank(whereJson.getString("siteCode"))) { - whereJson.put("shelfCode", whereJson.getString("vehicle_code")); whereJson.put("mode", IOSEnum.BIND_OR_UNBIND.code("绑定")); //确定点位则绑定 - pdaIosOutService.bindOrUnbind(whereJson); + pdaIosOutService.bindOrUnbind(whereJson.getString("siteCode"), whereJson.getString("vehicle_code"), whereJson.getString("mode")); } return whereJson; } @@ -312,7 +311,7 @@ public class PdaIosInServiceImpl implements PdaIosInService { */ @Override public PdaResponse getReturnMaterial(JSONObject whereJson) { - whereJson.put("status", GROUP_PLATE_STATUS.code("入库")); + whereJson.put("status", IOSEnum.GROUP_PLATE_STATUS.code("入库")); whereJson.put("vehicleCode", whereJson.getString("search")); whereJson.put("qty", 0); List list = mdPbGroupplateMapper.getVehicleMaterial(whereJson); @@ -511,7 +510,7 @@ public class PdaIosInServiceImpl implements PdaIosInService { .reduce(Double::sum).orElse(0.0); // 组织主表数据 Map jsonMst = new HashMap<>(); - jsonMst.put("stor_id", whereJson.getString("stor_id")); + jsonMst.put("stor_code", whereJson.getString("stor_code")); jsonMst.put("bill_status", IOSEnum.BILL_STATUS.code("生成")); jsonMst.put("total_qty", total_qty); jsonMst.put("detail_count", 1); diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java index 248a640..d532c1a 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java @@ -37,7 +37,6 @@ import org.nl.wms.sch_manage.service.ISchBaseTaskService; import org.nl.wms.sch_manage.service.dao.SchBasePoint; import org.nl.wms.sch_manage.service.dao.SchBaseTask; import org.nl.wms.sch_manage.service.util.AbstractTask; -import org.nl.wms.sch_manage.service.util.tasks.StOutTask; import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.service.dao.GroupPlate; @@ -195,7 +194,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { @Override public PdaResponse getVehicleMaterial(JSONObject whereJson) { - List list = new ArrayList(); + List list = new ArrayList<>(); whereJson.put("status", GROUP_PLATE_STATUS.code("入库")); whereJson.put("vehicleCode", whereJson.getString("search")); whereJson.put("qty", 0); @@ -301,7 +300,8 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { taskForm.put("point_code1", json.getString("struct_code")); taskForm.put("point_code2", whereJson.getString("siteCode")); taskForm.put("vehicle_code", json.getString("storagevehicle_code")); - taskForm.put("is_auto_confirm",(BaseDataEnum.IS_YES_NOT.code("是"))); + taskForm.put("handle_status", (BaseDataEnum.IS_YES_NOT.code("否"))); + taskForm.put("is_auto_confirm", (BaseDataEnum.IS_YES_NOT.code("是"))); String taskCode = applyTaskMap.get(IOSConstant.PDA_POINT_TASK).create(taskForm); GroupPlate plateDao = mdPbGroupplateMapper.selectOne( new LambdaQueryWrapper() @@ -501,13 +501,10 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { @Override @Transactional(rollbackFor = Exception.class) - public PdaResponse bindOrUnbind(JSONObject whereJson) { - String siteCode = whereJson.getString("siteCode"); - String shelfCode = whereJson.getString("shelfCode"); - String mode = whereJson.getString("mode"); - SchBasePoint sitePoint; - if (IOSEnum.BIND_OR_UNBIND.code("绑定").equals(mode)) { - // 校验站点是否存在、是否可用 + public PdaResponse bindOrUnbind(String siteCode, String shelfCode, String mode) { + SchBasePoint sitePoint = new SchBasePoint(); + // 校验站点是否存在、是否可用 + if (StringUtils.isNotBlank(siteCode)) { sitePoint = iSchBasePointService.getOne( new LambdaQueryWrapper() .eq(SchBasePoint::getPoint_code, siteCode) @@ -516,6 +513,9 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { if (sitePoint == null) { throw new BadRequestException("输入的站点编号有误或被禁用,请检查!"); } + } + //绑定 + if (IOSEnum.BIND_OR_UNBIND.code("绑定").equals(mode)) { Set pointIds = new HashSet<>(); pointIds.add(siteCode); //校验是否有任务 @@ -526,6 +526,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { ",载具号为:" + activeTasks.get(0).getVehicle_code() + ",请稍后操作,或在WMS任务列表中检查。"); } } else { + //解绑 if (StringUtils.isNotBlank(shelfCode)) { // 校验站点是否存在、是否可用 sitePoint = iSchBasePointService.getOne( @@ -538,34 +539,22 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { return PdaResponse.requestOk(); } siteCode = sitePoint.getPoint_code(); - } else { - // 校验站点是否存在、是否可用 - sitePoint = iSchBasePointService.getOne( - new LambdaQueryWrapper() - .eq(SchBasePoint::getPoint_code, siteCode) - .eq(SchBasePoint::getIs_used, true) - ); } } - LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); if (IOSEnum.BIND_OR_UNBIND.code("绑定").equals(mode)) { checkGroupPlateStatus(shelfCode, sitePoint.getRegion_code()); - doBind(siteCode, shelfCode, wrapper); + doBind(siteCode, shelfCode); } else { - doUnbind(sitePoint, siteCode, wrapper); + doUnbind(siteCode, sitePoint.getParent_point_code()); } - wrapper.set(SchBasePoint::getUpdate_time, DateUtil.now()) - .set(SchBasePoint::getIs_has_workder, BaseDataEnum.IS_YES_NOT.code("否")) - .set(SchBasePoint::getIng_task_code, null) - .set(SchBasePoint::getUpdate_name, SecurityUtils.getCurrentNickName()); - iSchBasePointService.update(wrapper); return PdaResponse.requestOk(); } /** * 绑定 */ - private void doBind(String siteCode, String shelfCode, LambdaUpdateWrapper wrapper) { + private void doBind(String siteCode, String shelfCode) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); SchBasePoint boundPoint = iSchBasePointService.getOne( new LambdaQueryWrapper().eq(SchBasePoint::getVehicle_code, shelfCode) ); @@ -580,7 +569,12 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { } wrapper.eq(SchBasePoint::getPoint_code, siteCode) .set(SchBasePoint::getVehicle_code, shelfCode) - .set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有货")); + .set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有货")) + .set(SchBasePoint::getUpdate_time, DateUtil.now()) + .set(SchBasePoint::getIs_has_workder, BaseDataEnum.IS_YES_NOT.code("否")) + .set(SchBasePoint::getIng_task_code, null) + .set(SchBasePoint::getUpdate_name, SecurityUtils.getCurrentNickName()); + iSchBasePointService.update(wrapper); } /** @@ -590,7 +584,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { List plates = mdPbGroupplateMapper.selectList( new LambdaQueryWrapper() .eq(GroupPlate::getStoragevehicle_code, shelfCode) - .lt(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库")) + .lt(GroupPlate::getStatus, GROUP_PLATE_STATUS.code("出库")) ); if (CollectionUtils.isNotEmpty(plates)) { LambdaUpdateWrapper update = new LambdaUpdateWrapper<>(); @@ -598,7 +592,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { if (!regionCode.equals(StatusEnum.REGION_INFO.code("商用线5号线"))) { update.set(GroupPlate::getFrozen_qty, BigDecimal.ZERO); } - update.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) + update.set(GroupPlate::getStatus, GROUP_PLATE_STATUS.code("入库")) .in(GroupPlate::getGroup_id, plateCodes); mdPbGroupplateMapper.update(null, update); } @@ -607,23 +601,33 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { /** * 解绑 + * siteCode:地面站点 + * parentPointCode:父级点位编码 */ - private void doUnbind(SchBasePoint sitePoint, String siteCode, LambdaUpdateWrapper wrapper) { - if (!"0".equals(sitePoint.getParent_point_code())) { + private void doUnbind(String siteCode, String parentPointCode) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + if (StringUtils.isNotBlank(parentPointCode) && !"0".equals(parentPointCode)) { // 有同列的子站点,批量解绑 List sameColumnPoints = iSchBasePointService.list( new LambdaQueryWrapper() - .eq(SchBasePoint::getParent_point_code, sitePoint.getParent_point_code()) + .eq(SchBasePoint::getParent_point_code, parentPointCode) .eq(SchBasePoint::getIs_used, true) ); - wrapper.in(SchBasePoint::getPoint_code, sameColumnPoints.stream() - .map(SchBasePoint::getPoint_code) - .collect(Collectors.toList())); + if (CollectionUtils.isNotEmpty(sameColumnPoints)) { + wrapper.in(SchBasePoint::getPoint_code, sameColumnPoints.stream() + .map(SchBasePoint::getPoint_code) + .collect(Collectors.toList())); + } } else { wrapper.eq(SchBasePoint::getPoint_code, siteCode); } wrapper.set(SchBasePoint::getVehicle_code, null) - .set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("无货")); + .set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("无货")) + .set(SchBasePoint::getUpdate_time, DateUtil.now()) + .set(SchBasePoint::getIs_has_workder, BaseDataEnum.IS_YES_NOT.code("否")) + .set(SchBasePoint::getIng_task_code, null) + .set(SchBasePoint::getUpdate_name, SecurityUtils.getCurrentNickName()); + iSchBasePointService.update(wrapper); } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PdaPointTask.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PdaPointTask.java index e03eed7..1251c0c 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PdaPointTask.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PdaPointTask.java @@ -165,7 +165,7 @@ public class PdaPointTask extends AbstractTask { public void finishTask(SchBaseTask taskObj) { // 更新任务 taskObj.setRemark("已完成"); - taskObj.setHandle_status(BaseDataEnum.IS_YES_NOT.code("是")); + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskService.updateById(taskObj); //更新单据 outBillService.taskFinish(taskObj); diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java index 3d2417c..68546f3 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java @@ -22,11 +22,11 @@ import org.nl.config.IdUtil; import org.nl.config.SpringContextHolder; import org.nl.wms.basedata_manage.enums.BaseDataEnum; import org.nl.wms.basedata_manage.service.IBsrealStorattrService; -import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService; import org.nl.wms.basedata_manage.service.IStructattrService; import org.nl.wms.basedata_manage.service.dao.BsrealStorattr; import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper; import org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto; +import org.nl.wms.pda.ios_manage.service.PdaIosOutService; import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.service.ISchBasePointService; import org.nl.wms.sch_manage.service.ISchBaseTaskService; @@ -76,9 +76,12 @@ public class OutBillServiceImpl extends ServiceImpl @Resource private IStructattrService iStructattrService; + /** + * 手持出库服务 + */ + @Autowired + private PdaIosOutService pdaIosOutService; - @Resource - private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; /** * 组盘记录mapper */ @@ -267,7 +270,6 @@ public class OutBillServiceImpl extends ServiceImpl String now = DateUtil.now(); String iostorinv_id = IdUtil.getStringId(); String bill_code = CodeUtil.getNewCode("OUT_STORE_CODE"); - BsrealStorattr bsrealStorattr = iBsrealStorattrService.findById((String) map.get("stor_id")); map.put("iostorinv_id", iostorinv_id); map.put("bill_code", bill_code); @@ -577,11 +579,12 @@ public class OutBillServiceImpl extends ServiceImpl // 根据物料和批次号查询库存可用 BigDecimal canuseSum = mdPbStoragevehicleextMapper.queryCanuseSum(pcsn,material_id); - + if (ObjectUtil.isEmpty(canuseSum)){ + throw new BadRequestException("物料编号:"+ dtl.getMaterial_code() +",无库存可用"); + } if (canuseSum.doubleValue() //出库分配查询货位信息 List outAllocationList = mdPbStoragevehicleextMapper.queryOutAllocation(pcsn,material_id); - int seq_no = 1; double allocation_canuse_qty = 0; for (MdPbStoragevehicleextDto outAllocation : outAllocationList) { @@ -815,6 +817,7 @@ public class OutBillServiceImpl extends ServiceImpl ioStorInvDis.setSect_id(ivt.getString("sect_id")); ioStorInvDis.setPcsn(ivt.getString("pcsn")); ioStorInvDis.setMaterial_id(dtl.getMaterial_id()); + ioStorInvDis.setMaterial_code(dtl.getMaterial_code()); ioStorInvDis.setSect_name(ivt.getString("sect_name")); ioStorInvDis.setSect_code(ivt.getString("sect_code")); ioStorInvDis.setStruct_id(ivt.getString("struct_id")); @@ -1243,14 +1246,8 @@ public class OutBillServiceImpl extends ServiceImpl } else { wrapper.set(SchBasePoint::getIs_has_workder, BaseDataEnum.IS_YES_NOT.code("否")); } - wrapper.eq(SchBasePoint::getPoint_code, task.getPoint_code2()) - .set(SchBasePoint::getVehicle_code, task.getVehicle_code()) - .set(SchBasePoint::getIos_id, null) - .set(SchBasePoint::getUpdate_time, DateUtil.now()) - .set(SchBasePoint::getUpdate_id, SecurityUtils.getCurrentUserId()) - .set(SchBasePoint::getUpdate_name, SecurityUtils.getCurrentNickName()) - .set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有货")); - iSchBasePointService.update(wrapper); + //绑定载具 + pdaIosOutService.bindOrUnbind(task.getPoint_code2(), task.getVehicle_code(), IOSEnum.BIND_OR_UNBIND.code("绑定")); if (BaseDataEnum.IS_YES_NOT.code("是").equals(task.getHandle_status())) { String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); @@ -1259,7 +1256,7 @@ public class OutBillServiceImpl extends ServiceImpl .eq(IOStorInvDis::getTask_id, task.getTask_id()) ); if (ObjectUtil.isEmpty(ioStorInvDis)) { - throw new BadRequestException("未找到任务对应的分配明细"); + return; } // 完成当前分配明细 ioStorInvDisMapper.update(ioStorInvDis, new LambdaUpdateWrapper<>(IOStorInvDis.class) diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java index e459a3b..3588cd8 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java @@ -148,7 +148,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl