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

workplace
zane 10 months ago
commit 4dc9eb6d12

@ -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,6 +224,33 @@ public class IoCodeTempController extends BaseController {
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
if (udiEntity == null) {
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) {
@ -231,6 +266,7 @@ public class IoCodeTempController extends BaseController {
baseResponse.setData(originCode);
return baseResponse;
}
}
if (IntUtil.value(udiEntity.getProductType()) == 2) {
//药品
udiEntity.setCode(code);
@ -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())) {

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

@ -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){
if (udiProductEntity1 != null && udiProductEntity1.getNameCode() == null) {
//更新
udiProductEntity1.setNameCode(updateLevelDrugRequest.getNameCode());
udiProductEntity1.setPackLevel(updateLevelDrugRequest.getPackLevel() + "");
@ -473,7 +473,7 @@ public class UdiProductService {
udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm());
udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm());
udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getMyBhxjsl());
udiProductDao.updateById(udiProductEntity1);
}
}
udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode());
@ -486,7 +486,6 @@ public class UdiProductService {
udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm());
udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm());
udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getMyBhxjsl());
udiProductDao.updateById(udiProductEntity1);
} else {
//新增
udiProductEntity1 = udiProductDao.findByUuid(udiRelevanceEntity.getUuid());
@ -498,10 +497,14 @@ public class UdiProductService {
udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getMyBhxjsl());
udiProductEntity1.setUuid(udiRelevanceEntity.getUuid());
udiProductEntity1.setId(IdUtil.getSnowflakeNextId());
udiProductDao.insert(udiProductEntity1);
}
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())

@ -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,9 +382,10 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (CollUtil.isNotEmpty(collectOrderCodeMEN)) {
for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMEN) {
IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeService.findByCode(collectOrderCodeMan.getUdiCode(), collectOrder.getWorkPlaceCode());
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()));
@ -396,6 +396,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
} else {
//队列码数量大于扫码数量更新数量(一般指无序列号)
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderCodeMan.getRelId());
int removeCount = IntUtil.value(collectOrderCodeMan.getScanCount()) * udiRelevanceEntity.getUseLeverCount();
splitFifoCodeService.updateById(IoSplitFifoCodeEntity.builder()
@ -414,17 +415,54 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
}
}
}
}
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.如果整盒,从工位队列扣除

Loading…
Cancel
Save