Просмотр исходного кода

设备管理设备维修接单需求

RaoMeng 6 лет назад
Родитель
Сommit
350c88ab67

+ 3 - 3
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Mon Aug 26 17:28:30 CST 2019
+#Fri Sep 06 14:40:45 CST 2019
 debugName=972
-versionName=695
+versionName=696
 debugCode=972
-versionCode=250
+versionCode=251

+ 22 - 8
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/MsgThirdWebActivity.java

@@ -11,7 +11,9 @@ import android.webkit.WebChromeClient;
 import android.webkit.WebView;
 
 import com.common.LogUtil;
+import com.common.data.StringUtil;
 import com.common.data.TextUtil;
+import com.core.app.Constants;
 import com.core.utils.CommonUtil;
 import com.core.utils.IntentUtils;
 import com.modular.apputils.utils.OpenFilesUtils;
@@ -19,6 +21,7 @@ import com.core.utils.ToastUtil;
 import com.core.widget.CustomProgressDialog;
 import com.modular.appmessages.R;
 import com.modular.apputils.network.FileDownloader;
+import com.uas.appworks.CRM.erp.activity.DeviceBillInputActivity;
 import com.uas.appworks.OA.erp.activity.CommonDocDetailsActivity;
 
 import org.w3c.dom.Text;
@@ -55,14 +58,25 @@ public class MsgThirdWebActivity extends MessageWebActivity {
                     String title = intent.getStringExtra(IntentUtils.KEY_TITLE);
                     String caller = intent.getStringExtra("caller");
                     int keyValue = intent.getIntExtra("keyValue", -1);
-                    if (!TextUtils.isEmpty(title) && !TextUtils.isEmpty(caller) && keyValue != -1) {
-                        startActivity(new Intent(ct, CommonDocDetailsActivity.class)
-                                .putExtra("caller", caller)
-                                .putExtra("keyValue", keyValue)
-                                .putExtra("title", title)
-                                .putExtra("device", false)
-                                .putExtra("message", true)
-                                .putExtra("status", "已审批"));
+                    if (!TextUtils.isEmpty(caller) && keyValue != -1) {
+                        if ("DeviceChange!Repair".equals(caller)) {
+                            startActivity(new Intent(mContext, DeviceBillInputActivity.class)
+                                    .putExtra(Constants.Intents.CALLER, caller)
+                                    .putExtra(Constants.Intents.ID, keyValue)
+                                    .putExtra(Constants.Intents.INPUT_CLASS, DeviceBillInputActivity.class)
+                                    .putExtra(Constants.Intents.TITLE, "设备维修")
+                                    .putExtra("device", true)
+                                    .putExtra(Constants.Intents.SHOW_HEADER, true)
+                                    .putExtra(Constants.Intents.BILL_STATUS, "在录入"));
+                        } else if (!TextUtils.isEmpty(title)) {
+                            startActivity(new Intent(ct, CommonDocDetailsActivity.class)
+                                    .putExtra("caller", caller)
+                                    .putExtra("keyValue", keyValue)
+                                    .putExtra("title", title)
+                                    .putExtra("device", false)
+                                    .putExtra("message", true)
+                                    .putExtra("status", "已审批"));
+                        }
                     }
 
 

+ 27 - 2
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceBillInputActivity.java

@@ -4,6 +4,7 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.text.TextUtils;
+import android.view.Menu;
 import android.view.MenuItem;
 
 import com.common.data.StringUtil;
@@ -15,6 +16,7 @@ import com.modular.apputils.activity.SelectNetAcitivty;
 import com.modular.apputils.adapter.BillAdapter;
 import com.modular.apputils.model.BillGroupModel;
 import com.modular.apputils.presenter.BillPresenter;
+import com.uas.appworks.CRM.erp.imp.IDeviceRepairView;
 import com.uas.appworks.CRM.erp.presenter.DeviceBillInputPresenter;
 import com.uas.appworks.R;
 import com.uas.appworks.activity.DeviceQueryActivity;
@@ -27,7 +29,8 @@ import java.util.concurrent.locks.Condition;
  * Created by RaoMeng on 2019/6/26
  * Desc: 设备管理单据录入页面
  */
-public class DeviceBillInputActivity extends BillInputActivity {
+public class DeviceBillInputActivity extends BillInputActivity implements IDeviceRepairView {
+    private boolean isAccept = true;//是否接单
 
     @Override
     public BillAdapter newBillAdapter(List<BillGroupModel> groupModels) {
@@ -156,6 +159,23 @@ public class DeviceBillInputActivity extends BillInputActivity {
         return "";
     }
 
+    @Override
+    public void updateOptionMenu(boolean isAccept) {
+        this.isAccept = isAccept;
+        supportInvalidateOptionsMenu();
+    }
+
+    @Override
+    public boolean onPrepareOptionsMenu(Menu menu) {
+        MenuItem saveItem = menu.findItem(R.id.saveAndSubmit);
+        if ("DeviceChange!Repair".equals(mBillPresenter.getFormCaller()) && !isAccept) {
+            saveItem.setTitle("接单");
+        } else {
+            saveItem.setTitle("提交");
+        }
+        return super.onPrepareOptionsMenu(menu);
+    }
+
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if (item.getItemId() == R.id.list) {
@@ -179,7 +199,12 @@ public class DeviceBillInputActivity extends BillInputActivity {
             return true;
         } else if (item.getItemId() == com.modular.apputils.R.id.saveAndSubmit) {
             setResult(0x111);
-            return super.onOptionsItemSelected(item);
+            if ("DeviceChange!Repair".equals(mBillPresenter.getFormCaller()) && !isAccept) {
+                ((DeviceBillInputPresenter) mBillPresenter).deviceRepairTaking();
+                return true;
+            } else {
+                return super.onOptionsItemSelected(item);
+            }
         } else {
             return super.onOptionsItemSelected(item);
         }

+ 7 - 0
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/imp/IDeviceRepairView.java

@@ -0,0 +1,7 @@
+package com.uas.appworks.CRM.erp.imp;
+
+import com.modular.apputils.presenter.imp.IBill;
+
+public interface IDeviceRepairView extends IBill {
+    void updateOptionMenu(boolean isAccept);
+}

+ 56 - 1
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/presenter/DeviceBillInputPresenter.java

@@ -5,14 +5,21 @@ import android.content.Intent;
 import android.support.annotation.Nullable;
 import android.text.TextUtils;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.common.data.ListUtils;
 import com.core.app.Constants;
 import com.core.utils.CommonUtil;
+import com.me.network.app.base.HttpCallback;
+import com.me.network.app.base.HttpParams;
+import com.me.network.app.http.HttpRequest;
+import com.me.network.app.http.Method;
+import com.modular.apputils.adapter.BillAdapter;
 import com.modular.apputils.model.BillGroupModel;
 import com.modular.apputils.presenter.BillPresenter;
 import com.modular.apputils.presenter.imp.IBill;
+import com.uas.appworks.CRM.erp.imp.IDeviceRepairView;
 import com.uas.appworks.model.Device;
 
 import java.util.ArrayList;
@@ -35,7 +42,7 @@ public class DeviceBillInputPresenter extends BillPresenter {
         super.start(intent);
     }
 
-    public DeviceBillInputPresenter(Context ct, IBill iBill) {
+    public DeviceBillInputPresenter(Context ct, IDeviceRepairView iBill) {
         super(ct, iBill);
     }
 
@@ -165,6 +172,18 @@ public class DeviceBillInputPresenter extends BillPresenter {
             billModel.setValue(CommonUtil.getName());
         }
 
+        //设备维修单,如果dc_repairaccept(接单状态)为空,则是未接单状态;如果有值,则是已接单状态
+        //未接单状态下,需要将顶部Menu修改为【接单】按钮
+        if ("DeviceChange!Repair".equals(mCaller) && "dc_repairaccept".equals(field)) {
+            if (TextUtils.isEmpty(billModel.getValue().trim())) {
+                //未接单
+                ((IDeviceRepairView) iBill).updateOptionMenu(false);
+            } else {
+                //已接单
+                ((IDeviceRepairView) iBill).updateOptionMenu(true);
+            }
+        }
+
         if (mId <= 0) {
             if (mDevice != null) {
                 if ("dc_devcode".equals(field)) {
@@ -271,4 +290,40 @@ public class DeviceBillInputPresenter extends BillPresenter {
             return super.analysisGrid(gridBillMap);
         }
     }
+
+    /**
+     * 接单
+     */
+    public void deviceRepairTaking() {
+        iBill.showLoading();
+        HttpRequest.getInstance().sendRequest(CommonUtil.getAppBaseUrl(ct),
+                new HttpParams.Builder()
+                        .url("mobile/device/deviceRepairTaking.action")
+                        .method(Method.POST)
+                        .addParam("caller", mCaller)
+                        .addParam("id", mId)
+                        .build(), new HttpCallback() {
+                    @Override
+                    public void onSuccess(int flag, Object o) throws Exception {
+                        iBill.dimssLoading();
+                        iBill.showToast("接单成功");
+                        try {
+                            String result = o.toString();
+                            JSONObject resultObject = JSON.parseObject(result);
+
+                            handlerMultiBill(resultObject);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        ((IDeviceRepairView) iBill).updateOptionMenu(true);
+                    }
+
+                    @Override
+                    public void onFail(int flag, String failStr) throws Exception {
+                        iBill.dimssLoading();
+                        iBill.showToast(failStr);
+                    }
+                });
+    }
+
 }