@ -7,6 +7,8 @@ import static com.techscan.wk.app.AppConst.REQUEST_CODE_SCAN_FOR_GROUP;
import android.Manifest ;
import android.annotation.SuppressLint ;
import android.content.Context ;
import android.content.DialogInterface ;
import android.content.Intent ;
import android.content.pm.PackageManager ;
import android.os.Bundle ;
@ -32,8 +34,10 @@ import com.bin.david.form.data.column.Column;
import com.bin.david.form.data.format.bg.BaseBackgroundFormat ;
import com.bin.david.form.data.format.bg.BaseCellBackgroundFormat ;
import com.bin.david.form.data.format.bg.IBackgroundFormat ;
import com.bin.david.form.data.format.draw.ImageResDrawFormat ;
import com.bin.david.form.data.style.FontStyle ;
import com.bin.david.form.data.table.TableData ;
import com.bin.david.form.utils.DensityUtils ;
import com.blankj.utilcode.util.KeyboardUtils ;
import com.blankj.utilcode.util.StringUtils ;
import com.blankj.utilcode.util.ToastUtils ;
@ -47,6 +51,7 @@ import com.techscan.wk.adapter.DynamicFormAdapter;
import com.techscan.wk.base.CommonFunctionActivity ;
import com.techscan.wk.model.DetailShowBean ;
import com.techscan.wk.model.DynamicFormBean ;
import com.techscan.wk.model.ReportWorkErrorInfoBean ;
import com.techscan.wk.model.ReportWorkOffsetBean ;
import com.techscan.wk.rxbus.Event ;
import com.techscan.wk.rxbus.RxBus ;
@ -67,7 +72,9 @@ import com.techscan.wk.widgets.MySmartTable;
import java.lang.reflect.Type ;
import java.util.ArrayList ;
import java.util.HashMap ;
import java.util.List ;
import java.util.Map ;
import butterknife.BindView ;
import butterknife.ButterKnife ;
@ -94,9 +101,10 @@ public class ReportWorkOffsetActivity extends CommonFunctionActivity {
@BindView ( R . id . smartTable )
MySmartTable < ReportWorkOffsetBean > smartTable ;
private Column < String > select ;
private Column < Boolean > select ;
private Column < String > AUFNR ;
private Column < String > GMNGA ;
private Column < String > createTime ;
private Column < String > zxtpc ;
private Column < String > zpc ;
@ -151,17 +159,19 @@ public class ReportWorkOffsetActivity extends CommonFunctionActivity {
config . setShowXSequence ( false ) ;
config . setShowYSequence ( false ) ;
config . setShowTableTitle ( false ) ;
select = new Column < > ( getString ( R . string . choice ) , "select" ) ;
select = new Column < > ( getString ( R . string . select_all ) , "select" ) ;
AUFNR = new Column < > ( getString ( R . string . Work_order_number ) , "aufnr" ) ;
GMNGA = new Column < > ( getString ( R . string . Quantity_reported ) , "gmnga" ) ;
createTime = new Column < > ( getString ( R . string . Creation_time ) , "createTime" ) ;
zxtpc = new Column < > ( getString ( R . string . Case_number ) , "zxtpc" ) ;
zpc = new Column < > ( getString ( R . string . batch ) , "zpc" ) ;
select . setFixed ( true ) ;
select . setFast ( true ) ;
select . setMinWidth ( 11 0) ;
select . setMinWidth ( 9 0) ;
AUFNR . setFast ( true ) ;
GMNGA . setFast ( true ) ;
createTime . setFast ( true ) ;
zxtpc . setFast ( true ) ;
zpc . setFast ( true ) ;
@ -186,19 +196,119 @@ public class ReportWorkOffsetActivity extends CommonFunctionActivity {
}
} ) ;
final int imgSize = DensityUtils . dp2px ( this , 20 ) ;
select . setDrawFormat ( new ImageResDrawFormat < Boolean > ( imgSize , imgSize ) {
@Override
protected Context getContext ( ) {
return ReportWorkOffsetActivity . this ;
}
@Override
protected int getResourceID ( Boolean val , String value , int position ) {
if ( list . get ( position ) . isSelect ( ) ) {
return R . mipmap . ic_select_check ;
} else {
return R . mipmap . ic_unselect_check ;
}
}
} ) ;
smartTable . setOnColumnClickListener ( columnInfo - > {
String columnName = columnInfo . column . getColumnName ( ) ;
if ( columnInfo . column . getFieldName ( ) . equals ( "select" ) ) {
List < ReportWorkOffsetBean > beanList = smartTable . getTableData ( ) . getT ( ) ;
if ( beanList ! = null & & beanList . size ( ) ! = 0 ) {
if ( columnName . equals ( getString ( R . string . select_all ) ) ) {
select . setColumnName ( getString ( R . string . cancel_info ) ) ;
for ( int i = 0 ; i < beanList . size ( ) ; i + + ) {
beanList . get ( i ) . setSelect ( true ) ;
}
} else {
select . setColumnName ( getString ( R . string . select_all ) ) ;
for ( int i = 0 ; i < beanList . size ( ) ; i + + ) {
beanList . get ( i ) . setSelect ( false ) ;
}
}
smartTable . refreshDrawableState ( ) ;
smartTable . invalidate ( ) ;
}
}
} ) ;
setTableData ( ) ;
setTableRowClickListener ( ) ;
}
private void setTableRowClickListener ( ) {
smartTable . getTableData ( ) . setOnRowClickListener ( ( column , reportWorkOffsetBean , coIndex , row ) - > {
if ( column . getFieldName ( ) . equals ( "select" ) ) {
List < ReportWorkOffsetBean > beanList = smartTable . getTableData ( ) . getT ( ) ;
if ( beanList . get ( row ) . isSelect ( ) ) {
beanList . get ( row ) . setSelect ( false ) ;
} else {
beanList . get ( row ) . setSelect ( true ) ;
}
int selectCount = 0 ;
for ( int i = 0 ; i < beanList . size ( ) ; i + + ) {
if ( beanList . get ( i ) . isSelect ( ) ) {
selectCount + + ;
}
}
if ( beanList . size ( ) > 0 & & selectCount = = beanList . size ( ) ) {
select . setColumnName ( getString ( R . string . cancel_info ) ) ;
} else {
select . setColumnName ( getString ( R . string . select_all ) ) ;
}
smartTable . refreshDrawableState ( ) ;
smartTable . invalidate ( ) ;
} else {
List < DetailShowBean > list = new ArrayList < > ( ) ;
list . add ( new DetailShowBean ( getString ( R . string . Work_order_number ) , reportWorkOffsetBean . getAufnr ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . Creation_time ) , reportWorkOffsetBean . getCreateTime ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . Process_confirmation_number ) , reportWorkOffsetBean . getResultRueck ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . counter ) , reportWorkOffsetBean . getResultRmzhl ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . Factory ) , reportWorkOffsetBean . getWerks ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . Case_number ) , reportWorkOffsetBean . getZxtpc ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . batch ) , reportWorkOffsetBean . getZpc ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . Quantity_reported ) , reportWorkOffsetBean . getGmnga ( ) + "" ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . A_unit_of_measurement_of_reported_quantity ) , reportWorkOffsetBean . getMeinh ( ) + "" ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . Basic_number_of_reports ) , reportWorkOffsetBean . getLmnga ( ) + "" ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . A_unit_of_measurement_of_basic_quantity_reported ) , reportWorkOffsetBean . getGmein ( ) ) ) ;
DetailBottomSheet detailBottomSheet = new DetailBottomSheet < > ( context , getResources ( ) . getString ( R . string . detail_info ) , list ) ;
new XPopup . Builder ( context )
. moveUpToKeyboard ( false ) //如果不加这个,评论弹窗会移动到软键盘上面
. isRequestFocus ( false )
. autoFocusEditText ( false )
. autoOpenSoftInput ( true )
. asCustom ( detailBottomSheet )
. show ( ) ;
}
} ) ;
}
/ * *
* 保存数据
* @param reportWorkOffsetBean 需要提交的工单数据
* @param row 当前列表行 , 用于删除row数据
* /
private void saveData ( ReportWorkOffsetBean reportWorkOffsetBean , int row ) {
reportWorkOffsetBean . setRueck ( reportWorkOffsetBean . getResultRueck ( ) ) ;
reportWorkOffsetBean . setRmzhl ( reportWorkOffsetBean . getResultRmzhl ( ) ) ;
HttpMethods . getInstance ( ) . saveCX ( gson . toJson ( reportWorkOffsetBean ) , new BaseObserver < ResponseBody > ( this ) {
private void saveData ( ) {
List < ReportWorkOffsetBean > workErrorInfoBeanList = smartTable . getTableData ( ) . getT ( ) ;
List < ReportWorkOffsetBean > savaBeanList = new ArrayList < > ( ) ;
for ( int i = 0 ; i < workErrorInfoBeanList . size ( ) ; i + + ) {
ReportWorkOffsetBean reportWorkOffsetBean = workErrorInfoBeanList . get ( i ) ;
if ( reportWorkOffsetBean . isSelect ( ) ) {
reportWorkOffsetBean . setRueck ( reportWorkOffsetBean . getResultRueck ( ) ) ;
reportWorkOffsetBean . setRmzhl ( reportWorkOffsetBean . getResultRmzhl ( ) ) ;
savaBeanList . add ( reportWorkOffsetBean ) ;
}
}
if ( savaBeanList . size ( ) = = 0 ) {
ToastUtils . showLong ( R . string . Please_select_the_data_you_want_to_save ) ;
return ;
}
Map < String , Object > saveItemRequestBean = new HashMap < > ( ) ;
saveItemRequestBean . put ( "imports" , savaBeanList ) ;
HttpMethods . getInstance ( ) . saveCX ( saveItemRequestBean , new BaseObserver < ResponseBody > ( this ) {
@Override
protected void onSuccess ( ResponseBody responseBody ) throws Exception {
String string = responseBody . string ( ) ;
@ -206,7 +316,8 @@ public class ReportWorkOffsetActivity extends CommonFunctionActivity {
} . getType ( ) ;
BaseResponseBean < String > baseResponseBean = gson . fromJson ( string , objectType ) ;
if ( baseResponseBean . getCode ( ) = = 200 ) {
new QMUIDialog . MessageDialogBuilder ( context ) . setTitle ( getResources ( ) . getString ( R . string . tips_title ) )
QMUIDialog . MessageDialogBuilder messageDialogBuilder = new QMUIDialog . MessageDialogBuilder ( context ) ;
messageDialogBuilder . setTitle ( getResources ( ) . getString ( R . string . tips_title ) )
. setCancelable ( false )
. setMessage ( getString ( R . string . Data_saved_successfully ) )
. addAction ( getResources ( ) . getString ( R . string . cancel_info ) , ( dialog , index ) - > dialog . dismiss ( ) )
@ -214,8 +325,7 @@ public class ReportWorkOffsetActivity extends CommonFunctionActivity {
dialog . dismiss ( ) ;
} )
. create ( R . style . QMUI_Dialog ) . show ( ) ;
list . remove ( row ) ;
setTableData ( ) ;
messageDialogBuilder . show ( ) . setOnDismissListener ( dialogInterface - > query ( ) ) ;
} else {
showError ( baseResponseBean . getMsg ( ) ) ;
}
@ -230,50 +340,10 @@ public class ReportWorkOffsetActivity extends CommonFunctionActivity {
}
private void setTableData ( ) {
for ( int i = 0 ; i < list . size ( ) ; i + + ) {
list . get ( i ) . setSelect ( getString ( R . string . write_off ) ) ;
}
mTableData = new TableData < > ( "" , list , select , AUFNR , GMNGA , zxtpc , zpc ) ;
mTableData = new TableData < > ( "" , list , select , AUFNR , GMNGA , createTime , zxtpc , zpc ) ;
smartTable . setTableData ( mTableData ) ;
smartTable . invalidate ( ) ;
smartTable . getTableData ( ) . setOnRowClickListener ( ( column , reportWorkOffsetBean , i , row ) - > {
if ( column . getFieldName ( ) . equals ( "select" ) ) {
if ( AntiShakeUtils . isInvalidClick2 ( smartTable , 1500 ) )
return ;
new QMUIDialog . MessageDialogBuilder ( context )
. setTitle ( getResources ( ) . getString ( R . string . tips_title ) )
. setMessage ( getString ( R . string . Confirm_to_submit_data ) )
. addAction ( getResources ( ) . getString ( R . string . cancel_info ) , ( dialog , index ) - > dialog . dismiss ( ) )
. addAction ( getResources ( ) . getString ( R . string . confirm_info ) , ( dialog , index ) - > {
dialog . dismiss ( ) ;
saveData ( reportWorkOffsetBean , row ) ;
} )
. show ( ) ;
} else {
List < DetailShowBean > list = new ArrayList < > ( ) ;
list . add ( new DetailShowBean ( getString ( R . string . Work_order_number ) , reportWorkOffsetBean . getAufnr ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . Creation_time ) , reportWorkOffsetBean . getCreateTime ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . Process_confirmation_number ) , reportWorkOffsetBean . getResultRueck ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . counter ) , reportWorkOffsetBean . getResultRmzhl ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . Factory ) , reportWorkOffsetBean . getWerks ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . Case_number ) , reportWorkOffsetBean . getZxtpc ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . batch ) , reportWorkOffsetBean . getZpc ( ) ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . Quantity_reported ) , reportWorkOffsetBean . getGmnga ( ) + "" ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . A_unit_of_measurement_of_reported_quantity ) , reportWorkOffsetBean . getMeinh ( ) + "" ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . Basic_number_of_reports ) , reportWorkOffsetBean . getLmnga ( ) + "" ) ) ;
list . add ( new DetailShowBean ( getString ( R . string . A_unit_of_measurement_of_basic_quantity_reported ) , reportWorkOffsetBean . getGmein ( ) ) ) ;
DetailBottomSheet detailBottomSheet = new DetailBottomSheet < > ( context , getResources ( ) . getString ( R . string . detail_info ) , list ) ;
new XPopup . Builder ( context )
. moveUpToKeyboard ( false ) //如果不加这个,评论弹窗会移动到软键盘上面
. isRequestFocus ( false )
. autoFocusEditText ( false )
. autoOpenSoftInput ( true )
. asCustom ( detailBottomSheet )
. show ( ) ;
}
} ) ;
}
@ -374,6 +444,7 @@ public class ReportWorkOffsetActivity extends CommonFunctionActivity {
Type objectType = new TypeToken < BaseResponseBean < List < ReportWorkOffsetBean > > > ( ) {
} . getType ( ) ;
BaseResponseBean < List < ReportWorkOffsetBean > > baseResponseBean = gson . fromJson ( string , objectType ) ;
select . setColumnName ( getString ( R . string . select_all ) ) ;
if ( baseResponseBean . getCode ( ) = = 200 ) {
list . clear ( ) ;
if ( baseResponseBean . getData ( ) . size ( ) > 0 ) {
@ -381,25 +452,27 @@ public class ReportWorkOffsetActivity extends CommonFunctionActivity {
} else {
ToastUtils . showLong ( getString ( R . string . No_data_was_obtained ) ) ;
}
setTableData ( ) ;
} else {
list . clear ( ) ;
setTableData ( ) ;
showError ( baseResponseBean . getMsg ( ) ) ;
}
setTableData ( ) ;
setTableRowClickListener ( ) ;
}
@Override
protected void onFailure ( Throwable e ) throws Exception {
select . setColumnName ( getString ( R . string . select_all ) ) ;
list . clear ( ) ;
setTableData ( ) ;
setTableRowClickListener ( ) ;
CustomErrorDialog ( e , ReportWorkOffsetActivity . this ) ;
}
} ) ;
}
@OnClick ( { R . id . iv_scan } )
@OnClick ( { R . id . iv_scan , R . id . btn_submit } )
public void onViewClicked ( View view ) {
if ( AntiShakeUtils . isInvalidClick ( view ) )
return ;
@ -411,6 +484,9 @@ public class ReportWorkOffsetActivity extends CommonFunctionActivity {
else
startScan ( getResources ( ) . getString ( R . string . scan_title ) ) ;
break ;
case R . id . btn_submit :
saveData ( ) ;
break ;
}
}