fix出入库
This commit is contained in:
@@ -13,7 +13,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 原料出库规则
|
* 原料入库规则
|
||||||
* @Author: zhengxuming
|
* @Author: zhengxuming
|
||||||
* @Date: 2025年7月29日14:11:10
|
* @Date: 2025年7月29日14:11:10
|
||||||
*/
|
*/
|
||||||
@@ -34,9 +34,9 @@ public class RawInRuleHandle extends Decisioner<Structattr, JSONObject> {
|
|||||||
.eq("is_used", true)
|
.eq("is_used", true)
|
||||||
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
.eq("sect_code", param.getString("sect_code"))
|
.eq("sect_code", param.getString("sect_code"))
|
||||||
.isNotNull("storagevehicle_code")
|
.isNull("storagevehicle_code")
|
||||||
.isNull("Task_code")
|
.isNull("Task_code")
|
||||||
.eq("occupancy_state",2)
|
.eq("occupancy_state",1)
|
||||||
.orderByAsc("update_time");
|
.orderByAsc("update_time");
|
||||||
List<Structattr> querylList = iStructattrService.list(query);
|
List<Structattr> querylList = iStructattrService.list(query);
|
||||||
return querylList;
|
return querylList;
|
||||||
|
|||||||
@@ -144,15 +144,15 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
|||||||
public MesResponse callMaterial(MesCallMaterialRequestDto dto) {
|
public MesResponse callMaterial(MesCallMaterialRequestDto dto) {
|
||||||
log.info("MES下发设备叫料信息输入参数:-------------------: {}", dto);
|
log.info("MES下发设备叫料信息输入参数:-------------------: {}", dto);
|
||||||
|
|
||||||
|
if(dto.getIsManual() != null && dto.getIsManual()){
|
||||||
|
dto.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||||
|
}
|
||||||
|
|
||||||
RLock lock = redissonClient.getLock(dto.getTask_code());
|
RLock lock = redissonClient.getLock(dto.getTask_code());
|
||||||
boolean tryLock = lock.tryLock(1, TimeUnit.SECONDS);
|
boolean tryLock = lock.tryLock(1, TimeUnit.SECONDS);
|
||||||
try {
|
try {
|
||||||
if (tryLock) {
|
if (tryLock) {
|
||||||
|
|
||||||
if(dto.getIsManual() != null && dto.getIsManual()){
|
|
||||||
dto.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
|
||||||
}
|
|
||||||
|
|
||||||
String pointCode = dto.getDevice_code();
|
String pointCode = dto.getDevice_code();
|
||||||
SchBasePoint outPoint = pointService.getById(pointCode);
|
SchBasePoint outPoint = pointService.getById(pointCode);
|
||||||
if (null == outPoint) {
|
if (null == outPoint) {
|
||||||
@@ -169,6 +169,10 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
|||||||
throw new BadRequestException("仓位【" + dto.getStruct_code() + "】不存在!");
|
throw new BadRequestException("仓位【" + dto.getStruct_code() + "】不存在!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(3 != outStructAttr.getOccupancy_state()|| StringUtils.isBlank(outStructAttr.getStoragevehicle_code())){
|
||||||
|
throw new BadRequestException("仓位【" + dto.getStruct_code() + "】上没有料,无法叫料!");
|
||||||
|
}
|
||||||
|
|
||||||
List<SchBaseTask> taskList = taskService.list(new QueryWrapper<SchBaseTask>().lambda()
|
List<SchBaseTask> taskList = taskService.list(new QueryWrapper<SchBaseTask>().lambda()
|
||||||
.eq(SchBaseTask::getExt_task_code, dto.getTask_code()));
|
.eq(SchBaseTask::getExt_task_code, dto.getTask_code()));
|
||||||
|
|
||||||
@@ -204,7 +208,7 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!"1".equals(outPoint.getPoint_status())){
|
if(!"1".equals(outPoint.getPoint_status())){
|
||||||
throw new BadRequestException("设备【" + dto.getStruct_code() + "】有托盘或有料,请执行下空桶上满料!");
|
throw new BadRequestException("设备【" + outPoint.getPoint_code() + "】有托盘或有料,请执行下空桶上满料!");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1、创建出库单、明细、分配明细
|
// 1、创建出库单、明细、分配明细
|
||||||
@@ -278,7 +282,7 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
|||||||
}
|
}
|
||||||
outBillService.allSetPoint(taskParam);
|
outBillService.allSetPoint(taskParam);
|
||||||
return MesResponse.requestOk();
|
return MesResponse.requestOk();
|
||||||
} else if("2".equals(dto.getTask_type())){
|
} else if("2".equals(dto.getTask_type())){
|
||||||
|
|
||||||
if(StringUtils.isBlank(outPoint.getVehicle_code())){
|
if(StringUtils.isBlank(outPoint.getVehicle_code())){
|
||||||
throw new BadRequestException("设备【" + pointCode + "】不存在料桶,请核对!");
|
throw new BadRequestException("设备【" + pointCode + "】不存在料桶,请核对!");
|
||||||
@@ -424,24 +428,29 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
|||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public MesResponse backMaterial(MesBackMaterialRequestDto dto) {
|
public MesResponse backMaterial(MesBackMaterialRequestDto dto) {
|
||||||
log.info("MES下发设备退料信息输入参数:-------------------: {}", dto);
|
log.info("MES下发设备退料信息输入参数:-------------------: {}", dto);
|
||||||
|
|
||||||
|
if (dto.getIsManual() != null && dto.getIsManual()) {
|
||||||
|
dto.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||||
|
dto.setPcsn("退料");
|
||||||
|
dto.setQty_unit_name("桶");
|
||||||
|
|
||||||
|
//退料需要判断
|
||||||
|
if("1".equals(dto.getTask_type())){
|
||||||
|
if(StringUtils.isEmpty(dto.getMaterial_code())){
|
||||||
|
throw new BadRequestException("物料编码不可为空");
|
||||||
|
}
|
||||||
|
if(StringUtils.isEmpty(dto.getQty())){
|
||||||
|
throw new BadRequestException("数量不可为空");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
RLock lock = redissonClient.getLock(dto.getTask_code());
|
RLock lock = redissonClient.getLock(dto.getTask_code());
|
||||||
boolean tryLock = lock.tryLock(1, TimeUnit.SECONDS);
|
boolean tryLock = lock.tryLock(1, TimeUnit.SECONDS);
|
||||||
try {
|
try {
|
||||||
if (tryLock) {
|
if (tryLock) {
|
||||||
log.info("MES下发设备退料信息输入参数:--------------------------------------" + MesResponse.requestOk());
|
log.info("MES下发设备退料信息输入参数:--------------------------------------" + MesResponse.requestOk());
|
||||||
|
|
||||||
if (dto.getIsManual() != null && dto.getIsManual()) {
|
|
||||||
dto.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
|
||||||
//如果是手工,则需要判断是否已经组盘
|
|
||||||
List<GroupPlate> groupList = iMdPbGroupplateService.list(new QueryWrapper<GroupPlate>()
|
|
||||||
.eq("storagevehicle_code", dto.getVehicle_code())
|
|
||||||
.eq("status", IOSEnum.GROUP_PLATE_STATUS.code("组盘")));
|
|
||||||
|
|
||||||
if (CollectionUtils.isEmpty(groupList)) {
|
|
||||||
throw new BadRequestException("手工退料需要先组盘,请先组盘");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//根据料桶号去载具表匹配料桶类型
|
//根据料桶号去载具表匹配料桶类型
|
||||||
MdPbStoragevehicleinfo mdPbStoragevehicleinfo = iMdPbStoragevehicleinfoService.getByCode(dto.getVehicle_code());
|
MdPbStoragevehicleinfo mdPbStoragevehicleinfo = iMdPbStoragevehicleinfoService.getByCode(dto.getVehicle_code());
|
||||||
|
|
||||||
@@ -470,6 +479,9 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
|||||||
if("1".equals(dto.getTask_type())){
|
if("1".equals(dto.getTask_type())){
|
||||||
|
|
||||||
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(dto.getMaterial_code(), true);
|
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(dto.getMaterial_code(), true);
|
||||||
|
|
||||||
|
//通过托盘号查找组盘信息
|
||||||
|
|
||||||
param.put("sect_code",sectattr.getSect_code());
|
param.put("sect_code",sectattr.getSect_code());
|
||||||
param.put("sect_id",sectattr.getSect_id());
|
param.put("sect_id",sectattr.getSect_id());
|
||||||
param.put("vehicle_code",dto.getVehicle_code());
|
param.put("vehicle_code",dto.getVehicle_code());
|
||||||
|
|||||||
@@ -83,6 +83,13 @@ public class PdaIosInController {
|
|||||||
return new ResponseEntity<>(pdaIosInService.getSect(whereJson), HttpStatus.OK);
|
return new ResponseEntity<>(pdaIosInService.getSect(whereJson), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getPdaSect")
|
||||||
|
@Log("PDA获取库区")
|
||||||
|
public ResponseEntity<Object> getPdaSect(@RequestBody JSONObject whereJson) {
|
||||||
|
return new ResponseEntity<>(pdaIosInService.getPdaSect(whereJson), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/getRegion")
|
@PostMapping("/getRegion")
|
||||||
@Log("获取区域")
|
@Log("获取区域")
|
||||||
|
|||||||
@@ -94,6 +94,13 @@ public interface PdaIosInService {
|
|||||||
*/
|
*/
|
||||||
List<SelectItemVo> getSect(JSONObject whereJson);
|
List<SelectItemVo> getSect(JSONObject whereJson);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询库区
|
||||||
|
*
|
||||||
|
* @return PdaResponse
|
||||||
|
*/
|
||||||
|
PdaResponse getPdaSect(JSONObject whereJson);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询区域
|
* 查询区域
|
||||||
|
|||||||
@@ -349,7 +349,7 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SelectItemVo> getSect(JSONObject whereJson) {
|
public List<SelectItemVo> getSect(JSONObject whereJson) {
|
||||||
PageQuery pageQuery = new PageQuery();
|
PageQuery pageQuery = new PageQuery();
|
||||||
IPage<SectattrDto> sectList = iSectattrService.queryAll(new HashMap(), pageQuery);
|
IPage<SectattrDto> sectList = iSectattrService.queryAll(new HashMap(), pageQuery);
|
||||||
List<SelectItemVo> selectList = new ArrayList<>();
|
List<SelectItemVo> selectList = new ArrayList<>();
|
||||||
@@ -359,6 +359,18 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
|||||||
return selectList;
|
return selectList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PdaResponse getPdaSect(JSONObject whereJson) {
|
||||||
|
PageQuery pageQuery = new PageQuery();
|
||||||
|
IPage<SectattrDto> sectList = iSectattrService.queryAll(new HashMap(), pageQuery);
|
||||||
|
List<SelectItemVo> selectList = new ArrayList<>();
|
||||||
|
sectList.getRecords().forEach(r ->
|
||||||
|
selectList.add(SelectItemVo.builder().text(r.getStor_name() + "-" + r.getSect_name()).value(r.getSect_id()).build())
|
||||||
|
);
|
||||||
|
return PdaResponse.requestParamOk(selectList);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse getRegion(JSONObject whereJson) {
|
public PdaResponse getRegion(JSONObject whereJson) {
|
||||||
PageQuery pageQuery = new PageQuery();
|
PageQuery pageQuery = new PageQuery();
|
||||||
@@ -495,10 +507,8 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
|||||||
whereJson.put("config_code", IOSConstant.BACK_IN_TASK);
|
whereJson.put("config_code", IOSConstant.BACK_IN_TASK);
|
||||||
whereJson.put("Priority", TaskEnum.ACS_PRIORITY.code("1"));
|
whereJson.put("Priority", TaskEnum.ACS_PRIORITY.code("1"));
|
||||||
//入库分配
|
//入库分配
|
||||||
//手工的,需要更新组盘表
|
groupPlate(whereJson);
|
||||||
if(!whereJson.containsKey("is_manual") || !whereJson.getBoolean("is_manual")){
|
|
||||||
groupPlate(whereJson);
|
|
||||||
}
|
|
||||||
|
|
||||||
whereJson.put("bill_type",StatusEnum.IOBILL_TYPE_IN.code("余料入库"));
|
whereJson.put("bill_type",StatusEnum.IOBILL_TYPE_IN.code("余料入库"));
|
||||||
whereJson.put("stragegy_type",StatusEnum.IOBILL_TYPE_IN.code("余料入库"));
|
whereJson.put("stragegy_type",StatusEnum.IOBILL_TYPE_IN.code("余料入库"));
|
||||||
@@ -535,11 +545,18 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public PdaResponse vehicleInConfirm(JSONObject whereJson) {
|
public PdaResponse vehicleInConfirm(JSONObject whereJson) {
|
||||||
//空载具入库
|
//空载具入库
|
||||||
|
Sectattr sectattr = sectattrService.findById(whereJson.getString("sect_code"));
|
||||||
Sectattr sectattr = sectattrService.findByCode(whereJson.getString("sect_code"));
|
|
||||||
if(sectattr == null){
|
if(sectattr == null){
|
||||||
throw new BadRequestException("库区" + whereJson.getString("sect_code") +"不存在");
|
throw new BadRequestException("库区" + whereJson.getString("sect_code") +"不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
whereJson.put("sect_code", sectattr.getSect_code());
|
||||||
|
whereJson.put("sect_id", sectattr.getSect_id());
|
||||||
|
|
||||||
|
if(sectattr.getSect_name().contains("不合格")){
|
||||||
|
throw new BadRequestException("不合格区不允许空载具入库");
|
||||||
|
}
|
||||||
|
|
||||||
whereJson.put("stor_id",sectattr.getStor_id());
|
whereJson.put("stor_id",sectattr.getStor_id());
|
||||||
|
|
||||||
//得到当前点位的载具编号
|
//得到当前点位的载具编号
|
||||||
@@ -551,6 +568,24 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
|||||||
if(schBasePointList.size()>1){
|
if(schBasePointList.size()>1){
|
||||||
throw new BadRequestException("存在重复点位,请确认");
|
throw new BadRequestException("存在重复点位,请确认");
|
||||||
}
|
}
|
||||||
|
if(!"2".equals(schBasePointList.get(0).getPoint_status())){
|
||||||
|
throw new BadRequestException("点位状态不为空载具,请核对!");
|
||||||
|
}
|
||||||
|
|
||||||
|
//判断点位和仓位是否有正在执行的任务
|
||||||
|
List<SchBaseTask> schBaseTaskList = iSchBaseTaskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||||
|
.eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO)
|
||||||
|
.and(wp -> wp
|
||||||
|
.eq(SchBaseTask::getPoint_code1, schBasePointList.get(0).getPoint_code())
|
||||||
|
.or()
|
||||||
|
.eq(SchBaseTask::getPoint_code2, schBasePointList.get(0).getPoint_code())
|
||||||
|
)
|
||||||
|
.le(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode()));
|
||||||
|
if (CollectionUtils.isNotEmpty(schBaseTaskList)) {
|
||||||
|
throw new BadRequestException("存在正在执行的点位,请核对!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
whereJson.put("site_code",schBasePointList.get(0).getPoint_code());
|
whereJson.put("site_code",schBasePointList.get(0).getPoint_code());
|
||||||
|
|
||||||
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getByCode(whereJson.getString("vehicle_code"));
|
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getByCode(whereJson.getString("vehicle_code"));
|
||||||
|
|||||||
@@ -27,10 +27,14 @@ import org.nl.wms.basedata_manage.service.dto.StrategyStructParam;
|
|||||||
import org.nl.wms.decision_manage.service.strategyConfig.enums.StragegyTypeEnum;
|
import org.nl.wms.decision_manage.service.strategyConfig.enums.StragegyTypeEnum;
|
||||||
import org.nl.wms.pda_manage.ios_manage.service.PdaIosOutService;
|
import org.nl.wms.pda_manage.ios_manage.service.PdaIosOutService;
|
||||||
import org.nl.wms.pda_manage.util.PdaResponse;
|
import org.nl.wms.pda_manage.util.PdaResponse;
|
||||||
|
import org.nl.wms.sch_manage.enums.PointStatusEnum;
|
||||||
import org.nl.wms.sch_manage.enums.StatusEnum;
|
import org.nl.wms.sch_manage.enums.StatusEnum;
|
||||||
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.service.ISchBasePointService;
|
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||||
|
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.SchBasePoint;
|
||||||
|
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.tasks.PdaPointTask;
|
import org.nl.wms.sch_manage.service.util.tasks.PdaPointTask;
|
||||||
import org.nl.wms.sch_manage.service.util.tasks.StOutTask;
|
import org.nl.wms.sch_manage.service.util.tasks.StOutTask;
|
||||||
@@ -154,6 +158,9 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IInBillService iRawAssistIStorService;
|
private IInBillService iRawAssistIStorService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse getDtl(JSONObject whereJson) {
|
public PdaResponse getDtl(JSONObject whereJson) {
|
||||||
@@ -240,6 +247,26 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public PdaResponse vehicleOutConfirm(JSONObject whereJson) {
|
public PdaResponse vehicleOutConfirm(JSONObject whereJson) {
|
||||||
|
|
||||||
|
//出库点位需要空点位
|
||||||
|
List<SchBasePoint> schBasePointList = iSchBasePointService.list(new LambdaQueryWrapper<SchBasePoint>()
|
||||||
|
.eq(SchBasePoint::getPoint_code, whereJson.getString("siteCode"))
|
||||||
|
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()));
|
||||||
|
|
||||||
|
if(CollectionUtils.isEmpty(schBasePointList)){
|
||||||
|
throw new BadRequestException("点位" + whereJson.getString("siteCode") + "不存在或不是空位");
|
||||||
|
}
|
||||||
|
|
||||||
|
//判断点位是否有正在执行的任务
|
||||||
|
List<SchBaseTask> list = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||||
|
.lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
|
||||||
|
.eq(SchBaseTask::getIs_delete, false)
|
||||||
|
.and(ll -> ll.eq(SchBaseTask::getPoint_code1, whereJson.getString("siteCode")).or()
|
||||||
|
.eq(SchBaseTask::getPoint_code2, whereJson.getString("siteCode"))));
|
||||||
|
if (CollectionUtils.isNotEmpty(list)) {
|
||||||
|
throw new BadRequestException(whereJson.getString("siteCode") + " 该点位已存在任务!");
|
||||||
|
}
|
||||||
|
|
||||||
long qty = 1L;
|
long qty = 1L;
|
||||||
LambdaQueryWrapper<MdMeMaterialbase> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<MdMeMaterialbase> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
//空料箱出库
|
//空料箱出库
|
||||||
@@ -262,6 +289,9 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
|||||||
if (ObjectUtil.isEmpty(sectattr)) {
|
if (ObjectUtil.isEmpty(sectattr)) {
|
||||||
throw new BadRequestException("该仓位所属的库区已禁用,请先启用该库区!");
|
throw new BadRequestException("该仓位所属的库区已禁用,请先启用该库区!");
|
||||||
}
|
}
|
||||||
|
if(sectattr.getSect_name().contains("不合格")){
|
||||||
|
throw new BadRequestException("不合格区不允许空载具入库");
|
||||||
|
}
|
||||||
BsrealStorattr storeDao = iSrealStorattrService.getById(sectattr.getStor_id());
|
BsrealStorattr storeDao = iSrealStorattrService.getById(sectattr.getStor_id());
|
||||||
whereJson.put("stor_code", storeDao.getStor_code());
|
whereJson.put("stor_code", storeDao.getStor_code());
|
||||||
whereJson.put("sect_code", sectattr.getSect_code());
|
whereJson.put("sect_code", sectattr.getSect_code());
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import org.nl.common.exception.BadRequestException;
|
|||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.common.utils.IdUtil;;
|
import org.nl.common.utils.IdUtil;;
|
||||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||||
|
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||||
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;
|
||||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||||
@@ -21,6 +22,8 @@ import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
|||||||
import org.nl.wms.warehouse_manage.inAndOut.service.IOutBillService;
|
import org.nl.wms.warehouse_manage.inAndOut.service.IOutBillService;
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
||||||
|
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||||
|
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||||
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;
|
||||||
@@ -50,6 +53,16 @@ public class StOutTask extends AbstractTask {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISchBasePointService iSchBasePointService;
|
private ISchBasePointService iSchBasePointService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓位服务
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private IStructattrService iStructattrService;
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMdPbGroupplateService iMdPbGroupplateService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String create(JSONObject json) {
|
public String create(JSONObject json) {
|
||||||
SchBaseTask task = new SchBaseTask();
|
SchBaseTask task = new SchBaseTask();
|
||||||
@@ -177,6 +190,21 @@ public class StOutTask extends AbstractTask {
|
|||||||
.eq(IOStorInvDis::getTask_id,taskObj.getTask_id())
|
.eq(IOStorInvDis::getTask_id,taskObj.getTask_id())
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//解锁库位
|
||||||
|
JSONObject finish_map = new JSONObject();
|
||||||
|
finish_map.put("struct_code",taskObj.getPoint_code1());
|
||||||
|
finish_map.put("storagevehicle_code",null);
|
||||||
|
finish_map.put("inv_type", null);
|
||||||
|
finish_map.put("inv_id", null);
|
||||||
|
finish_map.put("inv_code", null);
|
||||||
|
finish_map.put("occupancy_state", "1");
|
||||||
|
iStructattrService.updateStatusByCode("2",finish_map);
|
||||||
|
|
||||||
|
//更新组盘表 status 10->20
|
||||||
|
iMdPbGroupplateService.update(new LambdaUpdateWrapper<>(GroupPlate.class)
|
||||||
|
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||||
|
.eq(GroupPlate::getStoragevehicle_code,taskObj.getPoint_code1()));
|
||||||
|
|
||||||
// 更新任务状态
|
// 更新任务状态
|
||||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
taskObj.setRemark("已取消");
|
taskObj.setRemark("已取消");
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ 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.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
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;
|
||||||
@@ -20,10 +21,14 @@ import org.nl.wms.sch_manage.service.util.AbstractTask;
|
|||||||
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
|
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_manage.enums.IOSEnum;
|
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||||
|
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||||
|
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||||
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 javax.annotation.Resource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: gbx
|
* @Author: gbx
|
||||||
* @Description: 空载具入库任务
|
* @Description: 空载具入库任务
|
||||||
@@ -51,6 +56,12 @@ public class VehicleInTask extends AbstractTask {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IStructattrService iStructattrService;
|
private IStructattrService iStructattrService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组盘信息表
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private IMdPbGroupplateService iMdPbGroupPlateService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* WMS回传MES
|
* WMS回传MES
|
||||||
*/
|
*/
|
||||||
@@ -162,9 +173,19 @@ public class VehicleInTask extends AbstractTask {
|
|||||||
new UpdateWrapper<SchBasePoint>().lambda()
|
new UpdateWrapper<SchBasePoint>().lambda()
|
||||||
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
|
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
|
||||||
.set(SchBasePoint::getVehicle_code, null)
|
.set(SchBasePoint::getVehicle_code, null)
|
||||||
|
.set(SchBasePoint::getIng_task_code,null)
|
||||||
.set(SchBasePoint::getIos_id, null)
|
.set(SchBasePoint::getIos_id, null)
|
||||||
.set(SchBasePoint::getPoint_status,"1")
|
.set(SchBasePoint::getPoint_status,"1")
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//更新组盘
|
||||||
|
iMdPbGroupPlateService.update(
|
||||||
|
new GroupPlate(),
|
||||||
|
new LambdaUpdateWrapper<GroupPlate>()
|
||||||
|
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||||
|
.eq(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code())
|
||||||
|
);
|
||||||
|
|
||||||
// 更新任务
|
// 更新任务
|
||||||
taskObj.setRemark("已完成");
|
taskObj.setRemark("已完成");
|
||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
@@ -194,6 +215,15 @@ public class VehicleInTask extends AbstractTask {
|
|||||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
taskService.updateById(taskObj);
|
taskService.updateById(taskObj);
|
||||||
|
|
||||||
|
//解锁
|
||||||
|
//解锁库位
|
||||||
|
JSONObject unlock_map = new JSONObject();
|
||||||
|
unlock_map.put("struct_code", taskObj.getPoint_code2());
|
||||||
|
unlock_map.put("inv_type", null);
|
||||||
|
unlock_map.put("inv_id", null);
|
||||||
|
unlock_map.put("inv_code", null);
|
||||||
|
iStructattrService.updateStatusByCode("2",unlock_map);
|
||||||
|
|
||||||
//反馈到MES系统
|
//反馈到MES系统
|
||||||
if("自动".equals(taskObj.getCreate_mode())){
|
if("自动".equals(taskObj.getCreate_mode())){
|
||||||
JSONObject jsonObject=new JSONObject();
|
JSONObject jsonObject=new JSONObject();
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ 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.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.apache.commons.collections4.CollectionUtils;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.common.utils.IdUtil;;
|
import org.nl.common.utils.IdUtil;;
|
||||||
@@ -23,12 +25,16 @@ import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
|||||||
import org.nl.wms.warehouse_manage.inAndOut.service.IOutBillService;
|
import org.nl.wms.warehouse_manage.inAndOut.service.IOutBillService;
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
||||||
|
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||||
|
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||||
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 javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: gbx
|
* @Author: gbx
|
||||||
@@ -58,6 +64,8 @@ public class VehicleOutTask extends AbstractTask {
|
|||||||
*/
|
*/
|
||||||
@Autowired
|
@Autowired
|
||||||
private IStructattrService iStructattrService;
|
private IStructattrService iStructattrService;
|
||||||
|
@Autowired
|
||||||
|
private IMdPbGroupplateService iMdPbGroupplateService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String create(JSONObject json) {
|
public String create(JSONObject json) {
|
||||||
@@ -153,23 +161,46 @@ public class VehicleOutTask extends AbstractTask {
|
|||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
taskObj.setRemark("已完成");
|
taskObj.setRemark("已完成");
|
||||||
taskService.updateById(taskObj);
|
taskService.updateById(taskObj);
|
||||||
outBillService.taskFinish(taskObj);
|
|
||||||
|
// // 更新起点
|
||||||
|
// iStructattrService.update(
|
||||||
|
// new UpdateWrapper<Structattr>().lambda()
|
||||||
|
// .eq(Structattr::getStruct_code, taskObj.getPoint_code1())
|
||||||
|
//
|
||||||
|
// .set(Structattr::getOccupancy_state, 1)
|
||||||
|
// );
|
||||||
|
|
||||||
|
|
||||||
// 更新起点
|
// 更新起点
|
||||||
iStructattrService.update(
|
//解锁
|
||||||
new UpdateWrapper<Structattr>().lambda()
|
//解锁库位
|
||||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
|
JSONObject unlock_map = new JSONObject();
|
||||||
.set(Structattr::getOccupancy_state, 1)
|
unlock_map.put("struct_code", taskObj.getPoint_code1());
|
||||||
);
|
unlock_map.put("inv_type", null);
|
||||||
|
unlock_map.put("inv_id", null);
|
||||||
|
unlock_map.put("inv_code", null);
|
||||||
|
unlock_map.put("storagevehicle_code", null);
|
||||||
|
unlock_map.put("occupancy_state", "1");
|
||||||
|
iStructattrService.updateStatusByCode("1",unlock_map);
|
||||||
|
|
||||||
// 更新终点
|
// 更新终点
|
||||||
iSchBasePointService.update(
|
iSchBasePointService.update(
|
||||||
new UpdateWrapper<SchBasePoint>().lambda()
|
new UpdateWrapper<SchBasePoint>().lambda()
|
||||||
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
|
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
|
||||||
.set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
|
.set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
|
||||||
|
.set(SchBasePoint::getIng_task_code,null)
|
||||||
.set(SchBasePoint::getIos_id, null)
|
.set(SchBasePoint::getIos_id, null)
|
||||||
.set(SchBasePoint::getPoint_status,"2"));
|
.set(SchBasePoint::getPoint_status,"2"));
|
||||||
|
|
||||||
|
//删除组盘表
|
||||||
|
//删除
|
||||||
|
Set<String> groupSet = iMdPbGroupplateService.list(new QueryWrapper<GroupPlate>().lambda()
|
||||||
|
.in(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code()))
|
||||||
|
.stream().map(GroupPlate::getStoragevehicle_code).collect(Collectors.toSet());
|
||||||
|
if(CollectionUtils.isNotEmpty(groupSet)) {
|
||||||
|
iMdPbGroupplateService.delete(groupSet);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@@ -192,6 +223,15 @@ public class VehicleOutTask extends AbstractTask {
|
|||||||
.eq(IOStorInvDis::getTask_id,taskObj.getTask_id())
|
.eq(IOStorInvDis::getTask_id,taskObj.getTask_id())
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//解锁
|
||||||
|
//解锁库位
|
||||||
|
JSONObject unlock_map = new JSONObject();
|
||||||
|
unlock_map.put("struct_code", taskObj.getPoint_code1());
|
||||||
|
unlock_map.put("inv_type", null);
|
||||||
|
unlock_map.put("inv_id", null);
|
||||||
|
unlock_map.put("inv_code", null);
|
||||||
|
iStructattrService.updateStatusByCode("2",unlock_map);
|
||||||
|
|
||||||
// 更新任务状态
|
// 更新任务状态
|
||||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
taskObj.setRemark("已取消");
|
taskObj.setRemark("已取消");
|
||||||
|
|||||||
@@ -12,21 +12,16 @@ public class MesManualBackMaterialRequestDto {
|
|||||||
@NotBlank(message = "料桶号不可为空")
|
@NotBlank(message = "料桶号不可为空")
|
||||||
private String vehicle_code;
|
private String vehicle_code;
|
||||||
|
|
||||||
|
|
||||||
private String material_code;
|
private String material_code;
|
||||||
|
|
||||||
|
|
||||||
private String pcsn;
|
private String pcsn;
|
||||||
|
|
||||||
private String qty_unit_name;
|
private String qty_unit_name;
|
||||||
|
|
||||||
@NotBlank(message = "数量不可为空")
|
|
||||||
private String qty;
|
private String qty;
|
||||||
|
|
||||||
|
|
||||||
private String supp_code;
|
private String supp_code;
|
||||||
|
|
||||||
|
|
||||||
private String supp_name;
|
private String supp_name;
|
||||||
|
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|||||||
@@ -1158,6 +1158,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
|||||||
finish_map.put("inv_type", null);
|
finish_map.put("inv_type", null);
|
||||||
finish_map.put("inv_id", null);
|
finish_map.put("inv_id", null);
|
||||||
finish_map.put("inv_code", null);
|
finish_map.put("inv_code", null);
|
||||||
|
finish_map.put("occupancy_state", "1");
|
||||||
iStructattrService.updateStatusByCode("1",finish_map);
|
iStructattrService.updateStatusByCode("1",finish_map);
|
||||||
|
|
||||||
//库存绑定到出库点。
|
//库存绑定到出库点。
|
||||||
@@ -1261,6 +1262,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
|||||||
finish_map.put("inv_type", null);
|
finish_map.put("inv_type", null);
|
||||||
finish_map.put("inv_id", null);
|
finish_map.put("inv_id", null);
|
||||||
finish_map.put("inv_code", null);
|
finish_map.put("inv_code", null);
|
||||||
|
finish_map.put("occupancy_state", "1");
|
||||||
iStructattrService.updateStatusByCode("1",finish_map);
|
iStructattrService.updateStatusByCode("1",finish_map);
|
||||||
//库存变动:根据冻结数更新物料库存
|
//库存变动:根据冻结数更新物料库存
|
||||||
StructattrChangeDto changeDto = StructattrChangeDto.builder()
|
StructattrChangeDto changeDto = StructattrChangeDto.builder()
|
||||||
|
|||||||
@@ -6,8 +6,10 @@ 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;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.common.utils.IdUtil;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
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.warehouse_manage.enums.IOSConstant;
|
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
||||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||||
@@ -119,27 +121,47 @@ public class UpdateIvtUtils {
|
|||||||
* @param where 输入参数
|
* @param where 输入参数
|
||||||
*/
|
*/
|
||||||
private void updateAddCanuseInsertIvt(JSONObject where) {
|
private void updateAddCanuseInsertIvt(JSONObject where) {
|
||||||
throw new BadRequestException("当前载具已存在库存物料,请检查数据!");
|
// throw new BadRequestException("当前载具已存在库存物料,请检查数据!");
|
||||||
// 判断当前载具是否有物料
|
// 判断当前载具是否有物料
|
||||||
// MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne(
|
// MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne(
|
||||||
// new QueryWrapper<MdPbStoragevehicleext>().lambda()
|
// new QueryWrapper<MdPbStoragevehicleext>().lambda()
|
||||||
// .eq(MdPbStoragevehicleext::getStoragevehicle_code, where.getString("storagevehicle_code"))
|
// .eq(MdPbStoragevehicleext::getStoragevehicle_code, where.getString("storagevehicle_code"))
|
||||||
// );
|
// );
|
||||||
// if (ObjectUtil.isNotEmpty(extDao)) {
|
// if (ObjectUtil.isNotEmpty(extDao)) {
|
||||||
// throw new BadRequestException("当前载具【"+extDao.getStoragevehicle_code()+"】已存在库存物料,请检查数据!");
|
// throw new BadRequestException("当前载具【"+extDao.getStoragevehicle_code()+"】已存在库存物料,请检查数据!");
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// // 插入数据
|
// // 插入数据
|
||||||
// MdPbStoragevehicleext extParamDao = JSONObject.parseObject(JSONObject.toJSONString(where), MdPbStoragevehicleext.class);
|
// MdPbStoragevehicleext extParamDao = JSONObject.parseObject(JSONObject.toJSONString(where), MdPbStoragevehicleext.class);
|
||||||
// extParamDao.setStoragevehicleext_id(IdUtil.getStringId());
|
// extParamDao.setStoragevehicleext_id(IdUtil.getStringId());
|
||||||
// extParamDao.setCanuse_qty(where.getBigDecimal("change_qty"));
|
// extParamDao.setCanuse_qty(where.getBigDecimal("change_qty"));
|
||||||
// extParamDao.setFrozen_qty(BigDecimal.valueOf(0));
|
// extParamDao.setFrozen_qty(BigDecimal.valueOf(0));
|
||||||
// extParamDao.setInsert_time(DateUtil.now());
|
// extParamDao.setInsert_time(DateUtil.now());
|
||||||
// extParamDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
// extParamDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||||
// extParamDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
// extParamDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||||
// extParamDao.setUpdate_time(DateUtil.now());
|
// extParamDao.setUpdate_time(DateUtil.now());
|
||||||
// extParamDao.setRemark(where.getString("remark"));
|
// extParamDao.setRemark(where.getString("remark"));
|
||||||
// iMdPbStoragevehicleextService.save(extParamDao);
|
// iMdPbStoragevehicleextService.save(extParamDao);
|
||||||
|
// 找当前托盘物料库存
|
||||||
|
GroupPlate extDao = iMdPbGroupPlateService.getOne(
|
||||||
|
new QueryWrapper<GroupPlate>().lambda()
|
||||||
|
.eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code"))
|
||||||
|
);
|
||||||
|
if (ObjectUtil.isEmpty(extDao)) {
|
||||||
|
throw new BadRequestException("当前载具【" + extDao.getStoragevehicle_code() + "】不存在相关物料批次库存,请检查数据!");
|
||||||
|
}
|
||||||
|
// 加可用数
|
||||||
|
double canuse_qty = NumberUtil.add(extDao.getQty(), where.getDoubleValue("change_qty")).doubleValue();
|
||||||
|
if (canuse_qty < 0) {
|
||||||
|
throw new BadRequestException("可用数不能为负数,请检查变动数量!当前可用数为【" + extDao.getQty() + "】当前变动数为【" + where.getDoubleValue("change_qty") + "】");
|
||||||
|
}
|
||||||
|
extDao.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||||
|
extDao.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||||
|
extDao.setUpdate_time(DateUtil.now());
|
||||||
|
extDao.setRemark(where.getString("remark"));
|
||||||
|
iMdPbGroupPlateService.updateById(extDao);
|
||||||
|
;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user