opt:手持组盘新增料框

This commit is contained in:
zhengxuming
2025-08-22 14:34:08 +08:00
parent 6091019bba
commit 0a60985917

View File

@@ -3,6 +3,7 @@ package org.nl.wms.pda_manage.ios_manage.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpStatus;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -36,13 +37,16 @@ import org.nl.wms.system_manage.service.dict.dao.Dict;
import org.nl.wms.system_manage.service.dict.dao.mapper.SysDictMapper;
import org.nl.wms.warehouse_manage.enums.IOSConstant;
import org.nl.wms.warehouse_manage.enums.IOSEnum;
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateDtlService;
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
import org.nl.wms.warehouse_manage.service.IRawAssistIStorService;
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
import org.nl.wms.warehouse_manage.service.dao.GroupPlateDtl;
import org.nl.wms.warehouse_manage.service.dao.IOStorInvDtl;
import org.nl.wms.warehouse_manage.service.dao.mapper.IOStorInvDtlMapper;
import org.nl.wms.warehouse_manage.service.dao.mapper.MdPbGroupplateMapper;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDisDto;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -90,6 +94,9 @@ public class PdaIosInServiceImpl implements PdaIosInService {
@Autowired
private IMdPbMeasureunitService iMdPbMeasureunitService;
@Autowired
private IMdPbGroupplateDtlService iMdPbGroupplateDtlService;
/**
* 库区服务
*/
@@ -127,15 +134,14 @@ public class PdaIosInServiceImpl implements PdaIosInService {
@Autowired
private ISchBaseRegionService iSchBaseRegionService;
@Transactional
@Override
public JSONObject groupPlate(JSONObject whereJson) {
// 物料编码
String materialId = whereJson.getString("material_id");
//载具号
String vehicle_code = whereJson.getString("vehicle_code");
// 数量
BigDecimal qty = whereJson.getBigDecimal("qty");
if (ObjectUtil.isEmpty(materialId)) {
throw new BadRequestException("物料信息不能为空!");
}
@@ -161,20 +167,38 @@ public class PdaIosInServiceImpl implements PdaIosInService {
if (count.size() > 0) {
throw new BadRequestException("载具编码:" + vehicle_code + "已存在库内:"+count.get(0).getStruct_code()+",请对数据进行核实!");
}
GroupPlate groupDao = GroupPlate.builder()
.group_id(IdUtil.getStringId())
.material_id(materDao.getMaterial_id())
.storagevehicle_code(vehicle_code)
.qty_unit_id(unitDao.getMeasure_unit_id())
.qty_unit_name(unitDao.getUnit_name())
.qty(qty)
.frozen_qty(BigDecimal.ZERO)
.status(GROUP_PLATE_STATUS.code("组盘"))
.create_id(SecurityUtils.getCurrentUserId())
.create_name(SecurityUtils.getCurrentNickName())
.create_time(DateUtil.now())
.build();
List<GroupPlateDtl> groupPlateDtlList = new ArrayList<>();
JSONArray dtlList = whereJson.getJSONArray("dtlList");
BigDecimal qty = new BigDecimal("0");
for (int i = 0; i < dtlList.size(); i++) {
JSONObject row = dtlList.getJSONObject(i);
GroupPlateDtl groupPlateDtl = new GroupPlateDtl();
BeanUtils.copyProperties(groupDao,groupPlateDtl);
groupPlateDtl.setGroupdtl_id(IdUtil.getStringId());
groupPlateDtl.setMater_frame(row.getString("mater_frame"));
groupPlateDtl.setQty(row.getBigDecimal("qty"));
groupPlateDtlList.add(groupPlateDtl);
qty = qty.add(row.getBigDecimal("qty"));
}
groupDao.setQty(qty);
iMdPbGroupplateService.save(groupDao);
iMdPbGroupplateDtlService.saveBatch(groupPlateDtlList);
JSONObject ret = new JSONObject();
ret.put("status", String.valueOf(HttpStatus.HTTP_OK));
ret.put("message","操作成功");
@@ -269,6 +293,11 @@ public class PdaIosInServiceImpl implements PdaIosInService {
whereJson.put("status", GROUP_PLATE_STATUS.code("组盘"));
whereJson.put("vehicleCode", whereJson.getString("search"));
List<JSONObject> ret = mdPbGroupplateMapper.getVehicleMaterial(whereJson);
//列表清单展示
ret.get(0).put("dtlList",iMdPbGroupplateDtlService.list(new LambdaQueryWrapper<>(GroupPlateDtl.class)
.eq(GroupPlateDtl::getGroup_id, ret.get(0).getString("group_id"))));
return ret.get(0);
}