From f19b350327ebd119b1f785f78868163a74bf6fdd Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 6 Jun 2025 16:28:51 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E6=89=8B=E6=8C=81=E7=9B=98?= =?UTF-8?q?=E7=82=B9=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PdaIosCheckController.java | 49 ++++++++++++ .../service/PdaIosCheckService.java | 46 +++++++++++ .../service/impl/PdaIosCheckServiceImpl.java | 79 +++++++++++++++++++ .../service/impl/PdaIosOutServiceImpl.java | 18 ++++- .../service/IStIvtCheckdtlService.java | 9 +++ .../service/IStIvtCheckmstService.java | 6 ++ .../dao/mapper/StIvtCheckdtlMapper.java | 10 +++ .../dao/mapper/StIvtCheckdtlMapper.xml | 29 +++++++ .../impl/StIvtCheckdtlServiceImpl.java | 6 +- .../impl/StIvtCheckmstServiceImpl.java | 7 +- .../src/views/wms/st/checkbill/AddDialog.vue | 2 +- 11 files changed, 251 insertions(+), 10 deletions(-) create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/controller/PdaIosCheckController.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosCheckService.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosCheckServiceImpl.java diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/controller/PdaIosCheckController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/controller/PdaIosCheckController.java new file mode 100644 index 0000000..9b36c5b --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/controller/PdaIosCheckController.java @@ -0,0 +1,49 @@ +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.PdaIosCheckService; +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-06 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/pda/iosCheck") +@Slf4j +public class PdaIosCheckController { + + @Autowired + private PdaIosCheckService pdaIosCheckService; + + @PostMapping("/getDtl") + @Log("获取盘点明细") + @SaIgnore + public ResponseEntity getDtl(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaIosCheckService.getDtl(whereJson), HttpStatus.OK); + } + + @PostMapping("/confirm") + @Log("确认") + @SaIgnore + public ResponseEntity confirm(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaIosCheckService.confirm(whereJson), HttpStatus.OK); + } + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosCheckService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosCheckService.java new file mode 100644 index 0000000..db484e1 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosCheckService.java @@ -0,0 +1,46 @@ +package org.nl.wms.pda.ios_manage.service; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.pda.util.PdaResponse; +import org.nl.wms.warehouse_management.service.dao.StIvtCheckdtl; + +/** + *

+ * 手持盘点确认 服务类 + *

+ * + * @author Liuxy + * @since 2025-06-06 + */ +public interface PdaIosCheckService extends IService { + + /** + * 获取盘点明细 + * @param whereJson { + * storagevehicle_code: 载具编码 + * struct_code: 仓位 + * } + * @return PdaResponse + */ + PdaResponse getDtl(JSONObject whereJson); + + /** + * 确认 + * @param whereJson { + * storagevehicle_code: 载具编码 + * struct_code:仓位编码 + * data: [ + * checkdtl_id: 明细标识 + * bill_code: 单据编码 + * bill_code: 单据编码 + * pcsn: 批次 + * base_qty: 库存数量 + * fac_qty: 盘点数量 + * qty_unit_name: 单位 + * ] + * } + * @return PdaResponse + */ + PdaResponse confirm(JSONObject whereJson); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosCheckServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosCheckServiceImpl.java new file mode 100644 index 0000000..1adad9c --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosCheckServiceImpl.java @@ -0,0 +1,79 @@ +package org.nl.wms.pda.ios_manage.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.wms.pda.ios_manage.service.PdaIosCheckService; +import org.nl.wms.pda.util.PdaResponse; +import org.nl.wms.warehouse_management.enums.IOSEnum; +import org.nl.wms.warehouse_management.service.IStIvtCheckdtlService; +import org.nl.wms.warehouse_management.service.IStIvtCheckmstService; +import org.nl.wms.warehouse_management.service.dao.StIvtCheckdtl; +import org.nl.wms.warehouse_management.service.dao.mapper.StIvtCheckdtlMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 手持盘点确认 实现类 + *

+ * + * @author Liuxy + * @since 2025-06-06 + */ +@Service +public class PdaIosCheckServiceImpl extends ServiceImpl implements PdaIosCheckService { + + /** + * 盘点单主表服务 + */ + @Autowired + private IStIvtCheckmstService iStIvtCheckmstService; + + /** + * 盘点单明细服务 + */ + @Autowired + private IStIvtCheckdtlService iStIvtCheckdtlService; + + @Override + public PdaResponse getDtl(JSONObject whereJson) { + return PdaResponse.requestParamOk(this.baseMapper.getPdaDtl(whereJson)); + } + + @Override + @Transactional + public PdaResponse confirm(JSONObject whereJson) { + List dataList = whereJson.getJSONArray("data").toJavaList(JSONObject.class); + // 查询明细 + List dtlDaoList = this.list( + new QueryWrapper().lambda() + .in(StIvtCheckdtl::getCheckdtl_id, dataList.stream() + .map(row -> row.getString("checkdtl_id")) + .collect(Collectors.toList()) + ) + ); + // 需要更新的明细集合 + List needUpdateList = new ArrayList<>(); + for (JSONObject json : dataList) { + StIvtCheckdtl dtlDao = dtlDaoList.stream() + .filter(row -> row.getCheckdtl_id().equals(json.getString("checkdtl_id"))) + .findFirst().orElse(null); + dtlDao.setStatus(IOSEnum.CHECK_DTL_STATUS.code("完成")); + dtlDao.setFac_qty(json.getBigDecimal("fac_qty")); + needUpdateList.add(dtlDao); + } + // 更新明细 + this.updateBatchById(needUpdateList); + // 更新主表状态 + iStIvtCheckmstService.updateMst(dtlDaoList.get(0).getCheck_id()); + // 创建损益单 + iStIvtCheckdtlService.createMore(needUpdateList,dtlDaoList.get(0).getCheck_id()); + return PdaResponse.requestOk(); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java index 9e530a6..b0f194e 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java @@ -1,7 +1,9 @@ package org.nl.wms.pda.ios_manage.service.impl; import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; +import org.nl.common.exception.BadRequestException; import org.nl.wms.basedata_manage.service.IStructattrService; import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper; @@ -94,10 +96,21 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { public PdaResponse confirm(JSONObject whereJson) { // 获取点位信息 SchBasePoint pointDao = iSchBasePointService.getById(whereJson.getString("point_code")); + if (ObjectUtil.isEmpty(pointDao)) { + throw new BadRequestException("当前点位不存在!!"); + } // 获取出入库单明细信息 - IOStorInvDtl dtlDao = ioStorInvDtlMapper.selectById(pointDao.getIos_id()); + IOStorInvDis disDao = ioStorInvDisMapper.selectById(pointDao.getIos_id()); + if(ObjectUtil.isEmpty(disDao)) { + throw new BadRequestException("未查询到出库单分配明细!"); + } + IOStorInvDtl dtlDao = ioStorInvDtlMapper.selectById(disDao.getIostorinvdtl_id()); + // 获取点位库存信息 JSONObject jsonIvt = mdPbStoragevehicleextMapper.getIosDtl(whereJson).get(0); + if (ObjectUtil.isEmpty(jsonIvt)) { + throw new BadRequestException("当前点位没有库存信息!"); + } // 判断是否整出 double plan_qty = dtlDao.getPlan_qty().doubleValue(); double real_qty = NumberUtil.add(dtlDao.getReal_qty(), jsonIvt.getDoubleValue("qty")).doubleValue(); @@ -112,7 +125,6 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { dtlDao.setReal_qty(BigDecimal.valueOf(real_qty)); ioStorInvDtlMapper.updateById(dtlDao); // 更新分配明细实际出库数量 - IOStorInvDis disDao = ioStorInvDisMapper.selectById(pointDao.getIos_id()); disDao.setReal_qty(jsonIvt.getBigDecimal("qty")); ioStorInvDisMapper.updateById(disDao); } else { @@ -127,8 +139,8 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { dtlDao.setReal_qty(BigDecimal.valueOf(plan_qty)); ioStorInvDtlMapper.updateById(dtlDao); // 更新分配明细实际出库重量 = 变动数量 - IOStorInvDis disDao = ioStorInvDisMapper.selectById(pointDao.getIos_id()); disDao.setReal_qty(change_qty); + ioStorInvDisMapper.updateById(disDao); // 查找入库货位 JSONObject paramPoint = new JSONObject(); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckdtlService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckdtlService.java index 1fbabdd..b6adeed 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckdtlService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckdtlService.java @@ -38,4 +38,13 @@ public interface IStIvtCheckdtlService extends IService { * @param list 明细实体类集合 */ void createMore(List list, String check_id); + + /** + * 手持盘点获取明细 + * @param whereJson { + * storagevehicle_code:载具号 + * } + * @return List + */ + List getPdaDtl(JSONObject whereJson); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckmstService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckmstService.java index e5e88e7..80a2c56 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckmstService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckmstService.java @@ -66,4 +66,10 @@ public interface IStIvtCheckmstService extends IService { * @param dto 新增修改dto实体类 */ void confirm(CheckInsertDto dto); + + /** + * 更新主表状态 + * @param check_id 主表id + */ + void updateMst(String check_id); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.java index 166bc69..4df0e1b 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.java @@ -26,4 +26,14 @@ public interface StIvtCheckdtlMapper extends BaseMapper { * @return List */ List getDtl(@Param("param") Map whereJson); + + /** + * 手持获取盘点明细 + * @param whereJson { + * storagevehicle_code:载具编码 + * struct_code: 仓位 + * } + * @return List + */ + List getPdaDtl(@Param("param") JSONObject whereJson); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.xml index f014af8..ccce1d6 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.xml +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.xml @@ -24,4 +24,33 @@ + + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckdtlServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckdtlServiceImpl.java index a56af43..d44b2f8 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckdtlServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckdtlServiceImpl.java @@ -2,7 +2,6 @@ package org.nl.wms.warehouse_management.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.common.utils.IdUtil; @@ -132,4 +131,9 @@ public class StIvtCheckdtlServiceImpl extends ServiceImpl getPdaDtl(JSONObject whereJson) { + return this.baseMapper.getPdaDtl(whereJson); + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckmstServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckmstServiceImpl.java index 9c88a4b..5ca87ce 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckmstServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckmstServiceImpl.java @@ -169,11 +169,8 @@ public class StIvtCheckmstServiceImpl extends ServiceImpl dtlDaoList = iStIvtCheckdtlService.list( new QueryWrapper().lambda() diff --git a/wms/nladmin-ui/src/views/wms/st/checkbill/AddDialog.vue b/wms/nladmin-ui/src/views/wms/st/checkbill/AddDialog.vue index afaa13c..77d5ca3 100644 --- a/wms/nladmin-ui/src/views/wms/st/checkbill/AddDialog.vue +++ b/wms/nladmin-ui/src/views/wms/st/checkbill/AddDialog.vue @@ -116,7 +116,7 @@ - +