jiangping
2025-06-06 a2299a6d4a6f99e9c11132138f5d3e9ec68f03ea
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwOutinboundServiceImpl.java
@@ -80,6 +80,7 @@
        ywOutinbound.setOrigin(Constants.ZERO);
        ywOutinboundMapper.insert(ywOutinbound);
        for (YwOutinboundRecord ywOutinboundRecord:recordList) {
                ywOutinboundRecord.setOutInBoundId(ywOutinbound.getId());
            ywOutinboundRecord.setCreator(loginUserInfo.getId());
            ywOutinboundRecord.setCreateDate(new Date());
            ywOutinboundRecord.setIsdeleted(Constants.ZERO);
@@ -94,7 +95,7 @@
    public List<YwOutinboundRecord> verifyData(YwOutinbound ywOutinbound){
        if(Objects.isNull(ywOutinbound)
                || Objects.isNull(ywOutinbound.getType())
                || (Objects.nonNull(ywOutinbound.getType()) && (!(ywOutinbound.getType() == Constants.ZERO || ywOutinbound.getType() == Constants.ONE)))
                || ((ywOutinbound.getType() >= 5 && ywOutinbound.getType() <= 9 ) && Objects.isNull(ywOutinbound.getOutUserId()) )
                || Objects.isNull(ywOutinbound.getWarehouseId())
                || Objects.isNull(ywOutinbound.getDoneDate())
                || com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(ywOutinbound.getRecordList())
@@ -110,6 +111,7 @@
            ){
                throw new BusinessException(ResponseStatus.BAD_REQUEST);
            }
            ywOutinboundRecord.setId(null);
        }
        //判断当前是否存在进行中的盘点单
        if(ywStocktakingMapper.selectCount(new QueryWrapper<YwStocktaking>().lambda().eq(YwStocktaking::getIsdeleted,Constants.ZERO)
@@ -130,10 +132,13 @@
    public void dealStockData(YwOutinbound ywOutinbound,List<YwOutinboundRecord> recordList,Integer inOut){
        for (YwOutinboundRecord ywOutinboundRecord:recordList) {
            YwStock ywStock = ywStockMapper.selectOne(new QueryWrapper<YwStock>().lambda().eq(YwStock::getIsdeleted,Constants.ZERO).eq(YwStock::getWarehouseId,ywOutinbound.getWarehouseId()).eq(YwStock::getMaterialId,ywOutinboundRecord.getMaterialId()));
            YwStock ywStock = ywStockMapper.selectOne(new QueryWrapper<YwStock>().lambda().eq(YwStock::getIsdeleted,Constants.ZERO)
                    .eq(YwStock::getWarehouseId,ywOutinbound.getWarehouseId()).eq(YwStock::getMaterialId,ywOutinboundRecord.getMaterialId()));
            if(Constants.equalsInteger(inOut,Constants.ZERO)){
                //入库
                if(Objects.isNull(ywStock)){
                    ywStock = new YwStock();
                    ywStock.setIsdeleted(Constants.ZERO);
                    ywStock.setStock(ywOutinboundRecord.getStock());
                    ywStock.setWarehouseId(ywOutinbound.getWarehouseId());
                    ywStock.setMaterialId(ywOutinboundRecord.getMaterialId());
@@ -142,7 +147,7 @@
                    ywStockMapper.insert(ywStock);
                }else{
                    ywStockMapper.update(new UpdateWrapper<YwStock>().lambda()
                            .set(YwStock::getStock," ( stock + " + ywStock.getStock() + " )")
                                .setSql(" stock = ( stock + "+ywOutinboundRecord.getStock()+") ")
                            .set(YwStock::getEditDate, DateUtil.getCurrDateTime())
                            .set(YwStock::getEditor, ywOutinbound.getCreator())
                            .eq(YwStock::getId,ywStock.getId())
@@ -153,11 +158,11 @@
                //出库
                if(Objects.isNull(ywStock) || ywStock.getStock().compareTo(ywOutinboundRecord.getStock()) < Constants.ZERO){
                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), ywMaterial.getName() + "库存不足,请刷新重试");
                }else if(ywStock.getStock().compareTo(ywOutinboundRecord.getStock()) == Constants.ZERO){
                }/*else if(ywStock.getStock().compareTo(ywOutinboundRecord.getStock()) == Constants.ZERO){
                    ywStockMapper.deleteById(ywStock.getId());
                }else{
                }*/else{
                    ywStockMapper.update(new UpdateWrapper<YwStock>().lambda()
                            .set(YwStock::getStock," ( stock  - " + ywStock.getStock() + " )")
                            .setSql(" stock = ( stock - "+ywOutinboundRecord.getStock()+") ")
                            .set(YwStock::getEditDate, DateUtil.getCurrDateTime())
                            .set(YwStock::getEditor, ywOutinbound.getCreator())
                            .eq(YwStock::getId,ywStock.getId())
@@ -247,22 +252,29 @@
        }
        List<Integer> typeList  = Constants.ywOutInType.getAllTypeKey(model.getInOut());
        queryWrapper.selectAll(YwOutinbound.class)
                .selectAs(SystemUser::getRealname,YwOutinbound::getCreateUserName)
                .select(" s1.realname  ",YwOutinbound::getCreateUserName)
                .select(" s2.realname  ",YwOutinbound::getOutUserName)
                .selectAs(YwWarehouse::getName,YwOutinbound::getWarehouseName)
                .leftJoin(SystemUser.class,SystemUser::getId,YwOutinbound::getCreator)
                .leftJoin(YwWarehouse.class,YwWarehouse::getId,YwOutinbound::getWarehouseId)
                .leftJoin("system_user s1 on t.creator = s1.id")
                .leftJoin("system_user s2 on t.out_user_id = s2.id")
                .like(StringUtils.isNotBlank(model.getCode()),YwOutinbound::getCode,model.getCode())
                .eq(Objects.nonNull(model.getType()),YwOutinbound::getType,model.getType())
                .eq(Objects.nonNull(model.getWarehouseId()),YwOutinbound::getWarehouseId,model.getWarehouseId())
                .in(Objects.nonNull(model.getInOut()),YwOutinbound::getType,typeList)
        ;
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(pageWrap.getSorts())){
            for(PageWrap.SortData sortData: pageWrap.getSorts()) {
                if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                    queryWrapper.orderByDesc(sortData.getProperty());
                } else {
                    queryWrapper.orderByAsc(sortData.getProperty());
                }
            }
        }else{
            queryWrapper.orderByDesc(YwOutinbound::getCode);
        }
        IPage iPage = ywOutinboundMapper.selectJoinPage(page,YwOutinbound.class,queryWrapper);
        if(Objects.nonNull(iPage.getRecords())){
            iPage.setRecords(this.getDetailData(iPage.getRecords()));
@@ -376,7 +388,7 @@
    public synchronized String  getNextInOutCode(Integer inOut){
        String prefix =  Constants.equalsInteger(inOut,0)?"RK-":"CK-" + DateUtil.getDate(new Date(),"yyyyMMdd") +"-";
        String prefix =  (Constants.equalsInteger(inOut,0)?"RK-":"CK-") + DateUtil.getDate(new Date(),"yyyyMMdd") +"-";
        Integer countNum  = RedisUtil.getObject(redisTemplate,
                Constants.equalsInteger(inOut,0)?Constants.RedisKeys.COM_OUTBOUND_OUT_KEY:Constants.RedisKeys.COM_OUTBOUND_IN_KEY,
                Integer.class);