1. 创建子任务时,执行用户默认为当前登录用户或执行组中的第一人
2. 修复部分企业类型问题图标错误
3. 新增场景账户自动生成功能
已修改26个文件
已添加5个文件
已重命名1个文件
672 ■■■■ 文件已修改
.idea/assetWizardSettings.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/compiler.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/jarRepositories.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/misc.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/runConfigurations.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/build.gradle 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/AndroidManifest.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/CommonApplication.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/fragment/SettingFragment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/httpservice/UserInfoService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/module/MainActivity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/module/common/UserInfoViewModel.kt 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/module/inspection/InspectionDetailActivity.kt 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/module/inspection/InspectionDetailViewModel.kt 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/module/inspection/InspectionFragment.kt 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuSceneAccountActivity.kt 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/module/inspectioninfo/InspectionInfoFragment.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/module/inspectioninfo/ProblemChangeFragment.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/module/task/NewSubTaskActivity.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/module/task/TaskFragment.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/repository/TaskRepository.kt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/repository/UserInfoRepository.kt 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/task/InitDataTask.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/util/CommonUtils.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/util/Constant.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/util/GlobalConfig.kt 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdapp/util/updateApp/UpdateAppUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/ic_baseline_arrow_downward_24.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/dialog_scene_account.xml 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_inspection_content.xml 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_task.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
build.gradle 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/assetWizardSettings.xml
@@ -18,7 +18,7 @@
                                <PersistentState>
                                  <option name="values">
                                    <map>
                                      <entry key="url" value="jar:file:/C:/Program%20Files/Android/Android%20Studio/plugins/android/lib/android.jar!/images/material_design_icons/social/ic_group_black_24dp.xml" />
                                      <entry key="url" value="file:/$PROJECT_DIR$/../../../../androidsdk/sdk_new/icons/material/materialicons/arrow_downward/baseline_arrow_downward_24.xml" />
                                    </map>
                                  </option>
                                </PersistentState>
@@ -28,7 +28,7 @@
                        </option>
                        <option name="values">
                          <map>
                            <entry key="outputName" value="ic_group_black_24dp" />
                            <entry key="outputName" value="ic_baseline_arrow_downward_24" />
                            <entry key="sourceFile" value="C:\Users\feiyu" />
                          </map>
                        </option>
.idea/compiler.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="CompilerConfiguration">
    <bytecodeTargetLevel target="1.8" />
    <bytecodeTargetLevel target="11" />
  </component>
</project>
.idea/jarRepositories.xml
@@ -36,5 +36,10 @@
      <option name="name" value="MavenRepo" />
      <option name="url" value="https://repo.maven.apache.org/maven2/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="maven" />
      <option name="name" value="maven" />
      <option name="url" value="http://maven.aliyun.com/nexus/content/repositories/releases/" />
    </remote-repository>
  </component>
</project>
.idea/misc.xml
@@ -10,7 +10,7 @@
    <option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
    <option name="myNullables">
      <value>
        <list size="12">
        <list size="15">
          <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
          <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
          <item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
@@ -23,12 +23,15 @@
          <item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
          <item index="10" class="java.lang.String" itemvalue="android.annotation.Nullable" />
          <item index="11" class="java.lang.String" itemvalue="com.android.annotations.Nullable" />
          <item index="12" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.Nullable" />
          <item index="13" class="java.lang.String" itemvalue="io.reactivex.annotations.Nullable" />
          <item index="14" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.Nullable" />
        </list>
      </value>
    </option>
    <option name="myNotNulls">
      <value>
        <list size="11">
        <list size="14">
          <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
          <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
          <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
@@ -40,11 +43,14 @@
          <item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
          <item index="9" class="java.lang.String" itemvalue="android.annotation.NonNull" />
          <item index="10" class="java.lang.String" itemvalue="com.android.annotations.NonNull" />
          <item index="11" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.NonNull" />
          <item index="12" class="java.lang.String" itemvalue="io.reactivex.annotations.NonNull" />
          <item index="13" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.NonNull" />
        </list>
      </value>
    </option>
  </component>
  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
  <component name="SvnBranchConfigurationManager">
    <option name="myConfigurationMap">
      <map>
.idea/runConfigurations.xml
@@ -3,6 +3,7 @@
  <component name="RunConfigurationProducerService">
    <option name="ignoredProducers">
      <set>
        <option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
        <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
app/build.gradle
@@ -14,8 +14,8 @@
        applicationId "cn.flightfeather.thirdapp"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 27
        versionName "1.1.14.10"
        versionCode 28
        versionName "1.1.14.12"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        renderscriptTargetApi 25
        renderscriptSupportModeEnabled true
app/src/main/AndroidManifest.xml
@@ -242,6 +242,8 @@
            android:theme="@style/TransparentTheme" />
        <activity android:name=".module.inspection.MenuChangeCheckActivity"
            android:theme="@style/TransparentTheme" />
        <activity android:name=".module.inspection.MenuSceneAccountActivity"
            android:theme="@style/TransparentTheme" />
        <activity android:name=".module.inspection.ShareProblemActivity"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity android:name=".module.inspection.ShareProblemPreViewActivity"
app/src/main/java/cn/flightfeather/thirdapp/CommonApplication.java
@@ -30,18 +30,17 @@
 */
public class CommonApplication extends Application {
//    private  final String ROOTURL="http://106.14.187.51:8801/supervision/";
    public final String ROOT_URL ="http://192.168.0.200:8080/";
    public final String ROOT_URL_IMAGE ="http://192.168.0.200:8080/images/";
//    public final String ROOT_URL ="http://192.168.0.200:8080/";
//    public final String ROOT_URL_IMAGE ="http://192.168.0.200:8080/images/";
    public final String ROOT_URL ="http://192.168.0.146:8080/";
    public final String ROOT_URL_IMAGE ="http://192.168.0.146:8080/images/";
    public final String ROOT_URL_RELEASE = "http://47.100.191.150:9005/";
    public final String ROOT_URL_RELEASE_IMAGE = "http://47.100.191.150:9005/images/";
    private Retrofit retrofit;
    private Retrofit retrofitImage;
    private DaoSession daoSession;
    private Userinfo currentUser;
    private boolean debugMode = false;
    private boolean released = true;
    private UserinfoDao userinfoDao;
    private final boolean released = true;
    //在程序打开时联网获取预置数据
    private boolean loadPreDataWhenOpen = true;
@@ -75,8 +74,7 @@
    }
    /**
     * 2018.11.07 by riku èŽ·å–æ•°æ®ä¼ è¾“æŽ¥å£è°ƒç”¨çš„æ ¹åœ°å€
     * @return
     * èŽ·å–æ•°æ®ä¼ è¾“æŽ¥å£è°ƒç”¨çš„æ ¹åœ°å€
     */
    public Retrofit getRetrofit(){
@@ -104,8 +102,7 @@
    }
    /**
     * 2018.11.07 by riku èŽ·å–å›¾ç‰‡ä¼ è¾“æŽ¥å£è°ƒç”¨çš„æ ¹åœ°å€
     * @return
     * èŽ·å–å›¾ç‰‡ä¼ è¾“æŽ¥å£è°ƒç”¨çš„æ ¹åœ°å€
     */
    public Retrofit getRetrofitImage(){
@@ -130,13 +127,13 @@
    /**
     * èŽ·å–æ•°æ®åº“Session
     * @return
     */
    public DaoSession getDaoSession() {
        if (daoSession ==null) {
            File path = new File(Environment.getExternalStorageDirectory(), "FlightFeather/third_new.db");
            if(!path.exists())
                path.getParentFile().mkdirs();
            //创建数据库shop.db"
            DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(getApplicationContext(), path.getAbsolutePath(), null);
            //获取可写数据库
@@ -152,20 +149,14 @@
        return daoSession;
    }
    public boolean isDebugMode() {
        return debugMode;
    }
    /**
     * 2018.11.07 by riku  èŽ·å–å½“å‰ç”¨æˆ·å¯¹è±¡
     * @return
     * èŽ·å–å½“å‰ç”¨æˆ·å¯¹è±¡
     */
    public Userinfo getCurrentUser() {
        if (currentUser ==null){
            userinfoDao = this.getDaoSession().getUserinfoDao();
            String userId = GlobalConfig.Companion.getInstance().getUserId();
            if (userId == null) {
            UserinfoDao userinfoDao = this.getDaoSession().getUserinfoDao();
            String userId = GlobalConfig.getInstance().getUserId();
            if (userId.equals(GlobalConfig.DEFAULT_USER)) {
                currentUser = userinfoDao.queryBuilder().unique();
            } else {
                currentUser = userinfoDao.queryBuilder().where(UserinfoDao.Properties.Guid.eq(userId)).unique();
@@ -175,13 +166,12 @@
    }
    public void setCurrentUser(Userinfo currentUser) {
        GlobalConfig.Companion.getInstance().setUserId(currentUser.getGuid());
        GlobalConfig.getInstance().setUserId(currentUser.getGuid());
        this.currentUser = currentUser;
    }
    /**
     * 2018.11.07 by riku  app启动时判断是否加载初始化数据完成
     * @return
     * app启动时判断是否加载初始化数据完成
     */
    public boolean isLoadPreDataWhenOpen() {
        return loadPreDataWhenOpen;
app/src/main/java/cn/flightfeather/thirdapp/fragment/SettingFragment.java
@@ -60,7 +60,7 @@
        tv_userName = (TextView) view.findViewById(R.id.tv_user_name);
        tv_userName.setText(application.getCurrentUser().getRealname());
        text_version = view.findViewById(R.id.text_version);
        text_version.setText(GlobalConfig.Companion.getInstance().getVersionName());
        text_version.setText(GlobalConfig.getInstance().getVersionName());
        sc_changePassword = (SettingCommItemView) view.findViewById(R.id.sc_edit_password);
        sc_logOut = (SettingCommItemView) view.findViewById(R.id.sc_logout);
app/src/main/java/cn/flightfeather/thirdapp/httpservice/UserInfoService.java
@@ -5,7 +5,9 @@
import cn.flightfeather.thirdapp.bean.entity.Userinfo;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
/**
 * Created by linli on 2018/1/23.
@@ -19,4 +21,9 @@
    @GET("userinfo")
    Call<List<Userinfo>> getAllUser();
    @POST("userinfo/create")
    Call<Userinfo> createAccount(@Query("sceneId") String sceneId);
    @GET("userinfo/scene/get")
    Call<Userinfo> getByScene(@Query("sceneId") String sceneId);
}
app/src/main/java/cn/flightfeather/thirdapp/module/MainActivity.java
@@ -27,7 +27,7 @@
import cn.flightfeather.thirdapp.dataanalysis.AnalysisOverViewFragment;
import cn.flightfeather.thirdapp.module.home.HomeFragment;
import cn.flightfeather.thirdapp.fragment.SettingFragment;
import cn.flightfeather.thirdapp.fragment.TaskFragment;
import cn.flightfeather.thirdapp.module.task.TaskFragment;
import cn.flightfeather.thirdapp.module.inspection.InspectionFragment;
import cn.flightfeather.thirdapp.module.inspectioninfo.InspectionInfoFragment;
import cn.flightfeather.thirdapp.module.inspectioninfo.ProblemChangeDetailActivity;
app/src/main/java/cn/flightfeather/thirdapp/module/common/UserInfoViewModel.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
package cn.flightfeather.thirdapp.module.common
import android.arch.lifecycle.MutableLiveData
import cn.flightfeather.thirdapp.bean.entity.Userinfo
import cn.flightfeather.thirdapp.common.net.ResultCallBack
import cn.flightfeather.thirdapp.module.base.BaseViewModel
import cn.flightfeather.thirdapp.repository.UserInfoRepository
/**
 * @author riku
 * Date: 2021/7/21
 */
class UserInfoViewModel : BaseViewModel() {
    private val userInfoRepository = UserInfoRepository.instance
    // ç”¨æˆ·è´¦æˆ·
    val aName = MutableLiveData<String>()
    /**
     * è‡ªåŠ¨åˆ›å»ºæˆ–èŽ·å–åœºæ™¯è´¦æˆ·
     */
    fun createAccount(sceneId: String) {
        userInfoRepository.createAccount(sceneId, object : ResultCallBack<Userinfo> {
            override fun onSuccess(result: Userinfo?) {
                aName.value = result?.acountname
            }
            override fun onFailure() {
                aName.value = null
            }
        })
    }
    fun getByScene(sceneId: String) {
        userInfoRepository.getByScene(sceneId, object : ResultCallBack<Userinfo?> {
            override fun onSuccess(result: Userinfo?) {
                aName.value = result?.acountname
            }
            override fun onFailure() {
                aName.value = null
            }
        })
    }
}
app/src/main/java/cn/flightfeather/thirdapp/module/inspection/InspectionDetailActivity.kt
@@ -136,6 +136,8 @@
        iv_patrol_back.setOnClickListener(this)
        ll_patrol_task_detail.visibility = View.GONE
        user_account.setOnClickListener(this)
        hideMenu()
        viewModel.inspection.observe(this, Observer {
@@ -699,6 +701,14 @@
    override fun onClick(v: View?) {
        when (v?.id) {
            // æŸ¥çœ‹æˆ–获取用户账户信息
            R.id.user_account -> {
                val intent = Intent(this, MenuSceneAccountActivity::class.java).apply {
                    putExtra("sceneId", viewModel.scene.value?.guid)
                    putExtra("sceneName", viewModel.scene.value?.name)
                }
                startActivity(intent)
            }
            //底部viewPager隐藏
            R.id.ll_patrol_hide -> hideMenu()
            //底部viewPager显示
app/src/main/java/cn/flightfeather/thirdapp/module/inspection/InspectionDetailViewModel.kt
@@ -152,7 +152,14 @@
        inspection?.let {
            inspectionRepository.updateInspection(it, object : ResultCallBack<ResponseBody> {
                override fun onSuccess(result: ResponseBody?) {
                    result?.let { s() }
                    result?.let {r ->
                        val n = r.string().toIntOrNull()
                        if (n == 1) {
                            s()
                        } else {
                            application.toast("提交巡查信息失败,请检查网络")
                        }
                    }
                }
                override fun onFailure() {
app/src/main/java/cn/flightfeather/thirdapp/module/inspection/InspectionFragment.kt
@@ -53,6 +53,9 @@
    //日历显示模式(1:展示子任务完成百分比;0:展示整改完成百分比)
    private var calendarMode = 1
    private val handler = Handler()
    private val closeLoadingRunnable = Runnable { closeLoading() }
    override fun getLayoutId(): Int = R.layout.fragment_inspection2
    override fun onCreateView() {
@@ -322,9 +325,8 @@
            }
        }
//        Handler().postDelayed({
//            closeLoading()
//        }, 10000)
        handler.removeCallbacks(closeLoadingRunnable)
        handler.postDelayed(closeLoadingRunnable, 20000)
    }
    private fun closeLoading() {
app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuSceneAccountActivity.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
package cn.flightfeather.thirdapp.module.inspection
import android.arch.lifecycle.Observer
import android.arch.lifecycle.ViewModelProviders
import android.os.Bundle
import android.view.View
import cn.flightfeather.thirdapp.R
import cn.flightfeather.thirdapp.module.base.BaseActivity
import cn.flightfeather.thirdapp.module.common.UserInfoViewModel
import kotlinx.android.synthetic.main.dialog_scene_account.*
/**
 * @author riku
 * Date: 2021/7/21
 * èŽ·å–ç›‘ç®¡åœºæ™¯è´¦æˆ·ä¿¡æ¯
 */
class MenuSceneAccountActivity : BaseActivity() {
    private var sceneId: String? = null
    private var sceneName: String? = null
    lateinit var viewModel: UserInfoViewModel
    override fun getLayoutId(): Int = R.layout.dialog_scene_account
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        viewModel = ViewModelProviders.of(this).get(UserInfoViewModel::class.java)
        sceneId = intent.getStringExtra("sceneId")
        sceneName = intent.getStringExtra("sceneName")
        initUI()
        initObserver()
        initListener()
        sceneId?.let { viewModel.getByScene(it) }
    }
    private fun initUI() {
        view_waiting.visibility = View.VISIBLE
        tv_s_name_c.text = sceneName ?: "未命名场景"
        group_no_data.visibility = View.GONE
        group_s_info.visibility = View.GONE
    }
    private fun initObserver() {
        viewModel.aName.observe(this, Observer {
            view_waiting.visibility = View.GONE
            if (it == null) {
                group_no_data.visibility = View.VISIBLE
                group_s_info.visibility = View.GONE
            } else {
                group_no_data.visibility = View.GONE
                group_s_info.visibility = View.VISIBLE
                tv_s_account_c.text = it
            }
        })
    }
    private fun initListener() {
        tv_create_account.setOnClickListener {
            view_waiting.visibility = View.VISIBLE
            sceneId?.let { viewModel.createAccount(it) }
        }
        fab_close.setOnClickListener {
            this.finish()
        }
    }
}
app/src/main/java/cn/flightfeather/thirdapp/module/inspectioninfo/InspectionInfoFragment.java
@@ -31,11 +31,13 @@
import cn.flightfeather.thirdapp.CommonApplication;
import cn.flightfeather.thirdapp.R;
import cn.flightfeather.thirdapp.adapter.AllRecyclerViewAdapter;
import cn.flightfeather.thirdapp.bean.entity.Domainitem;
import cn.flightfeather.thirdapp.bean.entity.Problemtype;
import cn.flightfeather.thirdapp.bean.entity.Scense;
import cn.flightfeather.thirdapp.bean.vo.ProblemCategoryVo;
import cn.flightfeather.thirdapp.bean.vo.ProblemlistVo;
import cn.flightfeather.thirdapp.common.net.ResultCallBack;
import cn.flightfeather.thirdapp.httpservice.ProblemListService;
import cn.flightfeather.thirdapp.repository.ProblemRepository;
import cn.flightfeather.thirdapp.util.CommonUtils;
import cn.flightfeather.thirdapp.util.Constant;
import cn.flightfeather.thirdapp.util.DateFormatter;
@@ -51,8 +53,6 @@
 */
public class InspectionInfoFragment extends Fragment implements Serializable{
    //<editor-fold desc="全局变量">
    private final static String TITLE = "问题";
    private static final long serialVersionUID = 6072583863506447855L;
@@ -62,9 +62,7 @@
    private String sceneType = Constant.SCENE_TYPE_SITE;
    private Unbinder unbinder;
    //</editor-fold>
    //<editor-fold desc="构造函数">
    public InspectionInfoFragment() {
        // Required empty public constructor
    }
@@ -75,9 +73,7 @@
//        fragment.setArguments(args);
        return fragment;
    }
    //</editor-fold>
    //<editor-fold desc="生命周期">
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
@@ -123,9 +119,6 @@
        }
    }
    //</editor-fold>
    //<editor-fold desc="标题栏">
    @BindView(R.id.action_bar)
    View action_bar;
@@ -142,9 +135,6 @@
        title.setGravity(Gravity.CENTER_HORIZONTAL);
    }
    //</editor-fold>
    //<editor-fold desc="统计信息栏">
    @BindView(R.id.text_total) TextView text_total;
    @BindView(R.id.text_changed) TextView text_changed;
    @BindView(R.id.text_unchanged) TextView text_unchanged;
@@ -156,10 +146,9 @@
        text_changed.setText(String.valueOf(changed_problems));
        text_unchanged.setText(String.valueOf(total_problems-changed_problems));
    }
    //</editor-fold>
    //<editor-fold desc="初始化列表数据">
    private ArrayList<ProblemCategoryVo> problemCategories = new ArrayList<>();//列表中展示的数据,按问题类型分类
    private ProblemRepository problemRepository = new ProblemRepository();
    private DomainitemDao domainitemDao;
    private ScenseDao scenseDao;
@@ -177,31 +166,64 @@
                .limit(1).list();
        if (scenses != null && !scenses.isEmpty()) {
            this.sceneType = String.valueOf(scenses.get(0).getTypeid());
            Scense s = scenses.get(0);
            //查询当前场景类型下的问题类型值域
            byte b = 1;
            problemRepository.getProblemType(b, s.getCitycode(), s.getDistrictcode(), s.getTypeid(), new ResultCallBack<ArrayList<Problemtype>>() {
                @Override
                public void onCacheSuccess(@Nullable ArrayList<Problemtype> result) {
                }
                @Override
                public void onSuccess(@Nullable ArrayList<Problemtype> result) {
                    if (result != null) {
                        List<String> types = new ArrayList<>();
                        for (int i = 0; i < result.size(); i++) {
                            Problemtype d = result.get(i);
                            if (!types.contains(d.getTypeid().toString())) {
                                types.add(d.getTypeid().toString());
                                ProblemCategoryVo p = new ProblemCategoryVo();
                                p.setProblemTypeId(d.getTypeid().toString());
                                p.setProblemTypeName(d.getTypename());
                                problemCategories.add(p);
                            }
                        }
                    }
                }
                @Override
                public void onPage(int current, int total) {
                }
                @Override
                public void onFailure() {
                }
            });
        }
        //endregion
        //region æŸ¥è¯¢å½“前场景类型下的问题类型值域
        this.domainitemDao = this.application.getDaoSession().getDomainitemDao();
        List<Domainitem> domainitems = domainitemDao.queryBuilder()
                .where(
                        DomainitemDao.Properties.Dcguid.eq(
                                CommonUtils.getProblemTypeGUID(this.sceneType)
                        )
                )
                .orderAsc(DomainitemDao.Properties.Index).list();
        for (Domainitem d :
                domainitems) {
            ProblemCategoryVo p = new ProblemCategoryVo();
            p.setProblemTypeId(d.getValue());
            p.setProblemTypeName(d.getText());
            this.problemCategories.add(p);
        }
        //endregion
//        this.domainitemDao = this.application.getDaoSession().getDomainitemDao();
//        List<Domainitem> domainitems = domainitemDao.queryBuilder()
//                .where(
//                        DomainitemDao.Properties.Dcguid.eq(
//                                CommonUtils.getProblemTypeGUID(this.sceneType)
//                        )
//                )
//                .orderAsc(DomainitemDao.Properties.Index).list();
//        for (Domainitem d :
//                domainitems) {
//            ProblemCategoryVo p = new ProblemCategoryVo();
//            p.setProblemTypeId(d.getValue());
//            p.setProblemTypeName(d.getText());
//            this.problemCategories.add(p);
//        }
    }
    //</editor-fold>
    //<editor-fold desc="initView">
    //问题按分类进行个数统计
    @BindView(R.id.rv_problem_type) RecyclerView rv_problem_type;
    AllRecyclerViewAdapter<ProblemCategoryVo> adapter;
@@ -233,9 +255,7 @@
        rv_problem_type.setLayoutManager(gl);
        rv_problem_type.setAdapter(adapter);
    }
    //</editor-fold>
    //<editor-fold desc="联网刷新">
    private void refresh(String sceneId, String date) {
        Call<List<ProblemlistVo>> getProblemByScene = this.application.getRetrofit().create(ProblemListService.class).getProblemByScene(sceneId, date);
        getProblemByScene.enqueue(new Callback<List<ProblemlistVo>>() {
@@ -304,14 +324,11 @@
            }
        }
    }
    //</editor-fold>
    //<editor-fold desc="用户提交整改图片完成后,在内存中更新数据">
    public void updateData() {
        Date now = new Date();
        String date = DateFormatter.dateTimeFormat3.format(now);
        refresh(application.getCurrentUser().getDguid(), date);//对于客户来说,D_GUID就是场景id
    }
    //</editor-fold>
}
app/src/main/java/cn/flightfeather/thirdapp/module/inspectioninfo/ProblemChangeFragment.java
@@ -47,7 +47,6 @@
 * æœ¬fragment有两种问题状态,已整改{@link Constant#UNCHANGED}和未整改{@link Constant#CHANGED}
 */
public class ProblemChangeFragment extends Fragment {
    //<editor-fold desc="全局变量">
    public static final String ARG_PARAM1 = "problems";
    public static final String ARG_PARAM2 = "fragmentType";
    public static final int REQUEST_CODE_SUBMIT = 11;
@@ -57,9 +56,7 @@
    private String fragmentType;
    private MediafileDao mediafileDao;
    private Unbinder unbinder;
    //</editor-fold>
    //<editor-fold desc="constructor">
    public ProblemChangeFragment() {
        // Required empty public constructor
    }
@@ -72,9 +69,7 @@
        fragment.setArguments(args);
        return fragment;
    }
    //</editor-fold>
    //<editor-fold desc="lifecycle">
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
@@ -124,16 +119,14 @@
            unbinder.unbind();
        }
    }
    //</editor-fold>
    //<editor-fold desc="初始化数据库">
    //初始化数据库
    private void initDataBase() {
        DaoSession daoSession = application.getDaoSession();
        mediafileDao = daoSession.getMediafileDao();
    }
    //</editor-fold>
    //<editor-fold desc="initView">
    //initView
    @BindView(R.id.rv_content) RecyclerView rv_rank_content;
    @BindView(R.id.image_problem_complete) ImageView image_problem_complete;
    AllRecyclerViewAdapter<ProblemlistVo> adapter;
@@ -352,9 +345,8 @@
        }
    }
    //</editor-fold>
    //<editor-fold desc="点击事件">
    //点击事件
    class OnProblemDetailClickListener implements View.OnClickListener {
        private ProblemlistVo problemlistVo;
@@ -391,9 +383,8 @@
            startActivityForResult(intent, REQUEST_CODE_SUBMIT, optionsCompat.toBundle());
        }
    }
    //</editor-fold>
    //<editor-fold desc="更新列表">
    //更新列表
    public void notifyDataSetChanged() {
//        this.problemlistVos.clear();
//        this.problemlistVos.addAll(p);
@@ -404,5 +395,4 @@
        }
        adapter.notifyDataSetChanged();
    }
    //</editor-fold>
}
app/src/main/java/cn/flightfeather/thirdapp/module/task/NewSubTaskActivity.kt
@@ -252,7 +252,7 @@
                text = realName.toString().replace(Constant.CONNECTOR, Constant.CONNECTOR_FOR_VIEW)
            }
            viewModel.subTaskExecutor.apply {
                this.executorGuids = ids.toString()
                this.executorGuids = id.toString()
                this.executorUserNames = userName.toString()
                this.executorRealNames = realName.toString()
            }
app/src/main/java/cn/flightfeather/thirdapp/module/task/TaskFragment.java
ÎļþÃû´Ó app/src/main/java/cn/flightfeather/thirdapp/fragment/TaskFragment.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package cn.flightfeather.thirdapp.fragment;
package cn.flightfeather.thirdapp.module.task;
import android.app.AlertDialog;
import android.content.DialogInterface;
@@ -35,14 +35,11 @@
import cn.flightfeather.thirdapp.adapter.TaskListAdapter;
import cn.flightfeather.thirdapp.bean.entity.Scense;
import cn.flightfeather.thirdapp.bean.entity.Subtask;
import cn.flightfeather.thirdapp.bean.vo.TaskPack;
import cn.flightfeather.thirdapp.bean.entity.Userinfo;
import cn.flightfeather.thirdapp.bean.vo.TaskPack;
import cn.flightfeather.thirdapp.bean.vo.TaskVo;
import cn.flightfeather.thirdapp.httpservice.SubTaskService;
import cn.flightfeather.thirdapp.httpservice.TaskService;
import cn.flightfeather.thirdapp.module.task.MonthTaskManagementActivity;
import cn.flightfeather.thirdapp.module.task.NewSubTaskActivity;
import cn.flightfeather.thirdapp.module.task.SceneDetailActivity;
import cn.flightfeather.thirdapp.util.CommonUtils;
import cn.flightfeather.thirdapp.util.Constant;
import cn.flightfeather.thirdapp.util.DateFormatter;
@@ -56,12 +53,12 @@
import retrofit2.Retrofit;
/**
 * A simple {@link Fragment} subclass.
 *
 */
public class TaskFragment extends Fragment implements RecyclerItemClickListener.OnItemClickListener
        , View.OnClickListener {
    private int taskKindChoice;
    private int taskKindChoice = 1;
    private CommonApplication application;
    private Retrofit mRetrofit;
    private boolean requestAgain;
@@ -315,7 +312,6 @@
    }
    /**
     * 2018.11.05 by riku
     * æ›´æ¢æ–°æ ·å¼çš„弹出框,功能未修改
     * æ˜¾ç¤ºæ–°å¢žä»»åŠ¡ç±»åž‹ï¼šé¡¶å±‚ä»»åŠ¡ã€å­ä»»åŠ¡
     */
app/src/main/java/cn/flightfeather/thirdapp/repository/TaskRepository.kt
@@ -62,12 +62,12 @@
            val resultList = ArrayList<Scense>()
            val tempList = sceneDao.getSceneByArea(taskVo.provincecode, taskVo.citycode, taskVo.districtcode)
            movList.forEach  {m ->
                tempList.forEach s@ {s ->
                for (s in tempList) {
                    if (s.guid == m.sguid) {
                        s.monitorNum = m.monitornum
                        s.inspectedNum = m.extension1?.toInt() ?: 0
                        resultList.add(s)
                        return@s
                        break
                    }
                }
            }
app/src/main/java/cn/flightfeather/thirdapp/repository/UserInfoRepository.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package cn.flightfeather.thirdapp.repository
import cn.flightfeather.thirdapp.bean.entity.Userinfo
import cn.flightfeather.thirdapp.common.net.ResponseBodyCallBack
import cn.flightfeather.thirdapp.common.net.ResultCallBack
import cn.flightfeather.thirdapp.common.net.RetrofitFactory
import cn.flightfeather.thirdapp.httpservice.UserInfoService
/**
 * @author riku
 * Date: 2021/7/21
 */
class UserInfoRepository private constructor(){
    companion object {
        @JvmStatic
        val instance: UserInfoRepository by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { UserInfoRepository()}
    }
    private val retrofit = RetrofitFactory.instance.retrofit
    /**
     * è‡ªåŠ¨åˆ›å»ºç›‘ç®¡åœºæ™¯è´¦æˆ·
     * @param sceneId åœºæ™¯id
     */
    fun createAccount(sceneId: String, resultCallBack: ResultCallBack<Userinfo>) {
        retrofit.create(UserInfoService::class.java).createAccount(sceneId)
            .enqueue(ResponseBodyCallBack(resultCallBack))
    }
    /**
     * èŽ·å–åœºæ™¯å¯¹åº”çš„è´¦æˆ·ä¿¡æ¯
     * @param sceneId åœºæ™¯id
     */
    fun getByScene(sceneId: String, resultCallBack: ResultCallBack<Userinfo?>) {
        retrofit.create(UserInfoService::class.java).getByScene(sceneId)
            .enqueue(ResponseBodyCallBack(resultCallBack))
    }
}
app/src/main/java/cn/flightfeather/thirdapp/task/InitDataTask.java
@@ -36,7 +36,6 @@
import cn.flightfeather.thirdapp.bean.entity.Problemtype;
import cn.flightfeather.thirdapp.bean.entity.Province;
import cn.flightfeather.thirdapp.bean.entity.Scense;
import cn.flightfeather.thirdapp.bean.entity.Site;
import cn.flightfeather.thirdapp.bean.entity.Town;
import cn.flightfeather.thirdapp.httpservice.InitDataService;
import retrofit2.Call;
@@ -89,7 +88,7 @@
        initDataService = retrofit.create(InitDataService.class);
        daoSession = application.getDaoSession();
        scenseDao = daoSession.getScenseDao();
        siteDao = daoSession.getSiteDao();
//        siteDao = daoSession.getSiteDao();
        domaincatalogDao = daoSession.getDomaincatalogDao();
        domainitemDao = daoSession.getDomainitemDao();
        evaluationruleDao = daoSession.getEvaluationruleDao();
@@ -125,7 +124,7 @@
                    scenseDao.insertInTx(scenseList);
                    System.out.println("Scense:Success");
                    if (firstLoad){
                        loadSite();
                        loadDoainCatalog();
                    }
                }else if (response.errorBody()!=null){
                    if (!requestAgain){
@@ -148,46 +147,6 @@
                    handler.sendEmptyMessage(SplashActivity.SHOW_ERROR);
                }
                System.out.println("Scense:"+t.toString());
            }
        });
    }
    //加载全部工地详情
    private void loadSite(){
        Call<List<Site>> loadAllSite = initDataService.loadAllSite();
        loadAllSite.enqueue(new Callback<List<Site>>() {
            @Override
            public void onResponse(Call<List<Site>> call, Response<List<Site>> response) {
                if (response.body()!=null){
                    requestAgain = false;
                    List<Site> siteList = response.body();
                    siteDao.deleteAll();
                    siteDao.insertInTx(siteList);
                    System.out.println("Site:Success");
                    if (firstLoad){
                        loadDoainCatalog();
                    }
                }else if (response.errorBody()!=null){
                    if (!requestAgain){
                        requestAgain = true;
                        loadSite();
                    }else {
                        handler.sendEmptyMessage(SplashActivity.SHOW_ERROR);
                        Toast.makeText(application, "获取工地详情数据失败", Toast.LENGTH_SHORT).show();
                    }
                    System.out.println("Site:"+response.errorBody().toString());
                }
            }
            @Override
            public void onFailure(Call<List<Site>> call, Throwable t) {
                    if (!requestAgain){
                        requestAgain = true;
                        loadSite();
                    }else {
                        showNetErrorToast();
                        handler.sendEmptyMessage(SplashActivity.SHOW_ERROR);
                    }
                    System.out.println("Site:"+t.toString());
            }
        });
    }
app/src/main/java/cn/flightfeather/thirdapp/util/CommonUtils.java
@@ -408,7 +408,7 @@
                default:
                    return R.drawable.selector_button_problem_others;
            }
        } else if (sceneType.equals(Constant.SCENE_TYPE_WHARF)){
        } else if (sceneType.equals(Constant.SCENE_TYPE_WHARF)) {
            switch (type) {
                case "1":
                    return R.drawable.selector_button_problem_road;
@@ -426,8 +426,27 @@
                    return R.drawable.selector_button_problem_sewage;
                case "8":
                    return R.drawable.selector_button_problem_attitude;
                case "9":
                default:
                    return R.drawable.selector_button_problem_others;
            }
        } else if (sceneType.equals(Constant.SCENE_TYPE14)) {
            switch (type) {
                case "1":
                    return R.drawable.selector_button_problem_road;
                case "2":
                    return R.drawable.selector_button_problem_vehicle;
                case "3":
                    return R.drawable.selector_button_problem_bulk_material;
                case "4":
                    return R.drawable.selector_button_problem_protect;
                case "5":
                    return R.drawable.selector_button_problem_dust_equipment;
                case "6":
                    return R.drawable.selector_button_problem_dedusting;
                case "7":
                    return R.drawable.selector_button_problem_sewage;
                case "8":
                    return R.drawable.selector_button_problem_attitude;
                default:
                    return R.drawable.selector_button_problem_others;
            }
app/src/main/java/cn/flightfeather/thirdapp/util/Constant.java
@@ -118,6 +118,7 @@
    String SCENE_TYPE11 = "11";//河流断面
    String SCENE_TYPE12 = "12";//工业园区
    String SCENE_TYPE13 = "13";//无固定场景
    String SCENE_TYPE14 = "14";//无固定场景
    String SCENE_TYPE99 = "99";//其他
    //展示类型
app/src/main/java/cn/flightfeather/thirdapp/util/GlobalConfig.kt
@@ -8,14 +8,9 @@
    var userId: String by MyPreference("userId", "default_customer")
    companion object {
        @get:Synchronized
        var instance: GlobalConfig? = null
            get() {
                if (field == null) {
                    field = GlobalConfig()
                }
                return field
            }
            private set
        @JvmStatic
        val instance: GlobalConfig by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { GlobalConfig()}
        const val DEFAULT_USER = "default_customer"
    }
}
app/src/main/java/cn/flightfeather/thirdapp/util/updateApp/UpdateAppUtil.java
@@ -87,8 +87,8 @@
                    .getPackageInfo(application.getPackageName(), 0);
            localVersion = packageInfo.versionCode;
            localVersionName = packageInfo.versionName;
            GlobalConfig.Companion.getInstance().setVersionCode(localVersion);
            GlobalConfig.Companion.getInstance().setVersionName(localVersionName);
            GlobalConfig.getInstance().setVersionCode(localVersion);
            GlobalConfig.getInstance().setVersionName(localVersionName);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
app/src/main/res/drawable/ic_baseline_arrow_downward_24.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24"
    android:viewportHeight="24">
  <path
      android:fillColor="#000000"
      android:pathData="M20,12l-1.41,-1.41L13,16.17V4h-2v12.17l-5.58,-5.59L4,12l8,8 8,-8z" />
</vector>
app/src/main/res/layout/dialog_scene_account.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.v7.widget.CardView
        android:id="@+id/cv_dialog_problem_list_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="30dp"
        android:layout_marginLeft="12dp"
        android:layout_marginRight="12dp"
        android:layout_marginBottom="40dp"
        app:cardCornerRadius="6dp"
        app:cardElevation="7dp">
        <android.support.constraint.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="@dimen/dimen16"
            android:orientation="vertical">
            <TextView
                android:id="@+id/tv_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="@dimen/textSize_18"
                android:textColor="@color/primary_text"
                android:text="企业账户"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"/>
            <android.support.constraint.Group
                android:id="@+id/group_s_info"
                android:visibility="visible"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:constraint_referenced_ids="tv_s_account, tv_s_account_c"/>
            <ProgressBar
                android:id="@+id/view_waiting"
                android:layout_width="@dimen/fab_margin"
                android:layout_height="@dimen/fab_margin"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                />
            <TextView
                android:id="@+id/tv_s_name_c"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                tools:text="场景名称场景名称场景名称场景名称场景名称"
                android:textColor="@color/main_color_2"
                android:textSize="@dimen/textSize_16"
                android:paddingTop="@dimen/dimen4"
                android:paddingBottom="@dimen/dimen4"
                android:layout_marginTop="@dimen/dimen16"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toBottomOf="@id/tv_title"/>
            <TextView
                android:id="@+id/tv_s_account"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="账户"
                android:layout_marginTop="60dp"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toBottomOf="@id/tv_s_name_c"/>
            <TextView
                android:id="@+id/tv_s_account_c"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                tools:text="CJZH"
                android:textColor="@color/main_color_1"
                android:textSize="34dp"
                android:paddingTop="@dimen/dimen4"
                android:paddingBottom="@dimen/dimen4"
                android:paddingStart="@dimen/dimen16"
                android:paddingEnd="@dimen/dimen16"
                android:background="@drawable/shape_green"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toBottomOf="@id/tv_s_account"
                tools:ignore="SpUsage" />
            <android.support.constraint.Group
                android:id="@+id/group_no_data"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                app:constraint_referenced_ids="tv_no_data, tv_create_account"/>
            <TextView
                android:id="@+id/tv_no_data"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="该监管场景暂无账户,点击自动创建账户"
                android:drawableBottom="@drawable/ic_baseline_arrow_downward_24"
                android:layout_marginTop="@dimen/dimen16"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toBottomOf="@id/tv_s_name_c"
                app:layout_constraintBottom_toTopOf="@id/tv_create_account"
                app:layout_constraintVertical_chainStyle="packed"
                app:layout_constraintVertical_bias="0.2"/>
            <TextView
                android:id="@+id/tv_create_account"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="获取账户"
                style="@style/TextButtonStyle.DialogPositive"
                android:elevation="@dimen/dimen4"
                android:layout_marginTop="@dimen/dimen16"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toBottomOf="@id/tv_no_data"
                app:layout_constraintBottom_toBottomOf="parent"
                tools:ignore="UnusedAttribute" />
        </android.support.constraint.ConstraintLayout>
    </android.support.v7.widget.CardView>
    <android.support.design.widget.FloatingActionButton
        android:src="@drawable/icon_close_white"
        android:id="@+id/fab_close"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:fabSize="normal"
        app:elevation="8dp"
        app:layout_anchor="@id/cv_dialog_problem_list_main"
        app:layout_anchorGravity="bottom|center"
        android:contentDescription="@string/cancel" />
</android.support.design.widget.CoordinatorLayout>
app/src/main/res/layout/fragment_inspection_content.xml
@@ -1,18 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:id="@+id/rl_content"
    android:layout_height="match_parent">
 <com.amap.api.maps.MapView
     android:id="@+id/mv_main"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_marginBottom="20dp"
     android:layout_alignParentTop="true"
     android:layout_alignParentStart="true">
 </com.amap.api.maps.MapView>
     <com.amap.api.maps.MapView
         android:id="@+id/mv_main"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_marginBottom="20dp"
         android:layout_alignParentTop="true"
         android:layout_alignParentStart="true">
     </com.amap.api.maps.MapView>
    <TextView
        android:id="@+id/user_account"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:text="用户账号"
        android:elevation="@dimen/dimen4"
        android:layout_marginBottom="188dp"
        android:padding="@dimen/dimen4"
        android:gravity="center"
        android:textColor="@color/white"
        android:background="@drawable/shape_green"
        android:foreground="?android:attr/selectableItemBackground"
        android:drawableStart="@drawable/ic_group_black_24dp"
        android:drawableTint="@color/white"
        tools:ignore="UnusedAttribute" />
    <LinearLayout
        android:visibility="visible"
app/src/main/res/layout/fragment_task.xml
@@ -5,7 +5,7 @@
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/taskBG"
    tools:context="cn.flightfeather.thirdapp.fragment.TaskFragment">
    tools:context="cn.flightfeather.thirdapp.module.task.TaskFragment">
    <FrameLayout
        android:layout_width="match_parent"
build.gradle
@@ -15,6 +15,7 @@
        jcenter()
        mavenCentral()
        google()
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/releases/' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.2'
@@ -24,6 +25,9 @@
        // in the individual module build.gradle files
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0'
        // æ·»åŠ emas-services插件
        classpath 'com.aliyun.ams:emas-services:1.0.1'
    }
}
@@ -35,6 +39,7 @@
        maven { url "https://jitpack.io" }
        jcenter()
        google()
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/releases/' }
    }
//    configurations.all {