工位上货接口独立

dev_no_inv
yewj 9 months ago
parent d9078fe7d8
commit 2b0eab6452

@ -399,19 +399,19 @@ public class IoOrderController extends BaseController {
//上货校验追溯码是否重复
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) {
for (IoCodeTempEntity codeTempEntity :codeTempEntities){
for (IoCodeTempEntity codeTempEntity : codeTempEntities) {
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(codeTempEntity.getCode(), null);
if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) {
return ResultVOUtils.error(500, "当前追溯码:" + fifoCodeEntity.getCode() +"已存在!");
return ResultVOUtils.error(500, "当前追溯码:" + fifoCodeEntity.getCode() + "已存在!");
}
}
}
//退货校验追溯码是否重复
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) {
for (IoCodeTempEntity codeTempEntity :codeTempEntities){
for (IoCodeTempEntity codeTempEntity : codeTempEntities) {
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(codeTempEntity.getCode(), null);
if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) {
return ResultVOUtils.error(500, "当前追溯码:" + fifoCodeEntity.getCode() +"已存在!");
return ResultVOUtils.error(500, "当前追溯码:" + fifoCodeEntity.getCode() + "已存在!");
}
}
}

@ -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> {
}
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,13 +6,15 @@ 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;
/**
*
*/
@ApiModel(value="com-glxp-api-entity-collect-SysWorkplaceBus")
*
*/
@ApiModel(value = "com-glxp-api-entity-collect-SysWorkplaceBus")
@Data
@TableName(value = "sys_workplace_bus")
public class SysWorkplaceBus implements Serializable {
@ -20,16 +22,21 @@ public class SysWorkplaceBus implements Serializable {
* code
*/
@TableField(value = "workplaceCode")
@ApiModelProperty(value="工位编码code")
@ApiModelProperty(value = "工位编码code")
private Long workplaceCode;
/**
* code
*/
@TableField(value = "busTypeCode")
@ApiModelProperty(value="单据类型表code")
@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,82 +6,84 @@ 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;
/**
*
*/
@ApiModel(value="com-glxp-api-entity-collect-SysWorkplacePutRel")
*
*/
@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="")
@ApiModelProperty(value = "")
private Integer id;
/**
*
*/
@TableField(value = "workPlaceCode")
@ApiModelProperty(value="上货工位编码")
private String workPlaceCode;
@ApiModelProperty(value = "上货工位编码")
private Long workPlaceCode;
/**
* ID
*/
@TableField(value = "relBusIdFk")
@ApiModelProperty(value="关联业务类型ID")
@ApiModelProperty(value = "关联业务类型ID")
private Integer relBusIdFk;
/**
*
*/
@TableField(value = "collectWorkCode")
@ApiModelProperty(value="采集工位编码")
private String collectWorkCode;
@ApiModelProperty(value = "采集工位编码")
private Long collectWorkCode;
/**
*
*/
@TableField(value = "collectBusType")
@ApiModelProperty(value="采集工位业务类型")
@ApiModelProperty(value = "采集工位业务类型")
private String collectBusType;
/**
*
*/
@TableField(value = "createTime")
@ApiModelProperty(value="创建时间")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
*
*/
@TableField(value = "createUser")
@ApiModelProperty(value="创建人")
@ApiModelProperty(value = "创建人")
private String createUser;
/**
*
*/
@TableField(value = "updateTime")
@ApiModelProperty(value="更新时间")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
*
*/
@TableField(value = "updateUser")
@ApiModelProperty(value="更新人")
@ApiModelProperty(value = "更新人")
private String updateUser;
/**
*
*/
@TableField(value = "remark")
@ApiModelProperty(value="备注")
@ApiModelProperty(value = "备注")
private String remark;
private static final long serialVersionUID = 1L;

@ -6,75 +6,77 @@ 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;
/**
*
*/
@ApiModel(value="com-glxp-api-entity-collect-IoSplitFifoInvRel")
*
*/
@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="")
@ApiModelProperty(value = "")
private Integer id;
/**
* ID
*/
@TableField(value = "invIdFk")
@ApiModelProperty(value="库存ID外键")
private Integer invIdFk;
@ApiModelProperty(value = "库存ID外键")
private Long invIdFk;
/**
*
*/
@TableField(value = "putWorkCode")
@ApiModelProperty(value="上货工位编码")
@ApiModelProperty(value = "上货工位编码")
private Long putWorkCode;
/**
*
*/
@TableField(value = "collectWorkCode")
@ApiModelProperty(value="采集工位编码")
@ApiModelProperty(value = "采集工位编码")
private Long collectWorkCode;
/**
*
*/
@TableField(value = "busType")
@ApiModelProperty(value="业务类型")
@ApiModelProperty(value = "业务类型")
private String busType;
/**
*
*/
@TableField(value = "updateTime")
@ApiModelProperty(value="更新时间")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
*
*/
@TableField(value = "createTime")
@ApiModelProperty(value="创建时间")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
*
*/
@TableField(value = "createUser")
@ApiModelProperty(value="创建人")
@ApiModelProperty(value = "创建人")
private String createUser;
/**
*
*/
@TableField(value = "updateUser")
@ApiModelProperty(value="更新人")
@ApiModelProperty(value = "更新人")
private String updateUser;
private static final long serialVersionUID = 1L;

@ -72,16 +72,16 @@ public class SysWorkplaceDocumentService extends ServiceImpl<SysWorkplaceDocumen
request.setDocumentTypeCode(busType);
List<SysWorkplaceDocumentResponse> sysWorkplaceDocumentResponses = sysWorkplaceDocumentDao.filterList(request);
if (CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)){
if (CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)) {
SysWorkplaceDocumentResponse sysWorkplaceDocumentResponse = sysWorkplaceDocumentResponses.get(0);
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = new SysWorkplaceDocumentEntity();
BeanUtils.copyProperties(sysWorkplaceDocumentResponse,sysWorkplaceDocumentEntity);
BeanUtils.copyProperties(sysWorkplaceDocumentResponse, sysWorkplaceDocumentEntity);
return sysWorkplaceDocumentEntity;
}else
return null;
} else
return null;
}
//独占库存
public Boolean isOnlyInv(Long workPlaceCode, String busType) {
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = findByWorkplaceCode(workPlaceCode, busType);
if (IntUtil.value(sysWorkplaceDocumentEntity.getMonopoly()) == 0) {
@ -127,19 +127,19 @@ public class SysWorkplaceDocumentService extends ServiceImpl<SysWorkplaceDocumen
entity.setUpdateTime(new Date());
entity.setUpdateUser(userId.toString());
entity.setCreateUser(userId.toString());
if (entity.getInvCode() == null){
if (entity.getInvCode() == null) {
entity.setInvCode(0);
}
if (entity.getScanType() == 1){
if (entity.getScanType() == 1) {
//用于前端显示
entity.setOrderFinishVerify(4);
}
Integer number = sysWorkplaceDocumentDao.findMaxNumberByWorkplaceCode(entity.getWorkplaceCode());
if (number == null){
if (number == null) {
//为空 默认1
entity.setNumber(1);
}
if ( entity.getNumber() == null){
if (entity.getNumber() == null) {
entity.setNumber(1);
}
int insert = sysWorkplaceDocumentDao.insert(entity);
@ -150,7 +150,7 @@ public class SysWorkplaceDocumentService extends ServiceImpl<SysWorkplaceDocumen
}
public Boolean removeBusTypeByBusTypeAndWorkplace(Long workplaceCode, String documentTypeCode) {
return sysWorkplaceBusService.remove(new LambdaUpdateWrapper<SysWorkplaceBus>().eq(SysWorkplaceBus::getWorkplaceCode,workplaceCode).eq(SysWorkplaceBus::getBusTypeCode,documentTypeCode));
return sysWorkplaceBusService.remove(new LambdaUpdateWrapper<SysWorkplaceBus>().eq(SysWorkplaceBus::getWorkplaceCode, workplaceCode).eq(SysWorkplaceBus::getBusTypeCode, documentTypeCode));
}
}

@ -159,7 +159,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
if (collectOrderRequest == null) {
return Collections.emptyList();
}
if (collectOrderRequest.getPage() != null && collectOrderRequest.getLimit()!=null) {
if (collectOrderRequest.getPage() != null && collectOrderRequest.getLimit() != null) {
int offset = (collectOrderRequest.getPage() - 1) * collectOrderRequest.getLimit();
PageHelper.offsetPage(offset, collectOrderRequest.getLimit());
}
@ -522,8 +522,8 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
collectOrder.setOrderCirType(sysWorkplaceDocumentEntity.getOrderCirType());
BeanUtils.copyProperties(collectOrder, ioCollectOrderOrigin);
boolean save = collectOrderOriginService.save(ioCollectOrderOrigin);
if (!save){
throw new JsonException(500,"charu cuowu ");
if (!save) {
throw new JsonException(500, "charu cuowu ");
}
@ -531,7 +531,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
if (CollUtil.isNotEmpty(bizList)) {
//先清空 原来的biz
String billNo = collectOrder.getBillNo();
collectOrderBizOriginService.remove(new LambdaUpdateWrapper<IoCollectOrderBizOrigin>().eq(IoCollectOrderBizOrigin::getOrderIdFk,billNo));
collectOrderBizOriginService.remove(new LambdaUpdateWrapper<IoCollectOrderBizOrigin>().eq(IoCollectOrderBizOrigin::getOrderIdFk, billNo));
for (IoCollectOrderBiz collectOrderBiz : bizList) {
if (collectOrderBiz.getRelId() != null) {
@ -819,13 +819,13 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
.eq(IoCollectOrder::getWorkPlaceCode, request.getWorkPlaceCode())
.eq(IoCollectOrder::getTagStatus, request.getTagStatus()));
if (ioCollectOrders.size() >0){
if (ioCollectOrders.size() > 0) {
return false;
}
//如果有判断是否是当前单据
if (ioCollectOrders.size() == 1){
if (ioCollectOrders.size() == 1) {
IoCollectOrder ioCollectOrder = ioCollectOrders.get(0);
if (ioCollectOrder.getBillNo().equals(request.getBillNo())){
if (ioCollectOrder.getBillNo().equals(request.getBillNo())) {
return true;
}
return false;

@ -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")
);
}
/**
*
*
@ -212,7 +223,7 @@ public class IoSplitFifoCodeService extends ServiceImpl<IoSplitFifoCodeMapper, I
IoSplitFifoInvRequest ioSplitFifoInvRequest = new IoSplitFifoInvRequest();
ioSplitFifoInvRequest.setWorkPlaceCode(workPlaceCode);
List<IoSplitInvResponse> ioSplitInvResponses = splitFifoInvService.filterList(ioSplitFifoInvRequest);
if (CollUtil.isEmpty(ioSplitInvResponses)){
if (CollUtil.isEmpty(ioSplitInvResponses)) {
collectOrderMapper.updateInvAlert(order.getId(), 2);
if (CollUtil.isNotEmpty(bizList)) {

@ -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