From c40bc9498d4b7056ac189ce1408e2706c4cda0f9 Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 5 Jun 2025 19:36:02 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E6=89=8B=E6=8C=81=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IMdMeMaterialbaseService.java | 7 + .../service/IMdPbMeasureunitService.java | 7 + .../IMdPbStoragevehicleinfoService.java | 7 + .../impl/MdMeMaterialbaseServiceImpl.java | 12 + .../impl/MdPbMeasureunitServiceImpl.java | 12 + .../MdPbStoragevehicleinfoServiceImpl.java | 12 + .../controller/PdaIosInController.java | 77 ++++ .../ios_manage/service/PdaIosInService.java | 74 ++++ .../service/impl/PdaIosInServiceImpl.java | 348 ++++++++++++++++++ .../java/org/nl/wms/pda/util/PdaResponse.java | 50 +++ .../warehouse_management/enums/IOSEnum.java | 5 +- .../service/dao/GroupPlate.java | 10 + .../dao/mapper/MdPbGroupplateMapper.java | 11 + .../dao/mapper/MdPbGroupplateMapper.xml | 16 + .../impl/RawAssistIStorServiceImpl.java | 6 +- 15 files changed, 651 insertions(+), 3 deletions(-) create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/controller/PdaIosInController.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosInService.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/PdaResponse.java diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdMeMaterialbaseService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdMeMaterialbaseService.java index 0e36392..0002f90 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdMeMaterialbaseService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdMeMaterialbaseService.java @@ -51,4 +51,11 @@ public interface IMdMeMaterialbaseService extends IService { * } */ void materialSync(JSONObject whereJson); + + /** + * 根据编码获取物料 + * @param material_code 物料编码 + * @return 返回结果 + */ + MdMeMaterialbase getByCode(String material_code); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbMeasureunitService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbMeasureunitService.java index 3483d2b..c241ed0 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbMeasureunitService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbMeasureunitService.java @@ -44,4 +44,11 @@ public interface IMdPbMeasureunitService extends IService { */ void delete(Set ids); + /** + * 根据编码查询 + * @param unit_code 编码 + * @return 实体类 + */ + MdPbMeasureunit getByCode(String unit_code); + } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleinfoService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleinfoService.java index a8e8fdf..e4c45c5 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleinfoService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleinfoService.java @@ -43,4 +43,11 @@ public interface IMdPbStoragevehicleinfoService extends IService ids); + + /** + * 根据编码获取载具 + * @param storagevehicle_code 载具编码 + * @return 实体类 + */ + MdPbStoragevehicleinfo getByCode(String storagevehicle_code); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java index 4e15818..e29cc4c 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java @@ -143,4 +143,16 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl().lambda() + .eq(MdMeMaterialbase::getMaterial_code, material_code) + ); + if (ObjectUtil.isEmpty(one)) { + throw new BadRequestException("物料编码为【"+material_code+"】不存在!"); + } + return one; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbMeasureunitServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbMeasureunitServiceImpl.java index d3c278a..b0b972f 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbMeasureunitServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbMeasureunitServiceImpl.java @@ -93,4 +93,16 @@ public class MdPbMeasureunitServiceImpl extends ServiceImpl ids) { this.baseMapper.deleteBatchIds(ids); } + + @Override + public MdPbMeasureunit getByCode(String unit_code) { + MdPbMeasureunit one = this.getOne( + new QueryWrapper().lambda() + .eq(MdPbMeasureunit::getUnit_code, unit_code) + ); + if (ObjectUtil.isEmpty(one)) { + throw new BadRequestException("计量单位编码为【"+unit_code+"】不存在!"); + } + return one; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleinfoServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleinfoServiceImpl.java index 4670939..9367e45 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleinfoServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleinfoServiceImpl.java @@ -99,4 +99,16 @@ public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl ids) { this.baseMapper.deleteBatchIds(ids); } + + @Override + public MdPbStoragevehicleinfo getByCode(String storagevehicle_code) { + MdPbStoragevehicleinfo one = this.getOne( + new QueryWrapper().lambda() + .eq(MdPbStoragevehicleinfo::getStoragevehicle_code, storagevehicle_code) + ); + if (ObjectUtil.isEmpty(one)) { + throw new BadRequestException("载具编码为【"+storagevehicle_code+"】的载具不存在!"); + } + return one; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/controller/PdaIosInController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/controller/PdaIosInController.java new file mode 100644 index 0000000..07a269f --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/controller/PdaIosInController.java @@ -0,0 +1,77 @@ +package org.nl.wms.pda.ios_manage.controller; + + +import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.pda.ios_manage.service.PdaIosInService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 手持入库确认 控制层 + *

+ * + * @author Liuxy + * @since 2025-06-05 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/pda/iosIn") +@Slf4j +public class PdaIosInController { + + @Autowired + private PdaIosInService pdaIosInService; + + @PostMapping("/sweepCode") + @Log("扫码解析") + @SaIgnore + public ResponseEntity sweepCode(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaIosInService.sweepCode(whereJson),HttpStatus.OK); + } + + @PostMapping("/groupPlate") + @Log("组盘") + @SaIgnore + public ResponseEntity groupPlate(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaIosInService.groupPlate(whereJson),HttpStatus.OK); + } + + @PostMapping("/getPlateDtl") + @Log("查询明细") + @SaIgnore + public ResponseEntity getPlateDtl(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaIosInService.getPlateDtl(whereJson),HttpStatus.OK); + } + + @PostMapping("/deleteDtl") + @Log("删除明细") + @SaIgnore + public ResponseEntity deleteDtl(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaIosInService.deleteDtl(whereJson),HttpStatus.OK); + } + + @PostMapping("/getSect") + @Log("获取库区") + @SaIgnore + public ResponseEntity getSect() { + return new ResponseEntity<>(pdaIosInService.getSect(),HttpStatus.OK); + } + + @PostMapping("/confirmIn") + @Log("入库确认") + @SaIgnore + public ResponseEntity confirmIn(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaIosInService.confirmIn(whereJson),HttpStatus.OK); + } + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosInService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosInService.java new file mode 100644 index 0000000..effb13f --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosInService.java @@ -0,0 +1,74 @@ +package org.nl.wms.pda.ios_manage.service; + +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.pda.util.PdaResponse; + +/** + *

+ * 手持IOS 服务类 + *

+ * + * @author Liuxy + * @since 2025-06-05 + */ +public interface PdaIosInService { + + /** + * + * @param whereJson { + * code: 二维码内容 + * } + * @return PdaResponse + */ + PdaResponse sweepCode(JSONObject whereJson); + + /** + * 组盘 + * @param whereJson { + * storagevehicle_code: 载具编码 + * group_id: 组盘记录id + * } + * @return PdaResponse + */ + PdaResponse groupPlate(JSONObject whereJson); + + /** + * 查询明细 + * @param whereJson { + * storagevehicle_code : 载具编码 + * } + * @return PdaResponse + */ + PdaResponse getPlateDtl(JSONObject whereJson); + + /** + * 删除明细 + * @param whereJson { + * group_id: 组盘标识 + * material_code: 物料编码 + * material_name: 物料名称 + * pcsn: 批次 + * qty: 数量 + * qty_unit_name: 单位 + * } + * @return PdaResponse + */ + PdaResponse deleteDtl(JSONObject whereJson); + + /** + * 查询库区 + * @return PdaResponse + */ + PdaResponse getSect(); + + /** + * 入库确认 + * @param whereJson { + * storagevehicle_code:载具编码 + * point_code:点位编码 + * sect_id:库区 + * } + * @return + */ + PdaResponse confirmIn(JSONObject whereJson); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java new file mode 100644 index 0000000..1859e2c --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java @@ -0,0 +1,348 @@ +package org.nl.wms.pda.ios_manage.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService; +import org.nl.wms.basedata_manage.service.IMdPbMeasureunitService; +import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService; +import org.nl.wms.basedata_manage.service.ISectattrService; +import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase; +import org.nl.wms.basedata_manage.service.dao.MdPbMeasureunit; +import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo; +import org.nl.wms.basedata_manage.service.dao.Sectattr; +import org.nl.wms.pda.ios_manage.service.PdaIosInService; +import org.nl.wms.pda.util.PdaResponse; +import org.nl.wms.warehouse_management.enums.IOSConstant; +import org.nl.wms.warehouse_management.enums.IOSEnum; +import org.nl.wms.warehouse_management.service.IMdPbGroupplateService; +import org.nl.wms.warehouse_management.service.IRawAssistIStorService; +import org.nl.wms.warehouse_management.service.dao.GroupPlate; +import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl; +import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper; +import org.nl.wms.warehouse_management.service.dao.mapper.MdPbGroupplateMapper; +import org.nl.wms.warehouse_management.service.dto.IOStorInvDisDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.*; + +/** + *

+ * 手持IOS 实现类 + *

+ * + * @author Liuxy + * @since 2025-06-05 + */ +@Service +public class PdaIosInServiceImpl implements PdaIosInService { + + /** + * 组盘记录mapper + */ + @Autowired + private MdPbGroupplateMapper mdPbGroupplateMapper; + + /** + * 组盘记录服务 + */ + @Autowired + private IMdPbGroupplateService iMdPbGroupplateService; + + /** + * 基础物料服务 + */ + @Autowired + private IMdMeMaterialbaseService iMdMeMaterialbaseService; + + /** + * 计量单位服务 + */ + @Autowired + private IMdPbMeasureunitService iMdPbMeasureunitService; + + /** + * 载具服务 + */ + @Autowired + private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; + + /** + * 库区服务 + */ + @Autowired + private ISectattrService iSectattrService; + + /** + * 入库服务 + */ + @Autowired + private IRawAssistIStorService iRawAssistIStorService; + + /** + * 入库明细服务 + */ + @Autowired + private IOStorInvDtlMapper ioStorInvDtlMapper; + + @Override + @Transactional + public PdaResponse sweepCode(JSONObject whereJson) { + // 解析二维码内容:"wl0001##pc050401##1000##kg##dj000001##01" + String code = whereJson.getString("code"); + String[] split = code.split("##"); + // 物料编码 + String material_code = split[0]; + // 批次 + String pcsn = split[1]; + // 数量 + String qty = split[2]; + // 计量单位 + String unit_code = split[3]; + // 单据号 + String ext_code = split[4]; + // 业务类型 + String ext_type = split[5]; + + // 校验 + MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(material_code); + MdPbMeasureunit unitDao = iMdPbMeasureunitService.getByCode(unit_code); + GroupPlate groupDao = iMdPbGroupplateService.getOne( + new QueryWrapper().lambda() + .eq(GroupPlate::getMaterial_id, materDao.getMaterial_id()) + .eq(GroupPlate::getPcsn, pcsn) + .eq(GroupPlate::getQty, qty) + .eq(GroupPlate::getQty_unit_id, unitDao.getMeasure_unit_id()) + .eq(GroupPlate::getExt_code, ext_code) + .eq(GroupPlate::getExt_type, ext_type) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("生成")) + ); + + if (ObjectUtil.isEmpty(groupDao)) { + // 插入组盘记录表 + groupDao = new GroupPlate(); + groupDao.setGroup_id(IdUtil.getStringId()); + groupDao.setMaterial_id(materDao.getMaterial_id()); + groupDao.setPcsn(pcsn); + groupDao.setQty_unit_id(unitDao.getMeasure_unit_id()); + groupDao.setQty_unit_name(unitDao.getUnit_name()); + groupDao.setQty(BigDecimal.valueOf(Double.parseDouble(qty))); + groupDao.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("生成")); + groupDao.setExt_code(ext_code); + groupDao.setExt_type(ext_type); + groupDao.setCreate_id(SecurityUtils.getCurrentUserId()); + groupDao.setCreate_name(SecurityUtils.getCurrentUsername()); + groupDao.setCreate_time(DateUtil.now()); + iMdPbGroupplateService.save(groupDao); + } + + // 组织返回数据 + JSONObject result = new JSONObject(); + result.put("group_id", groupDao.getGroup_id()); + result.put("material_code", material_code); + result.put("pcsn", pcsn); + result.put("qty", qty); + result.put("qty_unit_name", unitDao.getUnit_name()); + return PdaResponse.requestParamOk(result); + } + + @Override + @Transactional + public PdaResponse groupPlate(JSONObject whereJson) { + // 校验载具 + MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getByCode(whereJson.getString("storagevehicle_code")); + // 校验组盘记录 + GroupPlate groupDao = iMdPbGroupplateService.getById(whereJson.getString("group_id")); + if (!groupDao.getStatus().equals(IOSEnum.GROUP_PLATE_STATUS.code("生成"))) { + throw new BadRequestException("当前组盘记录不为生成状态!【"+whereJson.getString("group_id")+"】"); + } + // 校验组盘物料批次是否一样 + List plateDaoList = iMdPbGroupplateService.list( + new QueryWrapper().lambda() + .eq(GroupPlate::getStoragevehicle_code, whereJson.getString("storagevehicle_code")) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘")) + ); + if (ObjectUtil.isNotEmpty(plateDaoList)) { + boolean is_like = plateDaoList.stream() + .allMatch(row -> row.getMaterial_id().equals(groupDao.getMaterial_id()) && + row.getPcsn().equals(groupDao.getPcsn()) + ); + if (!is_like) { + throw new BadRequestException("当前托盘所绑物料批次与当前组盘物料批次不一致!"); + } + } + + // 更新数据 + groupDao.setStoragevehicle_code(vehicleDao.getStoragevehicle_code()); + groupDao.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("组盘")); + iMdPbGroupplateService.updateById(groupDao); + return PdaResponse.requestOk(); + } + + @Override + public PdaResponse getPlateDtl(JSONObject whereJson) { + return PdaResponse.requestParamOk(mdPbGroupplateMapper.getDtl(whereJson)); + } + + @Override + @Transactional + public PdaResponse deleteDtl(JSONObject whereJson) { + iMdPbGroupplateService.removeById(whereJson.getString("group_id")); + return PdaResponse.requestOk(); + } + + @Override + public PdaResponse getSect() { + List sectList = iSectattrService.list( + new QueryWrapper().lambda() + .eq(Sectattr::getIs_delete, IOSConstant.IS_DELETE_NO) + .eq(Sectattr::getIs_used, IOSConstant.IS_DELETE_YES) + ); + return PdaResponse.requestParamOk(sectList); + } + + @Override + @Transactional + public PdaResponse confirmIn(JSONObject whereJson) { + // 组织新增数据 + Map jsonMst = organizeInsertData(whereJson); + // 调用服务新增数据 + String iostorinv_id = iRawAssistIStorService.insertDtl(jsonMst); + // 组织分配数据 + whereJson.put("iostorinv_id",iostorinv_id); + Map jsonDtl = organizeDivData(whereJson); + // 调用分配 + iRawAssistIStorService.divStruct(jsonDtl); + // 下发任务 + sendTask(whereJson); + return PdaResponse.requestOk(); + } + + /** + * 组织入库插入数据 + * @param whereJson { + * storagevehicle_code:载具编码 + * point_code:点位编码 + * sect_id:库区 + * } + * @return Map + */ + private Map organizeInsertData(JSONObject whereJson) { + // 查询组盘明细 + List plateDaoList = iMdPbGroupplateService.list( + new QueryWrapper().lambda() + .eq(GroupPlate::getStoragevehicle_code, whereJson.getString("storagevehicle_code")) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘")) + ); + if (ObjectUtil.isEmpty(plateDaoList)) { + throw new BadRequestException("当前没有可入库的物料!"); + } + // 总数量 + Double total_qty = plateDaoList.stream() + .map(row -> row.getQty().doubleValue()) + .reduce(Double::sum).orElse(0.0); + + // 查询库区 + Sectattr sectDao = iSectattrService.getById(whereJson.getString("sect_id")); + // 组织主表数据 + Map jsonMst = new HashMap<>(); + jsonMst.put("stor_id", sectDao.getStor_id()); + jsonMst.put("bill_status", IOSEnum.BILL_STATUS.code("生成")); + jsonMst.put("total_qty", total_qty); + jsonMst.put("detail_count", 1); + jsonMst.put("bill_type", IOSEnum.BILL_TYPE.code("生产入库")); + jsonMst.put("biz_date", DateUtil.now()); + // 组织明细数据 + ArrayList tableData = new ArrayList<>(); + HashMap dtl = new HashMap<>(); + GroupPlate plateDao = plateDaoList.get(0); + dtl.put("storagevehicle_code", plateDao.getStoragevehicle_code()); + dtl.put("material_id", plateDao.getMaterial_id()); + dtl.put("pcsn", plateDao.getPcsn()); + dtl.put("qty_unit_id", plateDao.getQty_unit_id()); + dtl.put("qty_unit_name", plateDao.getQty_unit_name()); + dtl.put("qty", String.valueOf(total_qty)); + MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(plateDao.getMaterial_id()); + dtl.put("material_code", materDao.getMaterial_code()); + dtl.put("material_name", materDao.getMaterial_name()); + dtl.put("plan_qty", String.valueOf(total_qty)); + // 调用新增 + tableData.add(dtl); + jsonMst.put("tableData",tableData); + return jsonMst; + } + + /** + * 组织分配数据 + * @param whereJson { + * iostorinv_id + * sect_id + * } + * @return Map + */ + private Map organizeDivData(JSONObject whereJson) { + // 查询库区 + Sectattr sectDao = iSectattrService.getById(whereJson.getString("sect_id")); + // 组织主数据 + Map jsonMst = new HashMap<>(); + jsonMst.put("checked", true); + jsonMst.put("sect_id", sectDao.getSect_id()); + jsonMst.put("stor_id", sectDao.getStor_id()); + // 组织明细数据 + IOStorInvDtl dtlDao = ioStorInvDtlMapper.selectOne( + new QueryWrapper().lambda() + .eq(IOStorInvDtl::getIostorinv_id, whereJson.getString("iostorinv_id")) + ); + // 查找分配明细 + Map map = new HashMap<>(); + map.put("iostorinvdtl_id",dtlDao.getIostorinvdtl_id()); + List disDtl = iRawAssistIStorService.getDisDtl(map); + // 类型转换 + ArrayList tableMater = new ArrayList<>(); + disDtl.forEach(item -> { + tableMater.add(JSONObject.parseObject(JSONObject.toJSONString(item), LinkedHashMap.class)); + }); + jsonMst.put("tableMater", tableMater); + + return jsonMst; + } + + /** + * 下发任务 + * @param whereJson { + * storagevehicle_code:载具编码 + * point_code:点位编码 + * sect_id:库区 + * iostorinv_id: id + * } + */ + private void sendTask(JSONObject whereJson) { + // 组织主数据 + Map jsonMst = new HashMap<>(); + jsonMst.put("point_code", whereJson.getString("point_code")); + // 组织明细数据 + IOStorInvDtl dtlDao = ioStorInvDtlMapper.selectOne( + new QueryWrapper().lambda() + .eq(IOStorInvDtl::getIostorinv_id, whereJson.getString("iostorinv_id")) + ); + // 查找分配明细 + Map map = new HashMap<>(); + map.put("iostorinvdtl_id",dtlDao.getIostorinvdtl_id()); + List disDtl = iRawAssistIStorService.getDisDtl(map); + // 类型转换 + ArrayList tableMater = new ArrayList<>(); + disDtl.forEach(item -> { + tableMater.add(JSONObject.parseObject(JSONObject.toJSONString(item), LinkedHashMap.class)); + }); + jsonMst.put("tableMater", tableMater); + + iRawAssistIStorService.divPoint(jsonMst); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/PdaResponse.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/PdaResponse.java new file mode 100644 index 0000000..8636e08 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/PdaResponse.java @@ -0,0 +1,50 @@ +package org.nl.wms.pda.util; + +import lombok.Builder; +import lombok.Data; + +/** + *

+ * 手持 返回结果 + *

+ * + * @author Liuxy + * @since 2025-06-05 + */ +@Data +@Builder +public class PdaResponse { + + /** + * 信息 + */ + private String message; + + /** + * 返回数据 + */ + private T data; + + /** + * 不带数据反馈 + * @return ErpResponse + */ + public static PdaResponse requestOk() { + return PdaResponse.builder() + .message("操作成功!") + .build(); + } + + /** + * 带数据反馈 + * @return ErpResponse + */ + public static PdaResponse requestParamOk(T data) { + return PdaResponse.builder() + .message("操作成功!") + .data(data) + .build(); + } + +} + 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 2cd0ce4..89fd8fc 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 @@ -27,11 +27,14 @@ public enum IOSEnum { //单据状态 BILL_STATUS(MapOf.of("生成","10", "分配中", "20", "分配完", "30", "完成", "99")), + // 入库业务类型 + BILL_TYPE(MapOf.of("生产入库","0001", "手工入库", "0009")), + //入库分配明细状态 INBILL_DIS_STATUS(MapOf.of("生成", "00", "执行中", "01", "完成", "99")), //组盘记录状态 - GROUP_PLATE_STATUS(MapOf.of("组盘", "01", "入库", "02", "出库", "03")), + GROUP_PLATE_STATUS(MapOf.of("生成", "00", "组盘", "01", "入库", "02", "出库", "03")), // 锁类型 LOCK_TYPE(MapOf.of("未锁定", "0", "入库锁", "1", "出库锁", "2" diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/GroupPlate.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/GroupPlate.java index 5fe162e..65cf86a 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/GroupPlate.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/GroupPlate.java @@ -76,4 +76,14 @@ public class GroupPlate implements Serializable { * 组盘时间 */ private String create_time; + + /** + * 来源单据号 + */ + private String ext_code; + + /** + * 来源单据类型 + */ + private String ext_type; } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java index 412d33f..6695959 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java @@ -1,8 +1,12 @@ package org.nl.wms.warehouse_management.service.dao.mapper; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.nl.wms.warehouse_management.service.dao.GroupPlate; +import java.util.List; + /** *

* 组盘记录表 Mapper 接口 @@ -13,4 +17,11 @@ import org.nl.wms.warehouse_management.service.dao.GroupPlate; */ public interface MdPbGroupplateMapper extends BaseMapper { + /** + * 获取明细 + * @param whereJson { + * storagevehicle_code : 载具编码 + * } + */ + List getDtl(@Param("param") JSONObject whereJson); } 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 274929f..569aa0b 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 @@ -2,4 +2,20 @@ + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java index c3ef57f..78796c1 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java @@ -140,7 +140,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl rows = (ArrayList) whereJson.get("tableData"); String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); + String nickName = SecurityUtils.getCurrentUsername(); String now = DateUtil.now(); double total_qty = 0; JSONObject io_mst = new JSONObject(); @@ -630,7 +630,9 @@ public class RawAssistIStorServiceImpl extends ServiceImpl structattrList = iStructattrService.list(new LambdaQueryWrapper<>(Structattr.class) .eq(Structattr::getSect_id,sect_id) .eq(Structattr::getLock_type,IOSEnum.LOCK_TYPE.code("未锁定")) - .isNull(Structattr::getStoragevehicle_code).or().eq(Structattr::getStoragevehicle_code,"") + .and(row -> row.isNull(Structattr::getStoragevehicle_code).or( + it -> it.eq(Structattr::getStoragevehicle_code,"") + )) ); if (ObjectUtil.isEmpty(structattrList)){ throw new BadRequestException("该库区没有仓位");