@@ -674,18 +674,25 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
+ " _ " + materialOrderItem . getMemo ( ) + " _ " + materialOrderItem . getSize ( )
+ " _ " + materialOrderItem . getSpecialRequest ( ) + " _ " + MaterialOrderItemConsts . getPrevStageLineAccount ( ignoreLineAccount , materialOrderItem . getInsulationCode ( ) )
+ " _ " + MaterialOrderItemConsts . getPrevStageLineAccount ( ignoreLineAccount , materialOrderItem . getLineAccount ( ) ) + " _ " + materialOrderItem . getAreaAccount ( )
+ " _ " + materialOrderItem . getSiteAccount ( ) + " _ " + materialOrderItem . getUnitAccount ( )
+ " _ " + materialOrderItem . getSiteAccount ( ) + " _ " + MaterialOrderItemConsts . getPrevStageLineAccount ( ignoreLineAccount , materialOrderItem . getUnitAccount ( ) )
+ " _ " + materialOrderItem . getProductCode ( ) + " _ " + materialOrderItem . getPurchaseCode ( )
+ " _ " + materialOrderItem . getMakeCode ( ) + " _ " + materialOrderItem . getMaterialType ( )
+ " _ " + materialOrderItem . getEndFace ( ) + " _ " + materialOrderItem . getPressureLevel ( ) ;
if ( ! countMap . containsKey ( str ) ) {
countMap . put ( str , materialOrderItem . getCount ( ) . compareTo ( BigDecimal . ZERO ) < 0 ? BigDecimal . ZERO : materialOrderItem . getCount ( ) );
countMap . put ( str , materialOrderItem . getCount ( ) ) ;
} else {
BigDecimal count = countMap . get ( str ) ;
count = count . add ( materialOrderItem . getCount ( ) . compareTo ( BigDecimal . ZERO ) < 0 ? BigDecimal . ZERO : materialOrderItem . getCount ( ) );
count = count . add ( materialOrderItem . getCount ( ) ) ;
countMap . put ( str , count ) ;
}
}
// 每一个阶段遍历countMap并替换负数值为 0
for ( Map . Entry < String , BigDecimal > entry : countMap . entrySet ( ) ) {
BigDecimal value = entry . getValue ( ) ;
if ( value . compareTo ( BigDecimal . ZERO ) < 0 ) { // 如果小于 0 , 替换为 0
entry . setValue ( BigDecimal . ZERO ) ;
}
}
}
}
materialOrder . setStage ( stage . getId ( ) . intValue ( ) ) ;
@@ -826,7 +833,7 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
Integer ind = Integer . valueOf ( ExcelUtil2 . getCellValue ( row . getCell ( 0 ) ) ) ;
String name = ExcelUtil2 . getCellValue ( row . getCell ( 1 ) ) ;
String areaAccount = ExcelUtil2 . getCellValue ( row . getCell ( 2 ) ) ;
String unitAccount = ExcelUtil2 . getCellValue ( row . getCell ( 3 ) ) ;
String unitAccount = BooleanUtils . isTrue ( ignoreLineAccount ) ? " - " : ExcelUtil2. getCellValue ( row . getCell ( 3 ) ) ;
String siteAccount = ExcelUtil2 . getCellValue ( row . getCell ( 4 ) ) ;
String lineAccount = BooleanUtils . isTrue ( ignoreLineAccount ) ? " - " : ExcelUtil2 . getCellValue ( row . getCell ( 5 ) ) ;
String codeType = ExcelUtil2 . getCellValue ( row . getCell ( 6 ) ) ;
@@ -1093,9 +1100,9 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
// }
item . setTotalWeight ( totalWeight = = null ? ( product . getgWeight ( ) = = null ? BigDecimal . ZERO : product . getgWeight ( ) ) . multiply ( count ) : totalWeight ) ;
orderCount = orderCount . add ( count ) ;
// if( negativeCount. compareTo( BigDecimal.ZERO)<0){ //后续阶段数量意外减少,采购数量为负数
// orderCount = orderCount.add( negativeCount) ;
// }
if ( negativeCount. compareTo( BigDecimal. ZERO ) < 0 ) { //后续阶段数量意外减少,采购数量为负数
orderCount = orderCount . add ( negativeCount) ;
}
item . setSupplierIds ( new ArrayList < > ( ) ) ;
for ( Integer key : valueMap . keySet ( ) ) {
@@ -1156,6 +1163,13 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
}
}
}
// 料单项合并后,当采购数量为负数时,不计入总数量
for ( Map . Entry < String , MaterialOrderItem > entry : ignoreLineAccountMergeItemMap . entrySet ( ) ) {
MaterialOrderItem item = entry . getValue ( ) ;
if ( item . getCount ( ) . compareTo ( BigDecimal . ZERO ) < 0 ) { // 如果小于 0
orderCount = orderCount . subtract ( item . getCount ( ) ) ;
}
}
materialOrder . setTotalCount ( orderCount ) ;
materialOrder . setTotalWeight ( orderWeight ) ;
update ( materialOrder ) ;
@@ -1244,20 +1258,26 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
+ " _ " + prevItem . getMemo ( ) + " _ " + prevItem . getSize ( )
+ " _ " + prevItem . getSpecialRequest ( ) + " _ " + MaterialOrderItemConsts . getPrevStageLineAccount ( materialOrder . getIgnoreLineAccount ( ) , prevItem . getInsulationCode ( ) )
+ " _ " + MaterialOrderItemConsts . getPrevStageLineAccount ( materialOrder . getIgnoreLineAccount ( ) , prevItem . getLineAccount ( ) ) + " _ " + prevItem . getAreaAccount ( )
+ " _ " + prevItem . getSiteAccount ( ) + " _ " + prevItem . getUnitAccount ( )
+ " _ " + prevItem . getSiteAccount ( ) + " _ " + MaterialOrderItemConsts . getPrevStageLineAccount ( materialOrder . getIgnoreLineAccount ( ) , prevItem . getUnitAccount ( ) )
+ " _ " + prevItem . getProductCode ( ) + " _ " + prevItem . getPurchaseCode ( )
+ " _ " + prevItem . getMakeCode ( ) + " _ " + prevItem . getMaterialType ( )
+ " _ " + prevItem . getEndFace ( ) + " _ " + prevItem . getPressureLevel ( ) ;
// 如果 prevItem.getCount()的值 小于0, 则返回 BigDecimal.ZERO, 大于或等于0, 返回 prevItem.getCount()本身。
if ( ! prevMap . containsKey ( str ) ) {
prevMap . put ( str , prevItem . getCount ( ) . compareTo ( BigDecimal . ZERO ) < 0 ? BigDecimal . ZERO : prevItem . getCount ( ) );
prevMap . put ( str , prevItem . getCount ( ) ) ;
prevMapM . put ( str , prevItem ) ;
} else {
BigDecimal prevCount = prevMap . get ( str ) . add ( prevItem . getCount ( ) . compareTo ( BigDecimal . ZERO ) < 0 ? BigDecimal . ZERO : prevItem . getCount ( ) );
BigDecimal prevCount = prevMap . get ( str ) . add ( prevItem . getCount ( ) ) ;
prevMap . put ( str , prevCount ) ;
prevMapM . put ( str , prevItem ) ;
}
}
// 每一个阶段遍历prevMap并替换负数值为 0
for ( Map . Entry < String , BigDecimal > entry : prevMap . entrySet ( ) ) {
BigDecimal value = entry . getValue ( ) ;
if ( value . compareTo ( BigDecimal . ZERO ) < 0 ) { // 如果小于 0 , 替换为 0
entry . setValue ( BigDecimal . ZERO ) ;
}
}
}
//获取当前阶段
List < MaterialOrderItem > itemList = materialOrderItemService . findByVersionNum ( materialOrder . getVersionNum ( ) , materialOrder . getId ( ) ) ;
@@ -1275,7 +1295,7 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
+ " _ " + item . getMemo ( ) + " _ " + item . getSize ( )
+ " _ " + item . getSpecialRequest ( ) + " _ " + MaterialOrderItemConsts . getPrevStageLineAccount ( materialOrder . getIgnoreLineAccount ( ) , item . getInsulationCode ( ) )
+ " _ " + MaterialOrderItemConsts . getPrevStageLineAccount ( materialOrder . getIgnoreLineAccount ( ) , item . getLineAccount ( ) ) + " _ " + item . getAreaAccount ( )
+ " _ " + item . getSiteAccount ( ) + " _ " + item . getUnitAccount ( )
+ " _ " + item . getSiteAccount ( ) + " _ " + MaterialOrderItemConsts . getPrevStageLineAccount ( materialOrder . getIgnoreLineAccount ( ) , item . getUnitAccount ( ) )
+ " _ " + item . getProductCode ( ) + " _ " + item . getPurchaseCode ( )
+ " _ " + item . getMakeCode ( ) + " _ " + item . getMaterialType ( )
+ " _ " + item . getEndFace ( ) + " _ " + item . getPressureLevel ( ) ;
@@ -1369,7 +1389,7 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
materialOrderItem . setProductId ( entry . getValue ( ) . getProductId ( ) ) ;
materialOrderItem . setName ( entry . getValue ( ) . getName ( ) ) ;
materialOrderItem . setAreaAccount ( entry . getValue ( ) . getAreaAccount ( ) ) ;
materialOrderItem . setUnitAccount ( entry . getValue ( ) . getUnitAccount ( ) ) ;
materialOrderItem . setUnitAccount ( MaterialOrderItemConsts . getPrevStageLineAccount ( materialOrder . getIgnoreLineAccount ( ) , entry. getValue ( ) . getUnitAccount ( ) ) ) ;
materialOrderItem . setSiteAccount ( entry . getValue ( ) . getSiteAccount ( ) ) ;
materialOrderItem . setLineAccount ( MaterialOrderItemConsts . getPrevStageLineAccount ( materialOrder . getIgnoreLineAccount ( ) , entry . getValue ( ) . getLineAccount ( ) ) ) ;
materialOrderItem . setCodeType ( entry . getValue ( ) . getCodeType ( ) ) ;