private static final String TAG = "DisCodeFragment";
private EditText etCode;
private RecyclerView rv;
private ViewSwitcher vs;
private DisScanCodeExAdapter adapter;
private DisDetailContract.Presenter mPresenter;
private HashSet powerC;
/**
* 工装码数据
*/
private SparseArray<List<ProductStockEntity>> toolingList;
/**
* 有工装码,未备料的数据
*/
private List<ToolingCodeEntity.DataListBean> 工装码不为空的出新接口的数据 = new ArrayList<ToolingCodeEntity.DataListBean>();
DispatchDetailEntity havecSemiList = new DispatchDetailEntity();
DispatchDetailEntity havecSemiList2 = new DispatchDetailEntity();
List<ImDisDisEntity> 保存的原数据 = new ArrayList<>();
boolean 扫描的工装码和新接口的工装码匹配=false;
boolean haveC物料编码和新接口的物料编码匹配=false;
boolean havec_state等于0清单未备料=false;
boolean haveC_SemiList中的State状态码为0和3=false;
public DisCodeFragment() {
toolingList = new SparseArray<>();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
}
powerC = PowerUtil.getPowerC();
}
public static DisCodeFragment newInstance(Bundle args) {
DisCodeFragment fragment = new DisCodeFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public int bindLayout() {
return R.layout.fragment_dis_code;
}
@Override
public void initView() {
//扫码权限
TextView tvScan = contentView.findViewById(R.id.tv_scan_code);
if (powerC.contains(PMaterialManagement.Dispatch.C_SCAN)) {
} else {
tvScan.setVisibility(View.GONE);
}
tvScan.setVisibility(View.VISIBLE);
tvScan.setOnClickListener(this);
//备料权限
TextView tvPrepare = contentView.findViewById(R.id.tv_prepare_code);
if (powerC.contains(PMaterialManagement.Dispatch.C_PREPARE)) {
tvPrepare.setVisibility(View.VISIBLE);
tvPrepare.setOnClickListener(this);
} else {
tvPrepare.setVisibility(View.GONE);
}
etCode = contentView.findViewById(R.id.et_tooling_code);
rv = contentView.findViewById(R.id.rv_dis_code);
vs = contentView.findViewById(R.id.vs_dis_code);
rv.addItemDecoration(new DividerDecoration(DensityUtil.dp2px(8)));
adapter = new DisScanCodeExAdapter(context);
rv.setAdapter(adapter);
adapter.setRv(rv);
}
@Override
public void doBusiness() {
}
@Override
public void onWidgetClick(View v) {
if (getActivity() != null) {
KeyboardUtil.hideKeyboard(getActivity());
}
switch (v.getId()) {
case R.id.tv_prepare_code:
if (ListUtil.isEmptyList(adapter.getRequestList())) {
toast(ErrorConstant.ERROR_SELECT);
return;
}
DispatchDetailEntity entity = new DispatchDetailEntity();
entity.setHavec(adapter.getRequestList());
Log.e(TAG, "onWidgetClick: "+entity );
// havec物料编码和新接口的物料编码做比对,
// 获取到扫描工装码的数据后,用这条(Havec的)数据的物料编码作为条件,
// 再加上工装码不为空过滤出新接口的数据,并按照操作时间正序排序, toolingCodeDataList2
// 取出第一条数据与扫的工装码比对,不一致的话就弹窗提示,点击确定的话,要求输入备注信息。
// 点击取消的话,重新初始化加载扫码列表。
// 一致的话就直接备料保存,不弹窗。
if (entity.getHavec().get(0).getMatId().equals(工装码不为空的出新接口的数据.get(0).getMaterialCode())){////getMaterialCode
mPresenter.prepare(entity);//备料
}else {
initDialog(entity, entity.getHavec().get(0).getMatName()+"["+entity.getHavec().get(0).getMatId()+"]"+"\n"+"不符合先入先出规则,确认是否继续");
}
break;
case R.id.tv_scan_code://点击查询
//haveC.semiList中的State状态码为0和3
for (int i = 0; i < havecSemiList.getHavec().size(); i++) {
String temp = "0";
if (!ListUtil.isEmptyList(havecSemiList.getHavec().get(i).getSeimList())) {
for (int j = 0; j < havecSemiList.getHavec().get(i).getSeimList().size(); j++) {
if (havecSemiList.getHavec().get(i).getSeimList().get(j).getState() != 0 && havecSemiList.getHavec().get(i).getSeimList().get(j).getState() != 3) {//测试完毕把2改成3
havecSemiList.getHavec().get(i).getSeimList().remove(j);
j--;
}else {
temp = "1";
}
}
}else {
havecSemiList.getHavec().remove(i);
}
if (temp=="0"){
havecSemiList.getHavec().remove(i);
}
}
Log.e(TAG, "initFragmentData: " + havecSemiList);
if (StringUtil.isEmpty(etCode.getText())) {
QRCodeUtil.startScanQRCode(getActivity());
} else {
//haveC.semiList中的State状态码为0和3
//haveC物料编码和新接口的物料编码getMaterialCode
//扫描的工装码和新接口的工装码匹配 containerCode
//追加条件havec.state=0//清单未备料
//扫描的工装码和新接口的工装码匹配 containerCode
for (ToolingCodeEntity.DataListBean tooling : toolingCodeDataList.getDataList()) {
if (tooling.getContainerCode() != null && tooling.getContainerCode() != "") {
if (tooling.getContainerCode().equals(etCode.getText().toString())) {
扫描的工装码和新接口的工装码匹配 = true;
break;
} else {
扫描的工装码和新接口的工装码匹配 = false;
}
}
}
for (int i = 0; i < havecSemiList.getHavec().size(); i++) {
if (havecSemiList.getHavec().get(i).getState()==0) {
havec_state等于0清单未备料 = true;
for (int j = 0; j < toolingCodeDataList.getDataList().size(); j++) {
if (!ListUtil.isEmptyList(havecSemiList.getHavec().get(i).getSeimList())) {
haveC_SemiList中的State状态码为0和3 = true;
if (havecSemiList.getHavec().get(i).getMatId().equals(toolingCodeDataList.getDataList().get(j).getMaterialCode())) {
haveC物料编码和新接口的物料编码匹配 = true;
break;
}
}
}
}
}
Log.e(TAG, "扫描的工装码和新接口的工装码匹配: "+扫描的工装码和新接口的工装码匹配 );
Log.e(TAG, "haveC物料编码和新接口的物料编码匹配: "+ haveC物料编码和新接口的物料编码匹配);
Log.e(TAG, "havec_state等于0清单未备料: "+ havec_state等于0清单未备料);
Log.e(TAG, "haveC_SemiList中的State状态码为0和3: "+ haveC_SemiList中的State状态码为0和3);
if (!扫描的工装码和新接口的工装码匹配){
toast(ErrorConstant.ERROR_NO_QUERY_DATA);
}else if (!haveC物料编码和新接口的物料编码匹配){
toast(ErrorConstant.ERROR_NO_QUERY_DATA);
}else if(!havec_state等于0清单未备料){
toast(ErrorConstant.ERROR_NO_QUERY_DATA);
}else if(!haveC_SemiList中的State状态码为0和3){
toast(ErrorConstant.ERROR_NO_QUERY_DATA);
}else {
queryCode(etCode.getText().toString());
}
}
break;
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && data != null) {
if (requestCode == QRCodeUtil.REQUEST_CODE) {
String code = data.getStringExtra(QRCodeUtil.SCAN_RESULT);
etCode.setText(code);
queryCode(code);
}
}
}
public void setData(List<ImDisDisEntity> data) {
if (ListUtil.isEmptyList(data)) {
vs.setDisplayedChild(0);
} else {
vs.setDisplayedChild(1);
}
保存的原数据 = data;
adapter.setData(data);
}
ToolingCodeEntity toolingCodeDataList = new ToolingCodeEntity();
public void setToolingCodeData(ToolingCodeEntity toolingCodeData, long id) {
EasyHttp.get(NetUrl.TestUrl.GET_DISPATCH_DETAIL_LIST + id)
.execute(new ProgressDialogCallBack<String>(new MyProgressDialog(context), true, true) {
@Override
public void onSuccess(String s) {
if (!StringUtil.isEmpty(s)) {
DispatchDetailEntity entity = initEntity(GsonUtil.getObject(s, DispatchDetailEntity.class));
if (entity != null) {
havecSemiList=entity;
havecSemiList2=entity;
return;
}
}
}
@Override
public void onError(ApiException e) {
super.onError(e);
operationError(ErrorConstant.ERROR_NET);
}
});
toolingCodeDataList = invertOrderList(toolingCodeData);
for (int i = 0; i < toolingCodeDataList.getDataList().size(); i++) {
if (toolingCodeDataList.getDataList().get(i).getContainerCode()!=null&&
toolingCodeDataList.getDataList().get(i).getContainerCode()!=""){
工装码不为空的出新接口的数据.add(toolingCodeDataList.getDataList().get(i));
}
}
// if (toolingCodeDataList.getDataList().size() > 0 && toolingCodeDataList.getDataList() != null) {
// etCode.setText("2904111XKZ16A-Y003");
// }
Log.e(TAG, "setToolingCodeData: "+工装码不为空的出新接口的数据 );
}
//将List按照时间倒序排列
@SuppressLint("SimpleDateFormat")
private ToolingCodeEntity invertOrderList(ToolingCodeEntity dataListBeans) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1;
Date d2;
ToolingCodeEntity.DataListBean temp_r = new ToolingCodeEntity.DataListBean();
//做一个冒泡排序,大的在数组的前列
for (int i = 0; i < dataListBeans.getDataList().size() - 1; i++) {
for (int j = i + 1; j < dataListBeans.getDataList().size(); j++) {
ParsePosition pos1 = new ParsePosition(0);
ParsePosition pos2 = new ParsePosition(0);
d1 = sdf.parse(dataListBeans.getDataList().get(i).getOperateTime(), pos1);
d2 = sdf.parse(dataListBeans.getDataList().get(j).getOperateTime(), pos2);
if (d1.after(d2)) {//如果队前日期靠前,调换顺序 before
// temp_r = dataListBeans.getDataList().get(i);
temp_r = dataListBeans.getDataList().get(i);
dataListBeans.getDataList().set(i, dataListBeans.getDataList().get(j));
dataListBeans.getDataList().set(j, temp_r);
}
}
}
return dataListBeans;
}
/**
* 查询工装码
*/
private void queryCode(String toolingCode) {
adapter.queryCode(context, toolingCode);
}
public void setmPresenter(DisDetailContract.Presenter mPresenter) {
this.mPresenter = mPresenter;
}
/**
* 剔除返回数据中,包含子清单的主清单
* 同一个物料要不按照物料入,要不按照工装入
*/
private DispatchDetailEntity initEntity(DispatchDetailEntity entity) {
if (entity == null) {
return null;
}
sortList(entity.getHavec());
sortList(entity.getNotHavec());
sortList(entity.getImList());
return entity;
}
private void sortList(List<ImDisDisEntity> data) {
if (ListUtil.isEmptyList(data)) {
return;
}
Map<String, ImDisDisEntity> map = new HashMap<>();
List<ImDisDisEntity> needRemoveIm = new ArrayList<>();
for (ImDisDisEntity im : data) {
if (map.get(im.getMatId()) == null) {
map.put(im.getMatId(), im);
} else {
needRemoveIm.add(map.get(im.getMatId()));
}
}
for (ImDisDisEntity im : needRemoveIm) {
data.remove(im);
}
}
//退出登录取消按钮
private LinearLayout cancel;
//退出登录呼叫按钮
private LinearLayout call;
//退出登录title
private TextView titleTV;
private TextView rightTV;
private EditText log_out_et;
private AlertDialog logOutDialog;
public void initDialog(DispatchDetailEntity entity, String msg) {
LayoutInflater inflater = LayoutInflater.from(context);
View view1 = inflater.inflate(R.layout.logout_dialog, null);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
logOutDialog = builder.create();
logOutDialog.show();
logOutDialog.getWindow().setContentView(view1);
logOutDialog.setCancelable(false); //设置点击空白区域不消失
titleTV= (TextView) view1.findViewById(R.id.log_out_content);
titleTV.setText(msg);
log_out_et= (EditText) view1.findViewById(R.id.log_out_et);
cancel = (LinearLayout) view1.findViewById(R.id.log_out_cancel);
call = (LinearLayout) view1.findViewById(R.id.log_out_call);
logOutDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
logOutDialog.cancel();
adapter.setData(保存的原数据);
}
});
call.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str = log_out_et.getText().toString();
if (str.isEmpty()) {
toast("请输入备注!!!");
} else {
entity.getHavec().get(0).setRemark(str);
mPresenter.prepare(entity);//备料
closeKeyboard();
logOutDialog.cancel();
}
}
});
}
//如果显示则隐藏,如果隐藏则显示
private void closeKeyboard() {
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
// 得到InputMethodManager的实例
if (imm.isActive()) {
// 如果开启
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT,
InputMethodManager.HIDE_NOT_ALWAYS);
}
}
网友评论