From 59a75b9aabd47c3fc222a7c05ba4320394e8d996 Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 27 Nov 2025 11:23:42 +0800 Subject: [PATCH] =?UTF-8?q?rev=EF=BC=9A=E6=89=8B=E5=B7=A5=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E5=A2=9E=E5=8A=A0=E7=A7=B0=E9=87=8D=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/util/tasks/HandInTask.java | 77 ++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HandInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HandInTask.java index 1f7deb1..648ac44 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HandInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HandInTask.java @@ -1,14 +1,19 @@ package org.nl.wms.sch_manage.service.util.tasks; 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.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.CodeUtil; import org.nl.common.utils.SecurityUtils; import org.nl.config.IdUtil; +import org.nl.config.SpringContextHolder; +import org.nl.system.service.param.dao.Param; +import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.basedata_manage.enums.BaseDataEnum; import org.nl.wms.sch_manage.enums.TaskEnum; import org.nl.wms.sch_manage.enums.TaskStatus; @@ -23,6 +28,7 @@ import org.nl.wms.sch_manage.service.util.TaskType; import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.service.IRawAssistIStorService; +import org.nl.wms.warehouse_management.service.dao.IOStorInv; import org.nl.wms.warehouse_management.service.dao.IOStorInvDis; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -30,6 +36,7 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.*; /** *

@@ -57,6 +64,12 @@ public class HandInTask extends AbstractTask { @Autowired private ISchBasePointService iSchBasePointService; + /** + * 点对点任务类 + */ + @Autowired + private PdaPointTask pdaPointTask; + @Override public String create(JSONObject json) { SchBaseTask task = new SchBaseTask(); @@ -208,6 +221,68 @@ public class HandInTask extends AbstractTask { @Override public JSONObject resultWeigh(SchBaseTask taskObj) { - return null; + // 返回数据 + JSONObject resultJson = new JSONObject(); + + // 查询当前分配明细 + List disDaiList = ioStorInvDisMapper.selectList( + new QueryWrapper().lambda() + .eq(IOStorInvDis::getTask_id, taskObj.getTask_id()) + ); + // 查询主表 + IOStorInv mstDao = rawAssistIStorService.getById(disDaiList.get(0).getIostorinv_id()); + + // 校验称重重量与组盘重量是否相符 + SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); + Param ParamDao = sysParamService.findByCode("material_weigh"); + String value = ParamDao.getValue(); + + // 物料浮动上限 + double value_up = NumberUtil.add(value, mstDao.getTotal_qty().toString()).doubleValue(); + // 物料浮动下限 + double value_down = NumberUtil.sub(mstDao.getTotal_qty().toString(),value).doubleValue(); + // 称重重量 + double double_qty = Double.parseDouble(taskObj.getWeigh_qty()); + + if (value_down <= double_qty && value_up >= double_qty) { + resultJson.put("is_weigh", IOSConstant.ONE); + return resultJson; + } else { + // 取消任务 + this.cancelTask(taskObj); + // 备注任务 + SchBaseTask taskDao = taskService.getById(taskObj.getTask_id()); + taskDao.setRemark("已取消-称重失败!称重重量为【"+taskObj.getWeigh_qty()+"】"); + taskService.updateById(taskDao); + + // 取消分配及删除单据 + ArrayList tableMater = new ArrayList<>(); + disDaiList.forEach(item -> { + tableMater.add(JSONObject.parseObject(JSONObject.toJSONString(item), LinkedHashMap.class)); + }); + Map map = new HashMap<>(); + map.put("tableMater",tableMater); + rawAssistIStorService.unDivStruct(map); + + // 删除单据 + String[] ids = {mstDao.getIostorinv_id()}; + rawAssistIStorService.deleteAll(ids); + + // 判断是否是库外站点 + if (ObjectUtil.isNotEmpty(mstDao.getSource_id())) { + // 创建点对点任务 + JSONObject jsonTask = new JSONObject(); + jsonTask.put("point_code1", IOSConstant.CZW_POINT); + jsonTask.put("point_code2", mstDao.getSource_id()); + jsonTask.put("vehicle_code", taskObj.getVehicle_code()); + jsonTask.put("material_id", taskObj.getMaterial_id()); + jsonTask.put("material_qty", taskObj.getMaterial_qty()); + jsonTask.put("task_type", TaskEnum.TASK_TYPE.code("料箱")); + jsonTask.put("remark", "物料称重失败退回!"); + pdaPointTask.create(jsonTask); + } + resultJson.put("is_weigh", IOSConstant.ZERO); + } + return resultJson; } }