rev:手工入库增加称重校验
This commit is contained in:
@@ -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.*;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -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<IOStorInvDis> disDaiList = ioStorInvDisMapper.selectList(
|
||||
new QueryWrapper<IOStorInvDis>().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<LinkedHashMap> tableMater = new ArrayList<>();
|
||||
disDaiList.forEach(item -> {
|
||||
tableMater.add(JSONObject.parseObject(JSONObject.toJSONString(item), LinkedHashMap.class));
|
||||
});
|
||||
Map<String, Object> 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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user