From e8626f43fc5f26673aa44fb502c427d45579d42f Mon Sep 17 00:00:00 2001 From: wanghao Date: Fri, 28 Nov 2025 14:58:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- .../SelectPersonInfoActivity.java | 128 ++++++++++++++++-- .../been/PmBasePenaltyType.java | 109 +++++++++++++++ .../beijing_daxing/been/PmRecordPenalty.java | 120 ++++++++++++++++ .../layout/activity_select_person_info.xml | 25 +++- app/src/main/res/mipmap-hdpi/icon_select.png | Bin 0 -> 466 bytes 6 files changed, 373 insertions(+), 11 deletions(-) create mode 100644 app/src/main/java/com/example/beijing_daxing/been/PmBasePenaltyType.java create mode 100644 app/src/main/java/com/example/beijing_daxing/been/PmRecordPenalty.java create mode 100644 app/src/main/res/mipmap-hdpi/icon_select.png diff --git a/app/build.gradle b/app/build.gradle index 90a94be..112d07c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,5 +57,5 @@ dependencies { implementation 'com.github.xuexiangjys:XUpdate:2.1.4' implementation 'com.github.xuexiangjys.XUpdateAPI:xupdate-easy:1.0.1' implementation 'com.github.bumptech.glide:glide:4.16.0' - + implementation 'com.contrarywind:Android-PickerView:4.1.9' } \ No newline at end of file diff --git a/app/src/main/java/com/example/beijing_daxing/SelectPersonInfoActivity.java b/app/src/main/java/com/example/beijing_daxing/SelectPersonInfoActivity.java index 48130c3..2db4b1f 100644 --- a/app/src/main/java/com/example/beijing_daxing/SelectPersonInfoActivity.java +++ b/app/src/main/java/com/example/beijing_daxing/SelectPersonInfoActivity.java @@ -1,30 +1,94 @@ package com.example.beijing_daxing; import android.os.Bundle; +import android.util.Log; import android.view.View; import android.widget.Toast; import androidx.databinding.DataBindingUtil; +import com.bigkoo.pickerview.builder.OptionsPickerBuilder; +import com.bigkoo.pickerview.listener.OnOptionsSelectListener; +import com.bigkoo.pickerview.view.OptionsPickerView; import com.bumptech.glide.Glide; import com.example.beijing_daxing.base.BaseActivity; import com.example.beijing_daxing.base.MyRecultCall; import com.example.beijing_daxing.base.MyResult; +import com.example.beijing_daxing.been.PmBasePenaltyType; import com.example.beijing_daxing.been.PmBasePersonInfo; +import com.example.beijing_daxing.been.PmRecordPenalty; import com.example.beijing_daxing.databinding.ActivitySelectPersonInfoBinding; -import com.example.beijing_daxing.dialog.TakePictureDialog; +import com.example.beijing_daxing.dialog.LookPictureDialog; +import com.example.beijing_daxing.uitls.SharedPreferencesUtils; +import com.google.gson.reflect.TypeToken; import com.lzy.okgo.OkGo; import com.lzy.okgo.model.Response; -public class SelectPersonInfoActivity extends BaseActivity { - private ActivitySelectPersonInfoBinding binding; - private TakePictureDialog pictureDialog; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import okhttp3.RequestBody; + +public class SelectPersonInfoActivity extends BaseActivity implements OnOptionsSelectListener { + private ActivitySelectPersonInfoBinding binding; + private LookPictureDialog pictureDialog; + private PmBasePersonInfo personInfo; + private List list1; + private List> list2; + private OptionsPickerView opv; + private List list; + + private PmRecordPenalty recordPenalty; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - binding = DataBindingUtil.setContentView(this, R.layout.activity_select_person_info); - pictureDialog=new TakePictureDialog(this); + pictureDialog = new LookPictureDialog(this); + opv= new OptionsPickerBuilder(this, this).build(); + initCheckList(); + recordPenalty=new PmRecordPenalty(); + recordPenalty.setCreateBy(SharedPreferencesUtils.getstring("user","")); + } + + private void initCheckList() { + OkGo.post(url + "/selectPenaltyTypeList") + .execute(new MyRecultCall(dialog, this) { + @Override + public void onSuccess(Response response) { + super.onSuccess(response); + MyResult body = response.body(); + if (body.getCode() == 0) { + list = gson.fromJson(body.getJson(), new TypeToken>() { + }.getType()); + list1 = new ArrayList<>(); + list2 = new ArrayList<>(); + Map map = new HashMap<>(); + list.forEach(penaltyType -> { + String penaltyInfo = penaltyType.getPenaltyInfo();// 处罚说明 + Long parentId = penaltyType.getParentId();// 父id + Long penaltyTypeId = penaltyType.getPenaltyTypeId();// 自id + if (parentId == null) {// 如果是一级菜单 + if (!list1.contains(penaltyInfo)) { + list1.add(penaltyInfo); + map.put(penaltyTypeId, penaltyInfo); + list2.add(new ArrayList<>()); + } + } else {// 如果是二级菜单 + String tag = map.get(parentId); + int i = list1.indexOf(tag); + String penaltyTypeCode = penaltyType.getPenaltyTypeCode(); + list2.get(i).add(penaltyTypeCode+"-"+penaltyInfo); + } + }); + opv.setPicker(list1, list2, null); + return; + } + Toast.makeText(SelectPersonInfoActivity.this, body.getMsg(), Toast.LENGTH_SHORT).show(); + } + }); } @Override @@ -33,15 +97,18 @@ public class SelectPersonInfoActivity extends BaseActivity { binding.selectInfoEpc.setText(bytes2HexString); OkGo.post(url + "/selectPersonInfo") .params("epc", bytes2HexString) + .params("user", SharedPreferencesUtils.getstring("user", "")) .execute(new MyRecultCall(dialog, this) { @Override public void onSuccess(Response response) { super.onSuccess(response); MyResult body = response.body(); if (body.getCode() == 0) { - PmBasePersonInfo personInfo =gson.fromJson(body.getJson(), PmBasePersonInfo.class); + + personInfo = gson.fromJson(body.getJson(), PmBasePersonInfo.class); + recordPenalty.setBasePersonId(personInfo.getBasePersonId()); binding.setPersonInfo(personInfo); - Glide.with(SelectPersonInfoActivity.this).load(url.replace("/api", "")+personInfo.getPhotoPath()).into(binding.selectInfoPhoto); + Glide.with(SelectPersonInfoActivity.this).load(url.replace("/api", "") + personInfo.getPhotoPath()).into(binding.selectInfoPhoto); return; } Toast.makeText(SelectPersonInfoActivity.this, body.getMsg(), Toast.LENGTH_SHORT).show(); @@ -50,10 +117,55 @@ public class SelectPersonInfoActivity extends BaseActivity { } public void selectInfoPhoto(View view) { + if (personInfo == null) { + Toast.makeText(this, "请先查询人员信息", Toast.LENGTH_SHORT).show(); + return; + } + pictureDialog.setPath(url.replace("/api", "") + personInfo.getPhotoPath()); + pictureDialog.show(); + } + public void checkSelect(View view) { + if (personInfo == null) { + Toast.makeText(this, "请先查询人员信息", Toast.LENGTH_SHORT).show(); + return; + } + opv.show(); } public void selectInfoSubmit(View view) { + OkGo.post(url + "/insertRrecordPenalty") + .upRequestBody(RequestBody.create(JSON, gson.toJson(recordPenalty))) + .execute(new MyRecultCall(dialog, this) { + @Override + public void onSuccess(Response response) { + super.onSuccess(response); + MyResult body = response.body(); + if (body.getCode() == 0) { + finish(); + } + Toast.makeText(SelectPersonInfoActivity.this, body.getMsg(), Toast.LENGTH_SHORT).show(); + } + }); + + } + + @Override + public void onOptionsSelect(int options1, int options2, int options3, View v) { + String type = list1.get(options1); + String s = list2.get(options1).get(options2); + binding.selectPenalty.setText(s); + s = s.substring(s.indexOf("-")+1,s.length()); + Log.e("TAG", "onOptionsSelect:" + type + ", " + s); + PmBasePenaltyType penaltyType = new PmBasePenaltyType(); + penaltyType.setPenaltyInfo(s); + int index = list.indexOf(penaltyType); + PmBasePenaltyType penaltyType1 = list.get(index); + // 设置处罚类型 + recordPenalty.setPenaltyType(type); + recordPenalty.setPenaltyTypeCode(penaltyType1.getPenaltyTypeCode()); + recordPenalty.setPenaltyInfo(penaltyType1.getPenaltyInfo()); + recordPenalty.setPenaltyAmount(penaltyType1.getPenaltyAmount()); } } \ No newline at end of file diff --git a/app/src/main/java/com/example/beijing_daxing/been/PmBasePenaltyType.java b/app/src/main/java/com/example/beijing_daxing/been/PmBasePenaltyType.java new file mode 100644 index 0000000..6fcf486 --- /dev/null +++ b/app/src/main/java/com/example/beijing_daxing/been/PmBasePenaltyType.java @@ -0,0 +1,109 @@ +package com.example.beijing_daxing.been; + +import java.math.BigDecimal; +import java.util.Objects; + +/** + * 处罚类型维护对象 pm_base_penalty_type + * + * @author ruoyi + * @date 2025-11-27 + */ +public class PmBasePenaltyType { + + /** + * 处罚类型主键 + */ + private Long penaltyTypeId; + /** 父菜单ID */ + private Long parentId; + /** + * 类型编码 + */ + + private String penaltyTypeCode; + + /** + * 处罚说明 + */ + + private String penaltyInfo; + + /** + * 处罚金额 + */ + + private Double penaltyAmount; + + /** + * 类型状态 + */ + + private String typeState; + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + PmBasePenaltyType that = (PmBasePenaltyType) o; + + return Objects.equals(penaltyInfo, that.penaltyInfo); + } + + @Override + public int hashCode() { + return penaltyInfo != null ? penaltyInfo.hashCode() : 0; + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public Long getPenaltyTypeId() { + return penaltyTypeId; + } + + public void setPenaltyTypeId(Long penaltyTypeId) { + this.penaltyTypeId = penaltyTypeId; + } + + public String getPenaltyTypeCode() { + return penaltyTypeCode; + } + + public void setPenaltyTypeCode(String penaltyTypeCode) { + this.penaltyTypeCode = penaltyTypeCode; + } + + public String getPenaltyInfo() { + return penaltyInfo; + } + + public void setPenaltyInfo(String penaltyInfo) { + this.penaltyInfo = penaltyInfo; + } + + public Double getPenaltyAmount() { + return penaltyAmount; + } + + public void setPenaltyAmount(Double penaltyAmount) { + this.penaltyAmount = penaltyAmount; + } + + public String getTypeState() { + return typeState; + } + + public void setTypeState(String typeState) { + this.typeState = typeState; + } + + +} diff --git a/app/src/main/java/com/example/beijing_daxing/been/PmRecordPenalty.java b/app/src/main/java/com/example/beijing_daxing/been/PmRecordPenalty.java new file mode 100644 index 0000000..b9328f3 --- /dev/null +++ b/app/src/main/java/com/example/beijing_daxing/been/PmRecordPenalty.java @@ -0,0 +1,120 @@ +package com.example.beijing_daxing.been; + + +/** + * 处罚记录对象 pm_record_penalty + * + * @author ruoyi + * @date 2025-11-27 + */ +public class PmRecordPenalty { + + /** + * 处罚记录主键 + */ + private Long recordPenaltyId; + + /** + * 处罚类型 + */ + + private String penaltyType; + + /** + * 类型编码 + */ + + private String penaltyTypeCode; + + /** + * 处罚说明 + */ + + private String penaltyInfo; + + /** + * 处罚金额 + */ + + private Double penaltyAmount; + + /** + * 处罚人员 + */ + + private Long basePersonId; + + /** + * 处理状态 + */ + + private String processState; + + private String createBy; + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public Long getRecordPenaltyId() { + return recordPenaltyId; + } + + public void setRecordPenaltyId(Long recordPenaltyId) { + this.recordPenaltyId = recordPenaltyId; + } + + public String getPenaltyType() { + return penaltyType; + } + + public void setPenaltyType(String penaltyType) { + this.penaltyType = penaltyType; + } + + public String getPenaltyTypeCode() { + return penaltyTypeCode; + } + + public void setPenaltyTypeCode(String penaltyTypeCode) { + this.penaltyTypeCode = penaltyTypeCode; + } + + public String getPenaltyInfo() { + return penaltyInfo; + } + + public void setPenaltyInfo(String penaltyInfo) { + this.penaltyInfo = penaltyInfo; + } + + public Double getPenaltyAmount() { + return penaltyAmount; + } + + public void setPenaltyAmount(Double penaltyAmount) { + this.penaltyAmount = penaltyAmount; + } + + public Long getBasePersonId() { + return basePersonId; + } + + public void setBasePersonId(Long basePersonId) { + this.basePersonId = basePersonId; + } + + public String getProcessState() { + return processState; + } + + public void setProcessState(String processState) { + this.processState = processState; + } + + +} diff --git a/app/src/main/res/layout/activity_select_person_info.xml b/app/src/main/res/layout/activity_select_person_info.xml index 5388f86..828846a 100644 --- a/app/src/main/res/layout/activity_select_person_info.xml +++ b/app/src/main/res/layout/activity_select_person_info.xml @@ -150,13 +150,34 @@ /> + - + android:text="处罚提交" /> \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/icon_select.png b/app/src/main/res/mipmap-hdpi/icon_select.png new file mode 100644 index 0000000000000000000000000000000000000000..d6127f1aac1aba0b02a70b3f3c919046b74c5e1a GIT binary patch literal 466 zcmV;@0WJQCP)Px$j7da6R9Hvtl`l*JQ5?s=Y>*()XgC6mMx$Y((XjZC4Nt;N0+WCeP{KI^j)2I9 zJc~3M2^x(?BQR++5+vBpy_;;D0{7QZ-nHA_@B8`eyS?{w$g(Wsgr9>8@CJATyaC?8 z?*=xT4M;MH>2zxA104tiK-+CNolaHm-lupnnJ5zL_1YE*m&>KVgTdgRyo0--*X!Y- zShPjpu~b4V7TcS3bQ#rZHMA+UB#|Tpq9`8B(A`p(%+-B!ZV}_2{goz+$n$ zB_Wv4=Y}MFJ|8|Ph1ct~CcvggqY-X08AAfE^*X}gu;z?r1KWhpP6w4rMKh2c$mMdl zNF;Qf)h)o%p2}r(yWOL~@pv5fg@P_PJ7h?J4P2#C7>~z$0ijR`@2!?@xG90J*$jjb ztX3-($nAE6Qi?Ob|9=HodVerLKA%^CBuT<~G-?QLs(~$`(P-eU*;Ib7(`g8TU>I&m zfDPaMwD2rRrr?$Zmdm9A_INy}5im{N88mzi?SSrPZ~@-HH>^M3p>a!Ny#N3J07*qo IM6N<$f@Z|fm;e9( literal 0 HcmV?d00001