diff --git a/app/build.gradle b/app/build.gradle index b82f14a..4b5a224 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -52,15 +52,15 @@ task fileCheckTask() { //此方法执行以后会删除所有的version.sql文件,不能主动添加sql语句 //如果已经定义、实现的注解不能满足更新要求,请自己添加sql语句,并且将下面删除文件的语句注释 //注意 注释以后不要打开(写这个task是为了试验) - doLast { - File file = new File(rootDir.getAbsolutePath() + "\\app\\src\\main\\assets\\migrations") - File[] files = file.listFiles() - for (int i = 0; i < files.length; i++) { - File file1 = files[i] - println("delete : "+file1.getAbsolutePath()) - file1.delete() - } - } +// doLast { +// File file = new File(rootDir.getAbsolutePath() + "\\app\\src\\main\\assets\\migrations") +// File[] files = file.listFiles() +// for (int i = 0; i < files.length; i++) { +// File file1 = files[i] +// println("delete : "+file1.getAbsolutePath()) +// file1.delete() +// } +// } } afterEvaluate { @@ -80,6 +80,7 @@ greendao { schemaVersion 1//数据库版本升级 } dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.0.2' diff --git a/app/libs/processor.jar b/app/libs/processor.jar index df31023..7febf4b 100644 Binary files a/app/libs/processor.jar and b/app/libs/processor.jar differ diff --git a/app/src/main/java/com/shunzhi/parent/adapter/DeyuDetialAdapter.java b/app/src/main/java/com/shunzhi/parent/adapter/DeyuDetialAdapter.java index 1090e93..4e92a00 100644 --- a/app/src/main/java/com/shunzhi/parent/adapter/DeyuDetialAdapter.java +++ b/app/src/main/java/com/shunzhi/parent/adapter/DeyuDetialAdapter.java @@ -1,10 +1,10 @@ package com.shunzhi.parent.adapter; import android.content.Context; -import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.TextView; import com.share.mvpsdk.base.adapter.BaseRecyclerViewAdapter; import com.share.mvpsdk.base.adapter.BaseRecyclerViewHolder; @@ -32,21 +32,65 @@ public class DeyuDetialAdapter extends BaseRecyclerViewAdapter { private class DeyuDetialViewHolder extends BaseRecyclerViewHolder { + TextView txt_name,jidian,paiming,pingjia; public DeyuDetialViewHolder(View itemView) { super(itemView); + txt_name=itemView.findViewById(R.id.txt_name); + jidian=itemView.findViewById(R.id.jidian); + paiming=itemView.findViewById(R.id.paiming); + pingjia=itemView.findViewById(R.id.pingjia); } @Override public void onBindViewHolder(final DeyuDetialBean object, int position) { + txt_name.setText(object.getSceneName()); + jidian.setText("绩点:"+String.format("%.1f", object.getPointScore())+" "+object.getRisePoint()); + String pStr=getPaiming(object.getRanking()); + paiming.setText("排名:"+pStr+" "+object.getRiseRanking()); + + itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - mContext.startActivity(new Intent().setClass(mContext, ReportSceneActivity.class)); + ReportSceneActivity.getInstance(mContext,object.getSceneId()); } }); } } + + public String getPaiming(float ranking) { + String s=String.valueOf((int)ranking); + + return "第"+toChinese(s)+"名"; + } + + + public String toChinese(String string) { + String[] s1 = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" }; + String[] s2 = { "十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千" }; + + String result = ""; + + int n = string.length(); + for (int i = 0; i < n; i++) { + + int num = string.charAt(i) - '0'; + + if (i != n - 1 && num != 0) { + result += s1[num] + s2[n - 2 - i]; + } else { + result += s1[num]; + } + System.out.println(" "+result); + } + + System.out.println("----------------"); + System.out.println(result); + return result; + + } + } diff --git a/app/src/main/java/com/shunzhi/parent/api/ReportApi.java b/app/src/main/java/com/shunzhi/parent/api/ReportApi.java index 7ed2cf7..c2163df 100644 --- a/app/src/main/java/com/shunzhi/parent/api/ReportApi.java +++ b/app/src/main/java/com/shunzhi/parent/api/ReportApi.java @@ -23,11 +23,11 @@ public interface ReportApi { @FormUrlEncoded - @POST("api/EvaluationStatistics/GetStatisticalAnalysis") + @POST("/api/EvaluationLabel/GetStatisticalAnalysis") Observable getReportDetial(@Field("screenId") int screenId, - @Field("ObjectId") String ObjectId, - @Field("SchoolId") int SchoolId, - @Field("ObjectType") int ObjectType, + @Field("schoolId") int SchoolId, +// @Field("ObjectType") int ObjectType, + @Field("classId")String classId, @Field("startDate") String startDate, @Field("endDate") String endDate); } diff --git a/app/src/main/java/com/shunzhi/parent/bean/report/DeyuDetialBean.java b/app/src/main/java/com/shunzhi/parent/bean/report/DeyuDetialBean.java index 7537ccc..0f7971f 100644 --- a/app/src/main/java/com/shunzhi/parent/bean/report/DeyuDetialBean.java +++ b/app/src/main/java/com/shunzhi/parent/bean/report/DeyuDetialBean.java @@ -5,4 +5,77 @@ package com.shunzhi.parent.bean.report; */ public class DeyuDetialBean { + float pointScore; + String risePoint; + float ranking; + String riseRanking; + String evaluationGrade; + int sceneId; + String sceneName; + + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public float getPointScore() { + return pointScore; + } + + public void setPointScore(float pointScore) { + this.pointScore = pointScore; + } + + public String getRisePoint() { + return risePoint; + } + + public void setRisePoint(String risePoint) { + this.risePoint = risePoint; + } + + public float getRanking() { + return ranking; + } + + public void setRanking(float ranking) { + this.ranking = ranking; + } + + public String getRiseRanking() { + return riseRanking; + } + + public void setRiseRanking(String riseRanking) { + this.riseRanking = riseRanking; + } + + public String getEvaluationGrade() { + return evaluationGrade; + } + + public void setEvaluationGrade(String evaluationGrade) { + this.evaluationGrade = evaluationGrade; + } + + public int getSceneId() { + return sceneId; + } + + public void setSceneId(int sceneId) { + this.sceneId = sceneId; + } } + +//score":0.0, +// "pointScore":2.6624999046325684, +// "risePoint":"同期保持一致", +// "ranking":1.0, +// "riseRanking":"与同期保持一致", +// "evaluationGrade":"E", +// "sceneId":10, +// "sceneName":"好人好事" \ No newline at end of file diff --git a/app/src/main/java/com/shunzhi/parent/contract/report/ReportDetialContract.java b/app/src/main/java/com/shunzhi/parent/contract/report/ReportDetialContract.java index 50112c2..78cb14d 100644 --- a/app/src/main/java/com/shunzhi/parent/contract/report/ReportDetialContract.java +++ b/app/src/main/java/com/shunzhi/parent/contract/report/ReportDetialContract.java @@ -16,14 +16,14 @@ import io.reactivex.Observable; public interface ReportDetialContract { abstract class ReportDetialPresenter extends BasePresenter{ - public abstract void reportDetialResult(int screenId,String objectId,int schoolId,int objectType,String startDate,String endDate); + public abstract void reportDetialResult(int screenId,int schoolId,String classId,int objectType,String startDate,String endDate); } interface IReportDetialModel extends IBaseModel { - Observable getReportDetialResult(int screenId, String objectId, int schoolId, int objectType, String startDate, String endDate); + Observable getReportDetialResult(int screenId, int schoolId,String classId,int objectType, String startDate, String endDate); } interface IReportDetialView extends IBaseView { void showDetialList(List list); - void showDetialInfo(String rank, String scoree, String bijiao1,String bijiao2,String bijiao3,String bijiao4,String describe); + void showDetialInfo(float rank, String scoree, String bijiao1,String bijiao2,String bijiao3,String bijiao4,String describe); } } diff --git a/app/src/main/java/com/shunzhi/parent/model/report/ReportDetialModel.java b/app/src/main/java/com/shunzhi/parent/model/report/ReportDetialModel.java index effae0a..559e78f 100644 --- a/app/src/main/java/com/shunzhi/parent/model/report/ReportDetialModel.java +++ b/app/src/main/java/com/shunzhi/parent/model/report/ReportDetialModel.java @@ -20,8 +20,7 @@ public class ReportDetialModel implements ReportDetialContract.IReportDetialMod } @Override - public Observable getReportDetialResult(int screenId, String objectId, int schoolId, int objectType, String startDate, String endDate) { - return RetrofitCreateHelper.getInstance().createApi(ReportApi.class, AppConfig.BASE_URL).getReportDetial(screenId,objectId,schoolId,objectType - ,startDate,endDate).compose(RxHelper.rxSchedulerHelper()); + public Observable getReportDetialResult(int screenId, int schoolId,String classId, int objectType, String startDate, String endDate) { + return RetrofitCreateHelper.getInstance().createApi(ReportApi.class, AppConfig.BASE_URL).getReportDetial(screenId,schoolId,classId,startDate,endDate).compose(RxHelper.rxSchedulerHelper()); } } diff --git a/app/src/main/java/com/shunzhi/parent/presenter/report/ReportDetialPresenter.java b/app/src/main/java/com/shunzhi/parent/presenter/report/ReportDetialPresenter.java index 4d1e2d5..1b63016 100644 --- a/app/src/main/java/com/shunzhi/parent/presenter/report/ReportDetialPresenter.java +++ b/app/src/main/java/com/shunzhi/parent/presenter/report/ReportDetialPresenter.java @@ -30,14 +30,22 @@ public class ReportDetialPresenter extends ReportDetialContract.ReportDetialPres } @Override - public void reportDetialResult(int screenId, String objectId, int schoolId, int objectType, String startDate, String endDate) { - mRxManager.register(mIModel.getReportDetialResult(screenId, objectId, schoolId, objectType, startDate, endDate).subscribe(new Consumer() { + public void reportDetialResult(int screenId, int schoolId,String classId,int objectType, String startDate, String endDate) { + mRxManager.register(mIModel.getReportDetialResult(screenId, schoolId,classId, objectType, startDate, endDate).subscribe(new Consumer() { @Override public void accept(JsonObject jsonObject) throws Exception { ToastUtils.showToast(jsonObject.toString()); JsonObject data = jsonObject.getAsJsonObject("data"); - JsonArray reportDetialArray = data.getAsJsonArray("result"); + String risePoint=data.get("risePoint").getAsString(); + String pointUpAverage=data.get("pointUpAverage").getAsString(); + float ranking=data.get("ranking").getAsFloat(); + String riseRanking=data.get("riseRanking").getAsString(); + String averageRanking=data.get("averageRanking").getAsString(); + String evaluationDescripe=data.get("evaluationDescripe").getAsString(); + String pscore=String.format("%.1f",data.get("pscore").getAsFloat()); + + JsonArray reportDetialArray = data.getAsJsonArray("sceneStatistics"); Gson g = new Gson(); List list = new ArrayList<>(); Iterator it = reportDetialArray.iterator(); //Iterator处理 @@ -46,7 +54,7 @@ public class ReportDetialPresenter extends ReportDetialContract.ReportDetialPres list.add(bean); //加入list } mIView.showDetialList(list); - mIView.showDetialInfo("","","","","","",""); + mIView.showDetialInfo(ranking,pscore,risePoint,pointUpAverage,riseRanking,averageRanking,evaluationDescripe); } diff --git a/app/src/main/java/com/shunzhi/parent/ui/activity/report/ReportSceneActivity.java b/app/src/main/java/com/shunzhi/parent/ui/activity/report/ReportSceneActivity.java index cdca10d..ca1cab8 100644 --- a/app/src/main/java/com/shunzhi/parent/ui/activity/report/ReportSceneActivity.java +++ b/app/src/main/java/com/shunzhi/parent/ui/activity/report/ReportSceneActivity.java @@ -20,8 +20,9 @@ import com.shunzhi.parent.ui.fragment.report.ReportSceneFragment; */ public class ReportSceneActivity extends BaseMVPCompatActivity implements View.OnClickListener { - public static void getInstance(Context context) { + public static void getInstance(Context context,int screenID) { Intent intent = new Intent(context, ReportSceneActivity.class); + intent.putExtra("screenID",screenID); context.startActivity(intent); } @@ -53,7 +54,9 @@ public class ReportSceneActivity extends BaseMVPCompatActivity implements View.O center_title = findViewById(R.id.center_title); center_title.setText("场景详情"); ivBack.setOnClickListener(this); - + int screenID = getIntent().getIntExtra("screenID",0); + Bundle bundle=new Bundle(); + bundle.putInt("screenID",screenID); fragmentTransaction = getSupportFragmentManager().beginTransaction(); fragmentTransaction.add(R.id.frame_scene, reportSceneFragment) .show(reportSceneFragment).commit(); diff --git a/app/src/main/java/com/shunzhi/parent/ui/fragment/report/ReportDetialFragment.java b/app/src/main/java/com/shunzhi/parent/ui/fragment/report/ReportDetialFragment.java index 49596bc..b5cfc4d 100644 --- a/app/src/main/java/com/shunzhi/parent/ui/fragment/report/ReportDetialFragment.java +++ b/app/src/main/java/com/shunzhi/parent/ui/fragment/report/ReportDetialFragment.java @@ -28,17 +28,20 @@ import java.util.List; * Created by Administrator on 2018/3/28 0028. */ -public class ReportDetialFragment extends BaseMVPCompatFragment -implements ReportDetialContract.IReportDetialView{ +public class ReportDetialFragment extends BaseMVPCompatFragment + implements ReportDetialContract.IReportDetialView { private RecyclerView recycle_deyu; private DeyuDetialAdapter deyuDetialAdapter; - Listlist=new ArrayList<>(); + List deyulist = new ArrayList<>(); - private TextView tv_source,tv_bijiao1,tv_bijiao2,tv_bijiao3,tv_bijiao4,tv_date,tv_ranking,tv_describe; + private TextView tv_source, tv_bijiao1, tv_bijiao2, tv_bijiao3, tv_bijiao4, tv_date, tv_ranking, tv_describe; + private String startDate = "2018-03-08", endDate = "2018-04-08"; + private ChartView chartView; + @NonNull @Override public BasePresenter initPresenter() { @@ -52,8 +55,8 @@ implements ReportDetialContract.IReportDetialView{ @Override public void initUI(View view, @Nullable Bundle savedInstanceState) { - recycle_deyu=view.findViewById(R.id.recycle_deyu); - chartView=view.findViewById(R.id.chartView); + recycle_deyu = view.findViewById(R.id.recycle_deyu); + chartView = view.findViewById(R.id.chartView); tv_source = view.findViewById(R.id.tv_source); tv_bijiao1 = view.findViewById(R.id.tv_bijiao1); tv_bijiao2 = view.findViewById(R.id.tv_bijiao2); @@ -62,34 +65,34 @@ implements ReportDetialContract.IReportDetialView{ tv_date = view.findViewById(R.id.tv_date); tv_ranking = view.findViewById(R.id.tv_ranking); tv_describe = view.findViewById(R.id.tv_describe); - Calendar c=Calendar.getInstance(); - Date date=c.getTime(); - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); - String dateStr=sdf.format(date); + Calendar c = Calendar.getInstance(); + Date date = c.getTime(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String dateStr = sdf.format(date); tv_date.setText(dateStr); recycle_deyu.setLayoutManager(new LinearLayoutManager(getActivity())); - deyuDetialAdapter=new DeyuDetialAdapter(getActivity()); - deyuDetialAdapter.addAll(list); + deyuDetialAdapter = new DeyuDetialAdapter(getActivity()); recycle_deyu.setAdapter(deyuDetialAdapter); initChartViews(); + mPresenter.reportDetialResult(1, 1, "70", 0, startDate, endDate); } private void initChartViews() { - chartView.setColors(R.color.textColor,R.color.huodong_blue,R.color.gray); - List inputDataList=new ArrayList<>(); - List inputDataList1=new ArrayList<>(); + chartView.setColors(R.color.textColor, R.color.huodong_blue, R.color.gray); + List inputDataList = new ArrayList<>(); + List inputDataList1 = new ArrayList<>(); for (int i = 0; i < 7; i++) { - InputData inputData=new InputData("文明",10*i); + InputData inputData = new InputData("文明", 10 * i); inputDataList.add(inputData); } chartView.setChartPaths(inputDataList); for (int i = 0; i < 7; i++) { - InputData inputData=new InputData("文明1",20*i); + InputData inputData = new InputData("文明1", 20 * i); inputDataList1.add(inputData); } @@ -99,17 +102,22 @@ implements ReportDetialContract.IReportDetialView{ @Override public void showDetialList(List list) { + deyulist.clear(); + deyulist.addAll(list); + deyuDetialAdapter.addAll(deyulist); + deyuDetialAdapter.notifyDataSetChanged(); + } @Override - public void showDetialInfo(String rank, String scoree, String bijiao1,String bijiao2,String bijiao3,String bijiao4,String describe) { + public void showDetialInfo(float rank, String scoree, String bijiao1, String bijiao2, String bijiao3, String bijiao4, String describe) { tv_source.setText(scoree); - tv_bijiao1 .setText(bijiao1); - tv_bijiao2 .setText(bijiao2); - tv_bijiao3 .setText(bijiao3); - tv_bijiao4 .setText(bijiao4); - tv_ranking.setText(rank); - tv_describe .setText(describe); + tv_bijiao1.setText(bijiao1); + tv_bijiao2.setText(bijiao2); + tv_bijiao3.setText(bijiao3); + tv_bijiao4.setText(bijiao4); + tv_ranking.setText(deyuDetialAdapter.getPaiming(rank)); + tv_describe.setText(describe); } } diff --git a/app/src/main/res/layout/item_deyu_detial.xml b/app/src/main/res/layout/item_deyu_detial.xml index 93d5aad..848a32f 100644 --- a/app/src/main/res/layout/item_deyu_detial.xml +++ b/app/src/main/res/layout/item_deyu_detial.xml @@ -19,7 +19,7 @@ android:orientation="vertical">