工位上货接口独立

dev_no_inv
yewj 9 months ago
parent d9078fe7d8
commit 2b0eab6452

@ -20,22 +20,16 @@ import com.glxp.api.entity.inout.IoCodeLostEntity;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.req.inout.AddOrderCodeRequest;
import com.glxp.api.req.inout.AddOrderRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.inout.AddCodeResult;
import com.glxp.api.res.inout.VailCodeResultResponse;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.collect.IoCollectCodeService;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.service.collect.IoCollectOriginService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inout.*;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.InvPreinProductDetailService;
import com.glxp.api.service.inv.impl.InvProductDetailService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.IntUtil;
import com.glxp.api.util.MsDateUtil;
@ -129,7 +123,7 @@ public class WorkPutController extends BaseController {
//ioSplitFifoInvService.getOne(new LambdaQueryWrapper<IoSplitFifoInv>().eq(IoSplitFifoInv::getInvCode,"").last("limit 1"));
}
if (IntUtil.value(udiEntity.getProductType()) == 2) {
return adddGrugOrder(addOrderRequest, udiEntity, code);
return adddDrugOrder(addOrderRequest, udiEntity, code);
} else {
return addMaterOrder(addOrderRequest, udiEntity, code);
}
@ -197,7 +191,7 @@ public class WorkPutController extends BaseController {
}
if (IntUtil.value(udiEntity.getProductType()) == 2) {
baseResponse = adddGrugOrder(addOrderRequest, udiEntity, code);
baseResponse = adddDrugOrder(addOrderRequest, udiEntity, code);
} else {
baseResponse = addMaterOrder(addOrderRequest, udiEntity, code);
}
@ -548,7 +542,7 @@ public class WorkPutController extends BaseController {
}
@Transactional(rollbackFor = Exception.class)
public BaseResponse adddGrugOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) {
public BaseResponse adddDrugOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) {
AddCodeResult addCodeResult = new AddCodeResult();
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction());
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(addOrderRequest.getInvCode());
@ -795,16 +789,6 @@ public class WorkPutController extends BaseController {
orderService.insertOrder(orderEntity);
}
if (IntUtil.value(addOrderRequest.getOrderType()) == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() != 0) {
boolean isBillExit = orderDetailBizService.isExit(orderEntity.getBillNo());
if (!isBillExit) {
orderService.deleteByBillNo(orderEntity.getBillNo());
return ResultVOUtils.error(500, "请先录入业务详情");
}
}
BaseResponse baseResponse = checkDrugRelId(codeEnttity, unitFk);
if (baseResponse != null) {
deleteEmptyBillNo(orderEntity);

@ -4,11 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.collect.IoSplitFifoInvRel;
import org.apache.ibatis.annotations.Mapper;
/**
* @author : zhangsan
* @date : 2024/9/27 10:26
* @modyified By :
*/
import java.util.List;
@Mapper
public interface IoSplitFifoInvRelMapper extends BaseMapper<IoSplitFifoInvRel> {
List<IoSplitFifoInvRel> findInvIdFk(Long collectWorkCode, String busType);
}

@ -1,9 +1,11 @@
package com.glxp.api.dao.collect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.collect.SysWorkplacePutRel;
import com.glxp.api.entity.basic.SysWorkplacePutRel;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SysWorkplacePutRelMapper extends BaseMapper<SysWorkplacePutRel> {
}

@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import lombok.Data;
/**
@ -30,6 +32,11 @@ public class SysWorkplaceBus implements Serializable {
@ApiModelProperty(value = "单据类型表code")
private String busTypeCode;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private static final long serialVersionUID = 1L;
}

@ -1,4 +1,4 @@
package com.glxp.api.entity.collect;
package com.glxp.api.entity.basic;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
@ -6,8 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
@ -15,7 +17,7 @@ import lombok.Data;
*/
@ApiModel(value = "com-glxp-api-entity-collect-SysWorkplacePutRel")
@Data
@TableName(value = "udi_wms_ywj.sys_workplace_put_rel")
@TableName(value = "sys_workplace_put_rel")
public class SysWorkplacePutRel implements Serializable {
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value = "")
@ -26,7 +28,7 @@ public class SysWorkplacePutRel implements Serializable {
*/
@TableField(value = "workPlaceCode")
@ApiModelProperty(value = "上货工位编码")
private String workPlaceCode;
private Long workPlaceCode;
/**
* ID
@ -40,7 +42,7 @@ public class SysWorkplacePutRel implements Serializable {
*/
@TableField(value = "collectWorkCode")
@ApiModelProperty(value = "采集工位编码")
private String collectWorkCode;
private Long collectWorkCode;
/**
*

@ -6,8 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
@ -15,7 +17,7 @@ import lombok.Data;
*/
@ApiModel(value = "com-glxp-api-entity-collect-IoSplitFifoInvRel")
@Data
@TableName(value = "udi_wms_ywj.io_split_fifo_inv_rel")
@TableName(value = "io_split_fifo_inv_rel")
public class IoSplitFifoInvRel implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "")
@ -26,7 +28,7 @@ public class IoSplitFifoInvRel implements Serializable {
*/
@TableField(value = "invIdFk")
@ApiModelProperty(value = "库存ID外键")
private Integer invIdFk;
private Long invIdFk;
/**
*

@ -81,7 +81,7 @@ public class SysWorkplaceDocumentService extends ServiceImpl<SysWorkplaceDocumen
return null;
}
//独占库存
public Boolean isOnlyInv(Long workPlaceCode, String busType) {
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = findByWorkplaceCode(workPlaceCode, busType);
if (IntUtil.value(sysWorkplaceDocumentEntity.getMonopoly()) == 0) {

@ -5,7 +5,13 @@ import com.glxp.api.dao.collect.IoSplitFifoInvRelMapper;
import com.glxp.api.entity.collect.IoSplitFifoInvRel;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IoSplitFifoInvRelService extends ServiceImpl<IoSplitFifoInvRelMapper, IoSplitFifoInvRel> {
public List<IoSplitFifoInvRel> findInvIdFk(Long collectWorkCode, String busType) {
return super.baseMapper.findInvIdFk(collectWorkCode, busType);
}
}

@ -6,8 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inout.IoSplitCodeMapper;
import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity;
import com.glxp.api.entity.basic.BasicSkPrescribeEntity;
import com.glxp.api.entity.basic.SysWorkplacePutRel;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.collect.*;
import com.glxp.api.entity.inout.IoSplitCodeEntity;
@ -15,10 +14,9 @@ import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
import com.glxp.api.entity.inout.IoSplitFifoInv;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.inout.IoSplitCodeRequest;
import com.glxp.api.service.basic.BasicSkPrescribeDiService;
import com.glxp.api.service.basic.BasicSkPrescribeService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.collect.*;
import com.glxp.api.service.thrsys.SysWorkplacePutRelService;
import com.glxp.api.util.IntUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -31,17 +29,11 @@ import java.util.stream.Collectors;
@Service
public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCodeEntity> {
@Resource
BasicSkPrescribeDiService basicSkPrescribeDiService;
@Resource
IoSplitCodeMapper splitCodeMapper;
@Resource
IoSplitFifoCodeService splitFifoCodeService;
@Resource
BasicSkPrescribeService basicSkPrescribeService;
@Resource
IoCollectOrderService collectOrderService;
@Resource
IoCollectOrderBizService collectOrderBizService;
@Resource
IoCollectOrderCodeAutoService collectOrderCodeAutoService;
@ -77,190 +69,6 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
return null;
}
// /**
// * 处方自动赋码
// */
// public void prescribeAutoTagCode(BasicSkPrescribeEntity basicSkPrescribeEntity) {
//
// List<BasicSkPrescribeDiEntity> basicSkPrescribeDiEntities = basicSkPrescribeDiService.findByPrescribe(basicSkPrescribeEntity.getAdNum());
// //处方赋码状态 1未赋码2部分赋码3全部赋码
// for (BasicSkPrescribeDiEntity basicSkPrescribeDiEntity : basicSkPrescribeDiEntities) {
//
// //1.按照先进先出原则查询拆零表获取拆零表ID
// List<IoSplitCodeEntity> ioSplitCodeEntities = findSplitCodes(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), basicSkPrescribeEntity.getWorkPlaceCode());
//
// //2.如果拆零表为空,则自动从预出库队列中获拉取数据
// if (CollUtil.isEmpty(ioSplitCodeEntities)) {
// addFifoCode(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), IntUtil.value(basicSkPrescribeDiEntity.getMeasureCount()));
// }
// ioSplitCodeEntities = findSplitCodes(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), basicSkPrescribeEntity.getWorkPlaceCode());
//
// //3.如果拆零表不为空,则开始扣除数量
// int count = 0;
// int unCount = 0; //剩余未扣减数量
// unCount = IntUtil.value(basicSkPrescribeDiEntity.getMeasureCount());
// for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
// count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
// if (count > 0) {
// ioSplitCodeEntity.setRemainCount(count);
// break;
// } else if (count == 0) {
// ioSplitCodeEntity.setRemainCount(0);
// } else {
// ioSplitCodeEntity.setRemainCount(0);
// unCount = -count;
// }
// }
//
// if (unCount > 0) {
// //4.拆零表数量不足,则从预出库队列中获取数据
// Integer fifoCount = addFifoCode(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), unCount);
// if (fifoCount == 0) {
// //预出库队列数量不足
// basicSkPrescribeDiEntity.setTagStatus(2);
// basicSkPrescribeDiEntity.setTagMsg("预出库队列码数量不足,赋码失败!");
// } else {
// //再次执行赋码
// ioSplitCodeEntities = findSplitCodes(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), basicSkPrescribeEntity.getWorkPlaceCode());
// for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
// count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
// if (count > 0) {
// ioSplitCodeEntity.setRemainCount(count);
// break;
// } else if (count == 0) {
// ioSplitCodeEntity.setRemainCount(0);
// } else {
// ioSplitCodeEntity.setRemainCount(0);
// unCount = -count;
// }
// }
// if (unCount > 0) {
// basicSkPrescribeDiEntity.setTagStatus(2);
// basicSkPrescribeDiEntity.setTagMsg("预出库队列码数量不足,赋码失败!");
// } else {
// basicSkPrescribeDiEntity.setTagStatus(3);
// basicSkPrescribeDiEntity.setTagMsg("赋码完成!");
// }
// }
// }
// basicSkPrescribeDiService.updateById(basicSkPrescribeDiEntity);
// }
// basicSkPrescribeEntity.setTagStatus(checkStatus1(basicSkPrescribeDiEntities));
// basicSkPrescribeService.updateById(basicSkPrescribeEntity);
// }
// /**
// * 单据自动赋码
// */
// public void orderAutoTagCode(IoCollectOrder collectOrder) {
//
// List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
// //处方赋码状态 1未赋码2部分赋码3全部赋码
// for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
// if (IntUtil.value(collectOrderBiz.getTagStatus()) == 3) {
// continue;
// }
// //1.按照先进先出原则查询拆零表获取拆零表ID
// List<IoSplitCodeEntity> ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), collectOrder.getWorkPlaceCode());
//
// //2.如果拆零表为空,则自动从预出库队列中获拉取数据
// if (CollUtil.isEmpty(ioSplitCodeEntities)) {
// addFifoCode(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), IntUtil.value(collectOrderBiz.getCount()));
// ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), collectOrder.getWorkPlaceCode());
// }
// //3.如果拆零表不为空,则开始扣除数量
// int count = 0;
// int unCount = 0; //剩余未扣减数量
// unCount = IntUtil.value(collectOrderBiz.getUnTagCount());
// for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
// count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
// collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder()
// .codeIdFk(ioSplitCodeEntity.getId())
// .udiCode(ioSplitCodeEntity.getCode())
// .orderIdFk(collectOrder.getBillNo())
// .batchNo(ioSplitCodeEntity.getBatchNo())
// .productDate(ioSplitCodeEntity.getProduceDate())
// .expireDate(ioSplitCodeEntity.getExpireDate())
// .serialNo(ioSplitCodeEntity.getSerialNo())
// .relId(collectOrderBiz.getRelId())
// .bizIdFk(collectOrderBiz.getId())
// .fifoSplit(ioSplitCodeEntity.getFifoSplit())
// .createTime(new Date())
// .updateTime(new Date())
// .build());
// if (count > 0) {
// ioSplitCodeEntity.setRemainCount(count);
// unCount = 0;
// splitCodeMapper.updateById(ioSplitCodeEntity);
// break;
// } else if (count == 0) {
// ioSplitCodeEntity.setRemainCount(0);
// unCount = 0;
// } else {
// ioSplitCodeEntity.setRemainCount(0);
// unCount = -count;
// }
// splitCodeMapper.updateById(ioSplitCodeEntity);
// }
//
// if (unCount > 0) {
// //4.拆零表数量不足,则从预出库队列中获取数据
// Integer fifoCount = addFifoCode(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), unCount);
// if (fifoCount == 0) {
// //预出库队列数量不足
// collectOrderBiz.setTagStatus(2);
// collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
// } else {
// //再次执行赋码
// ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), collectOrder.getWorkPlaceCode());
// for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
// count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
// collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder()
// .codeIdFk(ioSplitCodeEntity.getId())
// .udiCode(ioSplitCodeEntity.getCode())
// .orderIdFk(collectOrder.getBillNo())
// .batchNo(ioSplitCodeEntity.getBatchNo())
// .productDate(ioSplitCodeEntity.getProduceDate())
// .expireDate(ioSplitCodeEntity.getExpireDate())
// .serialNo(ioSplitCodeEntity.getSerialNo())
// .relId(collectOrderBiz.getRelId())
// .bizIdFk(collectOrderBiz.getId())
// .fifoSplit(ioSplitCodeEntity.getFifoSplit())
// .createTime(new Date())
// .updateTime(new Date())
// .build());
// if (count > 0) {
// ioSplitCodeEntity.setRemainCount(count);
// break;
// } else if (count == 0) {
// ioSplitCodeEntity.setRemainCount(0);
// } else {
// ioSplitCodeEntity.setRemainCount(0);
// unCount = -count;
// }
// }
// if (unCount > 0) {
// collectOrderBiz.setTagStatus(2);
// collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
// } else {
// collectOrderBiz.setTagStatus(3);
// collectOrderBiz.setTagMsg("赋码完成!");
// }
// }
// } else {
// collectOrderBiz.setTagStatus(3);
// collectOrderBiz.setTagMsg("赋码完成!");
// }
// collectOrderBiz.setUnTagCount(unCount);
// collectOrderBizService.updateById(collectOrderBiz);
// }
// collectOrder.setSplitStatus(checkStatus(collectOrderBizs));
// collectOrderService.updateById(collectOrder);
// }
public void splitRemove(IoCollectOrderBiz collectOrderBiz, IoCollectOrder collectOrder) {
//1.按照先进先出原则查询拆零表获取拆零表ID
List<IoSplitCodeEntity> ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), collectOrder.getWorkPlaceCode());
@ -372,13 +180,18 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
@Transactional(rollbackFor = Exception.class)
public void finishAutoTagCode(IoCollectOrder collectOrder) {
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
Long putWorkPlaceCode = null;
if (sysWorkplacePutRel != null)
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
//如果手动扫码判断该码是否在队列里,如果已在队列,则队列里剔除
List<IoCollectOrderCodeMan> collectOrderCodeMEN = collectOrderCodeManService.listByBillNo(collectOrder.getBillNo());
if (CollUtil.isNotEmpty(collectOrderCodeMEN)) {
for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMEN) {
IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeService.findByCode(collectOrderCodeMan.getUdiCode(), collectOrder.getWorkPlaceCode());
IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeService.findByCode(collectOrderCodeMan.getUdiCode(), putWorkPlaceCode);
if (splitFifoCodeEntity != null) {
collectOrderCodeMan.setRemoveFlag(true);
if (IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()) <= 0) {
@ -447,7 +260,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
.serialNo(result.getSerialNo())
.scanCount(result.getScanCount())
.totalCount(result.getScanCount())
.workPlaceCode(collectOrder.getWorkPlaceCode())
.workPlaceCode(putWorkPlaceCode)
.status(2)
.fifoSplit(1)
.createTime(new Date()).updateTime(new Date())
@ -464,7 +277,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
int remainder = collectOrderBiz.getUnTagCount() % IntUtil.value(udiRelevanceEntity.getUseLeverCount());
//2.如果整盒,从工位队列扣除
if (quotient > 0) {
List<IoSplitFifoCodeEntity> ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(collectOrder.getWorkPlaceCode(), collectOrder.getBusType(), collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo());
List<IoSplitFifoCodeEntity> ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo());
if (ioSplitFifoCodeEntities.size() < quotient) {
return;
// throw new JsonException(500, "提交失败,工位库存数量不足!");
@ -504,23 +317,48 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
@Resource
IoSplitFifoInvRelService splitFifoInvRelService;
public List<Long> findInvIdFk(IoCollectOrder collectOrder) {
List<IoSplitFifoInvRel> ioSplitFifoInvRels = splitFifoInvRelService.findInvIdFk(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
if (CollUtil.isNotEmpty(ioSplitFifoInvRels)) {
return ioSplitFifoInvRels.stream()
.map(IoSplitFifoInvRel::getInvIdFk)
.collect(Collectors.toList());
} else
return null;
}
@Resource
SysWorkplacePutRelService workplacePutRelService;
/**
*
*
* @param collectOrder
*/
public void preAutoTagCode(IoCollectOrder collectOrder) {
Long putWorkPlaceCode = null;
//获取上货工位
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
if (sysWorkplacePutRel == null)
putWorkPlaceCode = sysWorkplacePutRel.getCollectWorkCode();
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
List<IoSplitFifoCodeEntity> splitFifoCodeEntities =
splitFifoCodeService.findByRelId(collectOrder.getWorkPlaceCode(), collectOrder.getBusType(),
splitFifoCodeService.findByRelId(putWorkPlaceCode,
collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo());
int total = splitFifoCodeEntities.stream()
.mapToInt(IoSplitFifoCodeEntity::getTotalCount)
.sum();
collectOrderBiz.setTempWorkPlaceCount(total);
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId()
, collectOrderBiz.getBatchNo(), collectOrder.getWorkPlaceCode());
, collectOrderBiz.getBatchNo(), sysWorkplacePutRel.getWorkPlaceCode());
int splitTotal = splitCodeEntities.stream()
.mapToInt(IoSplitCodeEntity::getRemainCount)
.sum();
@ -614,28 +452,6 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
public int checkStatus1(List<BasicSkPrescribeDiEntity> list) {
boolean hasTwo = false;
boolean hasOne = false;
for (BasicSkPrescribeDiEntity di : list) {
int tagStatus = di.getTagStatus();
if (tagStatus == 2) {
hasTwo = true;
} else if (tagStatus == 1) {
hasOne = true;
} else if (tagStatus != 3) {
throw new IllegalArgumentException("Invalid tagStatus value: " + tagStatus);
}
}
if (hasTwo) {
return 2;
} else if (hasOne) {
return 1;
} else {
return 3;
}
}
public int checkStatus(List<IoCollectOrderBiz> list) {
boolean hasTwo = false;
boolean hasOne = false;

@ -50,11 +50,10 @@ public class IoSplitFifoCodeService extends ServiceImpl<IoSplitFifoCodeMapper, I
@Resource
IoCollectOrderBizMapper collectOrderBizMapper;
public List<IoSplitFifoCodeEntity> findByRelId(Long workPlaceCode, String busType, Long relId, String batchNo) {
public List<IoSplitFifoCodeEntity> findByRelId(Long workPlaceCode, Long relId, String batchNo) {
List<IoSplitFifoCodeEntity> splitFifoCodeEntities =
list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
.eq(IoSplitFifoCodeEntity::getWorkPlaceCode, workPlaceCode)
.eq(IoSplitFifoCodeEntity::getRelId, relId)
.eq(StrUtil.isNotEmpty(batchNo), IoSplitFifoCodeEntity::getBatchNo, batchNo)
.orderByAsc(IoSplitFifoCodeEntity::getInBactchNo)
@ -99,6 +98,8 @@ public class IoSplitFifoCodeService extends ServiceImpl<IoSplitFifoCodeMapper, I
public IoSplitFifoCodeEntity findByCode(String code, Long workPlaceCode) {
if (workPlaceCode == null)
return null;
return splitFifoCodeMapper.selectOne(
new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
.eq(IoSplitFifoCodeEntity::getCode, code)
@ -107,6 +108,16 @@ public class IoSplitFifoCodeService extends ServiceImpl<IoSplitFifoCodeMapper, I
);
}
public IoSplitFifoCodeEntity findByCodes(String code, List<Long> invIdFks) {
return splitFifoCodeMapper.selectOne(
new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
.eq(IoSplitFifoCodeEntity::getCode, code)
.in(IoSplitFifoCodeEntity::getInvIdFk, invIdFks)
.last("limit 1")
);
}
/**
*
*

@ -8,11 +8,15 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity;
import com.glxp.api.entity.basic.SysWorkplacePutRel;
import com.glxp.api.entity.collect.IoSplitFifoInvRel;
import com.glxp.api.entity.inout.IoCodeEntity;
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
import com.glxp.api.req.inout.IoSplitFifoInvRequest;
import com.glxp.api.res.inout.IoSplitInvResponse;
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
import com.glxp.api.service.collect.IoSplitFifoInvRelService;
import com.glxp.api.service.thrsys.SysWorkplacePutRelService;
import com.glxp.api.util.IntUtil;
import org.apache.xpath.operations.Bool;
import org.springframework.beans.BeanUtils;
@ -111,6 +115,20 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
splitFifoInv.setBusType(ioSplitFifoCodeEntity.getBusType());
}
save(splitFifoInv);
//更新库存工位关联
List<SysWorkplacePutRel> sysWorkplacePutRels = sysWorkplacePutRelService.selectByWorkPutCode(workPlaceCode);
if (CollUtil.isNotEmpty(sysWorkplacePutRels)) {
for (SysWorkplacePutRel sysWorkplacePutRel : sysWorkplacePutRels) {
IoSplitFifoInvRel splitFifoInvRel = new IoSplitFifoInvRel();
splitFifoInvRel.setInvIdFk(splitFifoInv.getId());
splitFifoInvRel.setPutWorkCode(workPlaceCode);
splitFifoInvRel.setCollectWorkCode(sysWorkplacePutRel.getCollectWorkCode());
splitFifoInvRel.setBusType(sysWorkplacePutRel.getCollectBusType());
splitFifoInvRel.setCreateTime(new Date());
splitFifoInvRel.setUpdateTime(new Date());
splitFifoInvRelService.saveOrUpdate(splitFifoInvRel);
}
}
}
ioSplitFifoCodeEntity.setInvIdFk(splitFifoInv.getId());
}
@ -118,6 +136,11 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
splitFifoCodeService.saveBatch(splitCodeEntities);
}
@Resource
SysWorkplacePutRelService sysWorkplacePutRelService;
@Resource
IoSplitFifoInvRelService splitFifoInvRelService;
/**
*
*
@ -161,9 +184,8 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
.eq(IoSplitFifoInv::getRelId, ioSplitFifoCodeEntity.getRelId())
.eq(IoSplitFifoInv::getWorkPlaceCode, ioSplitFifoCodeEntity.getWorkPlaceCode())
.eq(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBatchNo()), IoSplitFifoInv::getBatchNo, ioSplitFifoCodeEntity.getBatchNo())
.eq(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBusType()) && isOnlyInv, IoSplitFifoInv::getBusType, ioSplitFifoCodeEntity.getBusType())
.eq(ioSplitFifoCodeEntity.getSupId() != null, IoSplitFifoInv::getSupId, ioSplitFifoCodeEntity.getSupId()).last("limit 1"));
// .eq(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBusType()) && isOnlyInv, IoSplitFifoInv::getBusType, ioSplitFifoCodeEntity.getBusType())
return splitFifoInv;
}

@ -1,12 +1,28 @@
package com.glxp.api.service.thrsys;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.collect.SysWorkplacePutRelMapper;
import com.glxp.api.entity.collect.SysWorkplacePutRel;
import com.glxp.api.entity.basic.SysWorkplacePutRel;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class SysWorkplacePutRelService extends ServiceImpl<SysWorkplacePutRelMapper, SysWorkplacePutRel> {
public SysWorkplacePutRel findPutWorkPlace(Long workPlaceCode, String busType) {
List<SysWorkplacePutRel> sysWorkplacePutRelList = list(new LambdaQueryWrapper<SysWorkplacePutRel>().eq(SysWorkplacePutRel::getCollectWorkCode, workPlaceCode).eq(SysWorkplacePutRel::getCollectBusType, busType));
if (CollUtil.isNotEmpty(sysWorkplacePutRelList))
return sysWorkplacePutRelList.get(0);
else
return null;
}
public List<SysWorkplacePutRel> selectByWorkPutCode(Long workPlaceCode) {
return list(new LambdaQueryWrapper<SysWorkplacePutRel>().eq(SysWorkplacePutRel::getWorkPlaceCode, workPlaceCode)
);
}
}

@ -2,4 +2,20 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.collect.IoSplitFifoInvRelMapper">
<select id="findInvIdFk" resultType="com.glxp.api.entity.collect.IoSplitFifoInvRel">
SELECT *
from io_split_fifo_inv_rel icc left join io_split_fifo_inv isfi
on icc.invIdFk = isfi.id
<where>
<if test="workPlaceCode != null">
AND icc.collectWorkCode =#{collectWorkCode}
</if>
<if test="busType != null">
AND icc.busType =#{busType}
</if>
and isfi.invRemindCount>0
</where>
group by icc.id
</select>
</mapper>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.basic.SysWorkplacePutRelMapper">
</mapper>

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.collect.SysWorkplacePutRelMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.collect.SysWorkplacePutRel">
<!--@mbg.generated-->
<!--@Table udi_wms_ywj.sys_workplace_put_rel-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="workPlaceCode" jdbcType="VARCHAR" property="workPlaceCode" />
<result column="relBusIdFk" jdbcType="INTEGER" property="relBusIdFk" />
<result column="collectWorkCode" jdbcType="VARCHAR" property="collectWorkCode" />
<result column="collectBusType" jdbcType="VARCHAR" property="collectBusType" />
<result column="createTime" jdbcType="TIMESTAMP" property="createTime" />
<result column="createUser" jdbcType="VARCHAR" property="createUser" />
<result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
<result column="updateUser" jdbcType="VARCHAR" property="updateUser" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, workPlaceCode, relBusIdFk, collectWorkCode, collectBusType, createTime, `createUser`,
updateTime, updateUser, remark
</sql>
</mapper>
Loading…
Cancel
Save