fix: 修复临床出库过滤库存数0的供应商

dev_price
chenhc 1 year ago
parent 6b22bfb862
commit 6c859a9470

@ -1070,7 +1070,7 @@ public class IoCodeTempController extends BaseController {
BeanUtils.copyProperties(codeEnttity, ioCodeEntity);
String supId = transInoutService.checkInvExitSup(ioCodeEntity);
if (supId == null) {
supId = transInoutService.checkExitSup(codeEnttity.getRelId());
supId = transInoutService.checkExitSup(codeEnttity);
}
if (supId == null) {
codeEnttity.setSupId(null);

@ -92,4 +92,12 @@ public interface InvProductDao extends BaseMapperPlus<InvProductDao, InvProductE
Integer selectExitCount(@Param("invCode") String invCode, @Param("supId") Long supId, @Param("relIdFk") Long relIdFk);
/**
* 0
* @param relId
* @param batchNo
* @param unitFks
* @return
*/
List<String> filterReCount(Long relId, String batchNo, List<String> unitFks);
}

@ -7,6 +7,7 @@ import com.glxp.api.service.BasicSkPrescribeDiService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.impl.InvProductDetailService;
import com.glxp.api.service.inv.impl.InvProductService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil;
@ -76,6 +77,8 @@ public class IoAddInoutService {
private IoOrderDetailCodeDao orderDetailCodeDao;
@Resource
InvWarehouseService invWarehouseService;
@Resource
InvProductService invProductService;
//新增扫码单据处理
public void dealProcess(IoOrderEntity orderEntity) {
@ -652,7 +655,10 @@ public class IoAddInoutService {
//校验条码关联供应商
public String checkExitSup(Long relId) {
public String checkExitSup(IoCodeTempEntity ioCodeTempEntity) {
Long relId = ioCodeTempEntity.getRelId();
String batchNo = ioCodeTempEntity.getBatchNo();
FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest = new FilterCompanyProductRelevanceRequest();
filterCompanyProductRelevanceRequest.setUdiRlIdFk(relId + "");
List<UdiRlSupEntity> companyProductRelevanceEntities = udiRlSupService.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest);
@ -660,22 +666,32 @@ public class IoAddInoutService {
UdiRlSupEntity udiRlSupEntity = companyProductRelevanceEntities.get(0);
return udiRlSupEntity.getUnitFk();
} else if (companyProductRelevanceEntities != null && companyProductRelevanceEntities.size() > 1) {
//携带供应商号列表
List<String> unitFks = new ArrayList<>(companyProductRelevanceEntities.size());
String unitFk = companyProductRelevanceEntities.get(0).getUnitFk();
boolean isMuti = false;
for (UdiRlSupEntity udiRlSupEntity : companyProductRelevanceEntities) {
unitFks.add(udiRlSupEntity.getUnitFk());
if (!unitFk.equals(udiRlSupEntity.getUnitFk())) {
isMuti = true;
break;
}
}
if (isMuti)
if (isMuti){
//过滤掉库存数量为0的供应商
if (relId != null && StrUtil.isNotEmpty(batchNo)){
unitFks = invProductService.filterReCount(relId,batchNo,unitFks);
if (unitFks!=null && unitFks.size() == 1){
return unitFks.get(0);
}
}
return "MUTI"; //绑定多个供应商
else
return unitFk;
}else return unitFk;
}
return null;
}
public String checkInvExitSup(IoCodeEntity codeEnttity) {
String supId = checkNorInv(codeEnttity);
if (supId == null) {

@ -174,4 +174,15 @@ public class InvProductService extends ServiceImpl<InvProductDao, InvProductEnti
return invProductDao.selectExitCount(invCode, supId, relIdFk);
}
/**
* 0
* @param relId
* @param batchNo
* @param unitFks
* @return
*/
public List<String> filterReCount(Long relId, String batchNo, List<String> unitFks){
return invProductDao.filterReCount(relId,batchNo,unitFks);
}
}

@ -533,4 +533,24 @@
</if>
</where>
</select>
<select id="filterReCount" resultType="string">
select ip.supId
from inv_product ip
<where>
AND ip.reCount > 0
<if test="relId != null and relId != ''">
AND ip.relIdFk = #{relId}
</if>
<if test="batchNo != null and batchNo != ''">
AND ip.batchNo = #{batchNo}
</if>
<if test="unitFks != null and unitFks.size() != 0">
AND ip.supId in
<foreach collection="unitFks" index="index" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
</select>
</mapper>

Loading…
Cancel
Save