Merge remote-tracking branch 'origin/dev_fifo_z' into dev_fifo_z

workplace
wangwei 10 months ago
commit e38fe7250b

@ -160,8 +160,8 @@ public class UdiContrastController {
udiRelevanceEntity.setSupName(udiCombineRequest.getSupName());
udiRelevanceEntity.setUpdateUser(customerService.getUserId() + "");
UdiRelevanceResponse temp = udiContrastService.findById(udiRelevanceEntity.getId());
if (temp.getType() == 2){
if (udiContrastService.isDrugExit(temp.getOriginUuid(),udiRelevanceEntity.getMainId(), udiCombineRequest.getThirdSys())) {
if (temp.getType() == 2) {
if (udiContrastService.isDrugExit(temp.getOriginUuid(), udiRelevanceEntity.getMainId(), udiCombineRequest.getThirdSys())) {
return ResultVOUtils.error(500, "已存在相同的对照关系,对照失败!");
} else {
try {
@ -170,7 +170,7 @@ public class UdiContrastController {
return ResultVOUtils.error(500, "已存在相同的对照关系,对照失败!");
}
}
}else {
} else {
if (udiContrastService.isExit(temp.getOriginUuid(), udiRelevanceEntity.getMainId(), udiCombineRequest.getThirdSys())) {
return ResultVOUtils.error(500, "已存在相同的对照关系,对照失败!");
} else {

@ -3,9 +3,13 @@ package com.glxp.api.controller.inout;
import com.glxp.api.annotation.CusRedissonAnnotation;
import com.glxp.api.constant.*;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.res.inout.IoOrderDetailCodeResponse;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.service.collect.IoCollectOriginService;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.impl.InvProductDetailService;
import org.springframework.beans.BeanUtils;
@ -96,6 +100,10 @@ public class IoCodeTempController extends BaseController {
IoCheckInvService checkInvService;
@Resource
IoSplitFifoCodeService splitFifoCodeService;
@Resource
IoCollectOriginService collectOriginService;
@Resource
IoCollectOrderService collectOrderService;
/**
* PDA-----
@ -216,20 +224,48 @@ public class IoCodeTempController extends BaseController {
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
if (udiEntity == null) {
String sptmtodi = systemParamConfigService.selectValueByParamKey(Constant.SPTM_TO_DI);
if (sptmtodi.equals("1")) {
if (code.length() == 13) {
UdiProductEntity udiProductEntity = udiProductService.findBySptm(code);
if (udiProductEntity != null) {
BaseResponse baseResponse = ResultVOUtils.error(508, "UDI码格式错误");
baseResponse.setData(udiProductEntity);
return baseResponse;
String viewType = addEnterCodeRequest.getViewType();
if (viewType.equals("tagCode")){
IoCollectOrder collectOrder = collectOrderService.getByBillNo(code);
if (collectOrder == null ){
//=============================================//
//本地数据库 无此单据时 触发 用billNo 到 处方下载方法 进行下载
CollectOrderRequest collectOrderRequest = new CollectOrderRequest();
collectOrderRequest.setBusType("YPCF002");
collectOrderRequest.setBillNo(code);
BaseResponse baseResponse = collectOriginService.downloadOrder(collectOrderRequest);
if (ResultEnum.SUCCESS.getCode() == baseResponse.getCode()){
collectOrder = collectOrderService.getByBillNo(code);
//=============================================//
BaseResponse response = ResultVOUtils.error(601, code);
response.setData(collectOrder);
return response;
}else {
BaseResponse response = ResultVOUtils.error(501, "UDI码格式错误");
response.setData(originCode);
return response;
}
}else {
BaseResponse response = ResultVOUtils.error(601, code);
response.setData(collectOrder);
return response;
}
} else{
String sptmtodi = systemParamConfigService.selectValueByParamKey(Constant.SPTM_TO_DI);
if (sptmtodi.equals("1")) {
if (code.length() == 13) {
UdiProductEntity udiProductEntity = udiProductService.findBySptm(code);
if (udiProductEntity != null) {
BaseResponse baseResponse = ResultVOUtils.error(508, "UDI码格式错误");
baseResponse.setData(udiProductEntity);
return baseResponse;
}
}
}
BaseResponse baseResponse = ResultVOUtils.error(501, "UDI码格式错误");
baseResponse.setData(originCode);
return baseResponse;
}
BaseResponse baseResponse = ResultVOUtils.error(501, "UDI码格式错误");
baseResponse.setData(originCode);
return baseResponse;
}
if (IntUtil.value(udiEntity.getProductType()) == 2) {
//药品
@ -773,12 +809,12 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "单只允许录入非集采产品!");
}
if (IntUtil.value(addOrderRequest.getFifoSplit()) == 2 && IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
return ResultVOUtils.error(500, "当前上货只允许录入整取产品!");
}
if (IntUtil.value(addOrderRequest.getFifoSplit()) == 1 && !IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
return ResultVOUtils.error(500, "当前上货只允许录入拆零产品!");
}
// if (IntUtil.value(addOrderRequest.getFifoSplit()) == 2 && IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
// return ResultVOUtils.error(500, "当前上货只允许录入整取产品!");
// }
// if (IntUtil.value(addOrderRequest.getFifoSplit()) == 1 && !IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
// return ResultVOUtils.error(500, "当前上货只允许录入拆零产品!");
// }
//计算实际数量
if (bussinessTypeEntity.isUse()) {
codeEnttity.setReCount(IntUtil.value(codeEnttity.getMyReCount()) + udiCalCountUtil.getUseActCount(udiRelevanceResponse));
@ -1061,9 +1097,9 @@ public class IoCodeTempController extends BaseController {
exitLocalEntity.setCount(exitLocalEntity.getMyCount() + 1);
if (bussinessTypeEntity.isUse()) {
exitLocalEntity.setReCount(exitLocalEntity.getMyCount() * udiCalCountUtil.getUseActCount(udiRelevanceResponses.get(0)));
exitLocalEntity.setReCount(exitLocalEntity.getMyReCount() * udiCalCountUtil.getUseActCount(udiRelevanceResponses.get(0)));
} else {
exitLocalEntity.setReCount(exitLocalEntity.getMyCount() * udiCalCountUtil.getCirActCount(udiRelevanceResponses.get(0)));
exitLocalEntity.setReCount(exitLocalEntity.getMyReCount() * udiCalCountUtil.getCirActCount(udiRelevanceResponses.get(0)));
}
if (!StringUtils.isBlank(exitLocalEntity.getSerialNo())) {
@ -1185,12 +1221,12 @@ public class IoCodeTempController extends BaseController {
if (bussinessTypeEntity.getVailGroupBuy() == 2 && udiRelevanceResponse.isGroupBuy()) { //只采集非集采产品
return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "单只允许录入非集采产品!");
}
if (IntUtil.value(addOrderRequest.getFifoSplit()) == 2 && IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
return ResultVOUtils.error(500, "当前上货只允许录入整取产品!");
}
if (IntUtil.value(addOrderRequest.getFifoSplit()) == 1 && !IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
return ResultVOUtils.error(500, "当前上货只允许录入拆零产品!");
}
// if (IntUtil.value(addOrderRequest.getFifoSplit()) == 2 && IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
// return ResultVOUtils.error(500, "当前上货只允许录入整取产品!");
// }
// if (IntUtil.value(addOrderRequest.getFifoSplit()) == 1 && !IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
// return ResultVOUtils.error(500, "当前上货只允许录入拆零产品!");
// }
//计算实际数量
if (bussinessTypeEntity.isUse()) {
@ -2147,12 +2183,12 @@ public class IoCodeTempController extends BaseController {
if (bussinessTypeEntity.getVailGroupBuy() == 2 && udiRelevanceResponse.isGroupBuy()) { //只采集非集采产品
return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "单只允许录入非集采产品!");
}
if (IntUtil.value(addOrderRequest.getFifoSplit()) == 2 && IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
return ResultVOUtils.error(500, "当前上货只允许录入整取产品!");
}
if (IntUtil.value(addOrderRequest.getFifoSplit()) == 1 && !IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
return ResultVOUtils.error(500, "当前上货只允许录入拆零产品!");
}
// if (IntUtil.value(addOrderRequest.getFifoSplit()) == 2 && IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
// return ResultVOUtils.error(500, "当前上货只允许录入整取产品!");
// }
// if (IntUtil.value(addOrderRequest.getFifoSplit()) == 1 && !IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
// return ResultVOUtils.error(500, "当前上货只允许录入拆零产品!");
// }
//计算实际数量
codeEnttity.setReCount(IntUtil.value(codeEnttity.getMyReCount()) + udiCalCountUtil.getActCount(udiRelevanceResponse));
} else if (udiRelevanceResponses.size() == 0) {

@ -92,6 +92,9 @@ public class IoCollectOrderCodeMan implements Serializable {
@ApiModelProperty(value = "")
private Long updateUser;
@TableField(exist = false)
private Boolean removeFlag;
private static final long serialVersionUID = 1L;
}

@ -10,13 +10,19 @@ import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
*/
@ApiModel(value = "com-glxp-api-entity-inout-IoSplitCode")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "io_split_code")
public class IoSplitCodeEntity implements Serializable {
@TableId(value = "id", type = IdType.INPUT)

@ -6,4 +6,5 @@ import lombok.Data;
public class AddEnterCodeRequest {
private String originCode;
private String code;
private String viewType;
}

@ -127,4 +127,9 @@ public class CollectOrderBizResponse {
private Integer autoResCount;
private String replaceCode;
/**
* 123:
*/
private Integer autoTagStatus;
}

@ -268,8 +268,8 @@ public class UdiProductService {
udiProductEntity.setDiType(1);
}
int i = udiProductDao.updateById(udiProductEntity);
if (i == 0){
throw new JsonException(500,"更新错误");
if (i == 0) {
throw new JsonException(500, "更新错误");
}
}
@ -418,16 +418,16 @@ public class UdiProductService {
if (nextLevelProduct2 != null && IntUtil.value(nextLevelProduct2.getPackLevel()) > IntUtil.value(curLevel)) {
UdiProductEntity nextLevelProduct3 = getNextLevelProduct(nextLevelProduct2, udiProductEntities);
if (nextLevelProduct3 != null && IntUtil.value(nextLevelProduct3.getPackLevel()) == IntUtil.value(curLevel)) {
udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) * IntUtil.value(nextLevelProduct1.getMyBhxjsl()) * IntUtil.value(nextLevelProduct2.getMyBhxjsl()) );
udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) * IntUtil.value(nextLevelProduct1.getMyBhxjsl()) * IntUtil.value(nextLevelProduct2.getMyBhxjsl()));
} else {
udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) * IntUtil.value(nextLevelProduct1.getMyBhxjsl()) * IntUtil.value(nextLevelProduct2.getMyBhxjsl()) );
udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) * IntUtil.value(nextLevelProduct1.getMyBhxjsl()) * IntUtil.value(nextLevelProduct2.getMyBhxjsl()));
}
} else {
udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) * IntUtil.value(nextLevelProduct1.getMyBhxjsl()) );
udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) * IntUtil.value(nextLevelProduct1.getMyBhxjsl()));
}
} else {
if (nextLevelProduct1 != null && IntUtil.value(nextLevelProduct1.getPackLevel()) == IntUtil.value(curLevel)) {
udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) );
udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()));
}
}
} else {
@ -462,10 +462,10 @@ public class UdiProductService {
List<UdiProductEntity> byUuids = udiProductDao.findByUuids(updateLevelDrugRequest.getUuid());
UdiProductEntity udiProductEntity1 = null;
if (byUuids.size() == 1){
if (byUuids.size() == 1) {
//只有一条药品数据
udiProductEntity1 = byUuids.get(0);
if (udiProductEntity1!= null && udiProductEntity1.getNameCode() == null){
udiProductEntity1 = byUuids.get(0);
if (udiProductEntity1 != null && udiProductEntity1.getNameCode() == null) {
//更新
udiProductEntity1.setNameCode(updateLevelDrugRequest.getNameCode());
udiProductEntity1.setPackLevel(updateLevelDrugRequest.getPackLevel() + "");
@ -473,35 +473,38 @@ public class UdiProductService {
udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm());
udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm());
udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getMyBhxjsl());
udiProductDao.updateById(udiProductEntity1);
}
}
udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode());
udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode());
//有药品数据 但是nameCode如果为空的话 院内新增的 更改nameCode
if (udiProductEntity1 != null) {
//更新
udiProductEntity1.setNameCode(updateLevelDrugRequest.getNameCode());
udiProductEntity1.setPackLevel(updateLevelDrugRequest.getPackLevel() + "");
udiProductEntity1.setPackUnit(updateLevelDrugRequest.getPackUnit());
udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm());
udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm());
udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getMyBhxjsl());
udiProductDao.updateById(udiProductEntity1);
} else {
//新增
udiProductEntity1 = udiProductDao.findByUuid(udiRelevanceEntity.getUuid());
udiProductEntity1.setNameCode(updateLevelDrugRequest.getNameCode());
udiProductEntity1.setPackLevel(updateLevelDrugRequest.getPackLevel() + "");
udiProductEntity1.setPackUnit(updateLevelDrugRequest.getPackUnit());
udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm());
udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm());
udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getMyBhxjsl());
udiProductEntity1.setUuid(udiRelevanceEntity.getUuid());
udiProductEntity1.setId(IdUtil.getSnowflakeNextId());
udiProductDao.insert(udiProductEntity1);
if (udiProductEntity1 != null) {
//更新
udiProductEntity1.setNameCode(updateLevelDrugRequest.getNameCode());
udiProductEntity1.setPackLevel(updateLevelDrugRequest.getPackLevel() + "");
udiProductEntity1.setPackUnit(updateLevelDrugRequest.getPackUnit());
udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm());
udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm());
udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getMyBhxjsl());
} else {
//新增
udiProductEntity1 = udiProductDao.findByUuid(udiRelevanceEntity.getUuid());
udiProductEntity1.setNameCode(updateLevelDrugRequest.getNameCode());
udiProductEntity1.setPackLevel(updateLevelDrugRequest.getPackLevel() + "");
udiProductEntity1.setPackUnit(updateLevelDrugRequest.getPackUnit());
udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm());
udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm());
udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getMyBhxjsl());
udiProductEntity1.setUuid(udiRelevanceEntity.getUuid());
udiProductEntity1.setId(IdUtil.getSnowflakeNextId());
}
if (IntUtil.value(udiProductEntity1.getPackLevel()) == 1) {
if (IntUtil.value(udiProductEntity1.getPackLevel()) == 1) {
calculateDistCount(udiProductEntity1, udiRelevanceEntity);
calculateUseCount(udiProductEntity1, udiRelevanceEntity);
}
}
udiProductDao.updateById(udiProductEntity1);
} else {
//必须先提交后才能保存
UdiProductEntity udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode());
@ -520,6 +523,7 @@ public class UdiProductService {
findUltimateEntity(udiProductEntity, udiProductEntities, xjCountWrapper);
udiRelevanceEntity.setDistributeLevelDi(udiProductEntity.getNameCode());
udiRelevanceEntity.setDistributeLevelUnit(udiProductEntity.getPackUnit());
udiRelevanceEntity.setDistributeLevel(IntUtil.value(udiProductEntity.getPackLevel()));
udiRelevanceEntity.setDistributeLevelCount(xjCountWrapper.getCount());
}
@ -532,6 +536,7 @@ public class UdiProductService {
findUltimateEntity(udiProductEntity, udiProductEntities, xjCountWrapper);
udiRelevanceEntity.setUseLevelDi(udiProductEntity.getNameCode());
udiRelevanceEntity.setUseLevelUnit(udiProductEntity.getPackUnit());
udiRelevanceEntity.setUseLevel(IntUtil.value(udiProductEntity.getPackLevel()));
udiRelevanceEntity.setUseLeverCount(xjCountWrapper.getCount());
}

@ -321,7 +321,6 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
}
}
}
break;
default:
break;
@ -346,10 +345,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
.nameCode(udiRelevanceResponse.getNameCode())
.batchNo(udiEntity.getBatchNo())
.productDate(udiEntity.getProduceDate())
.expireDate(udiEntity.getExpireDate()
)
.expireDate(udiEntity.getExpireDate())
.createTime(new Date())
.createUser(userId)
.updateTime(new Date())

@ -517,7 +517,6 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
.eq(IoCollectOrder::getId, collectOrderRequest.getId()).update();
}
@Transactional(rollbackFor = Exception.class)
public void finishOrder(CollectOrderRequest collectOrderRequest) {
IoCollectOrder collectOrder = new IoCollectOrder();
BeanUtils.copyProperties(collectOrderRequest, collectOrder);

@ -31,10 +31,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
@Service
@ -372,6 +369,8 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
UdiRelevanceService udiRelevanceService;
@Resource
IoCollectOrderCodeManService collectOrderCodeManService;
@Resource
IoSplitCodeService splitCodeService;
@Transactional(rollbackFor = Exception.class)
public void finishAutoTagCode(IoCollectOrder collectOrder) {
@ -383,46 +382,87 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (CollUtil.isNotEmpty(collectOrderCodeMEN)) {
for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMEN) {
IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeService.findByCode(collectOrderCodeMan.getUdiCode(), collectOrder.getWorkPlaceCode());
if (IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()) <= 0) {
splitFifoCodeService.removeById(splitFifoCodeEntity.getId());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) {
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount()));
splitFifoInv.setLockCount(IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoCodeEntity.getTotalCount()));
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getOutCount())));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount())));
}
if (splitFifoCodeEntity != null) {
collectOrderCodeMan.setRemoveFlag(true);
if (IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()) <= 0) {
splitFifoCodeService.removeById(splitFifoCodeEntity.getId());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) {
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount()));
splitFifoInv.setLockCount(IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoCodeEntity.getTotalCount()));
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getOutCount())));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount())));
splitFifoInvService.updateById(splitFifoInv);
}
} else {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderCodeMan.getRelId());
int removeCount = IntUtil.value(collectOrderCodeMan.getScanCount()) * udiRelevanceEntity.getUseLeverCount();
splitFifoCodeService.updateById(IoSplitFifoCodeEntity.builder()
.id(splitFifoCodeEntity.getId())
.scanCount(IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()))
.totalCount(IntUtil.value(splitFifoCodeEntity.getTotalCount()) - removeCount)
.build());
} else {
//队列码数量大于扫码数量更新数量(一般指无序列号)
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderCodeMan.getRelId());
int removeCount = IntUtil.value(collectOrderCodeMan.getScanCount()) * udiRelevanceEntity.getUseLeverCount();
splitFifoCodeService.updateById(IoSplitFifoCodeEntity.builder()
.id(splitFifoCodeEntity.getId())
.scanCount(IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()))
.totalCount(IntUtil.value(splitFifoCodeEntity.getTotalCount()) - removeCount)
.build());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) {
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + removeCount);
splitFifoInv.setLockCount(IntUtil.value(splitFifoInv.getLockCount()) - removeCount);
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getOutCount())));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount())));
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) {
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + removeCount);
splitFifoInv.setLockCount(IntUtil.value(splitFifoInv.getLockCount()) - removeCount);
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getOutCount())));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount())));
splitFifoInvService.updateById(splitFifoInv);
}
}
}
}
}
List<Integer> removeIds = new ArrayList<>();
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderBiz.getRelId());
//去除掉已经手动扫码的数据,找出需要自动扫码的明细,执行上述的拆零或整取
int unTagCount = collectOrderBiz.getCount() - IntUtil.value(collectOrderBiz.getScanActCount());
if (unTagCount > 0) {
collectOrderBiz.setUnTagCount(unTagCount);
} else {
collectOrderBiz.setTagStatus(3);
//手动扫码时涉及到拆零时,把拆零剩余数量插入至拆零表里
if (unTagCount < 0) {
if (IntUtil.value(udiRelevanceEntity.getUseLeverCount()) > -unTagCount) {
Optional<IoCollectOrderCodeMan> firstMatch = collectOrderCodeMEN.stream()
.filter(item -> !IntUtil.value(item.getRemoveFlag()))
.findFirst();
if (firstMatch.isPresent()) {
IoCollectOrderCodeMan result = firstMatch.get();
IoSplitCodeEntity ioSplitCodeEntity = IoSplitCodeEntity.builder().code(result.getUdiCode())
.errUdiCode(result.getUdiCode())
.orderId(result.getOrderIdFk())
.action(collectOrder.getBusType())
.relId(result.getRelId())
.nameCode(result.getNameCode())
.batchNo(result.getBatchNo())
.produceDate(result.getProductDate())
.expireDate(result.getExpireDate())
.serialNo(result.getSerialNo())
.scanCount(result.getScanCount())
.totalCount(result.getScanCount())
.workPlaceCode(collectOrder.getWorkPlaceCode())
.status(2)
.fifoSplit(1)
.createTime(new Date()).updateTime(new Date())
.remainCount(-unTagCount).build();
splitCodeService.save(ioSplitCodeEntity);
}
}
}
continue;
}
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderBiz.getRelId());
int quotient = collectOrderBiz.getUnTagCount() / IntUtil.value(udiRelevanceEntity.getUseLeverCount());
int remainder = collectOrderBiz.getUnTagCount() % IntUtil.value(udiRelevanceEntity.getUseLeverCount());
//2.如果整盒,从工位队列扣除
@ -546,6 +586,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
splitFifoInv.setLockCount(IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitCodeEntity.getTotalCount()));
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getOutCount())));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount())));
splitFifoInvService.updateById(splitFifoInv);
}
if (count >= needCount) {
break;

@ -54,12 +54,14 @@ public class IoSplitFifoCodeService extends ServiceImpl<IoSplitFifoCodeMapper, I
List<IoSplitFifoCodeEntity> splitFifoCodeEntities =
list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
.eq(IoSplitFifoCodeEntity::getWorkPlaceCode, workPlaceCode)
.eq(StrUtil.isNotEmpty(busType), IoSplitFifoCodeEntity::getBusType, busType)
.eq(IoSplitFifoCodeEntity::getRelId, relId)
.eq(StrUtil.isNotEmpty(batchNo), IoSplitFifoCodeEntity::getBatchNo, batchNo)
.orderByAsc(IoSplitFifoCodeEntity::getInBactchNo)
);
// 暂时不穿todo
// .eq(StrUtil.isNotEmpty(busType), IoSplitFifoCodeEntity::getBusType, busType)
return splitFifoCodeEntities;
}
@ -191,13 +193,13 @@ public class IoSplitFifoCodeService extends ServiceImpl<IoSplitFifoCodeMapper, I
List<IoCollectOrderResponse> orderList = collectOrderMapper.filterList(collectOrderRequest);
if (CollUtil.isEmpty(orderList)) throw new JsonException("未找到对应的单据!");
IoCollectOrderResponse order = orderList.get(0);
Integer invAlert1 = order.getInvAlert();
if (lockType == 1) {
if (invAlert1 == 1) throw new JsonException("该单据已锁定库存过请勿重复锁定!");
} else if (lockType == 2) {
if (invAlert1 != 1) throw new JsonException("该单据未正常锁定库存过不可进行解锁库存操作!");
}
// Integer invAlert1 = order.getInvAlert();
//
// if (lockType == 1) {
// if (invAlert1 == 1) throw new JsonException("该单据已锁定库存过请勿重复锁定!");
// } else if (lockType == 2) {
// if (invAlert1 != 1) throw new JsonException("该单据未正常锁定库存过不可进行解锁库存操作!");
// }
//2、获取该单据下的biz明细
CollectOrderBizRequest bizRequest = new CollectOrderBizRequest();
@ -210,8 +212,24 @@ public class IoSplitFifoCodeService extends ServiceImpl<IoSplitFifoCodeMapper, I
IoSplitFifoInvRequest ioSplitFifoInvRequest = new IoSplitFifoInvRequest();
ioSplitFifoInvRequest.setWorkPlaceCode(workPlaceCode);
List<IoSplitInvResponse> ioSplitInvResponses = splitFifoInvService.filterList(ioSplitFifoInvRequest);
if (CollUtil.isEmpty(ioSplitInvResponses)) return false;
Map<Long, List<IoSplitInvResponse>> splitInvMap = ioSplitInvResponses.stream().collect(Collectors.groupingBy(IoSplitInvResponse::getRelId));
if (CollUtil.isEmpty(ioSplitInvResponses)){
collectOrderMapper.updateInvAlert(order.getId(), 2);
if (CollUtil.isNotEmpty(bizList)) {
for (int i = 0; i < bizList.size(); i++) {
CollectOrderBizResponse collectOrderBizResponse = bizList.get(i);
Integer count = 0;
if (IntUtil.value(collectOrderBizResponse.getAutoResCount()) < 0) {
count = 0 - IntUtil.value(collectOrderBizResponse.getAutoResCount());
} else {
count = collectOrderBizResponse.getCount();
}
collectOrderBizMapper.updateAutoResCount(collectOrderBizResponse.getId(), -count);
}
}
return false;
}
Map<Long, List<IoSplitInvResponse>> splitInvMap = ioSplitInvResponses.stream().filter(item -> item.getRelId() != null).collect(Collectors.groupingBy(IoSplitInvResponse::getRelId));
if (CollUtil.isNotEmpty(bizList)) {
if (lockType == 1) {

@ -88,6 +88,9 @@
or bp.nameCode like concat('%', #{keywords}, '%')
or bp.zczbhhzbapzbh like concat('%', #{keywords}, '%')
or bp.ylqxzcrbarmc like concat('%', #{keywords}, '%')
or bp.manufactory like concat('%',#{keywords},'%')
or bc.name like concat('%',#{keywords},'%')
or swd.busName like concat('%',#{keywords},'%')
)
</if>
<if test="remind != null and remind == 'yj' ">

Loading…
Cancel
Save