完成 质检

master
wangh 12 months ago
parent 46a2e8aa68
commit 3c0dcc676c

@ -68,6 +68,7 @@ public class HomePageActivity extends BaseActivity implements ItemClickCall {
map.put("半成品入成品库", SemiActivity.class);
map.put("物料质检", CheckActivity.class);
map.put("物料质检列表", CheckSelectActivity.class);
map.put("不合格处置", CheckSelectActivity.class);
}
private void initRequest() {
@ -113,6 +114,10 @@ public class HomePageActivity extends BaseActivity implements ItemClickCall {
var menuName = menuList.get(position).getMenuName();
var cls = map.get(menuName);
if (cls==null) return;
startActivity(new Intent(this, cls));
var intent = new Intent(this, cls);
if (menuName.equals("物料质检列表")||menuName.equals("不合格处置")){
intent.putExtra("title",menuName);
}
startActivity(intent);
}
}

@ -0,0 +1,70 @@
package com.example.jingyuan_mes.adapter.check;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.RecyclerView;
import com.example.jingyuan_mes.BR;
import com.example.jingyuan_mes.R;
import com.example.jingyuan_mes.adapter.ItemClickCall;
import com.example.jingyuan_mes.databinding.ItemCheckSelectBinding;
import com.example.jingyuan_mes.databinding.ItemCheckSelectDetalBinding;
import com.example.jingyuan_mes.entity.check.CheckResult;
import com.example.jingyuan_mes.entity.check.CheckResultDetal;
import java.util.List;
/**
* @author wanghao
* @date 2024/1/31 15:18
*/
public class CheckSelectDetalAdapter extends RecyclerView.Adapter<CheckSelectDetalAdapter.MyViewHolder> {
private List<CheckResultDetal> list;
private Context context;
private LayoutInflater inflater;
private ItemClickCall clickCall;
public CheckSelectDetalAdapter(Context context, ItemClickCall clickCall) {
this.context = context;
this.clickCall = clickCall;
inflater = LayoutInflater.from(context);
}
public void setList(List<CheckResultDetal> list) {
this.list = list;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
ItemCheckSelectDetalBinding binding = DataBindingUtil.inflate(inflater, R.layout.item_check_select_detal, parent, false);
return new MyViewHolder(binding);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
var outstock = list.get(position);
var binding = holder.binding;
binding.setVariable(BR.vm,outstock);
binding.checkSelectDetalClick.setOnClickListener(v -> clickCall.onClick(position));
}
@Override
public int getItemCount() {
return list==null?0:list.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
private ItemCheckSelectDetalBinding binding;
public MyViewHolder(ItemCheckSelectDetalBinding binding) {
super(binding.getRoot());
this.binding = binding;
}
}
}

@ -30,7 +30,7 @@ public class BaseActivity extends AppCompatActivity {
public Gson gson;
public MediaType JSON = MediaType.parse("application/json; charset=utf-8");
private MyReceiver myReceiver;
public String handle = "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6Ijc5YjM3OWVhLWIxYmYtNGY0Mi05YjcxLWM5MzdkMWM5OTE3MiIsInVzZXJuYW1lIjoiYWRtaW4ifQ.z-aOF4Od5w0FQ_eAbSt-rRNzWha68EtLP1--uq7m5pSd6iNXxbb-EQsUGINC2iZ6I-XGRpCULpwIlH01gcd86Q";
public String handle = "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6IjdmNzc2OTQwLWQ3ZTMtNGU3NC1hM2JkLTc3NzlhMmU4MDY4MCIsInVzZXJuYW1lIjoiYWRtaW4ifQ.CJbA82A3QaepkA_qo2agavyqs_38b45yqcbkvdRUlGoMcBMB1SEd6mL-m2wzHKI1BTfeWmCnURbSoZdOllxzGw";
public Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {

@ -2,7 +2,9 @@ package com.example.jingyuan_mes.check;
import androidx.databinding.DataBindingUtil;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
@ -27,10 +29,17 @@ public class CheckActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_check);
adapter = new CheckWorkAdapter(this);
binding.setAdapter(adapter);
var intent = getIntent();
var id = intent.getStringExtra("id");
if (id!=null){
var visble = intent.getBooleanExtra("visble", true);
binding.checkSearchLinear.setVisibility(View.GONE);
Log.e("TAG", "传值:" + visble);
searchRequest(null,id, visble);
}
}
public void checkSubmit(View view) {
@ -51,17 +60,21 @@ public class CheckActivity extends BaseActivity {
}
public void checkSearch(View view) {
var serchText = binding.checkSearchText.getText().toString();
searchRequest(serchText,null,true);
}
private void searchRequest(String serchText,String id,boolean status){
OkGo.<MyResult>get(url + "/qms/mobile/getCheckResultDetail")
.headers("Authorization", SharedPreferencesUtils.getstring("access_token", ""))
.params("materialBarcode", serchText)
.params("checkResultDetailId", id)
.execute(new MyRecultCall(dialog, this) {
@Override
public void onSuccess(Response<MyResult> response) {
super.onSuccess(response);
var body = response.body();
if (body.getCode() == 200) {
checkResult = gson.fromJson(body.getData().toString(), CheckResult.class);
checkResult.setVisbleStatus(status);
binding.setVm(checkResult);
adapter.setList(checkResult.getQmsCheckResultDetailProjectList());
adapter.notifyDataSetChanged();

@ -25,15 +25,20 @@ import java.util.List;
public class CheckSelectActivity extends BaseActivity implements ItemClickCall {
private List<CheckResult> list;
private CheckSelectAdapter adapter;
private Intent intent;
private Intent intent1;
private String title;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityCheckSelectBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_check_select);
adapter = new CheckSelectAdapter(this, this);
binding.setAdapter(adapter);
intent = new Intent(this, CheckSelectDetalActivity.class);
var intent = getIntent();
title = intent.getStringExtra("title");
binding.setTitle(title);
intent1 = new Intent(this, title.equals("物料质检列表")?CheckSelectDetalActivity.class:CheckSelectDetalActivity.class);
}
@Override
@ -41,6 +46,7 @@ public class CheckSelectActivity extends BaseActivity implements ItemClickCall {
super.onResume();
OkGo.<MyResult>get(url + "/qms/mobile/getCheckResults").tag(this)
.headers("Authorization", SharedPreferencesUtils.getstring("access_token", ""))
.params("checkStatus", title.equals("物料质检列表")?null:"3")
.execute(new MyRecultCall(dialog, this) {
@SuppressLint("NotifyDataSetChanged")
@Override
@ -67,13 +73,13 @@ public class CheckSelectActivity extends BaseActivity implements ItemClickCall {
public void onClick(int position) {
var checkResult = list.get(position);
var checkResultId = checkResult.getCheckResultId();
var checkMode = checkResult.getCheckMode();
var checkMode = checkResult.getCheckModeText();
var checkSample = checkResult.getCheckSample();
var materialBatch = checkResult.getMaterialBatch();
intent.putExtra("checkResultId",checkResultId);
intent.putExtra("checkMode",checkMode);
intent.putExtra("checkSample",checkSample);
intent.putExtra("materialBatch",materialBatch);
startActivity(intent);
intent1.putExtra("checkResultId",checkResultId);
intent1.putExtra("checkMode",checkMode);
intent1.putExtra("checkSample",checkSample);
intent1.putExtra("materialBatch",materialBatch);
startActivity(intent1);
}
}

@ -9,6 +9,9 @@ import android.view.View;
import android.widget.Toast;
import com.example.jingyuan_mes.R;
import com.example.jingyuan_mes.adapter.ItemClickCall;
import com.example.jingyuan_mes.adapter.check.CheckSelectAdapter;
import com.example.jingyuan_mes.adapter.check.CheckSelectDetalAdapter;
import com.example.jingyuan_mes.base.BaseActivity;
import com.example.jingyuan_mes.base.MyRecultCall;
import com.example.jingyuan_mes.base.MyResult;
@ -28,14 +31,19 @@ import java.util.Map;
import okhttp3.RequestBody;
public class CheckSelectDetalActivity extends BaseActivity {
public class CheckSelectDetalActivity extends BaseActivity implements ItemClickCall {
private ActivityCheckSelectDetalBinding binding;
private List<CheckResultDetal> list;
private CheckSelectDetalAdapter checkSelectDetalAdapter;
private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_check_select_detal);
checkSelectDetalAdapter = new CheckSelectDetalAdapter(this, this);
binding.setAdapter(checkSelectDetalAdapter);
intent = new Intent(this, CheckActivity.class);
}
public void checkSelectSubmit2(View view) {
@ -50,20 +58,17 @@ public class CheckSelectDetalActivity extends BaseActivity {
Map<String, String> map = new HashMap<>();
map.put("checkResultId", String.valueOf(checkResultId));
map.put("checkStatus", status);
OkGo.<MyResult>post(url + "/wms/mobile/auditCheckResult")
.headers("Authorization", SharedPreferencesUtils.getstring("access_token", ""))
.upRequestBody(RequestBody.create(JSON, gson.toJson(map)))
.execute(new MyRecultCall(dialog, this) {
@Override
public void onSuccess(Response<MyResult> response) {
super.onSuccess(response);
var body = response.body();
if (body.getCode() == 200) {
finish();
}
Toast.makeText(context, body.getMsg(), Toast.LENGTH_SHORT).show();
}
});
OkGo.<MyResult>post(url + "/qms/mobile/auditCheckResult").headers("Authorization", SharedPreferencesUtils.getstring("access_token", "")).upRequestBody(RequestBody.create(JSON, gson.toJson(map))).execute(new MyRecultCall(dialog, this) {
@Override
public void onSuccess(Response<MyResult> response) {
super.onSuccess(response);
var body = response.body();
if (body.getCode() == 200) {
finish();
}
Toast.makeText(context, body.getMsg(), Toast.LENGTH_SHORT).show();
}
});
}
@ -75,42 +80,45 @@ public class CheckSelectDetalActivity extends BaseActivity {
var intent = getIntent();
checkResultId = intent.getIntExtra("checkResultId", 0);
OkGo.<MyResult>get(url + "/qms/mobile/getCheckResult").tag(this)
.headers("Authorization", SharedPreferencesUtils.getstring("access_token", ""))
.params("checkResultId", checkResultId)
.params("materialBatch", intent.getStringExtra("materialBatch"))
.params("checkMode", intent.getStringExtra("checkMode"))
.params("checkSample", intent.getStringExtra("checkSample"))
.execute(new MyRecultCall(dialog, this) {
@Override
public void onSuccess(Response<MyResult> response) {
super.onSuccess(response);
var body = response.body();
if (body.getCode() == 200) {
CheckResultDetailVo checkResultDetailVo = gson.fromJson(body.getData().toString(), CheckResultDetailVo.class);
binding.setVm(checkResultDetailVo);
}
Toast.makeText(context, body.getMsg(), Toast.LENGTH_SHORT).show();
}
});
OkGo.<MyResult>get(url + "/qms/mobile/getCheckResultDetails").tag(this)
.headers("Authorization", SharedPreferencesUtils.getstring("access_token", ""))
.params("checkResultId", checkResultId)
.execute(new MyRecultCall(dialog, this) {
@Override
public void onSuccess(Response<MyResult> response) {
super.onSuccess(response);
var body = response.body();
if (body.getTotal() == 0) {
Toast.makeText(context, body.getCode() == 200 ? "暂无审批数据" : body.getMsg(), Toast.LENGTH_SHORT).show();
return;
}
list = gson.fromJson(gson.toJson(body.getRows()), new TypeToken<List<RawReturn>>() {
}.getType());
}
});
OkGo.<MyResult>get(url + "/qms/mobile/getCheckResult").tag(this).headers("Authorization", SharedPreferencesUtils.getstring("access_token", "")).params("checkResultId", checkResultId).params("materialBatch", intent.getStringExtra("materialBatch")).params("checkMode", intent.getStringExtra("checkMode")).params("checkSample", intent.getStringExtra("checkSample")).execute(new MyRecultCall(dialog, this) {
@Override
public void onSuccess(Response<MyResult> response) {
super.onSuccess(response);
var body = response.body();
if (body.getCode() == 200) {
CheckResultDetailVo checkResultDetailVo = gson.fromJson(body.getData().toString(), CheckResultDetailVo.class);
binding.setVm(checkResultDetailVo);
}
Toast.makeText(context, body.getMsg(), Toast.LENGTH_SHORT).show();
}
});
OkGo.<MyResult>get(url + "/qms/mobile/getCheckResultDetails").tag(this).headers("Authorization", SharedPreferencesUtils.getstring("access_token", "")).params("checkResultId", checkResultId).execute(new MyRecultCall(dialog, this) {
@Override
public void onSuccess(Response<MyResult> response) {
super.onSuccess(response);
var body = response.body();
if (body.getTotal() == 0) {
Toast.makeText(context, body.getCode() == 200 ? "暂无审批数据" : body.getMsg(), Toast.LENGTH_SHORT).show();
return;
}
list = gson.fromJson(gson.toJson(body.getRows()), new TypeToken<List<CheckResultDetal>>() {
}.getType());
checkSelectDetalAdapter.setList(list);
checkSelectDetalAdapter.notifyDataSetChanged();
}
});
}
@Override
public void onClick(int position) {
var checkResultDetal = list.get(position);
var checkResultDetailId = checkResultDetal.getCheckResultDetailId();
var checkStatus = checkResultDetal.getCheckStatus();
intent.putExtra("id", String.valueOf(checkResultDetailId));
intent.putExtra("visble", (checkStatus.equals("待检验") || checkStatus.equals("检验中")));
startActivity(intent);
}
}

@ -46,6 +46,36 @@ public class CheckResult extends BaseObservable {
private String materialName;
private String poNo;
private String saleorderCode;
private String materialType;
private boolean visbleStatus=true;
public boolean isVisbleStatus() {
return visbleStatus;
}
public void setVisbleStatus(boolean visbleStatus) {
this.visbleStatus = visbleStatus;
notifyChange();
}
public String getMaterialType() {
switch (materialType){
case "1" : return "原材料";
case "2" : return "半成品";
case "3" : return "成品";
}
return null;
}
public void setMaterialType(String materialType) {
this.materialType = materialType;
}
private List<CheckResultDetal> qmsCheckResultDetailProjectList;
/**
*
@ -122,6 +152,10 @@ public class CheckResult extends BaseObservable {
return checkMode.equals("1") ? "全检" : "抽检";
}
public String getCheckModeText() {
return checkMode;
}
public void setCheckMode(String checkMode) {
this.checkMode = checkMode;

@ -5,6 +5,8 @@ import android.util.Log;
import androidx.databinding.BaseObservable;
import java.util.Date;
/**
* @author wanghao
* @date 2024/3/1 9:27
@ -60,6 +62,63 @@ public class CheckResultDetal extends BaseObservable {
private String checkStatusShow;
private String checkStatus;
/** 创建者 */
private String createBy;
/** 创建时间 */
private String createTime;
private String materialCode;
public String getMaterialCode() {
return materialCode;
}
public void setMaterialCode(String materialCode) {
this.materialCode = materialCode;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getCheckStatus() {
switch (checkStatus) {
case "0":
setCheckStatus("待检验");
break;
case "1":
setCheckStatus("检验中");
break;
case "2":
setCheckStatus("质检通过");
break;
case "3":
setCheckStatus("质检不通过");
break;
}
return checkStatus;
}
public void setCheckStatus(String checkStatus) {
this.checkStatus = checkStatus;
}
public int getIndex() {
return index;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="0dp" android:bottom="0dp" android:left="0dp" android:right="0dp">
<shape>
<corners android:radius="6dp"/>
<solid android:color="@color/white"/>
</shape>
</item>
<item android:width="35dp" android:gravity="right|center" android:height="30dp" android:right="8dp">
<bitmap android:src="@drawable/ic_xl"/>
</item>
</layer-list>

@ -13,6 +13,7 @@
<variable
name="adapter"
type="com.example.jingyuan_mes.adapter.check.CheckWorkAdapter" />
<import type="android.view.View"/>
</data>
<LinearLayout
@ -26,6 +27,7 @@
app:title='@{title??"物料检验"}' />
<LinearLayout
android:id="@+id/check_search_linear"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_margin="8dp"
@ -57,13 +59,27 @@
style="@style/text_title"
android:layout_width="90dp"
android:layout_height="match_parent"
android:text="项目号:" />
android:text="检验规则:" />
<TextView
style="@style/text_info"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@={vm.poNo}" />
android:layout_weight="1"
android:text="@{vm.checkRuleName}" />
<TextView
style="@style/text_title"
android:layout_width="90dp"
android:layout_height="match_parent"
android:text="检验方式:" />
<TextView
style="@style/text_info"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text='@{vm.checkMode==null?"":(vm.checkMode+"("+vm.checkSample+"%)")}' />
</LinearLayout>
<LinearLayout
@ -83,7 +99,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@={vm.materialCode}" />
android:text="@{vm.materialCode}" />
<TextView
style="@style/text_title"
@ -96,7 +112,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@={vm.materialName}" />
android:text="@{vm.materialName}" />
</LinearLayout>
<LinearLayout
@ -116,7 +132,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@={vm.checkMode}" />
android:text="@{vm.checkMode}" />
<TextView
style="@style/text_title"
@ -129,7 +145,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@={vm.checkStatus}" />
android:text="@{vm.checkStatus}" />
</LinearLayout>
<LinearLayout
@ -181,6 +197,7 @@
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_margin="12dp"
android:visibility="@{vm.visbleStatus ? View.VISIBLE :View.GONE }"
android:text="提交"
android:onClick="checkSubmit"
style="@style/button_style"/>

@ -28,8 +28,10 @@
<Spinner
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_margin="10dp"
/>
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:background="@drawable/spinner_bg" />
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"

@ -11,7 +11,7 @@
<variable
name="adapter"
type="com.example.jingyuan_mes.adapter.check.CheckSelectAdapter" />
type="com.example.jingyuan_mes.adapter.check.CheckSelectDetalAdapter" />
<variable
name="vm"

@ -96,7 +96,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@{vm.checkRuleName}" />
android:text='@{vm.materialType + "检验" }' />
<TextView
style="@style/item_title_blue"

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="vm"
type="com.example.jingyuan_mes.entity.check.CheckResultDetal" />
</data>
<LinearLayout
android:id="@+id/check_select_detal_click"
android:layout_width="match_parent"
android:layout_height="92dp"
android:layout_marginTop="5dp"
android:orientation="horizontal"
android:background="@drawable/san_text_bg"
android:padding="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp">
<TextView
style="@style/item_title_blue"
android:layout_width="70dp"
android:layout_height="match_parent"
android:text="物料条码:" />
<TextView
style="@style/item_text_13"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@{vm.materialCode}" />
<TextView
style="@style/item_title_blue"
android:layout_width="70dp"
android:layout_height="match_parent"
android:text="检验状态:" />
<TextView
style="@style/item_text_13"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@{vm.checkStatus}" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp">
<TextView
style="@style/item_title_blue"
android:layout_width="70dp"
android:layout_height="match_parent"
android:text="创建人:" />
<TextView
style="@style/item_text_13"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text='@{vm.createBy}' />
<TextView
style="@style/item_title_blue"
android:layout_width="70dp"
android:layout_height="match_parent"
android:text="创建时间:" />
<TextView
style="@style/item_text_13"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@{vm.createTime}" />
</LinearLayout>
</LinearLayout>
<TextView
android:layout_width="60dp"
android:background="@color/blue"
android:layout_height="match_parent"
android:text='@{vm.checkStatus.equals("待检验")||vm.checkStatus.equals("检验中")?"处理":"查看" }'
android:gravity="center"
android:textSize="16sp"
android:textColor="@color/white"
/>
</LinearLayout>
</layout>
Loading…
Cancel
Save