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

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

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

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

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

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

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

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

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

@ -31,10 +31,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.*;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@ -372,6 +369,8 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
UdiRelevanceService udiRelevanceService; UdiRelevanceService udiRelevanceService;
@Resource @Resource
IoCollectOrderCodeManService collectOrderCodeManService; IoCollectOrderCodeManService collectOrderCodeManService;
@Resource
IoSplitCodeService splitCodeService;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void finishAutoTagCode(IoCollectOrder collectOrder) { public void finishAutoTagCode(IoCollectOrder collectOrder) {
@ -383,46 +382,87 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (CollUtil.isNotEmpty(collectOrderCodeMEN)) { if (CollUtil.isNotEmpty(collectOrderCodeMEN)) {
for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMEN) { for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMEN) {
IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeService.findByCode(collectOrderCodeMan.getUdiCode(), collectOrder.getWorkPlaceCode()); IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeService.findByCode(collectOrderCodeMan.getUdiCode(), collectOrder.getWorkPlaceCode());
if (IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()) <= 0) { if (splitFifoCodeEntity != null) {
splitFifoCodeService.removeById(splitFifoCodeEntity.getId()); collectOrderCodeMan.setRemoveFlag(true);
if (IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()) <= 0) {
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity); splitFifoCodeService.removeById(splitFifoCodeEntity.getId());
if (splitFifoInv != null) { IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount())); if (splitFifoInv != null) {
splitFifoInv.setLockCount(IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoCodeEntity.getTotalCount())); splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount()));
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getOutCount()))); splitFifoInv.setLockCount(IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoCodeEntity.getTotalCount()));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount()))); 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 { } else {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderCodeMan.getRelId()); //队列码数量大于扫码数量更新数量(一般指无序列号)
int removeCount = IntUtil.value(collectOrderCodeMan.getScanCount()) * udiRelevanceEntity.getUseLeverCount(); UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderCodeMan.getRelId());
splitFifoCodeService.updateById(IoSplitFifoCodeEntity.builder() int removeCount = IntUtil.value(collectOrderCodeMan.getScanCount()) * udiRelevanceEntity.getUseLeverCount();
.id(splitFifoCodeEntity.getId()) splitFifoCodeService.updateById(IoSplitFifoCodeEntity.builder()
.scanCount(IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount())) .id(splitFifoCodeEntity.getId())
.totalCount(IntUtil.value(splitFifoCodeEntity.getTotalCount()) - removeCount) .scanCount(IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()))
.build()); .totalCount(IntUtil.value(splitFifoCodeEntity.getTotalCount()) - removeCount)
.build());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity); IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) { if (splitFifoInv != null) {
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + removeCount); splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + removeCount);
splitFifoInv.setLockCount(IntUtil.value(splitFifoInv.getLockCount()) - removeCount); splitFifoInv.setLockCount(IntUtil.value(splitFifoInv.getLockCount()) - removeCount);
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getOutCount()))); splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getOutCount())));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getLockCount()) - 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<>(); List<Integer> removeIds = new ArrayList<>();
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderBiz.getRelId());
//去除掉已经手动扫码的数据,找出需要自动扫码的明细,执行上述的拆零或整取
int unTagCount = collectOrderBiz.getCount() - IntUtil.value(collectOrderBiz.getScanActCount()); int unTagCount = collectOrderBiz.getCount() - IntUtil.value(collectOrderBiz.getScanActCount());
if (unTagCount > 0) { if (unTagCount > 0) {
collectOrderBiz.setUnTagCount(unTagCount); collectOrderBiz.setUnTagCount(unTagCount);
} else { } else {
collectOrderBiz.setTagStatus(3); 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; continue;
} }
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderBiz.getRelId());
int quotient = collectOrderBiz.getUnTagCount() / IntUtil.value(udiRelevanceEntity.getUseLeverCount()); int quotient = collectOrderBiz.getUnTagCount() / IntUtil.value(udiRelevanceEntity.getUseLeverCount());
int remainder = collectOrderBiz.getUnTagCount() % IntUtil.value(udiRelevanceEntity.getUseLeverCount()); int remainder = collectOrderBiz.getUnTagCount() % IntUtil.value(udiRelevanceEntity.getUseLeverCount());
//2.如果整盒,从工位队列扣除 //2.如果整盒,从工位队列扣除
@ -546,6 +586,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
splitFifoInv.setLockCount(IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitCodeEntity.getTotalCount())); splitFifoInv.setLockCount(IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitCodeEntity.getTotalCount()));
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getOutCount()))); splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getOutCount())));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount()))); splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount())));
splitFifoInvService.updateById(splitFifoInv);
} }
if (count >= needCount) { if (count >= needCount) {
break; break;

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

@ -88,6 +88,9 @@
or bp.nameCode like concat('%', #{keywords}, '%') or bp.nameCode like concat('%', #{keywords}, '%')
or bp.zczbhhzbapzbh like concat('%', #{keywords}, '%') or bp.zczbhhzbapzbh like concat('%', #{keywords}, '%')
or bp.ylqxzcrbarmc 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>
<if test="remind != null and remind == 'yj' "> <if test="remind != null and remind == 'yj' ">

Loading…
Cancel
Save