1.SeeAbnormalActivity.java
public class SeeAbnormalActivity extends AppCompatActivity {
@Bind(R.id.activity_see_header_ll)
LinearLayout see_header_ll;
@Bind(R.id.activity_see_back_iv)
ImageView see_back_iv;
@Bind(R.id.item_see_abnormal_tv)
TextView see_abnormal_tv;//A生产线
@Bind(R.id.item_see_abnormal_tv2)
TextView see_abnormal_tv2;//预处理工段
@Bind(R.id.item_see_abnormal_tv3)
TextView see_abnormal_tv3;//切断线
@Bind(R.id.item_abnormal_people_tv4)
TextView abnormal_people_tv4;//巡检人姓名
@Bind(R.id.item_abnormal_day_tv5)
TextView abnormal_day_tv5;//巡检时间
@Bind(R.id.see_no_data)
RelativeLayout see_no_data;
@Bind(R.id.activity_see_refreshLayout)
RefreshLayout see_refreshLayout;
@Bind(R.id.activity_see_info_rv)
RecyclerView see_info_rv;
@Bind(R.id.activity_see_accept_btn)
Button see_accept_btn;
String checkMasId,positionName,craftName,checkPointName,checkUserName,businessTime;//收到intent传参 主表Id
private ArrayList<SeeAbnormalBean> seeAbnormalList=new ArrayList<>();//整个数组
private ArrayList<SeeAbnormalBean.CheckDetlConInfoBean> seeTypeList = new ArrayList<>();//内层数组
private RecyclerView.LayoutManager seeManager;
private SeeAbnormalAdapter seeAbnormalAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_see_abnormal);
ButterKnife.bind(this);
initView();
initData();
}
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onDestroy() {
super.onDestroy();
ButterKnife.unbind(this);
}
private void initData() {
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
checkMasId = (String) bundle.getSerializable("checkMasId");//得到传参 巡检点Id Button1继续传参
positionName = (String) bundle.getSerializable("positionName");
craftName = (String) bundle.getSerializable("craftName");
checkPointName = (String) bundle.getSerializable("checkPointName");
checkUserName = (String) bundle.getSerializable("checkUserName");
businessTime = (String) bundle.getSerializable("businessTime");
//界面上半部分赋值
see_abnormal_tv.setText(positionName);
see_abnormal_tv2.setText(craftName);
see_abnormal_tv3.setText(checkPointName);
abnormal_people_tv4.setText(checkUserName);
abnormal_day_tv5.setText(businessTime);
see_no_data.setVisibility(View.VISIBLE);
seeManager = new LinearLayoutManager(SeeAbnormalActivity.this, LinearLayoutManager.VERTICAL, false);
see_info_rv.setLayoutManager(seeManager);
see_info_rv.setItemAnimator(new DefaultItemAnimator());//recycler的自定义动画实现
//上拉加载下拉更新
see_refreshLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
getAbnormal(true);//异常信息
}
});
see_refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
getAbnormal(false);
}
});
//关闭上拉加载更多
see_refreshLayout.setEnableLoadMore(false);
see_refreshLayout.autoRefresh();//自动刷新
}
private void initView() {//通知栏白色,第一个linearlayout下移
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
StatusBarSetting.setStatusBarFullTransparent(this, true);
int statusBarHeight = StatusBarSetting.getStatusBarHeight(this);
see_header_ll.setPadding(0,statusBarHeight + 20,0,0);
}
else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
StatusBarSetting.setStatusBarHalfTransparent(this);
int statusBarHeight = StatusBarSetting.getStatusBarHeight(this);
see_header_ll.setPadding(0,statusBarHeight,0,0);
}
}
@OnClick({R.id.activity_see_back_iv,R.id.activity_see_accept_btn})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.activity_see_back_iv:
finish();
break;
case R.id.activity_see_accept_btn:
//接口3
if (seeAbnormalList.size()>0&&seeAbnormalList!=null){
new XPopup.Builder(this)
.asConfirm(
"提示",
"是否受理巡检点下所有异常?",
new OnConfirmListener() {
@Override
public void onConfirm() {
saveSeeAbnormal();
}
}
)
.show();
}else {
ToastUtil.showToast(SeeAbnormalActivity.this,"没有异常记录");
}
break;
}
}
//接口3 上传受理数据
private void saveSeeAbnormal() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
HashMap<String,String> params = new HashMap<>();
params.put("checkMasId", checkMasId);
OkHTTPManger.getInstance(this).postAsynByMap(
AppConfig.getServerUrl() + "/bs/equCheckMas/changeAcceptanceState",
//"http://192.168.1.151:2030/bs/storeEquCheckUserCfg/saveCancelCheckDetlExecData",
params,
new HttpCallBack() {
@Override
public void onBefore(Request request) {
}
@Override
public void requestSuccess(Object result) {
JSONObject json = JSON.parseObject(result.toString());//object转为jsonObject
if (json.getString("message").equals("success")){
ToastUtil.showToast(SeeAbnormalActivity.this, "数据上传成功");
//上传成功后跳转到该巡检点的已受理详情页面
Intent intent = new Intent();
intent.setClass(SeeAbnormalActivity.this, RepairActivity.class);
intent.putExtra("checkMasId", checkMasId);//intent传参 巡检点主表
intent.putExtra("positionName",positionName);//A生产线
intent.putExtra("craftName",craftName);//预处理工段
intent.putExtra("checkPointName",checkPointName);//切断线
intent.putExtra("checkUserName",checkUserName);//张老四
intent.putExtra("businessTime",businessTime);//时间
startActivity(intent);
finish();
}
}
@Override
public void authFailure() {
ToastUtil.showToast(SeeAbnormalActivity.this,"身份认证失败,请重新登录!");
}
@Override
public void requestError(String msg) {
ToastUtil.showToast(SeeAbnormalActivity.this,msg);
}
@Override
public void requestFailure(Request request, IOException e) {
if (e.getMessage().equals("timeout")){
ToastUtil.showToast(SeeAbnormalActivity.this,"请求超时,请检查网络");
}
else{
ToastUtil.showToast(SeeAbnormalActivity.this,"请求失败,请检查网络配置");
}
}
@Override
public void onAfter() {}
}
);
}
catch (Exception e) {
e.printStackTrace();
}
}
else {
try {
List<Parameter> params = new ArrayList<>();
params.add(new Parameter("checkMasId", checkMasId));
SyncHttp syncHttp = new SyncHttp(this);
syncHttp.httpPost(
AppConfig.getServerUrl() + "/bs/equCheckMas/changeAcceptanceState",
params,
new HttpCallBack() {
@Override
public void onBefore(Request request) {
}
@Override
public void requestSuccess(Object result) {
JSONObject json = JSON.parseObject(result.toString());//object转为jsonObject
if (json.getString("message").equals("success")){
ToastUtil.showToast(SeeAbnormalActivity.this, "数据上传成功");
//上传成功后跳转到该巡检点的已受理详情页面
Intent intent = new Intent();
intent.setClass(SeeAbnormalActivity.this, RepairActivity.class);
intent.putExtra("checkMasId", checkMasId);//intent传参 巡检点主表
intent.putExtra("positionName",positionName);//A生产线
intent.putExtra("craftName",craftName);//预处理工段
intent.putExtra("checkPointName",checkPointName);//切断线
intent.putExtra("checkUserName",checkUserName);//张老四
intent.putExtra("businessTime",businessTime);//时间
startActivity(intent);
finish();
}
}
@Override
public void authFailure() {
ToastUtil.showToast(SeeAbnormalActivity.this,"身份认证失败,请重新登录!");
}
@Override
public void requestError(String msg) {
ToastUtil.showToast(SeeAbnormalActivity.this,msg);
}
@Override
public void requestFailure(Request request, IOException e) {
ToastUtil.showToast(SeeAbnormalActivity.this,"请求超时,请检查网络");
}
@Override
public void onAfter() {
}
}
);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
//接口2 recycler
private void getAbnormal(boolean isRefresh) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//版本号高于6.0做以下操作; getAsynBackStringWithParms是ConfirmActivity出库接口
try {
HashMap<String,String> params = new HashMap<>();
params.put("checkMasId", checkMasId);
OkHTTPManger.getInstance(this).getAsynBackStringWithParms(//getAsynBackStringWithParms
AppConfig.getServerUrl() + "/bs/equCheckMas/getExecMsgByCheckMasId",
//"https://www.fastmock.site/mock/479a7fc04032cda80186024fb56cf70f/bs/equCheckMas/getExecMsgByCheckMasId",
params,
new HttpCallBack() {
@Override
public void onBefore(Request request) {
}
@Override
public void requestSuccess(Object result) {
JSONArray resultJsonArray = JSON.parseObject(result.toString()).getJSONArray("result");//巡检点
if (resultJsonArray.size() > 0){
setDataToView(resultJsonArray,isRefresh);
see_no_data.setVisibility(View.GONE);
}else {
see_no_data.setVisibility(View.VISIBLE);
}
}
@Override
public void authFailure() {
ToastUtil.showToast(SeeAbnormalActivity.this,"身份认证失败,请重新登录!");
}
@Override
public void requestError(String msg) {
ToastUtil.showToast(SeeAbnormalActivity.this,msg);
}
@Override
public void requestFailure(Request request, IOException e) {
if (e.getMessage().equals("timeout")){
ToastUtil.showToast(SeeAbnormalActivity.this,"请求超时,请检查网络");
}
else{
ToastUtil.showToast(SeeAbnormalActivity.this,"请求失败,请检查网络配置");
}
}
@Override
public void onAfter() {
}
}
);
}
catch (Exception e) {
e.printStackTrace();
}
}
else {
try {
HashMap<String,String> params = new HashMap<>();
params.put("checkMasId", checkMasId);
SyncHttp syncHttp = new SyncHttp(this);
syncHttp.httpGet(
AppConfig.getServerUrl() + "/bs/equCheckMas/getExecMsgByCheckMasId",
//"https://www.fastmock.site/mock/479a7fc04032cda80186024fb56cf70f/bs/equCheckMas/getExecMsgByCheckMasId",
params,
new HttpCallBack() {
@Override
public void onBefore(Request request) {
}
@Override
public void requestSuccess(Object result) {
JSONArray resultJsonArray = JSON.parseObject(result.toString()).getJSONArray("result");//巡检点
if (resultJsonArray.size() > 0){
setDataToView(resultJsonArray,isRefresh);
see_no_data.setVisibility(View.GONE);
}else {
see_no_data.setVisibility(View.VISIBLE);
}
}
@Override
public void authFailure() {
ToastUtil.showToast(SeeAbnormalActivity.this,"身份认证失败,请重新登录!");
}
@Override
public void requestError(String msg) {
ToastUtil.showToast(SeeAbnormalActivity.this,msg);
}
@Override
public void requestFailure(Request request, IOException e) {
ToastUtil.showToast(SeeAbnormalActivity.this,"请求超时,请检查网络");
}
@Override
public void onAfter() {
}
}
);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
//对接口2的数据处理
private void setDataToView(JSONArray data,boolean isRefresh) {
if (isRefresh)seeAbnormalList.clear();
data.size();
for (int i = 0; i < data.size(); i++) {//外层数组
JSONObject m = data.getJSONObject(i);
String pictureUrl = m.getString("pictureUrl");
String businessTime = m.getString("businessTime");
String checkDetlId = m.getString("checkDetlId");
String equipmentCd = m.getString("equipmentCd");
String equipmentName = m.getString("equipmentName");
//checkDetlConInfo 内层数组
JSONArray typeJsonArrsy = JSON.parseObject(m.toString()).getJSONArray("checkDetlConInfo");
for(int j = 0; j < typeJsonArrsy.size();j++){
JSONObject n = typeJsonArrsy.getJSONObject(j);
String checkDetlConId = n.getString("checkDetlConId");
String contentCd = n.getString("contentCd");
String contentName = n.getString("contentName");
String exceCd = n.getString("exceCd");
String exceName = n.getString("exceName");
String levelCd = n.getString("levelCd");
String levelName = n.getString("levelName");
String remarks = n.getString("remarks");
//对SeeAbnormalBean.CheckDetlConInfoBean传入数据
SeeAbnormalBean.CheckDetlConInfoBean checkDetlConInfoBean = new SeeAbnormalBean.CheckDetlConInfoBean();
checkDetlConInfoBean.setCheckDetlConId(checkDetlConId);
checkDetlConInfoBean.setContentCd(contentCd);
checkDetlConInfoBean.setContentName(contentName);
checkDetlConInfoBean.setExceCd(exceCd);
checkDetlConInfoBean.setExceName(exceName);
checkDetlConInfoBean.setLevelCd(levelCd);
checkDetlConInfoBean.setLevelName(levelName);
checkDetlConInfoBean.setRemarks(remarks);
//在for循环里,为list赋值
seeTypeList.add(checkDetlConInfoBean);
}
//对SeeAbnormalBean传入数据
SeeAbnormalBean seeAbnormalBean = new SeeAbnormalBean();
seeAbnormalBean.setBusinessTime(businessTime);
seeAbnormalBean.setPictureUrl(pictureUrl);
//checkDetlConInfo 内层数组
seeAbnormalBean.setCheckDetlConInfo(seeTypeList);
seeAbnormalBean.setCheckDetlId(checkDetlId);
seeAbnormalBean.setEquipmentCd(equipmentCd);
seeAbnormalBean.setEquipmentName(equipmentName);
//在for循环里,为list赋值
seeAbnormalList.add(seeAbnormalBean);
}
//item绑定数据
seeAbnormalAdapter = new SeeAbnormalAdapter(seeAbnormalList,SeeAbnormalActivity.this);
see_info_rv.setAdapter(seeAbnormalAdapter);
setItemClick();//点击item里的照片 弹出大图模式
seeAbnormalAdapter.notifyDataSetChanged();
see_refreshLayout.finishRefresh();
see_refreshLayout.finishLoadMore();
}
//点击item里的照片 弹出大图模式
private void setItemClick() {
seeAbnormalAdapter.setOnItemClickListener(new SeeAbnormalAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
String itemUrl =seeAbnormalList.get(position).getPictureUrl();
ArrayList<String> imgs = new ArrayList<>();
imgs.add(itemUrl);
Intent intent = new Intent(SeeAbnormalActivity.this, PhotoActivity.class);
intent.putExtra(PhotoActivity.IMG_LIST_FLAG, imgs);
intent.putExtra(PhotoActivity.IMG_LIST_POSITION_FLAG, position);
startActivity(intent);
}
});
}
}
2.AbnormalFragment.java
public class AbnormalFragment extends Fragment {//异常信息
@Bind(R.id.fragment_abnormal_no_data)
RelativeLayout abnormal_no_data;
@Bind(R.id.fragment_abnormal_refreshLayout)
RefreshLayout abnormal_refreshLayout;//上拉加载下拉刷新
@Bind(R.id.fragment_abnormal_rv)
RecyclerView abnormal_rv;
private AbnormalAdapter abnormalAdapter;
private ArrayList<AbnormalBean> abnormalList=new ArrayList<>();
private RecyclerView.LayoutManager abnormalManager;
private View abnormalView;
private boolean isFirstLoading;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState){
abnormalView=inflater.inflate(R.layout.fragment_abnormal,container,false);
ButterKnife.bind(this,abnormalView);
//是否第一次加载
isFirstLoading = true;
return abnormalView;
}
@Override
public void onResume() {
super.onResume();
if (!isFirstLoading) {
//如果不是第一次加载,刷新数据
AbnormalRecycler(true);
}
isFirstLoading = false;
}
/*
* onViewCreated是fragment的生命周期方法
* */
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initView();
initData();
}
private void initView() {
abnormal_no_data.setVisibility(View.VISIBLE);
abnormalManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
abnormal_rv.setLayoutManager(abnormalManager);
abnormal_rv.setItemAnimator(new DefaultItemAnimator());//recycler的自定义动画实现
}
private void initData() {
//上拉加载下拉更新
abnormal_refreshLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
AbnormalRecycler(true);//异常信息
}
});
abnormal_refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
AbnormalRecycler(false);
}
});
abnormal_refreshLayout.autoRefresh();//自动刷新
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
@Override
public void onDestroy() {
super.onDestroy();
ButterKnife.unbind(this);//关闭View
}
//接口1 异常recycler信息
//isRefresh 是否是刷新
private void AbnormalRecycler(boolean isRefresh) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
abnormalList = new ArrayList<AbnormalBean>();
OkHTTPManger.getInstance(getActivity()).getAsynBackStringWithoutParms(
AppConfig.getServerUrl() + "/bs/equCheckMas/getExecMsgOfEquipmentMaintenance",
//"https://www.fastmock.site/mock/479a7fc04032cda80186024fb56cf70f/bs/equCheckMas/getExecMsgOfEquipmentMaintenance",
new HttpCallBack() {
@Override
public void onBefore(Request request) {
}
@Override
public void requestSuccess(Object result) {
JSONArray resultJson = JSON.parseObject(result.toString()).getJSONArray("result");//result下面是个数组,再for循环一次
// if (resultJson.size()>0&&resultJson!=null){
setDataToView(resultJson,isRefresh);
// abnormal_no_data.setVisibility(View.GONE);
// }else {
// abnormal_no_data.setVisibility(View.VISIBLE);
// }
}
@Override
public void authFailure() {
ToastUtil.showToast(getActivity(),"身份认证失败,请重新登录!");
}
@Override
public void requestError(String msg) {
ToastUtil.showToast(getActivity(),msg);
}
@Override
public void requestFailure(Request request, IOException e) {
if (e.getMessage().equals("timeout")){
ToastUtil.showToast(getActivity(),"请求超时,请检查网络");
}
else{
ToastUtil.showToast(getActivity(),"请求失败,请检查网络配置");
}
}
@Override
public void onAfter() {
}
}
);
}
catch (Exception e) {
e.printStackTrace();
}
}
else {
try {
abnormalList = new ArrayList<AbnormalBean>();
SyncHttp syncHttp = new SyncHttp(getActivity());
syncHttp.httpGet(
AppConfig.getServerUrl() + "/bs/equCheckMas/getExecMsgOfEquipmentMaintenance",
//"https://www.fastmock.site/mock/479a7fc04032cda80186024fb56cf70f/bs/equCheckMas/getExecMsgOfEquipmentMaintenance",
new HashMap<String, String>(),
new HttpCallBack() {
@Override
public void onBefore(Request request) {
}
@Override
public void requestSuccess(Object result) {
JSONArray resultJson = JSON.parseObject(result.toString()).getJSONArray("result");//result下面是个数组,再for循环一次
// if (resultJson.size() > 0){
setDataToView(resultJson,isRefresh);
// abnormal_no_data.setVisibility(View.GONE);
// }else {
// abnormal_no_data.setVisibility(View.VISIBLE);
// }
}
@Override
public void authFailure() {
ToastUtil.showToast(getActivity(),"身份认证失败,请重新登录!");
}
@Override
public void requestError(String msg) {
ToastUtil.showToast(getActivity(),msg);
}
@Override
public void requestFailure(Request request, IOException e) {
ToastUtil.showToast(getActivity(),"请求超时,请检查网络");
}
@Override
public void onAfter() {
}
}
);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
//对接口1的数据处理
private void setDataToView(JSONArray data,boolean isRefresh) {
if (isRefresh)abnormalList.clear();
data.size();
for (int i = 0; i < data.size(); i++) {
JSONObject m = data.getJSONObject(i);
//状态、巡检点、id
String checkPointId = m.getString("checkPointId");
String craftName = m.getString("craftName");
String checkMasId = m.getString("checkMasId");
String checkPointCd = m.getString("checkPointCd");
String checkUserId = m.getString("checkUserId");
String businessTime = m.getString("businessTime");
String positionName = m.getString("positionName");
String execState = m.getString("execState");
String checkUserName = m.getString("checkUserName");
String craftCd = m.getString("craftCd");
String checkPointName = m.getString("checkPointName");
String positionCd = m.getString("positionCd");
String checkPointDesc = m.getString("checkPointDesc");
//对RouteBean传入数据
AbnormalBean abnormalBean = new AbnormalBean();
abnormalBean.setCheckPointId(checkPointId);
abnormalBean.setCraftName(craftName);
abnormalBean.setCheckMasId(checkMasId);
abnormalBean.setCheckPointCd(checkPointCd);
abnormalBean.setCheckUserId(checkUserId);
abnormalBean.setBusinessTime(businessTime);
abnormalBean.setPositionName(positionName);
abnormalBean.setExecState(execState);
abnormalBean.setCheckUserName(checkUserName);
abnormalBean.setCraftCd(craftCd);
abnormalBean.setCheckPointName(checkPointName);
abnormalBean.setPositionCd(positionCd);
abnormalBean.setCheckPointDesc(checkPointDesc);
//在for循环里,为list赋值
abnormalList.add(abnormalBean);
}
//item绑定数据
abnormalAdapter = new AbnormalAdapter(abnormalList,getActivity());
abnormal_rv.setAdapter(abnormalAdapter);
abnormalAdapter.notifyDataSetChanged();
abnormal_refreshLayout.finishRefresh();
abnormal_refreshLayout.finishLoadMore();
abnormal_no_data.setVisibility(abnormalList.size()>0?View.GONE:View.VISIBLE);
//exectState为1 点击跳转
setItemClick();
}
//item的监听
private void setItemClick() {
abnormalAdapter.setOnItemClickListener(new AbnormalAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position, String checkMasId, String execState) {
if (execState.equals("1")) {
Intent intent = new Intent();
intent.setClass(getActivity(), SeeAbnormalActivity.class);
intent.putExtra("checkMasId", checkMasId);//intent传参 主表Id
intent.putExtra("positionName",abnormalList.get(position).getPositionName());//A生产线
intent.putExtra("craftName",abnormalList.get(position).getCraftName());//预处理工段
intent.putExtra("checkPointName",abnormalList.get(position).getCheckPointName());//切断线
intent.putExtra("checkUserName",abnormalList.get(position).getCheckUserName());//张老四
intent.putExtra("businessTime",abnormalList.get(position).getBusinessTime());//时间
startActivity(intent);
}
}
});
}
}
3.RepairActivity.java
public class RepairActivity extends AppCompatActivity {
@Bind(R.id.activity_repair_header_ll)
LinearLayout repair_header_ll;
@Bind(R.id.activity_repair_back_iv)
ImageView repair_back_iv;
@Bind(R.id.activity_repair_route_tv)
TextView repair_route_tv;
@Bind(R.id.activity_repair_position_tv2)
TextView repair_position_tv2;
@Bind(R.id.activity_repair_route_point_tv3)
TextView repair_route_point_tv3;
@Bind(R.id.activity_repair_people_tv4)
TextView repair_people_tv4;
@Bind(R.id.activity_repair_day_tv5)
TextView repair_day_tv5;
@Bind(R.id.repair_no_data)
RelativeLayout repair_no_data;
@Bind(R.id.activity_repair_refreshLayout)
RefreshLayout repair_refreshLayout;
@Bind(R.id.activity_repair_info_rv)
RecyclerView repair_info_rv;
String checkMasId,//从fragment跳转过来的 从SeeActivity跳转过来的 得到的主表id
positionName,craftName,checkPointName,checkUserName,businessTime;
private ArrayList<RepairBean> repairList=new ArrayList<>();//整个数组
private RecyclerView.LayoutManager repairManager;
private RepairAdapter repairAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_repair);
ButterKnife.bind(this);
initView();
initData();
}
@Override
protected void onStart() {
super.onStart();
getRepair(true);//初始化接口5数据
}
@Override
protected void onDestroy() {
super.onDestroy();
ButterKnife.unbind(this);//关闭View
}
private void initData() {
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
checkMasId = (String) bundle.getSerializable("checkMasId");//从fragment跳转过来的 从SeeActivity跳转过来的
positionName = (String) bundle.getSerializable("positionName");
craftName = (String) bundle.getSerializable("craftName");
checkPointName = (String) bundle.getSerializable("checkPointName");
checkUserName = (String) bundle.getSerializable("checkUserName");
businessTime = (String) bundle.getSerializable("businessTime");
//界面上半部分赋值
repair_route_tv.setText(positionName);//A生产线
repair_position_tv2.setText(craftName);//预处理工段
repair_route_point_tv3.setText(checkPointName);//切断线
repair_people_tv4.setText(checkUserName);//张老四
repair_day_tv5.setText(businessTime);//时间
//上拉加载下拉更新
repair_refreshLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
getRepair(true);//检修信息
}
});
repair_refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
getRepair(false);
}
});
repair_refreshLayout.autoRefresh();//自动刷新
}
private void initView() {//通知栏白色,第一个linearlayout下移
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
StatusBarSetting.setStatusBarFullTransparent(this, true);
int statusBarHeight = StatusBarSetting.getStatusBarHeight(this);
repair_header_ll.setPadding(0,statusBarHeight + 20,0,0);
}
else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
StatusBarSetting.setStatusBarHalfTransparent(this);
int statusBarHeight = StatusBarSetting.getStatusBarHeight(this);
repair_header_ll.setPadding(0,statusBarHeight,0,0);
}
repair_no_data.setVisibility(View.VISIBLE);
repairManager = new LinearLayoutManager(RepairActivity.this, LinearLayoutManager.VERTICAL, false);
repair_info_rv.setLayoutManager(repairManager);
repair_info_rv.setItemAnimator(new DefaultItemAnimator());//recycler的自定义动画实现
}
@OnClick({R.id.activity_repair_back_iv})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.activity_repair_back_iv:
finish();
break;
}
}
//接口5 recycler
private void getRepair(boolean isRefresh) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//版本号高于6.0做以下操作; getAsynBackStringWithParms是ConfirmActivity出库接口
try {
HashMap<String,String> params = new HashMap<>();
params.put("checkMasId", checkMasId);
OkHTTPManger.getInstance(this).getAsynBackStringWithParms(//getAsynBackStringWithParms
AppConfig.getServerUrl() + "/bs/equCheckMas/getAcceptanceDetlByCheckMasId",
params,
new HttpCallBack() {
@Override
public void onBefore(Request request) {
}
@Override
public void requestSuccess(Object result) {
JSONArray resultJsonArray = JSON.parseObject(result.toString()).getJSONArray("result");//巡检点
setDataToView(resultJsonArray,isRefresh);
}
@Override
public void authFailure() {
ToastUtil.showToast(RepairActivity.this,"身份认证失败,请重新登录!");
}
@Override
public void requestError(String msg) {
ToastUtil.showToast(RepairActivity.this,msg);
}
@Override
public void requestFailure(Request request, IOException e) {
if (e.getMessage().equals("timeout")){
ToastUtil.showToast(RepairActivity.this,"请求超时,请检查网络");
}
else{
ToastUtil.showToast(RepairActivity.this,"请求失败,请检查网络配置");
}
}
@Override
public void onAfter() {
}
}
);
}
catch (Exception e) {
e.printStackTrace();
}
}
else {
try {
HashMap<String,String> params = new HashMap<>();
params.put("checkMasId", checkMasId);
SyncHttp syncHttp = new SyncHttp(this);
syncHttp.httpGet(
AppConfig.getServerUrl() + "/bs/equCheckMas/getAcceptanceDetlByCheckMasId",
params,
new HttpCallBack() {
@Override
public void onBefore(Request request) {
}
@Override
public void requestSuccess(Object result) {
JSONArray resultJsonArray = JSON.parseObject(result.toString()).getJSONArray("result");//巡检点
if (resultJsonArray.size() > 0){
setDataToView(resultJsonArray,isRefresh);
repair_no_data.setVisibility(View.GONE);
}else {
repair_no_data.setVisibility(View.VISIBLE);
}
}
@Override
public void authFailure() {
ToastUtil.showToast(RepairActivity.this,"身份认证失败,请重新登录!");
}
@Override
public void requestError(String msg) {
ToastUtil.showToast(RepairActivity.this,msg);
}
@Override
public void requestFailure(Request request, IOException e) {
ToastUtil.showToast(RepairActivity.this,"请求超时,请检查网络");
}
@Override
public void onAfter() {
}
}
);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
//对接口5数据的处理
private void setDataToView(JSONArray data, boolean isRefresh) {
if (isRefresh)repairList.clear();
data.size();
for (int i = 0; i < data.size(); i++){
JSONObject m = data.getJSONObject(i);
String checkMasId = m.getString("checkMasId");
String mendDetlId = m.getString("mendDetlId");
String pictureUrl = m.getString("pictureUrl");
String checkDetlId = m.getString("checkDetlId");
String equipmentName = m.getString("equipmentName");
String equipmentCd = m.getString("equipmentCd");
String businessTime = m.getString("businessTime");
String checkMendId = m.getString("checkMendId");//checkMendId
String execState = m.getString("execState");
//对RepairBean传入数据
RepairBean repairBean = new RepairBean();
repairBean.setCheckMasId(checkMasId);
repairBean.setMendDetlId(mendDetlId);
repairBean.setPictureUrl(pictureUrl);
repairBean.setCheckDetlId(checkDetlId);
repairBean.setEquipmentName(equipmentName);
repairBean.setEquipmentCd(equipmentCd);
repairBean.setBusinessTime(businessTime);
repairBean.setCheckMendId(checkMendId);
repairBean.setExecState(execState);
//在for循环里,为list赋值
repairList.add(repairBean);
}
//item绑定数据
repairAdapter = new RepairAdapter(repairList,RepairActivity.this);
setItemClick();
repair_info_rv.setAdapter(repairAdapter);
repairAdapter.notifyDataSetChanged();
repair_refreshLayout.finishRefresh();
repair_refreshLayout.finishLoadMore();
}
//点击item里的检修情况说明按钮 弹出edit对话框
private void setItemClick() {
repairAdapter.setOnItemClickListener1(new SeeAbnormalAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
if (view.getId() == R.id.item_repair_complete_ll) {
//这里写上传
new XPopup.Builder(RepairActivity.this)
.asConfirm(
"提示",
"是否处理完成?",
new OnConfirmListener() {
@Override
public void onConfirm() {
//接口6
saveRepairInfo(position);
}
}
)
.show();
}
if (view.getId() == R.id.repair_situation_ll) {
//打印adaptr里的内容
new XPopup.Builder(RepairActivity.this)
.autoOpenSoftInput(true)//唤起键盘
.isRequestFocus(false)
.asInputConfirm("检修情况说明", "请输入检修情况", repairList.get(position).getRemarks(), "检修情况可更改!",
new OnInputConfirmListener() {
@Override
public void onConfirm(String text) {
if (text.length() > 0 && text != null) {
repairList.get(position).setRemarks(text);
repairAdapter.notifyDataSetChanged();
//上传取消原因接口函数
ToastUtil.showToast(RepairActivity.this, "检修情况说明保存成功");
} else {
ToastUtil.showToast(RepairActivity.this, "检修情况说明不能为空");
}
}
})
.show();
}
}
});
}
//接口6 上传检修情况说明和id数据
private void saveRepairInfo(int position) {
JSONObject paramJson = new JSONObject();
paramJson.put("checkMasId", checkMasId);
paramJson.put("checkMendId",repairList.get(position).getCheckMendId());
paramJson.put("mendDetlId",repairList.get(position).getMendDetlId());
paramJson.put("remarks",repairList.get(position).getRemarks());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
HashMap<String,String> params = new HashMap<>();
params.put("paramJson", paramJson.toJSONString());
OkHTTPManger.getInstance(this).postAsynByMap(
AppConfig.getServerUrl() + "/bs/equCheckMas/changeProcessStateByIds",
params,
new HttpCallBack() {
@Override
public void onBefore(Request request) {
}
@Override
public void requestSuccess(Object result) {
JSONObject json = JSON.parseObject(result.toString());//object转为jsonObject
if (json.getString("message").equals("success")){
ToastUtil.showToast(RepairActivity.this, "数据上传成功");
//上传成功后刷新recycler
getRepair(true);
repairAdapter.notifyDataSetChanged();
}
}
@Override
public void authFailure() {
ToastUtil.showToast(RepairActivity.this,"身份认证失败,请重新登录!");
}
@Override
public void requestError(String msg) {
ToastUtil.showToast(RepairActivity.this,msg);
}
@Override
public void requestFailure(Request request, IOException e) {
if (e.getMessage().equals("timeout")){
ToastUtil.showToast(RepairActivity.this,"请求超时,请检查网络");
}
else{
ToastUtil.showToast(RepairActivity.this,"请求失败,请检查网络配置");
}
}
@Override
public void onAfter() {}
}
);
}
catch (Exception e) {
e.printStackTrace();
}
}
else {
try {
List<Parameter> params = new ArrayList<>();
params.add(new Parameter("paramJson", paramJson.toJSONString()));
SyncHttp syncHttp = new SyncHttp(this);
syncHttp.httpPost(
AppConfig.getServerUrl() + "/bs/equCheckMas/changeProcessStateByIds",
params,
new HttpCallBack() {
@Override
public void onBefore(Request request) {
}
@Override
public void requestSuccess(Object result) {
JSONObject json = JSON.parseObject(result.toString());//object转为jsonObject
if (json.getString("message").equals("success")){
ToastUtil.showToast(RepairActivity.this, "数据上传成功");
//上传成功后刷新recycler
getRepair(true);
repairAdapter.notifyDataSetChanged();
}
}
@Override
public void authFailure() {
ToastUtil.showToast(RepairActivity.this,"身份认证失败,请重新登录!");
}
@Override
public void requestError(String msg) {
ToastUtil.showToast(RepairActivity.this,msg);
}
@Override
public void requestFailure(Request request, IOException e) {
ToastUtil.showToast(RepairActivity.this,"请求超时,请检查网络");
}
@Override
public void onAfter() {
}
}
);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
}
4.功能实现说明
(1)seeAbnormalActivity只有一条数据 下拉刷新上拉加载会加载重复数据 但刷新功能fresh需要
(2)fragment的nodata挪位置,开始在onResume的初始化里
挪到数据绑定adapter里,这样数据没有,adapter显示nodata
(3) 受理详情页 受理成功一条 item不显示 位置显示空白 在检修完成按钮上传成功后 repairList.remove(当前位置的数据)