add:称重反馈接口业务处理

This commit is contained in:
2025-09-11 11:00:33 +08:00
parent 8831ab5b96
commit afec578c1c
38 changed files with 821 additions and 74 deletions

View File

@@ -49,4 +49,11 @@ public class AcsToWmsController {
return new ResponseEntity<>(acsToWmsService.resultWeigh(whereJson), HttpStatus.OK); return new ResponseEntity<>(acsToWmsService.resultWeigh(whereJson), HttpStatus.OK);
} }
@PostMapping("/isPutVehicle")
@Log(value = "ACS请求WMS是否可以取放货")
@SaIgnore
public ResponseEntity<Object> isGetOrPut(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(acsToWmsService.isPutVehicle(whereJson), HttpStatus.OK);
}
} }

View File

@@ -40,11 +40,25 @@ public interface AcsToWmsService {
* ACS客户端--->WMS服务端 * ACS客户端--->WMS服务端
* ACS给WMS反馈称重重量 * ACS给WMS反馈称重重量
* @param whereJson { * @param whereJson {
* task_id: 任务标识
* task_code: 任务编码 * task_code: 任务编码
* weigh_qty: 称重重量 * weigh_qty: 称重重量
* } * }
* @return BaseResponse * @return BaseResponse
*/ */
BaseResponse resultWeigh(JSONObject whereJson); BaseResponse resultWeigh(JSONObject whereJson);
/**
* ACS客户端--->WMS服务端
* ACS请求WMS是否可以取放货
* @param whereJson {
* point_code: 点位编码
* task_code: 任务编码
* }
* @return BaseResponse {
* data: {
* is_confirm: 1-是0-否
* }
* }
*/
BaseResponse isPutVehicle(JSONObject whereJson);
} }

View File

@@ -1,18 +1,25 @@
package org.nl.wms.ext.service.impl; package org.nl.wms.ext.service.impl;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
import org.nl.wms.ext.enums.ResultAcsStatus; import org.nl.wms.ext.enums.ResultAcsStatus;
import org.nl.wms.ext.service.AcsToWmsService; import org.nl.wms.ext.service.AcsToWmsService;
import org.nl.wms.ext.util.BaseResponse; import org.nl.wms.ext.util.BaseResponse;
import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.ISchBaseTaskService; import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
import org.nl.wms.sch_manage.service.dao.SchBaseTask; import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.util.AbstractTask; import org.nl.wms.sch_manage.service.util.AbstractTask;
import org.nl.wms.sch_manage.service.util.TaskFactory; import org.nl.wms.sch_manage.service.util.TaskFactory;
import org.nl.wms.sch_manage.service.util.tasks.EmpVehicleInTask;
import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -45,12 +52,24 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Autowired @Autowired
private ISchBaseTaskService iSchBaseTaskService; private ISchBaseTaskService iSchBaseTaskService;
/*
* 点位服务
*/
@Autowired
private ISchBasePointService iSchBasePointService;
/** /**
* 任务工厂服务 * 任务工厂服务
*/ */
@Autowired @Autowired
private TaskFactory taskFactory; private TaskFactory taskFactory;
/**
* 载具信息服务
*/
@Autowired
private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@SneakyThrows @SneakyThrows
@@ -131,6 +150,57 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public BaseResponse resultWeigh(JSONObject whereJson) { public BaseResponse resultWeigh(JSONObject whereJson) {
return null; double weigh_qty = whereJson.getDoubleValue("weigh_qty");
if (ObjectUtil.isEmpty(weigh_qty) || weigh_qty == 0) {
throw new BadRequestException("称重称量不能为空或者0!");
}
// 查询任务
SchBaseTask taskDao = iSchBaseTaskService.getByCode(whereJson.getString("task_code"));
if (!taskDao.getTask_status().equals(TaskStatus.EXECUTING.getCode())) {
throw new BadRequestException("当前任务不在执行中【" + whereJson.getString("task_code") + "");
}
// 查询载具
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getByCode(taskDao.getVehicle_code());
// 判断是否是空载具入库
if (taskDao.getConfig_code().equals(EmpVehicleInTask.class.getSimpleName())) {
taskDao.setWeigh_qty(String.valueOf(weigh_qty));
} else {
// 物料重量 = 称重重量 - 载具重量
String weigh_qty_sub = NumberUtil.sub(weigh_qty, vehicleDao.getWeigth()).toString();
taskDao.setWeigh_qty(weigh_qty_sub);
}
// 调用任务类重量反馈方法
AbstractTask task = taskFactory.getTask(taskDao.getConfig_code());
JSONObject resultWeigh = task.resultWeigh(taskDao);
return BaseResponse.responseOk(resultWeigh);
}
@Override
@Transactional(rollbackFor = Exception.class)
public BaseResponse isPutVehicle(JSONObject whereJson) {
// 查询当前任务
SchBaseTask taskDao = iSchBaseTaskService.getByCode(whereJson.getString("task_code"));
// 查询当前点位
SchBasePoint pointDao = iSchBasePointService.getById(whereJson.getString("point_code"));
if (ObjectUtil.isEmpty(pointDao)) {
throw new BadRequestException("当前点位不存在【" + pointDao.getPoint_code() + "");
}
JSONObject data = new JSONObject();
// 判断当前点位是否有货
if (ObjectUtil.isNotEmpty(pointDao.getVehicle_code())) {
data.put("is_confirm", IOSConstant.ZERO);
return BaseResponse.responseOk("当前点位存在库存,不允许放货【" + pointDao.getPoint_code() + "", data);
}
// 判断任务是否一致
if (!taskDao.getTask_id().equals(pointDao.getIng_task_code())) {
data.put("is_confirm", IOSConstant.ZERO);
return BaseResponse.responseOk("当前点位存其他任务,不允许放货【" + pointDao.getIng_task_code() + "", data);
}
data.put("is_confirm", IOSConstant.ONE);
return BaseResponse.responseOk(data);
} }
} }

View File

@@ -17,8 +17,6 @@ public class AcsResponse extends BaseResponse {
private JSONArray errArr = new JSONArray(); private JSONArray errArr = new JSONArray();
private JSONArray data = new JSONArray();
private JSONObject resultData = new JSONObject(); private JSONObject resultData = new JSONObject();
/** /**

View File

@@ -2,6 +2,7 @@ package org.nl.wms.ext.util;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.http.HttpStatus; import cn.hutool.http.HttpStatus;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@@ -45,7 +46,7 @@ public class BaseResponse implements Serializable {
/** /**
* 扩展信息 * 扩展信息
*/ */
private Map<String, String> parameters = new HashMap(); private JSONObject data = new JSONObject();
public static BaseResponse build(String requestNo) { public static BaseResponse build(String requestNo) {
BaseResponse response = new BaseResponse(); BaseResponse response = new BaseResponse();
@@ -64,39 +65,29 @@ public class BaseResponse implements Serializable {
return response; return response;
} }
public static BaseResponse responseOk(String requestNo, String message) { public static BaseResponse responseOk(String message) {
BaseResponse response = new BaseResponse(); BaseResponse response = new BaseResponse();
response.setRequestNo(requestNo);
response.setStatus(HttpStatus.HTTP_OK); response.setStatus(HttpStatus.HTTP_OK);
response.setMessage(message); response.setMessage(message);
response.setResponseDate(DateUtil.now()); response.setResponseDate(DateUtil.now());
return response; return response;
} }
public static BaseResponse responseOk(String requestNo, HashMap<String, String> parameters) { public static BaseResponse responseOk(JSONObject data) {
BaseResponse response = new BaseResponse(); BaseResponse response = new BaseResponse();
response.setRequestNo(requestNo);
response.setStatus(HttpStatus.HTTP_OK); response.setStatus(HttpStatus.HTTP_OK);
response.setMessage("请求成功"); response.setMessage("请求成功");
response.setResponseDate(DateUtil.now()); response.setData(data);
response.setParameters(parameters);
return response;
}
public static BaseResponse responseError(String message) {
BaseResponse response = new BaseResponse();
response.setStatus(HttpStatus.HTTP_BAD_REQUEST);
response.setMessage(message);
response.setResponseDate(DateUtil.now()); response.setResponseDate(DateUtil.now());
return response; return response;
} }
public static BaseResponse responseError(String requestNo, int code, String message) { public static BaseResponse responseOk(String message,JSONObject data) {
BaseResponse response = new BaseResponse(); BaseResponse response = new BaseResponse();
response.setRequestNo(requestNo); response.setStatus(HttpStatus.HTTP_OK);
response.setStatus(code);
response.setMessage(message); response.setMessage(message);
response.setResponseDate(DateUtil.now()); response.setResponseDate(DateUtil.now());
response.setData(data);
return response; return response;
} }

View File

@@ -16,6 +16,7 @@ public interface PdaSmallBoxInService {
* @param whereJson { * @param whereJson {
* bill_type: 入库类型 * bill_type: 入库类型
* point_code: 入库点位 * point_code: 入库点位
* source_id: 库外站点
* rows: [ * rows: [
* storagevehicle_code: 载具编码 * storagevehicle_code: 载具编码
* group_id: 载具编码 * group_id: 载具编码

View File

@@ -95,6 +95,7 @@ public class PdaSmallBoxInServiceImpl implements PdaSmallBoxInService {
jsonMst.put("total_qty", group.getString("qty")); jsonMst.put("total_qty", group.getString("qty"));
jsonMst.put("detail_count", 1); jsonMst.put("detail_count", 1);
jsonMst.put("bill_type", whereJson.getString("bill_type")); jsonMst.put("bill_type", whereJson.getString("bill_type"));
jsonMst.put("source_id", whereJson.getString("source_id"));
jsonMst.put("biz_date", DateUtil.now()); jsonMst.put("biz_date", DateUtil.now());
// 组织明细数据 // 组织明细数据

View File

@@ -144,4 +144,10 @@ public class SchBaseTask implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String material_name; private String material_name;
/**
* 称重重量
*/
@TableField(exist = false)
private String weigh_qty;
} }

View File

@@ -182,5 +182,13 @@ public abstract class AbstractTask {
*/ */
public abstract void taskConfirm(String task_code); public abstract void taskConfirm(String task_code);
/**
* ACS反馈称重重量
* CTU专用
*
* @param taskObj 任务号
*/
public abstract JSONObject resultWeigh(SchBaseTask taskObj);
} }

View File

@@ -1,14 +1,19 @@
package org.nl.wms.sch_manage.service.util.tasks; package org.nl.wms.sch_manage.service.util.tasks;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; 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.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil; import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.config.IdUtil; 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.basedata_manage.enums.BaseDataEnum;
import org.nl.wms.sch_manage.enums.TaskEnum; import org.nl.wms.sch_manage.enums.TaskEnum;
import org.nl.wms.sch_manage.enums.TaskStatus; 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.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IRawAssistIStorService; 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.IOStorInvDis;
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +36,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*;
/** /**
* <p> * <p>
@@ -205,4 +212,57 @@ public class BackInTask extends AbstractTask {
@Transactional @Transactional
public void taskConfirm(String task_code) { public void taskConfirm(String task_code) {
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
// 返回数据
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);
resultJson.put("is_weigh", IOSConstant.ZERO);
}
return resultJson;
}
} }

View File

@@ -253,6 +253,11 @@ public class BackOutTask extends AbstractTask {
} }
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
/** /**
* 生成点位点任务:称重位至库外站点 * 生成点位点任务:称重位至库外站点
* *

View File

@@ -1,6 +1,7 @@
package org.nl.wms.sch_manage.service.util.tasks; package org.nl.wms.sch_manage.service.util.tasks;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -9,6 +10,9 @@ import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil; import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.config.IdUtil; 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.service.IStructattrService; 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.Structattr;
import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.enums.TaskStatus;
@@ -22,13 +26,19 @@ import org.nl.wms.sch_manage.service.util.AcsTaskDto;
import org.nl.wms.sch_manage.service.util.TaskType; import org.nl.wms.sch_manage.service.util.TaskType;
import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
import org.nl.wms.warehouse_management.service.IStIvtCheckdtlService; import org.nl.wms.warehouse_management.service.IStIvtCheckdtlService;
import org.nl.wms.warehouse_management.service.IStIvtCheckmstService; import org.nl.wms.warehouse_management.service.IStIvtCheckmstService;
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.nl.wms.warehouse_management.service.dao.StIvtCheckdtl; import org.nl.wms.warehouse_management.service.dao.StIvtCheckdtl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/** /**
* <p> * <p>
* 盘点回库移库任务类 * 盘点回库移库任务类
@@ -71,6 +81,12 @@ public class CheckBackMoveTask extends AbstractTask {
@Autowired @Autowired
private IStIvtCheckdtlService iStIvtCheckdtlService; private IStIvtCheckdtlService iStIvtCheckdtlService;
/**
* 组盘记录服务
*/
@Autowired
private IMdPbGroupplateService iMdPbGroupplateService;
@Override @Override
public String create(JSONObject json) { public String create(JSONObject json) {
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
@@ -188,10 +204,15 @@ public class CheckBackMoveTask extends AbstractTask {
new QueryWrapper<StIvtCheckdtl>().lambda() new QueryWrapper<StIvtCheckdtl>().lambda()
.eq(StIvtCheckdtl::getTask_id, moveTask.getTask_id()) .eq(StIvtCheckdtl::getTask_id, moveTask.getTask_id())
); );
// 更新盘点明细状态 // 原盘点重量
BigDecimal fac_qty = dtlDao.getFac_qty();
// 原库存重量
BigDecimal base_qty = dtlDao.getBase_qty();
dtlDao.setStatus(IOSEnum.CHECK_DTL_STATUS.code("盘点中") ); // 更新盘点明细状态以及数量
dtlDao.setStatus(IOSEnum.CHECK_DTL_STATUS.code("盘点中"));
dtlDao.setCheck_result(IOSConstant.ZERO); dtlDao.setCheck_result(IOSConstant.ZERO);
dtlDao.setFac_qty(BigDecimal.ZERO);
dtlDao.setIs_down(IOSConstant.ZERO); dtlDao.setIs_down(IOSConstant.ZERO);
dtlDao.setCheck_optid(SecurityUtils.getCurrentUserId()); dtlDao.setCheck_optid(SecurityUtils.getCurrentUserId());
dtlDao.setCheck_optname(SecurityUtils.getCurrentNickName()); dtlDao.setCheck_optname(SecurityUtils.getCurrentNickName());
@@ -201,6 +222,23 @@ public class CheckBackMoveTask extends AbstractTask {
// 更新主表状态 // 更新主表状态
iStIvtCheckmstService.updateMst(dtlDao.getCheck_id()); iStIvtCheckmstService.updateMst(dtlDao.getCheck_id());
// 更新库存数量 生成损益单据
List<StIvtCheckdtl> dtlDaoList = new ArrayList<>();
dtlDao.setBase_qty(fac_qty);
dtlDao.setFac_qty(base_qty);
dtlDaoList.add(dtlDao);
iStIvtCheckdtlService.createMore(dtlDaoList, dtlDao.getCheck_id());
// 更新组盘记录表
iMdPbGroupplateService.update(
new UpdateWrapper<GroupPlate>().lambda()
.set(GroupPlate::getQty, base_qty)
.eq(GroupPlate::getMaterial_id, dtlDao.getMaterial_id())
.eq(GroupPlate::getStoragevehicle_code, dtlDao.getStoragevehicle_code())
.eq(GroupPlate::getPcsn, dtlDao.getPcsn())
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
);
// 更新任务状态 // 更新任务状态
taskObj.setRemark("已取消"); taskObj.setRemark("已取消");
taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskObj.setTask_status(TaskStatus.CANCELED.getCode());
@@ -238,4 +276,42 @@ public class CheckBackMoveTask extends AbstractTask {
iStIvtCheckmstService.updateMst(dtlDao.getCheck_id()); iStIvtCheckmstService.updateMst(dtlDao.getCheck_id());
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
// 返回数据
JSONObject resultJson = new JSONObject();
// 查询明细
SchBaseTask moveTask = taskService.getById(taskObj.getContact_task());
StIvtCheckdtl dtlDao = iStIvtCheckdtlService.getOne(
new QueryWrapper<StIvtCheckdtl>().lambda()
.eq(StIvtCheckdtl::getTask_id, moveTask.getTask_id())
);
// 校验称重重量与组盘重量是否相符
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
Param ParamDao = sysParamService.findByCode("material_weigh");
String value = ParamDao.getValue();
// 物料浮动上限
double value_up = NumberUtil.add(value, dtlDao.getFac_qty().toString()).doubleValue();
// 物料浮动下限
double value_down = NumberUtil.sub(dtlDao.getFac_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);
// 反馈称重失败
resultJson.put("is_weigh", IOSConstant.ZERO);
}
return resultJson;
}
} }

View File

@@ -225,4 +225,9 @@ public class CheckMoveTask extends AbstractTask {
iStIvtCheckmstService.updateMst(dtlDao.getCheck_id()); iStIvtCheckmstService.updateMst(dtlDao.getCheck_id());
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
} }

View File

@@ -1,6 +1,7 @@
package org.nl.wms.sch_manage.service.util.tasks; package org.nl.wms.sch_manage.service.util.tasks;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -10,6 +11,9 @@ import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil; import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.config.IdUtil; 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.basedata_manage.enums.BaseDataEnum;
import org.nl.wms.sch_manage.enums.TaskEnum; import org.nl.wms.sch_manage.enums.TaskEnum;
import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.enums.TaskStatus;
@@ -25,9 +29,8 @@ import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IRawAssistIStorService; import org.nl.wms.warehouse_management.service.IRawAssistIStorService;
import org.nl.wms.warehouse_management.service.IStIvtCombinedBoxService; import org.nl.wms.warehouse_management.service.IStIvtCombinedBoxService;
import org.nl.wms.warehouse_management.service.dao.IOStorInvDis; import org.nl.wms.warehouse_management.service.dao.*;
import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl; import org.nl.wms.warehouse_management.service.dao.mapper.GroupPlateMapper;
import org.nl.wms.warehouse_management.service.dao.StIvtCombinedBox;
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -35,6 +38,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*;
/** /**
* <p> * <p>
@@ -80,6 +84,12 @@ public class CombinedBoxInTask extends AbstractTask {
@Autowired @Autowired
private IOStorInvDtlMapper ioStorInvDtlMapper; private IOStorInvDtlMapper ioStorInvDtlMapper;
/*
* 组盘记录服务
*/
@Resource
private GroupPlateMapper groupPlateMapper;
@Override @Override
@Transactional @Transactional
public String create(JSONObject json) { public String create(JSONObject json) {
@@ -210,14 +220,35 @@ public class CombinedBoxInTask extends AbstractTask {
.set(SchBaseTask::getRemark, "已取消") .set(SchBaseTask::getRemark, "已取消")
.eq(SchBaseTask::getTask_id, taskObj.getTask_id()) .eq(SchBaseTask::getTask_id, taskObj.getTask_id())
); );
//分配表清除任务
ioStorInvDisMapper.update(new IOStorInvDis(), new LambdaUpdateWrapper<>(IOStorInvDis.class) // 查询当前分配明细
.set(IOStorInvDis::getTask_id, null) List<IOStorInvDis> disDaiList = ioStorInvDisMapper.selectList(
.set(IOStorInvDis::getPoint_code, null) new QueryWrapper<IOStorInvDis>().lambda()
.set(IOStorInvDis::getIs_issued, 0) .eq(IOStorInvDis::getTask_id, taskObj.getTask_id())
.set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("未生成"))
.eq(IOStorInvDis::getTask_id, taskObj.getTask_id())
); );
// 查询明细
IOStorInvDtl ioStorInvDtl = ioStorInvDtlMapper.selectById(disDaiList.get(0).getIostorinvdtl_id());
// 查询主表
IOStorInv mstDao = rawAssistIStorService.getById(disDaiList.get(0).getIostorinv_id());
// 取消分配及删除单据
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);
// 更新合箱记录状态为移库完成
StIvtCombinedBox boxDao = iStIvtCombinedBoxService.getById(ioStorInvDtl.getSource_bill_code());
boxDao.setStatus(IOSEnum.COMBINED_BOX_STATUS.code("移库完成"));
iStIvtCombinedBoxService.updateById(boxDao);
// 更新任务状态 // 更新任务状态
taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskObj.setTask_status(TaskStatus.CANCELED.getCode());
@@ -240,4 +271,52 @@ public class CombinedBoxInTask extends AbstractTask {
boxDao.setStatus(IOSEnum.COMBINED_BOX_STATUS.code("完成")); boxDao.setStatus(IOSEnum.COMBINED_BOX_STATUS.code("完成"));
iStIvtCombinedBoxService.updateById(boxDao); iStIvtCombinedBoxService.updateById(boxDao);
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
// 返回数据
JSONObject resultJson = new JSONObject();
// 查询当前分配明细
List<IOStorInvDis> disDaiList = ioStorInvDisMapper.selectList(
new QueryWrapper<IOStorInvDis>().lambda()
.eq(IOStorInvDis::getTask_id, taskObj.getTask_id())
);
// 校验称重重量与组盘重量是否相符
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
Param ParamDao = sysParamService.findByCode("material_weigh");
String value = ParamDao.getValue();
// 查询当前组盘信息
GroupPlate groupPlate = groupPlateMapper.selectOne(
new QueryWrapper<GroupPlate>().lambda()
.eq(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code())
.eq(GroupPlate::getMaterial_id, disDaiList.get(0).getMaterial_id())
.eq(GroupPlate::getPcsn, disDaiList.get(0).getPcsn())
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘"))
);
// 物料浮动上限
double value_up = NumberUtil.add(value, groupPlate.getQty().toString()).doubleValue();
// 物料浮动下限
double value_down = NumberUtil.sub(groupPlate.getQty().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);
resultJson.put("is_weigh", IOSConstant.ZERO);
}
return resultJson;
}
} }

View File

@@ -262,4 +262,9 @@ public class CombinedBoxMoveTask extends AbstractTask {
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
); );
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
} }

View File

@@ -1,14 +1,19 @@
package org.nl.wms.sch_manage.service.util.tasks; package org.nl.wms.sch_manage.service.util.tasks;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; 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.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil; import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.config.IdUtil; 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.basedata_manage.enums.BaseDataEnum;
import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.sch_manage.enums.TaskEnum; import org.nl.wms.sch_manage.enums.TaskEnum;
@@ -24,6 +29,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.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IRawAssistIStorService; 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.IOStorInvDis;
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +37,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*;
/** /**
* <p> * <p>
@@ -43,12 +50,16 @@ import javax.annotation.Resource;
@Component(value = "DetainInTask") @Component(value = "DetainInTask")
@TaskType("DetainInTask") @TaskType("DetainInTask")
public class DetainInTask extends AbstractTask { public class DetainInTask extends AbstractTask {
@Autowired @Autowired
private ISchBaseTaskService taskService; private ISchBaseTaskService taskService;
@Resource @Resource
private IRawAssistIStorService rawAssistIStorService; private IRawAssistIStorService rawAssistIStorService;
/**
* 分配明细服务
*/
@Resource @Resource
private IOStorInvDisMapper ioStorInvDisMapper; private IOStorInvDisMapper ioStorInvDisMapper;
@@ -58,6 +69,12 @@ public class DetainInTask extends AbstractTask {
@Autowired @Autowired
private ISchBasePointService iSchBasePointService; private ISchBasePointService iSchBasePointService;
/**
* 点对点任务类
*/
@Autowired
private PdaPointTask pdaPointTask;
@Override @Override
@Transactional @Transactional
public String create(JSONObject json) { public String create(JSONObject json) {
@@ -208,4 +225,71 @@ public class DetainInTask extends AbstractTask {
@Override @Override
public void taskConfirm(String task_code) { public void taskConfirm(String task_code) {
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
// 返回数据
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;
}
} }

View File

@@ -1,6 +1,7 @@
package org.nl.wms.sch_manage.service.util.tasks; package org.nl.wms.sch_manage.service.util.tasks;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -9,7 +10,12 @@ import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil; import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.config.IdUtil; 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.service.IMdPbStoragevehicleinfoService;
import org.nl.wms.basedata_manage.service.IStructattrService; import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.sch_manage.enums.TaskEnum; import org.nl.wms.sch_manage.enums.TaskEnum;
import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.enums.TaskStatus;
@@ -23,7 +29,9 @@ import org.nl.wms.sch_manage.service.util.AcsTaskDto;
import org.nl.wms.sch_manage.service.util.TaskType; import org.nl.wms.sch_manage.service.util.TaskType;
import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IStIvtPieceBoxDtlService;
import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.nl.wms.warehouse_management.service.dao.StIvtPieceBoxDtl;
import org.nl.wms.warehouse_management.service.dao.mapper.GroupPlateMapper; import org.nl.wms.warehouse_management.service.dao.mapper.GroupPlateMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -67,6 +75,24 @@ public class EmpVehicleInTask extends AbstractTask {
@Resource @Resource
private GroupPlateMapper groupPlateMapper; private GroupPlateMapper groupPlateMapper;
/*
* 载具信息服务
*/
@Resource
private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService;
/**
* 点对点任务类
*/
@Autowired
private PdaPointTask pdaPointTask;
/**
* 拼箱明细服务
*/
@Autowired
private IStIvtPieceBoxDtlService iStIvtPieceBoxDtlService;
@Override @Override
public String create(JSONObject json) { public String create(JSONObject json) {
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
@@ -76,7 +102,9 @@ public class EmpVehicleInTask extends AbstractTask {
task.setConfig_code(EmpVehicleInTask.class.getSimpleName()); task.setConfig_code(EmpVehicleInTask.class.getSimpleName());
task.setPoint_code1(json.getString("point_code1")); task.setPoint_code1(json.getString("point_code1"));
task.setPoint_code2(json.getString("point_code2")); task.setPoint_code2(json.getString("point_code2"));
task.setPoint_code3(json.getString("point_code3"));
task.setVehicle_code(json.getString("vehicle_code")); task.setVehicle_code(json.getString("vehicle_code"));
task.setExt_group_data(json.getString("ext_group_data"));
task.setRequest_param(json.toString()); task.setRequest_param(json.toString());
task.setPriority(json.getString("Priority")); task.setPriority(json.getString("Priority"));
task.setTask_type(TaskEnum.TASK_TYPE.code("载具")); task.setTask_type(TaskEnum.TASK_TYPE.code("载具"));
@@ -192,7 +220,6 @@ public class EmpVehicleInTask extends AbstractTask {
@Transactional @Transactional
public void cancelTask(SchBaseTask taskObj) { public void cancelTask(SchBaseTask taskObj) {
// 更新终点 // 更新终点
iStructattrService.update( iStructattrService.update(
new UpdateWrapper<Structattr>().lambda() new UpdateWrapper<Structattr>().lambda()
@@ -204,6 +231,18 @@ public class EmpVehicleInTask extends AbstractTask {
taskObj.setRemark("已取消"); taskObj.setRemark("已取消");
taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskService.updateById(taskObj); taskService.updateById(taskObj);
// 判断是否是拼箱入库的空载具
if (ObjectUtil.isNotEmpty(taskObj.getExt_group_data())) {
// 更新拼箱明细
iStIvtPieceBoxDtlService.update(
new UpdateWrapper<StIvtPieceBoxDtl>().lambda()
.eq(StIvtPieceBoxDtl::getId, taskObj.getExt_group_data())
.set(StIvtPieceBoxDtl::getIs_get,IOSConstant.IS_DELETE_NO)
.set(StIvtPieceBoxDtl::getIn_task_id,"")
.set(StIvtPieceBoxDtl::getBill_status,IOSEnum.PIECE_DTL_STATUS.code("拼箱中"))
);
}
} }
@Override @Override
@@ -216,4 +255,51 @@ public class EmpVehicleInTask extends AbstractTask {
); );
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
// 返回数据
JSONObject resultJson = new JSONObject();
// 查询当前载具信息
MdPbStoragevehicleinfo vehicle = iMdPbStoragevehicleinfoService.getByCode(taskObj.getVehicle_code());
// 校验称重重量与组盘重量是否相符
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
Param ParamDao = sysParamService.findByCode("vehicle_weigh");
String value = ParamDao.getValue();
// 物料浮动上限
double value_up = NumberUtil.add(value, vehicle.getWeigth().toString()).doubleValue();
// 物料浮动下限
double value_down = NumberUtil.sub(vehicle.getWeigth().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);
// 判断是否是库外站点
if (ObjectUtil.isNotEmpty(taskObj.getPoint_code3())) {
// 退回至库外站点
JSONObject jsonTask = new JSONObject();
jsonTask.put("point_code1", IOSConstant.CZW_POINT);
jsonTask.put("point_code2", taskObj.getPoint_code3());
jsonTask.put("vehicle_code", taskObj.getVehicle_code());
jsonTask.put("task_type", TaskEnum.TASK_TYPE.code("载具"));
jsonTask.put("remark", "载具称重失败退回!");
pdaPointTask.create(jsonTask);
}
// 反馈称重失败
resultJson.put("is_weigh", IOSConstant.ZERO);
}
return resultJson;
}
} }

View File

@@ -166,6 +166,11 @@ public class EmpVehicleOutTask extends AbstractTask {
public void taskConfirm(String task_code) { public void taskConfirm(String task_code) {
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
@Transactional @Transactional
public void finishTask(SchBaseTask taskObj) { public void finishTask(SchBaseTask taskObj) {
// 更新起点 // 更新起点

View File

@@ -205,4 +205,9 @@ public class HandInTask extends AbstractTask {
@Override @Override
public void taskConfirm(String task_code) { public void taskConfirm(String task_code) {
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
} }

View File

@@ -230,4 +230,9 @@ public class HandOutTask extends AbstractTask {
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库")) .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))
); );
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
} }

View File

@@ -212,4 +212,9 @@ public class HotOutTask extends AbstractTask {
@Override @Override
public void taskConfirm(String task_code) { public void taskConfirm(String task_code) {
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
} }

View File

@@ -156,6 +156,11 @@ public class InsideMoveTask extends AbstractTask {
public void taskConfirm(String task_code) { public void taskConfirm(String task_code) {
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
@Transactional @Transactional
public void finishTask(SchBaseTask taskObj) { public void finishTask(SchBaseTask taskObj) {
// 完成任务 // 完成任务

View File

@@ -227,9 +227,15 @@ public class KwzdInTask extends AbstractTask {
JSONObject jsonInParam = new JSONObject(); JSONObject jsonInParam = new JSONObject();
jsonInParam.put("bill_type",IOSEnum.IN_BILL_TYPE.code("收货入库")); jsonInParam.put("bill_type",IOSEnum.IN_BILL_TYPE.code("收货入库"));
jsonInParam.put("point_code", IOSConstant.CZW_POINT); jsonInParam.put("point_code", IOSConstant.CZW_POINT);
jsonInParam.put("source_id", taskObj.getPoint_code1());
jsonInParam.put("rows", rows); jsonInParam.put("rows", rows);
// 调用平板服务 // 调用平板服务
pdaSmallBoxInService.confirmIn(jsonInParam); pdaSmallBoxInService.confirmIn(jsonInParam);
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
} }

View File

@@ -86,6 +86,7 @@ public class PdaPointTask extends AbstractTask {
task.setRequest_param(json.toString()); task.setRequest_param(json.toString());
task.setPriority(json.getString("Priority")); task.setPriority(json.getString("Priority"));
task.setContact_task(json.getString("contact_task")); task.setContact_task(json.getString("contact_task"));
task.setRemark(json.getString("remark"));
task.setCreate_id(SecurityUtils.getCurrentUserId()); task.setCreate_id(SecurityUtils.getCurrentUserId());
task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_name(SecurityUtils.getCurrentNickName());
task.setCreate_time(DateUtil.now()); task.setCreate_time(DateUtil.now());
@@ -186,6 +187,11 @@ public class PdaPointTask extends AbstractTask {
public void taskConfirm(String task_code) { public void taskConfirm(String task_code) {
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
@Transactional @Transactional
public void finishTask(SchBaseTask taskObj) { public void finishTask(SchBaseTask taskObj) {
// 更新起点 // 更新起点
@@ -279,6 +285,7 @@ public class PdaPointTask extends AbstractTask {
JSONObject jsonParam = new JSONObject(); JSONObject jsonParam = new JSONObject();
jsonParam.put("storagevehicle_code", taskObj.getVehicle_code()); jsonParam.put("storagevehicle_code", taskObj.getVehicle_code());
jsonParam.put("point_code", IOSConstant.CZW_POINT); jsonParam.put("point_code", IOSConstant.CZW_POINT);
jsonParam.put("point_code3", taskObj.getPoint_code1());
jsonParam.put("sect_code", taskObj.getExt_group_data()); jsonParam.put("sect_code", taskObj.getExt_group_data());
vehicleInService.create(jsonParam); vehicleInService.create(jsonParam);
} }

View File

@@ -1,6 +1,7 @@
package org.nl.wms.sch_manage.service.util.tasks; package org.nl.wms.sch_manage.service.util.tasks;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -10,10 +11,14 @@ import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil; import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.config.IdUtil; 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.basedata_manage.enums.BaseDataEnum;
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService;
import org.nl.wms.basedata_manage.service.IStructattrService; import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.sch_manage.enums.TaskEnum; import org.nl.wms.sch_manage.enums.TaskEnum;
import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.enums.TaskStatus;
@@ -34,6 +39,7 @@ import org.nl.wms.warehouse_management.service.IStIvtPieceBoxMstService;
import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.nl.wms.warehouse_management.service.dao.IOStorInvDis; import org.nl.wms.warehouse_management.service.dao.IOStorInvDis;
import org.nl.wms.warehouse_management.service.dao.StIvtPieceBoxDtl; import org.nl.wms.warehouse_management.service.dao.StIvtPieceBoxDtl;
import org.nl.wms.warehouse_management.service.dao.StIvtPieceBoxMst;
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -240,6 +246,15 @@ public class PieceBoxInTask extends AbstractTask {
taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark("已取消"); taskObj.setRemark("已取消");
taskService.updateById(taskObj); taskService.updateById(taskObj);
// 查询拼箱明细记录并更新状态
StIvtPieceBoxDtl boxDtlDao = iStIvtPieceBoxDtlService.getOne(
new QueryWrapper<StIvtPieceBoxDtl>().lambda()
.eq(StIvtPieceBoxDtl::getIn_task_id, taskObj.getTask_id())
);
boxDtlDao.setIs_get(IOSConstant.ZERO);
boxDtlDao.setIn_task_id("");
iStIvtPieceBoxDtlService.updateById(boxDtlDao);
} }
@Override @Override
@@ -276,4 +291,37 @@ public class PieceBoxInTask extends AbstractTask {
.eq(MdPbStoragevehicleext::getPcsn, boxDtlDao.getPcsn()) .eq(MdPbStoragevehicleext::getPcsn, boxDtlDao.getPcsn())
); );
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
// 返回数据
JSONObject resultJson = new JSONObject();
// 校验称重重量与组盘重量是否相符
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
Param ParamDao = sysParamService.findByCode("material_weigh");
String value = ParamDao.getValue();
// 物料浮动上限
double value_up = NumberUtil.add(value, taskObj.getMaterial_qty().toString()).doubleValue();
// 物料浮动下限
double value_down = NumberUtil.sub(taskObj.getMaterial_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);
// 反馈称重失败
resultJson.put("is_weigh", IOSConstant.ZERO);
}
return resultJson;
}
} }

View File

@@ -267,4 +267,9 @@ public class PieceBoxMoveTask extends AbstractTask {
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
); );
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
} }

View File

@@ -213,4 +213,9 @@ public class QualityOutTask extends AbstractTask {
@Override @Override
public void taskConfirm(String task_code) { public void taskConfirm(String task_code) {
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
} }

View File

@@ -252,4 +252,9 @@ public class ReceiveOutTask extends AbstractTask {
materDtlDao.setCreate_time(DateUtil.now()); materDtlDao.setCreate_time(DateUtil.now());
iPdmBomCallMaterialDtlService.save(materDtlDao); iPdmBomCallMaterialDtlService.save(materDtlDao);
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
} }

View File

@@ -1,6 +1,7 @@
package org.nl.wms.sch_manage.service.util.tasks; package org.nl.wms.sch_manage.service.util.tasks;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -10,9 +11,16 @@ import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil; import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.config.IdUtil; 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.basedata_manage.enums.BaseDataEnum;
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
import org.nl.wms.basedata_manage.service.IStructattrService; import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.pdm_manage.service.IPdmBomCallMaterialDtlService;
import org.nl.wms.pdm_manage.service.dao.PdmBomCallMaterialDtl;
import org.nl.wms.sch_manage.enums.TaskEnum; import org.nl.wms.sch_manage.enums.TaskEnum;
import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBasePointService; import org.nl.wms.sch_manage.service.ISchBasePointService;
@@ -28,8 +36,12 @@ import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService; import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
import org.nl.wms.warehouse_management.service.IRawAssistIStorService; 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.GroupPlate;
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.IOStorInvDis;
import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl;
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper;
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -65,6 +77,24 @@ public class SelectBackInTask extends AbstractTask {
@Autowired @Autowired
private IStructattrService iStructattrService; private IStructattrService iStructattrService;
/**
* 分配明细mapper
*/
@Autowired
private IOStorInvDisMapper ioStorInvDisMapper;
/**
* 明细mapper
*/
@Autowired
private IOStorInvDtlMapper ioStorInvDtlMapper;
/**
* 叫料明细服务
*/
@Autowired
private IPdmBomCallMaterialDtlService iPdmBomCallMaterialDtlService;
@Override @Override
public String create(JSONObject json) { public String create(JSONObject json) {
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
@@ -78,6 +108,7 @@ public class SelectBackInTask extends AbstractTask {
task.setMaterial_id(json.getString("material_id")); task.setMaterial_id(json.getString("material_id"));
task.setMaterial_qty(json.getBigDecimal("material_qty")); task.setMaterial_qty(json.getBigDecimal("material_qty"));
task.setGroup_id(json.getString("group_id")); task.setGroup_id(json.getString("group_id"));
task.setExt_group_data(json.getString("ext_group_data"));
task.setRequest_param(json.toString()); task.setRequest_param(json.toString());
task.setTask_type(TaskEnum.TASK_TYPE.code("料箱")); task.setTask_type(TaskEnum.TASK_TYPE.code("料箱"));
task.setPriority(json.getString("Priority")); task.setPriority(json.getString("Priority"));
@@ -196,6 +227,33 @@ public class SelectBackInTask extends AbstractTask {
taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark("已取消"); taskObj.setRemark("已取消");
taskService.updateById(taskObj); taskService.updateById(taskObj);
// 查询分配明细
IOStorInvDis ioStorInvDis = ioStorInvDisMapper.selectById(taskObj.getExt_group_data());
// 查询明细
IOStorInvDtl ioStorInvDtl = ioStorInvDtlMapper.selectById(ioStorInvDis.getIostorinvdtl_id());
// 更新明细是否拣选为是
ioStorInvDtl.setIs_check(IOSConstant.ONE);
ioStorInvDtlMapper.updateById(ioStorInvDtl);
// 判断是否有额外组盘信息
if (ObjectUtil.isNotEmpty(ioStorInvDtl.getNew_vehicle())) {
// 删除组盘信息
iMdPbGroupplateService.remove(
new QueryWrapper<GroupPlate>().lambda()
.eq(GroupPlate::getStoragevehicle_code, ioStorInvDtl.getNew_vehicle())
.eq(GroupPlate::getMaterial_id, ioStorInvDis.getMaterial_id())
.eq(GroupPlate::getPcsn, ioStorInvDis.getPcsn())
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘"))
);
// 更新叫料明细组盘信息
iPdmBomCallMaterialDtlService.update(
new UpdateWrapper<PdmBomCallMaterialDtl>().lambda()
.set(PdmBomCallMaterialDtl::getVehicle_code, ioStorInvDis.getStoragevehicle_code())
.eq(PdmBomCallMaterialDtl::getOut_dis_id, ioStorInvDis.getIostorinvdis_id())
);
}
} }
@Override @Override
@@ -226,4 +284,37 @@ public class SelectBackInTask extends AbstractTask {
iStructattrService.updateById(attrDao); iStructattrService.updateById(attrDao);
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
// 返回数据
JSONObject resultJson = new JSONObject();
// 校验称重重量与组盘重量是否相符
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
Param ParamDao = sysParamService.findByCode("material_weigh");
String value = ParamDao.getValue();
// 物料浮动上限
double value_up = NumberUtil.add(value, taskObj.getMaterial_qty().toString()).doubleValue();
// 物料浮动下限
double value_down = NumberUtil.sub(taskObj.getMaterial_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);
// 反馈称重失败
resultJson.put("is_weigh", IOSConstant.ZERO);
}
return resultJson;
}
} }

View File

@@ -174,6 +174,11 @@ public class ThreePointTask extends AbstractTask {
public void taskConfirm(String task_code) { public void taskConfirm(String task_code) {
} }
@Override
public JSONObject resultWeigh(SchBaseTask taskObj) {
return null;
}
@Transactional @Transactional
public void finishTask(SchBaseTask taskObj) { public void finishTask(SchBaseTask taskObj) {
// 更新point_code2 // 更新point_code2

View File

@@ -114,5 +114,5 @@ public class IOSConstant {
/** /**
* 物料id焊丝盘状 * 物料id焊丝盘状
*/ */
public final static String MATERIAL_HS_PZ = "1945687018646409216"; public final static String MATERIAL_HS_PZ = "19456870186461192161";
} }

View File

@@ -31,6 +31,7 @@ public interface VehicleInService {
* @param whereJson { * @param whereJson {
* storagevehicle_code: 载具编码 * storagevehicle_code: 载具编码
* point_code: 入库点位 * point_code: 入库点位
* point_code3: 用于称重退回使用
* sect_code: 库区编码 * sect_code: 库区编码
* } * }
*/ */

View File

@@ -439,9 +439,19 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv>
unassign_qty = unassign_qty - outAllocation.getCanuse_qty().doubleValue(); unassign_qty = unassign_qty - outAllocation.getCanuse_qty().doubleValue();
if (unassign_qty < 0) { if (unassign_qty < 0) {
ioStorInvDis.setIs_check(IOSConstant.ONE); // 判断是否领料出库
ioStorInvDis.setCheck_qty(outAllocation.getCanuse_qty()); if (ioStorInv.getBill_type().equals(IOSEnum.OUT_BILL_TYPE.code("领料出库"))) {
play_qty = NumberUtil.add(play_qty,unassign_qty); // 判断是否是盘丝(焊状)
if (!dtl.getMaterial_id().equals(IOSConstant.MATERIAL_HS_PZ)) {
ioStorInvDis.setIs_check(IOSConstant.ONE);
ioStorInvDis.setCheck_qty(outAllocation.getCanuse_qty());
play_qty = NumberUtil.add(play_qty,unassign_qty);
}
} else {
ioStorInvDis.setIs_check(IOSConstant.ONE);
ioStorInvDis.setCheck_qty(outAllocation.getCanuse_qty());
play_qty = NumberUtil.add(play_qty,unassign_qty);
}
unassign_qty = 0; unassign_qty = 0;
} }
@@ -670,9 +680,19 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv>
unassign_qty = unassign_qty - outAllocation.getCanuse_qty().doubleValue(); unassign_qty = unassign_qty - outAllocation.getCanuse_qty().doubleValue();
if (unassign_qty < 0) { if (unassign_qty < 0) {
ioStorInvDis.setIs_check(IOSConstant.ONE); // 判断是否领料出库
ioStorInvDis.setCheck_qty(outAllocation.getCanuse_qty()); if (ioStorInv.getBill_type().equals(IOSEnum.OUT_BILL_TYPE.code("领料出库"))) {
play_qty = NumberUtil.add(play_qty,unassign_qty); // 判断是否是盘丝(焊状)
if (!dtl.getMaterial_id().equals(IOSConstant.MATERIAL_HS_PZ)) {
ioStorInvDis.setIs_check(IOSConstant.ONE);
ioStorInvDis.setCheck_qty(outAllocation.getCanuse_qty());
play_qty = NumberUtil.add(play_qty,unassign_qty);
}
} else {
ioStorInvDis.setIs_check(IOSConstant.ONE);
ioStorInvDis.setCheck_qty(outAllocation.getCanuse_qty());
play_qty = NumberUtil.add(play_qty,unassign_qty);
}
unassign_qty = 0; unassign_qty = 0;
} }
//分配明细 //分配明细
@@ -892,9 +912,19 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv>
unassign_qty = unassign_qty - ivt.getDoubleValue("canuse_qty"); unassign_qty = unassign_qty - ivt.getDoubleValue("canuse_qty");
if (unassign_qty < 0) { if (unassign_qty < 0) {
ioStorInvDis.setIs_check(IOSConstant.ONE); // 判断是否领料出库
ioStorInvDis.setCheck_qty(ivt.getBigDecimal("canuse_qty")); if (ioStorInv.getBill_type().equals(IOSEnum.OUT_BILL_TYPE.code("领料出库"))) {
play_qty = NumberUtil.add(play_qty,unassign_qty); // 判断是否是盘丝(焊状)
if (!dtl.getMaterial_id().equals(IOSConstant.MATERIAL_HS_PZ)) {
ioStorInvDis.setIs_check(IOSConstant.ONE);
ioStorInvDis.setCheck_qty(ivt.getBigDecimal("canuse_qty"));
play_qty = NumberUtil.add(play_qty,unassign_qty);
}
} else {
ioStorInvDis.setIs_check(IOSConstant.ONE);
ioStorInvDis.setCheck_qty(ivt.getBigDecimal("canuse_qty"));
play_qty = NumberUtil.add(play_qty,unassign_qty);
}
unassign_qty = 0; unassign_qty = 0;
} }
@@ -1410,29 +1440,15 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv>
* @param dtl 明细实体类 * @param dtl 明细实体类
*/ */
private boolean checkIosDtl(IOStorInvDtlDto dtl) { private boolean checkIosDtl(IOStorInvDtlDto dtl) {
IOStorInv iosMst = this.getById(dtl.getIostorinv_id()); // 查找分配明细是否有拣选的
if (iosMst.getBill_type().equals(IOSEnum.OUT_BILL_TYPE.code("退货出库")) List<IOStorInvDis> ioStorInvDis = ioStorInvDisMapper.selectList(
|| iosMst.getBill_type().equals(IOSEnum.OUT_BILL_TYPE.code("手工出库")) new QueryWrapper<IOStorInvDis>().lambda()
) { .eq(IOStorInvDis::getIostorinvdtl_id, dtl.getIostorinvdtl_id())
return false; );
}
/* boolean is_check = ioStorInvDis.stream()
* 1.领料出库:焊丝(盘状)= 整出 领料出库:焊丝(棒状)= 拣选 .anyMatch(row -> row.getIs_check().equals(IOSConstant.ONE));
* 2.已分配重量小于/等于计划重量 = 整出;已分配重量大于计划重量 = 拣选 return is_check;
*/
// 如果是领料出库,并且是焊丝(盘状)则整出
if (iosMst.getBill_type().equals(IOSEnum.OUT_BILL_TYPE.code("领料出库"))) {
if (dtl.getMaterial_id().equals(IOSConstant.MATERIAL_HS_PZ)) {
return false;
}
}
// 判断已分配数量和计划数量: 已分配重量大于计划重量 = 拣选
if (dtl.getAssign_qty().doubleValue() > dtl.getPlan_qty().doubleValue()) {
return true;
}
return false;
} }
} }

View File

@@ -213,16 +213,14 @@ public class SelectOutServiceImpl extends ServiceImpl<IOStorInvDtlMapper, IOStor
groupPlate.setQuality_type(oldGroup.getQuality_type()); groupPlate.setQuality_type(oldGroup.getQuality_type());
iMdPbGroupplateService.create(groupPlate); iMdPbGroupplateService.create(groupPlate);
// 更新叫料明细载具信息
iPdmBomCallMaterialDtlService.update(
new UpdateWrapper<PdmBomCallMaterialDtl>().lambda()
.set(PdmBomCallMaterialDtl::getVehicle_code, dto.getNew_vehicle())
.eq(PdmBomCallMaterialDtl::getOut_dis_id, disDao.getIostorinvdis_id())
);
} }
// 更新叫料明细载具信息,际出库重量
iPdmBomCallMaterialDtlService.update(
new UpdateWrapper<PdmBomCallMaterialDtl>().lambda()
.set(PdmBomCallMaterialDtl::getVehicle_code, dto.getNew_vehicle())
.set(PdmBomCallMaterialDtl::getOut_qty, disDao.getReal_qty())
.eq(PdmBomCallMaterialDtl::getOut_dis_id, disDao.getIostorinvdis_id())
);
// 锁定终点 // 锁定终点
Structattr attrDao = iStructattrService.getByCode(disDao.getStruct_code()); Structattr attrDao = iStructattrService.getByCode(disDao.getStruct_code());
if (!attrDao.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { if (!attrDao.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
@@ -238,6 +236,7 @@ public class SelectOutServiceImpl extends ServiceImpl<IOStorInvDtlMapper, IOStor
jsonTask.put("vehicle_code", disDao.getStoragevehicle_code()); jsonTask.put("vehicle_code", disDao.getStoragevehicle_code());
jsonTask.put("material_id", disDao.getMaterial_id()); jsonTask.put("material_id", disDao.getMaterial_id());
jsonTask.put("material_qty", NumberUtil.sub(disDao.getCheck_qty(), disDao.getReal_qty())); jsonTask.put("material_qty", NumberUtil.sub(disDao.getCheck_qty(), disDao.getReal_qty()));
jsonTask.put("ext_group_data", disDao.getIostorinvdis_id());
selectBackInTask.create(jsonTask); selectBackInTask.create(jsonTask);
} }

View File

@@ -290,6 +290,7 @@ public class StIvtPieceBoxMstServiceImpl extends ServiceImpl<StIvtPieceBoxMstMap
jsonTask.put("point_code1", IOSConstant.CZW_POINT); jsonTask.put("point_code1", IOSConstant.CZW_POINT);
jsonTask.put("point_code2", dao.getStruct_code()); jsonTask.put("point_code2", dao.getStruct_code());
jsonTask.put("vehicle_code", dao.getVehicle_code()); jsonTask.put("vehicle_code", dao.getVehicle_code());
jsonTask.put("ext_group_data", dao.getId());
String task_id = empVehicleInTask.create(jsonTask); String task_id = empVehicleInTask.create(jsonTask);
// 删除库存信息 // 删除库存信息

View File

@@ -95,6 +95,8 @@ public class VehicleInServiceImpl implements VehicleInService {
JSONObject jsonTask = new JSONObject(); JSONObject jsonTask = new JSONObject();
jsonTask.put("point_code1", whereJson.getString("point_code")); jsonTask.put("point_code1", whereJson.getString("point_code"));
jsonTask.put("point_code2", structattr.getStruct_code()); jsonTask.put("point_code2", structattr.getStruct_code());
// 用于称重退回使用
jsonTask.put("point_code3", whereJson.getString("point_code3"));
jsonTask.put("vehicle_code", whereJson.getString("storagevehicle_code") ); jsonTask.put("vehicle_code", whereJson.getString("storagevehicle_code") );
empVehicleInTask.create(jsonTask); empVehicleInTask.create(jsonTask);
} else { } else {

View File

@@ -11,9 +11,12 @@ import org.nl.common.utils.SecurityUtils;
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.nl.wms.warehouse_management.service.dao.mapper.GroupPlateMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
@@ -31,6 +34,12 @@ public class UpdateIvtUtils {
@Autowired @Autowired
private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; private IMdPbStoragevehicleextService iMdPbStoragevehicleextService;
/*
* 组盘记录服务
*/
@Resource
private GroupPlateMapper groupPlateMapper;
/** /**
* 更新库存 * 更新库存
* @param where: { * @param where: {
@@ -123,6 +132,8 @@ public class UpdateIvtUtils {
// 更新库存 // 更新库存
extDao.setCanuse_qty(NumberUtil.add(extDao.getCanuse_qty(), where.getBigDecimal("change_qty"))); extDao.setCanuse_qty(NumberUtil.add(extDao.getCanuse_qty(), where.getBigDecimal("change_qty")));
iMdPbStoragevehicleextService.updateById(extDao); iMdPbStoragevehicleextService.updateById(extDao);
// 更新组盘数量
updateGroupNum(extDao);
} else { } else {
// 插入数据 // 插入数据
MdPbStoragevehicleext extParamDao = JSONObject.parseObject(JSONObject.toJSONString(where), MdPbStoragevehicleext.class); MdPbStoragevehicleext extParamDao = JSONObject.parseObject(JSONObject.toJSONString(where), MdPbStoragevehicleext.class);
@@ -138,6 +149,8 @@ public class UpdateIvtUtils {
} }
} }
/** /**
@@ -260,6 +273,10 @@ public class UpdateIvtUtils {
extDao.setUpdate_time(DateUtil.now()); extDao.setUpdate_time(DateUtil.now());
extDao.setRemark(where.getString("remark")); extDao.setRemark(where.getString("remark"));
iMdPbStoragevehicleextService.updateById(extDao); iMdPbStoragevehicleextService.updateById(extDao);
// 更新组盘信息
updateGroupNum(extDao);
} }
/** /**
@@ -289,4 +306,19 @@ public class UpdateIvtUtils {
iMdPbStoragevehicleextService.updateById(extDao); iMdPbStoragevehicleextService.updateById(extDao);
} }
/**
* 更新组盘重量
* @param extDao 库存实体类
*/
private void updateGroupNum(MdPbStoragevehicleext extDao) {
GroupPlate groupPlate = groupPlateMapper.selectOne(
new QueryWrapper<GroupPlate>().lambda()
.eq(GroupPlate::getStoragevehicle_code, extDao.getStoragevehicle_code())
.eq(GroupPlate::getMaterial_id, extDao.getMaterial_id())
.eq(GroupPlate::getPcsn, extDao.getPcsn())
);
groupPlate.setQty(extDao.getCanuse_qty());
groupPlateMapper.updateById(groupPlate);
}
} }

View File

@@ -245,6 +245,9 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item v-if="form.point_status === '1'" label="在执行任务标识" prop="ing_task_code">
<el-input v-model="form.ing_task_code" clearable style="width: 370px;" />
</el-form-item>
<el-form-item label="可放载具类型" prop="can_vehicle_types"> <el-form-item label="可放载具类型" prop="can_vehicle_types">
<el-select v-model="form.can_vehicle_types" multiple placeholder="请选择" clearable style="width: 370px;"> <el-select v-model="form.can_vehicle_types" multiple placeholder="请选择" clearable style="width: 370px;">
<el-option <el-option