@ -9,8 +9,10 @@ import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.DateUtils ;
import com.ruoyi.common.utils.ShiroUtils ;
import com.ruoyi.common.utils.StringUtils ;
import com.ruoyi.quality.domain.QualityOrderDetail ;
import com.ruoyi.quality.domain.QualityRefundsExchangesDetail ;
import com.ruoyi.quality.domain.QualityRefundsExchangesUnqualified ;
import com.ruoyi.quality.domain.VO.QualityOrderReportVO ;
import com.ruoyi.quality.domain.VO.QualityRefundsExchangesExportVO ;
import com.ruoyi.quality.mapper.QualityRefundsExchangesDetailMapper ;
import com.ruoyi.quality.mapper.QualityRefundsExchangesUnqualifiedMapper ;
@ -140,36 +142,26 @@ public class QualityRefundsExchangesServiceImpl implements IQualityRefundsExchan
qualityRefundsExchanges . setCreateTime ( DateUtils . getNowDate ( ) ) ;
qualityRefundsExchanges . setQualityReturnNode ( "1" ) ;
qualityRefundsExchanges . setRefundsExchangesStatus ( "0" ) ;
qualityRefundsExchanges . setQualityPurchaseStatus ( "0" ) ;
// 生成入库单
WarehouseStorageOrder warehouseStorageOrder = generateWarehouseStorageOrder ( qualityRefundsExchanges ) ;
warehouseStorageOrder . setWarehouseStorageCode ( redisCache . generateBillNo ( "RK" ) ) ;
warehouseStorageOrderMapper . insertWarehouseStorageOrder ( warehouseStorageOrder ) ;
List < WarehouseStorageOrderDetail > warehouseStorageOrderDetails = createWarehouseStorageDetail ( qualityRefundsExchanges , warehouseStorageOrder . getWarehouseStorageCode ( ) ) ;
warehouseStorageOrderMapper . batchWarehouseStorageOrderDetail ( warehouseStorageOrderDetails ) ;
qualityRefundsExchanges . setQualityWarehouseStatus ( "1" ) ;
qualityRefundsExchanges . setInStorageCode ( warehouseStorageOrder . getWarehouseStorageCode ( ) ) ;
qualityRefundsExchangesMapper . insertQualityRefundsExchanges ( qualityRefundsExchanges ) ;
return 1 ;
qualityRefundsExchanges . setQualityWarehouseStatus ( "0" ) ;
return qualityRefundsExchangesMapper . insertQualityRefundsExchanges ( qualityRefundsExchanges ) ;
}
// 生成退换货入库单对象
public WarehouseStorageOrder generateWarehouseStorageOrder ( QualityRefundsExchanges qualityRefundsExchanges ) {
WarehouseStorageOrder warehouseStorageOrder = new WarehouseStorageOrder ( ) ;
warehouseStorageOrder . setRelatedOrderCode ( qualityRefundsExchanges . getRefundsExchangesCode ( ) ) ;
warehouseStorageOrder . setWarehouseStorageStatus ( "2" ) ;
warehouseStorageOrder . setWarehouseStorageType ( "3" ) ;
warehouseStorageOrder . setWarehouseOrderType ( "2" ) ;
warehouseStorageOrder . setWarehouseDeptType ( "0" ) ;
warehouseStorageOrder . setWarehouseQualityStatus ( "2" ) ;
warehouseStorageOrder . setWarehouseStorageStatus ( "2" ) ; //待入库
warehouseStorageOrder . setWarehouseStorageType ( "3" ) ; //公司退货
warehouseStorageOrder . setWarehouseOrderType ( "2" ) ; //退换货订单
warehouseStorageOrder . setWarehouseDeptType ( "0" ) ; //仓库
warehouseStorageOrder . setWarehouseQualityStatus ( "2" ) ; //全部品质
warehouseStorageOrder . setActualArrivedNum ( qualityRefundsExchanges . getNumTotal ( ) ) ;
warehouseStorageOrder . setNotifyArrivedNum ( qualityRefundsExchanges . getNumTotal ( ) ) ;
warehouseStorageOrder . setStorageNum ( qualityRefundsExchanges . getNumTotal ( ) ) ;
warehouseStorageOrder . setQualityQualifiedNum ( 0 ) ;
warehouseStorageOrder . setQualityUnqualifiedNum ( qualityRefundsExchanges . getNumTotal ( ) ) ;
warehouseStorageOrder . setDeliveryInspectionTime ( qualityRefundsExchanges . getDeliveryInspectionTime ( ) ) ;
warehouseStorageOrder . setQualityTime ( qualityRefundsExchanges . getDeliveryInspection Time ( ) ) ;
warehouseStorageOrder . setQualityTime ( qualityRefundsExchanges . getQuality Time ( ) ) ;
warehouseStorageOrder . setCreateBy ( ShiroUtils . getLoginName ( ) ) ;
warehouseStorageOrder . setCreateTime ( DateUtils . getNowDate ( ) ) ;
return warehouseStorageOrder ;
@ -179,30 +171,38 @@ public class QualityRefundsExchangesServiceImpl implements IQualityRefundsExchan
List < WarehouseStorageOrderDetail > detailList = new ArrayList < > ( ) ;
List < QualityRefundsExchangesDetail > exchangesDetails = qualityRefundsExchanges . getRefundsExchangesDetails ( ) ;
if ( StringUtils . isEmpty ( exchangesDetails ) ) {
log . warn ( "退换货详情物料数据为空:{}" , qualityRefundsExchanges . getRefundsExchangesCode ( ) ) ;
} else {
for ( QualityRefundsExchangesDetail exchangeDetail : exchangesDetails ) {
WarehouseStorageOrderDetail warehouseStorageOrderDetail = new WarehouseStorageOrderDetail ( ) ;
warehouseStorageOrderDetail . setWarehouseStorageCode ( warehouseStorageCode ) ;
warehouseStorageOrderDetail . setRelatedOrderCode ( qualityRefundsExchanges . getRefundsExchangesCode ( ) ) ;
warehouseStorageOrderDetail . setWarehouseStorageStatus ( "2" ) ;
warehouseStorageOrderDetail . setWarehouseStorageType ( "3" ) ;
warehouseStorageOrderDetail . setWarehouseOrderType ( "2" ) ;
warehouseStorageOrderDetail . setWarehouseDeptType ( "0" ) ;
warehouseStorageOrderDetail . setMaterialNo ( exchangeDetail . getMaterialNo ( ) ) ;
warehouseStorageOrderDetail . setMaterialName ( exchangeDetail . getMaterialName ( ) ) ;
warehouseStorageOrderDetail . setMaterialType ( exchangeDetail . getMaterialType ( ) ) ;
warehouseStorageOrderDetail . setMaterialPhotourl ( exchangeDetail . getMaterialPhotourl ( ) ) ;
warehouseStorageOrderDetail . setMaterialBrand ( exchangeDetail . getMaterialBrand ( ) ) ;
warehouseStorageOrderDetail . setMaterialUnit ( exchangeDetail . getMaterialUnit ( ) ) ;
warehouseStorageOrderDetail . setMaterialDescribe ( exchangeDetail . getMaterialDescribe ( ) ) ;
warehouseStorageOrderDetail . setMaterialProcessMethod ( exchangeDetail . getMaterialProcessMethod ( ) ) ;
warehouseStorageOrderDetail . setMaterialDeptType ( "0" ) ;
warehouseStorageOrderDetail . setRefundsExchangesNum ( exchangeDetail . getRefundsExchangesNum ( ) ) ;
warehouseStorageOrderDetail . setCreateBy ( ShiroUtils . getLoginName ( ) ) ;
warehouseStorageOrderDetail . setCreateTime ( DateUtils . getNowDate ( ) ) ;
detailList . add ( warehouseStorageOrderDetail ) ;
}
throw new BusinessException ( "退换货详情物料数据为空" ) ;
}
for ( QualityRefundsExchangesDetail exchangeDetail : exchangesDetails ) {
WarehouseStorageOrderDetail storageOrderDetail = new WarehouseStorageOrderDetail ( ) ;
storageOrderDetail . setWarehouseStorageCode ( warehouseStorageCode ) ;
storageOrderDetail . setRelatedOrderCode ( qualityRefundsExchanges . getRefundsExchangesCode ( ) ) ;
storageOrderDetail . setWarehouseStorageStatus ( "2" ) ; //待入库
storageOrderDetail . setWarehouseStorageType ( "3" ) ; //公司退货
storageOrderDetail . setWarehouseOrderType ( "2" ) ; //退换货订单
storageOrderDetail . setWarehouseDeptType ( "0" ) ; //仓库
storageOrderDetail . setMaterialNo ( exchangeDetail . getMaterialNo ( ) ) ;
storageOrderDetail . setMaterialName ( exchangeDetail . getMaterialName ( ) ) ;
storageOrderDetail . setMaterialType ( exchangeDetail . getMaterialType ( ) ) ;
storageOrderDetail . setMaterialPhotourl ( exchangeDetail . getMaterialPhotourl ( ) ) ;
storageOrderDetail . setMaterialBrand ( exchangeDetail . getMaterialBrand ( ) ) ;
storageOrderDetail . setMaterialUnit ( exchangeDetail . getMaterialUnit ( ) ) ;
storageOrderDetail . setMaterialModel ( exchangeDetail . getMaterialModel ( ) ) ;
storageOrderDetail . setMaterialDescribe ( exchangeDetail . getMaterialDescribe ( ) ) ;
storageOrderDetail . setMaterialProcessMethod ( exchangeDetail . getMaterialProcessMethod ( ) ) ;
storageOrderDetail . setMaterialDeptType ( "0" ) ;
storageOrderDetail . setNotifyArriveNum ( exchangeDetail . getQualityUnqualifiedNum ( ) ) ;
storageOrderDetail . setNotifyHasArrivedNum ( exchangeDetail . getQualityUnqualifiedNum ( ) ) ;
storageOrderDetail . setHasStorageNum ( 0 ) ;
storageOrderDetail . setSupplierCode ( exchangeDetail . getSupplierCode ( ) ) ;
storageOrderDetail . setSupplierName ( exchangeDetail . getSupplierName ( ) ) ;
storageOrderDetail . setSupplierAddress ( exchangeDetail . getSupplierAddress ( ) ) ;
storageOrderDetail . setContactNumber ( exchangeDetail . getContactNumber ( ) ) ;
storageOrderDetail . setCustomerContact ( exchangeDetail . getCustomerContact ( ) ) ;
storageOrderDetail . setRefundsExchangesNum ( exchangeDetail . getQualityUnqualifiedNum ( ) ) ;
storageOrderDetail . setCreateBy ( ShiroUtils . getLoginName ( ) ) ;
storageOrderDetail . setCreateTime ( DateUtils . getNowDate ( ) ) ;
detailList . add ( storageOrderDetail ) ;
}
return detailList ;
}
@ -299,19 +299,32 @@ public class QualityRefundsExchangesServiceImpl implements IQualityRefundsExchan
if ( CollectionUtils . isEmpty ( details ) ) {
throw new BusinessException ( "退换货详情为空!" ) ;
}
QualityRefundsExchangesDetail exchangeDetail = details . get ( 0 ) ;
refundsExchanges . setRefundsExchangesDetails ( details ) ;
WarehouseOutOrder warehouseOutOrder = generateWarehouseOutOrder ( refundsExchanges ) ;
int insertOutResult = warehouseOutOrderMapper . insertWarehouseOutOrder ( warehouseOutOrder ) ;
if ( insertOutResult < = 0 ) {
throw new BusinessException ( "新增退换货出库单失败!" ) ;
//生成入库单
WarehouseStorageOrder warehouseStorageOrder = generateWarehouseStorageOrder ( refundsExchanges ) ;
warehouseStorageOrder . setWarehouseStorageCode ( redisCache . generateBillNo ( "RK" ) ) ;
warehouseStorageOrder . setSupplierCode ( exchangeDetail . getSupplierCode ( ) ) ;
warehouseStorageOrder . setSupplierName ( exchangeDetail . getSupplierName ( ) ) ;
warehouseStorageOrder . setCustomerContact ( exchangeDetail . getCustomerContact ( ) ) ;
warehouseStorageOrder . setContactNumber ( exchangeDetail . getContactNumber ( ) ) ;
warehouseStorageOrder . setSupplierAddress ( exchangeDetail . getSupplierAddress ( ) ) ;
warehouseStorageOrder . setIsReturnedToSupplier ( qualityRefundsExchanges . getIsReturnedToSupplier ( ) ) ;
int storageResult = warehouseStorageOrderMapper . insertWarehouseStorageOrder ( warehouseStorageOrder ) ;
if ( storageResult < = 0 ) {
throw new BusinessException ( "新增退换货入库单失败!" ) ;
}
qualityRefundsExchanges . setQualityWarehouseStatus ( "2" ) ;
String loginName = ShiroUtils . getLoginName ( ) ;
qualityRefundsExchanges . setUpdateBy ( loginName ) ;
qualityRefundsExchanges . setUpdateTime ( DateUtils . getNowDate ( ) ) ;
List < WarehouseStorageOrderDetail > warehouseStorageOrderDetails = createWarehouseStorageDetail ( refundsExchanges , warehouseStorageOrder . getWarehouseStorageCode ( ) ) ;
int storageDetailResult = warehouseStorageOrderMapper . batchWarehouseStorageOrderDetail ( warehouseStorageOrderDetails ) ;
if ( storageDetailResult < = 0 ) {
throw new BusinessException ( "新增退换货入库单详情失败!" ) ;
}
refundsExchanges . setQualityWarehouseStatus ( "0" ) ; //待入库
refundsExchanges . setQualityPurchaseStatus ( "1" ) ; //已确认
refundsExchanges . setIsReturnedToSupplier ( qualityRefundsExchanges . getIsReturnedToSupplier ( ) ) ;
refundsExchanges . setUpdateBy ( ShiroUtils . getLoginName ( ) ) ;
refundsExchanges . setUpdateTime ( DateUtils . getNowDate ( ) ) ;
int updateResult = qualityRefundsExchangesMapper . updateQualityRefundsExchanges ( qualityRefundsExchanges ) ;
return updateResult ;
}
@ -324,46 +337,33 @@ public class QualityRefundsExchangesServiceImpl implements IQualityRefundsExchan
String loginName = ShiroUtils . getLoginName ( ) ;
List < QualityRefundsExchangesDetail > refundsExchangesDetails = qualityRefundsExchanges . getRefundsExchangesDetails ( ) ;
if ( StringUtils . isEmpty ( refundsExchangesDetails ) ) {
log . warn ( "退款换货单[{}]无关联的物料详情信息" , qualityRefundsExchanges . getRefundsExchangesCode ( ) ) ;
}
List < WarehouseStorageOrderDetail > warehouseStorageOrderDetailList = warehouseStorageOrderDetailMapper . selectStorageOrderDetailListByCode ( qualityRefundsExchanges . getInStorageCode ( ) ) ;
if ( StringUtils . isEmpty ( warehouseStorageOrderDetailList ) ) {
log . warn ( "退款换货单[{}]无关联的入库单详情信息" , qualityRefundsExchanges . getRefundsExchangesCode ( ) ) ;
throw new BusinessException ( "退换货物料详情为空" ) ;
}
int updateRows = 0 ;
for ( QualityRefundsExchangesDetail refundsExchangesDetail : refundsExchangesDetails ) {
refundsExchangesDetail . setUpdateBy ( loginName ) ;
refundsExchangesDetail . setUpdateTime ( DateUtils . getNowDate ( ) ) ;
for ( WarehouseStorageOrderDetail storageOrderDetail : warehouseStorageOrderDetailList ) {
if ( storageOrderDetail . getMaterialNo ( ) . equals ( refundsExchangesDetail . getMaterialNo ( ) ) ) {
storageOrderDetail . setSupplierCode ( refundsExchangesDetail . getSupplierCode ( ) ) ;
storageOrderDetail . setSupplierName ( refundsExchangesDetail . getSupplierName ( ) ) ;
storageOrderDetail . setSupplierAddress ( refundsExchangesDetail . getSupplierAddress ( ) ) ;
storageOrderDetail . setCustomerContact ( refundsExchangesDetail . getCustomerContact ( ) ) ;
storageOrderDetail . setContactNumber ( refundsExchangesDetail . getContactNumber ( ) ) ;
storageOrderDetail . setUpdateBy ( loginName ) ;
storageOrderDetail . setUpdateTime ( DateUtils . getNowDate ( ) ) ;
warehouseStorageOrderDetailMapper . updateWarehouseStorageOrderDetail ( storageOrderDetail ) ;
}
}
//更新数据库记录
updateRows + = refundsExchangesDetailMapper . updateQualityRefundsExchangesDetail ( refundsExchangesDetail ) ;
}
WarehouseOutOrder warehouseOutOrder = generateWarehouseOutOrder ( qualityRefundsExchanges ) ;
int insertOutResult = warehouseOutOrderMapper . insertWarehouseOutOrder ( warehouseOutOrder ) ;
if ( insertOutResult < = 0 ) {
throw new BusinessException ( "新增退换货出库单失败!" ) ;
QualityRefundsExchanges oldRefundsExchange = qualityRefundsExchangesMapper . selectQualityRefundsExchangesByCode ( qualityRefundsExchanges . getRefundsExchangesCode ( ) ) ;
//生成入库单
WarehouseStorageOrder warehouseStorageOrder = generateWarehouseStorageOrder ( oldRefundsExchange ) ;
warehouseStorageOrder . setWarehouseStorageCode ( redisCache . generateBillNo ( "RK" ) ) ;
warehouseStorageOrder . setIsReturnedToSupplier ( qualityRefundsExchanges . getIsReturnedToSupplier ( ) ) ;
int storageResult = warehouseStorageOrderMapper . insertWarehouseStorageOrder ( warehouseStorageOrder ) ;
if ( storageResult < = 0 ) {
throw new BusinessException ( "新增退换货入库单失败!" ) ;
}
List < WarehouseStorageOrderDetail > warehouseStorageOrderDetails = createWarehouseStorageDetail ( qualityRefundsExchanges , warehouseStorageOrder . getWarehouseStorageCode ( ) ) ;
int storageDetailResult = warehouseStorageOrderMapper . batchWarehouseStorageOrderDetail ( warehouseStorageOrderDetails ) ;
if ( storageDetailResult < = 0 ) {
throw new BusinessException ( "新增退换货入库单详情失败!" ) ;
}
qualityRefundsExchanges . setQualityPurchaseStatus ( "1" ) ;
qualityRefundsExchanges . setUpdateBy ( loginName ) ;
qualityRefundsExchanges . setUpdateTime ( DateUtils . getNowDate ( ) ) ;
qualityRefundsExchanges . setOutStorageCode ( warehouseOutOrder . getOutOrderCode ( ) ) ;
int updateResult = qualityRefundsExchangesMapper . updateQualityRefundsExchanges ( qualityRefundsExchanges ) ;
if ( updateResult < = 0 ) {
throw new BusinessException ( "更新退换货订单失败!" ) ;
@ -378,6 +378,7 @@ public class QualityRefundsExchangesServiceImpl implements IQualityRefundsExchan
warehouseOutOrder . setWarehouseOutStatus ( "4" ) ; //出库状态:待出库
warehouseOutOrder . setWarehouseOrderType ( "4" ) ; //出库订单类型:退换货订单
warehouseOutOrder . setWarehouseOutType ( "4" ) ; //出库类型:公司退货
warehouseOutOrder . setOutOrderSum ( 0 ) ;
warehouseOutOrder . setRelatedOrderCode ( refundsExchanges . getRefundsExchangesCode ( ) ) ;
warehouseOutOrder . setBusinessName ( ShiroUtils . getLoginName ( ) ) ;
warehouseOutOrder . setMaterialSum ( refundsExchanges . getMaterialTotal ( ) ) ;
@ -389,7 +390,7 @@ public class QualityRefundsExchangesServiceImpl implements IQualityRefundsExchan
int insertResult = 0 ;
List < QualityRefundsExchangesDetail > refundsExchangesDetails = refundsExchanges . getRefundsExchangesDetails ( ) ;
if ( CollectionUtils . isEmpty ( refundsExchangesDetails ) ) {
throw new BusinessException ( "新增出库单详情失败! 退换货详情数据为空!" ) ;
throw new BusinessException ( "退换货详情数据为空!" ) ;
}
for ( QualityRefundsExchangesDetail detail : refundsExchangesDetails ) {
insertResult + = generateWarehouseOutOrderDetail ( detail , outOrderCode ) ;
@ -415,6 +416,7 @@ public class QualityRefundsExchangesServiceImpl implements IQualityRefundsExchan
outOrderDetail . setMaterialBrand ( exchangeDetail . getMaterialBrand ( ) ) ;
outOrderDetail . setMaterialUnit ( exchangeDetail . getMaterialUnit ( ) ) ;
outOrderDetail . setMaterialDescribe ( exchangeDetail . getMaterialDescribe ( ) ) ;
outOrderDetail . setMaterialModel ( exchangeDetail . getMaterialModel ( ) ) ;
outOrderDetail . setMaterialProcessMethod ( exchangeDetail . getMaterialProcessMethod ( ) ) ;
outOrderDetail . setMaterialSum ( exchangeDetail . getMaterialTotal ( ) ) ;
outOrderDetail . setEnterpriseSum ( exchangeDetail . getNumTotal ( ) ) ;