add:称重反馈接口业务处理
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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: 载具编码
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|
||||||
// 组织明细数据
|
// 组织明细数据
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -253,6 +253,11 @@ public class BackOutTask extends AbstractTask {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject resultWeigh(SchBaseTask taskObj) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成点位点任务:称重位至库外站点
|
* 生成点位点任务:称重位至库外站点
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
// 更新起点
|
// 更新起点
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
// 完成任务
|
// 完成任务
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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: 库区编码
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
// 删除库存信息
|
// 删除库存信息
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user