提交 7d86cb86 authored 作者: lgd's avatar lgd

1.质量分析

上级 b754f794
......@@ -1711,6 +1711,14 @@
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.mes.analysis.MesAnalysisActivity"
android:configChanges="keyboardHidden|orientation"
android:label="质量分析"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.mes.MesProcessActivity"
android:configChanges="keyboardHidden|orientation"
......
package com.wd.workoffice.bean.mesBean;
import java.util.List;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class AnalysisProBean {
/**
* productNum : 19
* productName : 中包浸入式下水口J596
*/
private int productNum;
private String productName;
public int getProductNum() {
return productNum;
}
public void setProductNum(int productNum) {
this.productNum = productNum;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
}
......@@ -598,6 +598,13 @@ public interface MesApiService {
@POST("/himes/api/scrapAnalysis/show/list.json")
Observable<BaseMesBean> scrapAnalysisList(@Query("functionId") String functionId, @Body RequestBody requestBody);
/**
* @return
*/
@POST("/himes/api/defectdict/show/reportForm.json")
Observable<BaseMesBean> defectDict(@Query("functionId") String functionId, @Body RequestBody requestBody);
/**
* @return
*/
......
package com.wd.workoffice.ui.activity.mes.analysis;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alibaba.fastjson.JSON;
import com.bigkoo.pickerview.listener.OnTimeSelectListener;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseMesBean;
import com.wd.workoffice.app.WorkBaseActivity;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.mesBean.AnalysisProBean;
import com.wd.workoffice.bean.mesBean.MesFactoryBean;
import com.wd.workoffice.bean.mesBean.OrderBadBean;
import com.wd.workoffice.bean.mesBean.ProBadBean;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.activity.mes.report.MesReportProBadDetailActivity;
import com.wd.workoffice.ui.adapter.AnalysisProBadAdapter;
import com.wd.workoffice.ui.adapter.AnalysisTopAdapter;
import com.wd.workoffice.ui.adapter.ReportBadListAdapter;
import com.wd.workoffice.ui.adapter.ReportProBadAdapter;
import com.wd.workoffice.ui.adapter.ReportTopAdapter;
import com.wd.workoffice.util.DialogUtils;
import com.wd.workoffice.util.PickTimeUtils;
import com.wd.workoffice.util.WorkUtils;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Map;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.utils.TimeUtils;
import io.reactivex.disposables.Disposable;
/**
* 质量分析
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class MesAnalysisActivity extends WorkToolBarActivity {
@BindView(R.id.tv_first_start)
TextView tvFirstStart;
@BindView(R.id.tv_first_end)
TextView tvFirstEnd;
@BindView(R.id.ll_time)
LinearLayout llTime;
@BindView(R.id.rv_top)
RecyclerView rvTop;
@BindView(R.id.rv_pro_bad)
RecyclerView rvProBad;
@BindView(R.id.ll_report)
LinearLayout llReport;
private AnalysisTopAdapter topAdapter;
private AnalysisProBadAdapter proBadAdapter;
private List<AnalysisProBean> proBadList;
private List<AnalysisProBean> topList;
private Map<String, Object> param;
@Override
protected void initView() {
ButterKnife.bind(this);
rvProBad.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));
rvTop.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));
}
@Override
protected void initData() {
topList = new ArrayList<>();
proBadList = new ArrayList<>();
topAdapter = new AnalysisTopAdapter(R.layout.item_mes_report_top, topList);
proBadAdapter = new AnalysisProBadAdapter(R.layout.item_mes_analysis_pro_bad, proBadList);
topAdapter.bindToRecyclerView(rvTop);
proBadAdapter.bindToRecyclerView(rvProBad);
param = WorkUtils.simpleParam();
getData();
}
private void getData() {
RtfUtils.getMesRtf().defectDict("1", WorkUtils.convertMapToBody(param)).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() {
@Override
public void doOnSubscribe(Disposable d) {
}
@Override
public void onFail(String errorMsg) {
hideLoading();
toast(errorMsg);
}
@Override
public void onSuccess(BaseMesBean data) {
hideLoading();
if (!data.isSuccess()) {
toast(data.getMessage());
return;
}
List<AnalysisProBean> getList = JSON.parseArray(data.getData().toString(), AnalysisProBean.class);
Collections.sort(getList, new Comparator<AnalysisProBean>() {
@Override
public int compare(AnalysisProBean o1, AnalysisProBean o2) {
return new BigDecimal(o2.getProductNum()).compareTo(new BigDecimal(o1.getProductNum()));
}
});
topList.clear();
topList.addAll(getList);
proBadList.clear();
proBadList.addAll(getList);
topAdapter.notifyDataSetChanged();
proBadAdapter.notifyDataSetChanged();
}
});
}
@Override
protected void initEvent() {
}
@Override
protected int layoutId() {
return R.layout.activity_mes_quality_analysis;
}
@OnClick({ R.id.tv_first_start, R.id.tv_first_end})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_first_start:
PickTimeUtils.showPickThree(this, new OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {
String time = TimeUtils.date2String(date, new SimpleDateFormat("yyyy-MM-dd"));
param.put("startDateTime", time);
tvFirstStart.setText(time);
getData();
}
}, false).show();
break;
case R.id.tv_first_end:
PickTimeUtils.showPickThree(this, new OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {
String time = TimeUtils.date2String(date, new SimpleDateFormat("yyyy-MM-dd"));
param.put("lastDateTime", time);
tvFirstEnd.setText(time);
getData();
}
}, false).show();
break;
}
}
}
......@@ -125,7 +125,7 @@ public class MesDefectActivity extends WorkToolBarActivity {
@Override
protected int layoutId() {
return R.layout.activity_mes_analysis;
return R.layout.activity_mes_defect;
}
}
......@@ -60,7 +60,7 @@ public class MesDefectDetailActivity extends WorkToolBarActivity {
@Override
protected int layoutId() {
return R.layout.activity_analysis_detail;
return R.layout.activity_defect_detail;
}
}
......@@ -238,8 +238,6 @@ public class MesReportActivity extends WorkBaseActivity {
proBadAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
LogUtils.LOGE("flexible",tvFirstStart.getText().toString());
LogUtils.LOGE("flexible",tvFirstEnd.getText().toString());
startActivity(MesReportProBadDetailActivity.class,
"data",JSON.toJSONString(proBadList.get(position)),
"beginDate", tvFirstStart.getText().toString(),
......
package com.wd.workoffice.ui.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R;
import com.wd.workoffice.bean.mesBean.AnalysisProBean;
import com.wd.workoffice.bean.mesBean.ProBadBean;
import com.wd.workoffice.util.MathUtils;
import java.util.List;
/**
* Created by flexible on 2018/8/13.
*/
public class AnalysisProBadAdapter extends BaseQuickAdapter<AnalysisProBean, BaseViewHolder> {
public AnalysisProBadAdapter(int layoutResId, List data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, AnalysisProBean item) {
helper.setText(R.id.tv_rank, String.valueOf(helper.getAdapterPosition() + 1));
helper.setText(R.id.tv_pro_name, item.getProductName());
helper.setText(R.id.tv_weight, String.valueOf(item.getProductNum()));
}
}
package com.wd.workoffice.ui.adapter;
import android.view.View;
import android.view.ViewGroup;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R;
import com.wd.workoffice.bean.mesBean.AnalysisProBean;
import com.wd.workoffice.bean.mesBean.ProBadBean;
import com.wd.workoffice.util.MathUtils;
import java.util.List;
import flexible.xd.android_base.utils.ScreenUtils;
/**
* Created by flexible on 2018/8/13.
*/
public class AnalysisTopAdapter extends BaseQuickAdapter<AnalysisProBean, BaseViewHolder> {
double bigValue;
int width = ScreenUtils.getScreenWidth() / 2;
public AnalysisTopAdapter(int layoutResId, List<AnalysisProBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, AnalysisProBean item) {
View progress = helper.getView(R.id.view_progress);
ViewGroup.LayoutParams layoutParams = progress.getLayoutParams();
if (helper.getAdapterPosition() == 0) {
bigValue = item.getProductNum();
layoutParams.width = width;
} else {
if (item.getProductNum() == 0d) {
layoutParams.width = 0;
} else {
int lastWidth = Integer.parseInt(MathUtils.multiply(String.valueOf(item.getProductNum() / bigValue), width + "", 0));
if (lastWidth == 0) {
lastWidth = lastWidth + 5;
}
layoutParams.width = lastWidth;
}
}
helper.setText(R.id.tv_name,item.getProductName());
}
}
......@@ -7,6 +7,7 @@ import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.wd.workoffice.R;
import com.wd.workoffice.app.WorkBaseFg;
import com.wd.workoffice.bean.vo.BatLayoutVo;
import com.wd.workoffice.ui.activity.mes.analysis.MesAnalysisActivity;
import com.wd.workoffice.ui.activity.mes.defect.MesDefectActivity;
import com.wd.workoffice.ui.activity.mes.repair.MesServiceActivity;
import com.wd.workoffice.ui.activity.mes.QualityTraceabilityActivity;
......@@ -40,15 +41,15 @@ public class MesFragment extends WorkBaseFg {
// int[] dataImg = new int[]{R.mipmap.mes_icon1, R.mipmap.mes_icon2, R.mipmap.mes_icon3, R.mipmap.mes_icon4,
// R.mipmap.mes_icon5, R.mipmap.mes_icon6, R.mipmap.mes_icon7, R.mipmap.mes_icon8,
// R.mipmap.mes_icon9, R.mipmap.mes_icon10, R.mipmap.mes_icon10};
int[] dataImg = new int[]{R.mipmap.mes_icon1, R.mipmap.mes_icon2, R.mipmap.mes_icon3, R.mipmap.mes_icon4,
R.mipmap.mes_icon5, R.mipmap.mes_icon8,
R.mipmap.mes_icon9,R.mipmap.mes_icon10};
int[] dataImg = new int[]{R.mipmap.mes_icon1, R.mipmap.mes_icon2, R.mipmap.mes_icon3,
R.mipmap.mes_icon5,
R.mipmap.mes_icon9,R.mipmap.mes_icon10, R.mipmap.mes_icon8, R.mipmap.mes_icon10};
// String[] dataName = new String[]{"订单追踪", "质量报表", "质量分析", "质量绩效",
// "质量追溯", "质量反馈", "过程检测", "报废管理", "检维修记录", "设备监控"
// , "工单管理"};
String[] dataName = new String[]{"订单追踪", "质量报表", "缺陷字典", "质量绩效",
"质量追溯", "质量工单","检维修记录"
, "市场服务"};
String[] dataName = new String[]{"订单追踪", "质量报表", "质量分析",
"质量追溯","检维修记录"
, "市场服务", "设备工单", "设备监控"};
@Override
......@@ -109,32 +110,21 @@ public class MesFragment extends WorkBaseFg {
startActivity(MesReportActivity.class);
break;
case 2:
startActivity(MesDefectActivity.class);
startActivity(MesAnalysisActivity.class);
break;
case 3:
startActivity(QualityTraceabilityActivity.class);
break;
case 4:
startActivity(QualityTraceabilityActivity.class);
startActivity(MesServiceActivity.class);
break;
case 5:
// startActivity(MesFeedbackActivity.class);
startActivity(QualityWorkActivity.class);
break;
case 6:
// startActivity(MesProcessActivity.class);
startActivity(MesServiceActivity.class);
break;
case 7:
// startActivity(MesScrappedActivity.class);
startActivity(MesTicketActivity.class);
break;
case 8:
// startActivity(MesServiceActivity.class);
break;
case 9:
break;
case 10:
// startActivity(MesTicketActivity.class);
case 7:
startActivity(QualityWorkActivity.class);
break;
}
}
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_report"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25mm"
android:background="@drawable/shape_mes_time"
android:gravity="center"
android:paddingVertical="4mm">
<TextView
android:id="@+id/tv_first_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableRight="@mipmap/arrow_down"
android:gravity="center_vertical"
android:paddingVertical="13mm"
android:text="开始时间"
android:textSize="13sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20mm"
android:gravity="center_vertical"
android:text="~" />
<TextView
android:id="@+id/tv_first_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableRight="@mipmap/arrow_down"
android:gravity="center_vertical"
android:paddingVertical="13mm"
android:text="结束时间"
android:textSize="13sp" />
</LinearLayout>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15mm"
android:layout_marginTop="20mm"
app:cardCornerRadius="3dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="17mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="产品名字"
android:textColor="#ff3f84cd"
android:textSize="15sp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20mm" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="30mm"
android:layout_marginTop="20mm">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="序号"
android:textSize="14sp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="产品名称"
android:gravity="center"
android:textSize="14sp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="缺陷数量"
android:textSize="14sp" />
</LinearLayout>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15mm"
android:layout_marginTop="10mm"
app:cardCornerRadius="3dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="17mm">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_pro_bad"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="12mm">
<TextView
android:id="@+id/tv_rank"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="排名"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_pro_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="产品名称"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_weight"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="废品重量(kg)"
android:gravity="center"
android:textSize="14sp" />
</LinearLayout>
<View style="@style/dividerX" />
</LinearLayout>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论