From 4f81808e8e6e78985b9f35c93abaef20bdb8505f Mon Sep 17 00:00:00 2001
From: yunuo970428 <405378304@qq.com>
Date: Tue, 18 Feb 2025 15:54:27 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=BA=93=E5=AD=98?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
yxt-as-ui/src/views/storage/inventory/inventory.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/yxt-as-ui/src/views/storage/inventory/inventory.vue b/yxt-as-ui/src/views/storage/inventory/inventory.vue
index f716d915df..3a798a8426 100644
--- a/yxt-as-ui/src/views/storage/inventory/inventory.vue
+++ b/yxt-as-ui/src/views/storage/inventory/inventory.vue
@@ -35,7 +35,7 @@
至
-
+
From 298803c3e83313b5cc570e02f4c53d49cd22203a Mon Sep 17 00:00:00 2001
From: wangpengfei <1928057482@qq.com>
Date: Tue, 18 Feb 2025 17:51:36 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../AdGroupDocumentsApplyService.java | 48 +++++++++----------
.../AdGroupSystemApplyService.java | 42 ++++++++--------
.../AdJdPermissionApplyService.java | 48 +++++++++----------
.../AdPlatformPermissionApplyService.java | 48 +++++++++----------
4 files changed, 89 insertions(+), 97 deletions(-)
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adgroupdocumentsapply/AdGroupDocumentsApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adgroupdocumentsapply/AdGroupDocumentsApplyService.java
index a675995833..414b719dd8 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adgroupdocumentsapply/AdGroupDocumentsApplyService.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adgroupdocumentsapply/AdGroupDocumentsApplyService.java
@@ -82,8 +82,8 @@ public class AdGroupDocumentsApplyService extends MybatisBaseService getSaveInit(String userSid, String orgPath) {
@@ -169,7 +169,7 @@ public class AdGroupDocumentsApplyService extends MybatisBaseService getFlowOperateTitle(NodeQuery query) {
+ // 默认失败返回
ResultBean rb = ResultBean.fireFail();
- //0 上一环节 1下一环节
+
+ // 获取next值和formVariables
int next = query.getNext();
- Map formVariables = query.getFormVariables();
- formVariables = getMap(formVariables, query.getBusinessSid());
+
+ // 获取并更新formVariables
+ Map formVariables = getMap(query.getFormVariables(), query.getBusinessSid());
query.setFormVariables(formVariables);
- String data = "";
- if (next == 0) {
- ResultBean> resultBean = oaFormService.getPreviousNodesForReject(query);
- if (resultBean.getSuccess()) {
- resultBean.getData().removeAll(Collections.singleton(null));
- data = resultBean.getData().get(0).getName();
- } else {
- return rb.setMsg(resultBean.getMsg());
- }
- } else if (next == 1) {
- ResultBean> resultBean = oaFormService.getNextNodesForSubmit(query);
- if (resultBean.getSuccess()) {
- resultBean.getData().removeAll(Collections.singleton(null));
- data = resultBean.getData().get(0).getName();
- } else {
- return rb.setMsg(resultBean.getMsg());
- }
- } else {
- return rb.setMsg("参数错误:next");
+
+ // 校验next参数是否有效(只允许0或1)
+ if (next != 0 && next != 1) {
+ return rb.setMsg("参数错误:next"); // 如果next不是0或1,返回错误信息
}
+
+ // 获取节点名称
+ String data = oaFormService.getNodeName(query, next);
+
+ // 如果data为null,表示未获取到有效的节点信息
+ if (data == null) {
+ return rb.setMsg("没有获取到节点信息"); // 返回错误消息
+ }
+
+ // 返回成功的结果和获取到的节点名称
return rb.success().setData(data);
}
public Map getMap(Map formVariables, String sid) {
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adgroupsystemapply/AdGroupSystemApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adgroupsystemapply/AdGroupSystemApplyService.java
index d3e82d294f..29cba1a7eb 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adgroupsystemapply/AdGroupSystemApplyService.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adgroupsystemapply/AdGroupSystemApplyService.java
@@ -202,32 +202,30 @@ public class AdGroupSystemApplyService extends MybatisBaseService getFlowOperateTitle(NodeQuery query) {
+ // 默认失败返回
ResultBean rb = ResultBean.fireFail();
- //0 上一环节 1下一环节
+
+ // 获取next值和formVariables
int next = query.getNext();
- Map formVariables = query.getFormVariables();
- formVariables = getMap(formVariables, query.getBusinessSid());
+
+ // 获取并更新formVariables
+ Map formVariables = getMap(query.getFormVariables(), query.getBusinessSid());
query.setFormVariables(formVariables);
- String data = "";
- if (next == 0) {
- ResultBean> resultBean = oaFormService.getPreviousNodesForReject(query);
- if (resultBean.getSuccess()) {
- resultBean.getData().removeAll(Collections.singleton(null));
- data = resultBean.getData().get(0).getName();
- } else {
- return rb.setMsg(resultBean.getMsg());
- }
- } else if (next == 1) {
- ResultBean> resultBean = oaFormService.getNextNodesForSubmit(query);
- if (resultBean.getSuccess()) {
- resultBean.getData().removeAll(Collections.singleton(null));
- data = resultBean.getData().get(0).getName();
- } else {
- return rb.setMsg(resultBean.getMsg());
- }
- } else {
- return rb.setMsg("参数错误:next");
+
+ // 校验next参数是否有效(只允许0或1)
+ if (next != 0 && next != 1) {
+ return rb.setMsg("参数错误:next"); // 如果next不是0或1,返回错误信息
}
+
+ // 获取节点名称
+ String data = oaFormService.getNodeName(query, next);
+
+ // 如果data为null,表示未获取到有效的节点信息
+ if (data == null) {
+ return rb.setMsg("没有获取到节点信息"); // 返回错误消息
+ }
+
+ // 返回成功的结果和获取到的节点名称
return rb.success().setData(data);
}
public Map getMap(Map formVariables, String sid) {
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adjdpermissionapply/AdJdPermissionApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adjdpermissionapply/AdJdPermissionApplyService.java
index 4eb8b36f98..aac4e9826c 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adjdpermissionapply/AdJdPermissionApplyService.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adjdpermissionapply/AdJdPermissionApplyService.java
@@ -64,8 +64,8 @@ public class AdJdPermissionApplyService extends MybatisBaseService getSaveInit(String userSid, String orgPath) {
@@ -138,7 +138,7 @@ public class AdJdPermissionApplyService extends MybatisBaseService getFlowOperateTitle(NodeQuery query) {
+ // 默认失败返回
ResultBean rb = ResultBean.fireFail();
- //0 上一环节 1下一环节
+
+ // 获取next值和formVariables
int next = query.getNext();
- Map formVariables = query.getFormVariables();
- formVariables = getMap(formVariables, query.getBusinessSid());
+
+ // 获取并更新formVariables
+ Map formVariables = getMap(query.getFormVariables(), query.getBusinessSid());
query.setFormVariables(formVariables);
- String data = "";
- if (next == 0) {
- ResultBean> resultBean = oaFormService.getPreviousNodesForReject(query);
- if (resultBean.getSuccess()) {
- resultBean.getData().removeAll(Collections.singleton(null));
- data = resultBean.getData().get(0).getName();
- } else {
- return rb.setMsg(resultBean.getMsg());
- }
- } else if (next == 1) {
- ResultBean> resultBean = oaFormService.getNextNodesForSubmit(query);
- if (resultBean.getSuccess()) {
- resultBean.getData().removeAll(Collections.singleton(null));
- data = resultBean.getData().get(0).getName();
- } else {
- return rb.setMsg(resultBean.getMsg());
- }
- } else {
- return rb.setMsg("参数错误:next");
+
+ // 校验next参数是否有效(只允许0或1)
+ if (next != 0 && next != 1) {
+ return rb.setMsg("参数错误:next"); // 如果next不是0或1,返回错误信息
}
+
+ // 获取节点名称
+ String data = oaFormService.getNodeName(query, next);
+
+ // 如果data为null,表示未获取到有效的节点信息
+ if (data == null) {
+ return rb.setMsg("没有获取到节点信息"); // 返回错误消息
+ }
+
+ // 返回成功的结果和获取到的节点名称
return rb.success().setData(data);
}
public Map getMap(Map formVariables, String sid) {
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adplatformpermissionapply/AdPlatformPermissionApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adplatformpermissionapply/AdPlatformPermissionApplyService.java
index dabb46309e..b3d3ce704d 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adplatformpermissionapply/AdPlatformPermissionApplyService.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adplatformpermissionapply/AdPlatformPermissionApplyService.java
@@ -61,8 +61,8 @@ public class AdPlatformPermissionApplyService extends MybatisBaseService getFlowOperateTitle(NodeQuery query) {
+ // 默认失败返回
ResultBean rb = ResultBean.fireFail();
- //0 上一环节 1下一环节
+
+ // 获取next值和formVariables
int next = query.getNext();
- Map formVariables = query.getFormVariables();
- formVariables = getMap(formVariables, query.getBusinessSid());
+
+ // 获取并更新formVariables
+ Map formVariables = getMap(query.getFormVariables(), query.getBusinessSid());
query.setFormVariables(formVariables);
- String data = "";
- if (next == 0) {
- ResultBean> resultBean = oaFormService.getPreviousNodesForReject(query);
- if (resultBean.getSuccess()) {
- resultBean.getData().removeAll(Collections.singleton(null));
- data = resultBean.getData().get(0).getName();
- } else {
- return rb.setMsg(resultBean.getMsg());
- }
- } else if (next == 1) {
- ResultBean> resultBean = oaFormService.getNextNodesForSubmit(query);
- if (resultBean.getSuccess()) {
- resultBean.getData().removeAll(Collections.singleton(null));
- data = resultBean.getData().get(0).getName();
- } else {
- return rb.setMsg(resultBean.getMsg());
- }
- } else {
- return rb.setMsg("参数错误:next");
+
+ // 校验next参数是否有效(只允许0或1)
+ if (next != 0 && next != 1) {
+ return rb.setMsg("参数错误:next"); // 如果next不是0或1,返回错误信息
}
+
+ // 获取节点名称
+ String data = oaFormService.getNodeName(query, next);
+
+ // 如果data为null,表示未获取到有效的节点信息
+ if (data == null) {
+ return rb.setMsg("没有获取到节点信息"); // 返回错误消息
+ }
+
+ // 返回成功的结果和获取到的节点名称
return rb.success().setData(data);
}
public Map getMap(Map formVariables, String sid) {
From f5aaebf50fa11ebae8af9a82fb73dd67c73886d4 Mon Sep 17 00:00:00 2001
From: fanzongzhe0036
Date: Tue, 18 Feb 2025 18:01:34 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E8=B5=84=E4=BA=A7?=
=?UTF-8?q?=E8=B4=B9=E7=94=A8=E6=8A=A5=E9=94=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../api/sysorganization/OrgDeptObjVo.java | 24 ++
.../sysorganization/SysOrganizationFeign.java | 7 +
.../SysOrganizationFeignFallback.java | 5 +
.../sysorganization/SysOrganizationRest.java | 16 +
.../oa/api/AdPurchaseAssetApplyRest.java | 11 +
.../oa/api/AdReimbursedAssetApplyRest.java | 92 +++++
.../AdPurchaseAssetApplyMapper.java | 5 +
.../AdPurchaseAssetApplyMapper.xml | 6 +
.../AdPurchaseAssetApplyService.java | 34 +-
.../PurchaseAssetApplyVo.java | 10 +
.../AdPurchaseAssetListDetailsVo.java | 6 +-
.../AdReimbursedAssetApply.java | 82 +++++
.../AdReimbursedAssetApplyDetailVo.java | 52 +++
.../AdReimbursedAssetApplyDto.java | 105 ++++++
.../AdReimbursedAssetApplyMapper.java | 37 ++
.../AdReimbursedAssetApplyMapper.xml | 44 +++
.../AdReimbursedAssetApplyService.java | 346 ++++++++++++++++++
.../AdReimbursedAssetApplyVo.java | 94 +++++
.../AdReimbursedAssetDetails.java | 60 +++
.../AdReimbursedAssetDetailsMapper.java | 42 +++
.../AdReimbursedAssetDetailsMapper.xml | 5 +
.../AdReimbursedAssetDetailsService.java | 62 ++++
.../AdReimbursedAssetDetailsVo.java | 26 ++
.../AdReimbursedAssetListDetailsVo.java | 69 ++++
.../adreimbursedassetdetails/AssetObjVo.java | 16 +
25 files changed, 1249 insertions(+), 7 deletions(-)
create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/OrgDeptObjVo.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdReimbursedAssetApplyRest.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/PurchaseAssetApplyVo.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApply.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyDetailVo.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyDto.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyMapper.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyMapper.xml
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyService.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyVo.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetails.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsMapper.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsMapper.xml
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsService.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsVo.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetListDetailsVo.java
create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AssetObjVo.java
diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/OrgDeptObjVo.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/OrgDeptObjVo.java
new file mode 100644
index 0000000000..1ccbb9aaa1
--- /dev/null
+++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/OrgDeptObjVo.java
@@ -0,0 +1,24 @@
+package com.yxt.anrui.portal.api.sysorganization;
+
+import lombok.Data;
+
+import java.util.Map;
+
+@Data
+public class OrgDeptObjVo {
+
+
+ private String id;
+ private String dictValue;
+
+ private Map extra;
+
+ // 静态方法,直接通过方法创建对象并赋值
+ public static OrgDeptObjVo of(String id, String dictValue) {
+ OrgDeptObjVo formCommon = new OrgDeptObjVo();
+ formCommon.setId(id);
+ formCommon.setDictValue(dictValue);
+ return formCommon;
+ }
+
+}
diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java
index 34a4829dd1..c13455df07 100644
--- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java
+++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java
@@ -245,4 +245,11 @@ public interface SysOrganizationFeign {
@ResponseBody
@ApiOperation("根据组织全路径查询该组织下的所有部门")
ResultBean> getAllDept(@RequestParam("orgPath") String orgPath);
+
+ @GetMapping("/getAllDeptObj")
+ @ResponseBody
+ @ApiOperation("根据组织全路径查询该组织下的所有部门返回app下拉选格式")
+ ResultBean> getAllDeptObj(@RequestParam(value = "orgPath", required = false) String orgPath,
+ @RequestParam(value = "userSid", required = false) String userSid,
+ @RequestParam(value = "name", required = false) String name);
}
diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java
index c214457fba..7846d11672 100644
--- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java
+++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java
@@ -251,4 +251,9 @@ public class SysOrganizationFeignFallback implements SysOrganizationFeign {
public ResultBean> getAllDept(String orgPath) {
return null;
}
+
+ @Override
+ public ResultBean> getAllDeptObj(String orgPath, String userSid, String name) {
+ return null;
+ }
}
diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java
index cf03aa7f39..de06698b7c 100644
--- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java
+++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java
@@ -532,4 +532,20 @@ public class SysOrganizationRest implements SysOrganizationFeign {
public ResultBean> getAllDept(String orgPath) {
return sysOrganizationService.getAllDept(orgPath);
}
+
+ @Override
+ public ResultBean> getAllDeptObj(String orgPath, String userSid, String name) {
+ ResultBean rb = ResultBean.fireFail();
+ List list = new ArrayList<>();
+ List deptVos = sysOrganizationService.getAllDept(orgPath).getData();
+ if (!deptVos.isEmpty()) {
+ for (OrgDeptVo deptVo : deptVos) {
+ OrgDeptObjVo objVo = new OrgDeptObjVo();
+ objVo.setId(deptVo.getSid());
+ objVo.setDictValue(deptVo.getName());
+ list.add(objVo);
+ }
+ }
+ return rb.success().setData(list);
+ }
}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdPurchaseAssetApplyRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdPurchaseAssetApplyRest.java
index c9d0cd7e5d..d2d0186c89 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdPurchaseAssetApplyRest.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdPurchaseAssetApplyRest.java
@@ -4,6 +4,7 @@ import com.yxt.anrui.oa.biz.adpurchaseassetapply.AdPurchaseAssetApplyDetailVo;
import com.yxt.anrui.oa.biz.adpurchaseassetapply.AdPurchaseAssetApplyDto;
import com.yxt.anrui.oa.biz.adpurchaseassetapply.AdPurchaseAssetApplyService;
import com.yxt.anrui.oa.biz.adpurchaseassetapply.AdPurchaseAssetApplyVo;
+import com.yxt.anrui.oa.biz.adreimbursedassetdetails.AssetObjVo;
import com.yxt.anrui.oa.biz.oaform.flowable.CompleteDto;
import com.yxt.anrui.oa.biz.oaform.flowable.NodeQuery;
import com.yxt.anrui.oa.biz.oaform.flowable.TaskDto;
@@ -14,6 +15,7 @@ import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
+import java.util.List;
@RestController
@RequestMapping("v1/AdPurchaseAssetApply")
@@ -88,5 +90,14 @@ public class AdPurchaseAssetApplyRest {
return adPurchaseAssetApplyService.getFlowOperateTitle(query);
}
+ @GetMapping("/getPurchaseAssetList")
+ @ResponseBody
+ @ApiOperation("查询固定资产采购申请列表")
+ ResultBean> getPurchaseAssetList(@RequestParam(value = "orgPath", required = false) String orgPath,
+ @RequestParam(value = "userSid", required = false) String userSid,
+ @RequestParam(value = "name", required = false) String name) {
+ return adPurchaseAssetApplyService.getPurchaseAssetList(orgPath,userSid,name);
+ }
+
}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdReimbursedAssetApplyRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdReimbursedAssetApplyRest.java
new file mode 100644
index 0000000000..df0d63a010
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdReimbursedAssetApplyRest.java
@@ -0,0 +1,92 @@
+package com.yxt.anrui.oa.api;
+
+import com.yxt.anrui.oa.biz.adreimbursedassetapply.AdReimbursedAssetApplyDetailVo;
+import com.yxt.anrui.oa.biz.adreimbursedassetapply.AdReimbursedAssetApplyDto;
+import com.yxt.anrui.oa.biz.adreimbursedassetapply.AdReimbursedAssetApplyService;
+import com.yxt.anrui.oa.biz.adreimbursedassetapply.AdReimbursedAssetApplyVo;
+import com.yxt.anrui.oa.biz.oaform.flowable.CompleteDto;
+import com.yxt.anrui.oa.biz.oaform.flowable.NodeQuery;
+import com.yxt.anrui.oa.biz.oaform.flowable.TaskDto;
+import com.yxt.common.core.result.ResultBean;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.openfeign.SpringQueryMap;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+@RestController
+@RequestMapping("v1/AdReimbursedAssetApply")
+public class AdReimbursedAssetApplyRest {
+
+
+ @Autowired
+ private AdReimbursedAssetApplyService adReimbursedAssetApplyService;
+
+ @ApiOperation("初始化(新增或修改)")
+ @GetMapping({"/getInit", "/getInit/{sid}"})
+ public ResultBean getInit(
+ @PathVariable(value = "sid", required = false) String sid,
+ @RequestParam(value = "userSid", required = false) String userSid,
+ @RequestParam(value = "orgPath", required = false) String orgPath) {
+ ResultBean rb = ResultBean.fireFail();
+ if (sid == null || sid.isEmpty()) {
+ // 执行新增初始化
+ if (userSid == null || orgPath == null) {
+ return rb.setMsg("userSid和orgPath不能为空");
+ }
+ return adReimbursedAssetApplyService.getSaveInit(userSid, orgPath);
+ } else {
+ // 执行修改初始化
+ return adReimbursedAssetApplyService.getUpdateInit(sid);
+ }
+ }
+
+ @ApiOperation("新增或修改")
+ @PostMapping("/save")
+ public ResultBean save(@RequestBody AdReimbursedAssetApplyDto dto) {
+ return adReimbursedAssetApplyService.saveOrUpdateDto(dto);
+ }
+
+ @ApiOperation("根据sid批量删除")
+ @DeleteMapping("/delBySids")
+ public ResultBean delBySids(@RequestBody String[] sids) {
+ ResultBean rb = ResultBean.fireFail();
+ adReimbursedAssetApplyService.delAll(sids);
+ return rb.success();
+ }
+
+ @ApiOperation("详情")
+ @GetMapping("/details/{sid}")
+ ResultBean details(@PathVariable("sid") String sid
+ , @RequestParam(value = "application", required = false) String application) {
+ return adReimbursedAssetApplyService.details(sid,application);
+ }
+
+ @ApiOperation("提交审批流程")
+ @PostMapping("/submit")
+ public ResultBean submit(@RequestBody @Valid AdReimbursedAssetApplyDto dto) {
+ return adReimbursedAssetApplyService.submit(dto);
+ }
+
+ @ApiOperation(value = "办理(同意)")
+ @PutMapping("/complete")
+ public ResultBean complete(@Valid @RequestBody CompleteDto dto) {
+ return adReimbursedAssetApplyService.complete(dto);
+ }
+
+ @ApiOperation(value = "驳回任务")
+ @PutMapping(value = "/reject")
+ public ResultBean reject(@Valid @RequestBody TaskDto dto) {
+ return adReimbursedAssetApplyService.reject(dto);
+ }
+
+ @ApiOperation("获取流程操作标题")
+ @GetMapping("/getFlowOperateTitle")
+ @ResponseBody
+ ResultBean getFlowOperateTitle(@SpringQueryMap NodeQuery query) {
+ return adReimbursedAssetApplyService.getFlowOperateTitle(query);
+ }
+
+
+}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/AdPurchaseAssetApplyMapper.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/AdPurchaseAssetApplyMapper.java
index 3084c96ae8..1c8ea307eb 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/AdPurchaseAssetApplyMapper.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/AdPurchaseAssetApplyMapper.java
@@ -27,6 +27,9 @@ package com.yxt.anrui.oa.biz.adpurchaseassetapply;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
@Mapper
public interface AdPurchaseAssetApplyMapper extends BaseMapper {
@@ -34,4 +37,6 @@ public interface AdPurchaseAssetApplyMapper extends BaseMapper selListByUserSid(@Param("userSid") String userSid);
}
\ No newline at end of file
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/AdPurchaseAssetApplyMapper.xml b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/AdPurchaseAssetApplyMapper.xml
index 42e7755bbd..1775027ffb 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/AdPurchaseAssetApplyMapper.xml
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/AdPurchaseAssetApplyMapper.xml
@@ -33,4 +33,10 @@
from ad_purchase_asset_details
where mainSid = #{sid}
+
\ No newline at end of file
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/AdPurchaseAssetApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/AdPurchaseAssetApplyService.java
index 2366914700..600cd4d7f3 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/AdPurchaseAssetApplyService.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/AdPurchaseAssetApplyService.java
@@ -29,6 +29,8 @@ import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.oa.biz.adpurchaseassetdetails.AdPurchaseAssetDetailsDto;
import com.yxt.anrui.oa.biz.adpurchaseassetdetails.AdPurchaseAssetDetailsService;
import com.yxt.anrui.oa.biz.adpurchaseassetdetails.AdPurchaseAssetDetailsVo;
+import com.yxt.anrui.oa.biz.adreimbursedassetdetails.AdReimbursedAssetDetailsVo;
+import com.yxt.anrui.oa.biz.adreimbursedassetdetails.AssetObjVo;
import com.yxt.anrui.oa.biz.oaappendix.OaAppendixService;
import com.yxt.anrui.oa.biz.oaform.*;
import com.yxt.anrui.oa.biz.oaform.flowable.*;
@@ -42,10 +44,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
@Service
public class AdPurchaseAssetApplyService extends MybatisBaseService {
@@ -332,4 +331,31 @@ public class AdPurchaseAssetApplyService extends MybatisBaseService> getPurchaseAssetList(String orgPath, String userSid, String name) {
+ ResultBean rb = ResultBean.fireFail();
+ List list = new ArrayList<>();
+ List applyList = baseMapper.selListByUserSid(userSid);
+ if (!applyList.isEmpty()) {
+ for (PurchaseAssetApplyVo vo : applyList) {
+ AssetObjVo objVo = new AssetObjVo();
+ objVo.setId(vo.getSid());
+ objVo.setDictValue(vo.getBillNo());
+ List detailsVos = adPurchaseAssetDetailsService.getUpdateInit(vo.getSid());
+ List v = new ArrayList<>();
+ if (!detailsVos.isEmpty()) {
+ for (AdPurchaseAssetDetailsVo detailsVo : detailsVos) {
+ AdReimbursedAssetDetailsVo d = new AdReimbursedAssetDetailsVo();
+ BeanUtil.copyProperties(detailsVo,d);
+ v.add(d);
+ }
+ }
+ Map> extra = new HashMap<>();
+ extra.put("list",v);
+ objVo.setExtra(extra);
+ list.add(objVo);
+ }
+ }
+ return rb.success().setData(list);
+ }
}
\ No newline at end of file
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/PurchaseAssetApplyVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/PurchaseAssetApplyVo.java
new file mode 100644
index 0000000000..c3a8ba1bce
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetapply/PurchaseAssetApplyVo.java
@@ -0,0 +1,10 @@
+package com.yxt.anrui.oa.biz.adpurchaseassetapply;
+
+import lombok.Data;
+
+@Data
+public class PurchaseAssetApplyVo {
+
+ private String sid;
+ private String billNo;
+}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetdetails/AdPurchaseAssetListDetailsVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetdetails/AdPurchaseAssetListDetailsVo.java
index 91a0006871..fa087d3f4c 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetdetails/AdPurchaseAssetListDetailsVo.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpurchaseassetdetails/AdPurchaseAssetListDetailsVo.java
@@ -59,11 +59,11 @@ public class AdPurchaseAssetListDetailsVo implements Vo {
private String goodsSkuOwnSpec; // 规格型号
@ApiModelProperty("单位")
private String unit; // 单位
- @ApiModelProperty("预计采购单价")
+ @ApiModelProperty("采购单价")
private String cost; // 预计采购单价
- @ApiModelProperty("预计采购数量")
+ @ApiModelProperty("采购数量")
private String estimateCount; // 预计采购数量
- @ApiModelProperty("预计采购金额")
+ @ApiModelProperty("采购金额")
private String estimateMoney; // 预计采购金额
}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApply.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApply.java
new file mode 100644
index 0000000000..3422aba5be
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApply.java
@@ -0,0 +1,82 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.anrui.oa.biz.adreimbursedassetapply;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.yxt.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "固定资产费用报销", description = "固定资产费用报销")
+@TableName("ad_reimbursed_asset_apply")
+public class AdReimbursedAssetApply extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("基础表单sid")
+ private String formSid; // 基础表单sid
+ @ApiModelProperty("关联审批sid列表,英文逗号分隔")
+ private String linkFormSids; // 关联审批sid列表,英文逗号分隔
+ @ApiModelProperty("固定资产采购申请编号")
+ private String sourceBillNo; // 固定资产采购申请编号
+
+ @ApiModelProperty("报销人sid")
+ private String reimbursementSid; // 报销人sid
+ @ApiModelProperty("报销人")
+ private String reimbursement; // 报销人
+ @ApiModelProperty("费用所属部门sid")
+ private String feesDeptSid; // 费用所属部门sid
+ @ApiModelProperty("费用所属部门")
+ private String feesDept; // 费用所属部门
+ @ApiModelProperty("是否有固定资产采购申请(1是,0否)")
+ private String isPurchaseKey; // 是否有固定资产采购申请(1是,0否)
+ @ApiModelProperty("是否有固定资产采购申请(1是,0否)")
+ private String isPurchaseValue; // 是否有固定资产采购申请(1是,0否)
+ @ApiModelProperty("是否超固定资产采购申请范围(1是,0否)")
+ private String isBeyondKey; // 是否超固定资产采购申请范围(1是,0否)
+ @ApiModelProperty("是否超固定资产采购申请范围(1是,0否)")
+ private String isBeyondValue; // 是否超固定资产采购申请范围(1是,0否)
+ @ApiModelProperty("固定资产类别key")
+ private String assetTypeKey; // 固定资产类别key
+ @ApiModelProperty("固定资产类别value")
+ private String assetTypeValue; // 固定资产类别value
+ @ApiModelProperty("是否有服务站机器设备(1是,0否)")
+ private String isStationKey; // 是否有服务站机器设备(1是,0否)
+ private String isStationValue; // 是否有服务站机器设备(1是,0否)
+
+ @ApiModelProperty("合计采购金额")
+ private BigDecimal totalAmount; // 合计采购金额
+ @ApiModelProperty("报销金额")
+ private BigDecimal reimbursedAmount; // 报销金额
+ @ApiModelProperty("现金、打卡或平借款")
+ private String reimbursedWay; // 现金、打卡或平借款
+ @ApiModelProperty("打卡请输入(姓名、卡号、开户行)")
+ private String reimbursedInfo; // 打卡请输入(姓名、卡号、开户行)
+
+}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyDetailVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyDetailVo.java
new file mode 100644
index 0000000000..28c435ebdc
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyDetailVo.java
@@ -0,0 +1,52 @@
+package com.yxt.anrui.oa.biz.adreimbursedassetapply;
+
+import com.yxt.anrui.oa.biz.adreimbursedassetdetails.AdReimbursedAssetListDetailsVo;
+import com.yxt.anrui.oa.biz.oaform.OaFormCommonVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2025/1/21
+ **/
+@Data
+public class AdReimbursedAssetApplyDetailVo extends OaFormCommonVo {
+
+
+
+
+ @ApiModelProperty("备注")
+ private String remarks;
+ @ApiModelProperty("固定资产采购申请编号")
+ private String sourceBillNo; // 固定资产采购申请编号
+
+ @ApiModelProperty("报销人")
+ private String reimbursement; // 报销人
+ @ApiModelProperty("费用所属部门")
+ private String feesDept; // 费用所属部门
+ @ApiModelProperty("是否有固定资产采购申请(1是,0否)")
+ private String isPurchaseValue; // 是否有固定资产采购申请(1是,0否)
+ @ApiModelProperty("是否超固定资产采购申请范围(1是,0否)")
+ private String isBeyondValue; // 是否超固定资产采购申请范围(1是,0否)
+ @ApiModelProperty("固定资产类别value")
+ private String assetTypeValue; // 固定资产类别value
+ private String isStationValue; // 是否有服务站机器设备(1是,0否)
+
+ @ApiModelProperty("合计采购金额")
+ private String totalAmount; // 合计采购金额
+ @ApiModelProperty("报销金额")
+ private String reimbursedAmount; // 报销金额
+ @ApiModelProperty("现金、打卡或平借款")
+ private String reimbursedWay; // 现金、打卡或平借款
+ @ApiModelProperty("打卡请输入(姓名、卡号、开户行)")
+ private String reimbursedInfo; // 打卡请输入(姓名、卡号、开户行)
+
+
+
+ private List list = new ArrayList<>();
+
+}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyDto.java
new file mode 100644
index 0000000000..4de42816da
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyDto.java
@@ -0,0 +1,105 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.anrui.oa.biz.adreimbursedassetapply;
+
+
+import com.yxt.anrui.oa.biz.adreimbursedassetdetails.AssetObjVo;
+import com.yxt.anrui.oa.biz.oaform.FormCommon;
+import com.yxt.anrui.oa.biz.oaform.OaFormDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Project: oa(驻外人员认定申请)
+ * File: AdExpatriatesApplyDto.java
+ * Class: com.yxt.anrui.oa.api.adexpatriatesapply.AdExpatriatesApplyDto
+ * Description: 驻外人员认定申请 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-01-16 15:22:53
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel(value = "固定资产费用报销 数据传输对象", description = "固定资产费用报销 数据传输对象")
+public class AdReimbursedAssetApplyDto extends OaFormDto {
+
+
+
+
+ @ApiModelProperty("备注")
+ private String remarks;
+
+
+ @ApiModelProperty("报销人sid")
+ private String reimbursementSid; // 报销人sid
+ @ApiModelProperty("报销人")
+ private String reimbursement; // 报销人
+
+ private FormCommon feesDeptObj;
+ @ApiModelProperty("费用所属部门sid")
+ private String feesDeptSid; // 费用所属部门sid
+ @ApiModelProperty("费用所属部门")
+ private String feesDept; // 费用所属部门
+
+ private FormCommon isPurchaseObj;
+ @ApiModelProperty("是否有固定资产采购申请(1是,0否)")
+ private String isPurchaseKey; // 是否有固定资产采购申请(1是,0否)
+ @ApiModelProperty("是否有固定资产采购申请(1是,0否)")
+ private String isPurchaseValue; // 是否有固定资产采购申请(1是,0否)
+
+ private FormCommon isBeyondObj;
+ @ApiModelProperty("是否超固定资产采购申请范围(1是,0否)")
+ private String isBeyondKey; // 是否超固定资产采购申请范围(1是,0否)
+ @ApiModelProperty("是否超固定资产采购申请范围(1是,0否)")
+ private String isBeyondValue; // 是否超固定资产采购申请范围(1是,0否)
+
+ private FormCommon assetTypeObj;
+ @ApiModelProperty("固定资产类别key")
+ private String assetTypeKey; // 固定资产类别key
+ @ApiModelProperty("固定资产类别value")
+ private String assetTypeValue; // 固定资产类别value
+
+ private FormCommon isStationObj;
+ @ApiModelProperty("是否有服务站机器设备(1是,0否)")
+ private String isStationKey; // 是否有服务站机器设备(1是,0否)
+ private String isStationValue; // 是否有服务站机器设备(1是,0否)
+
+ @ApiModelProperty("合计采购金额")
+ private String totalAmount; // 合计采购金额
+ @ApiModelProperty("报销金额")
+ private String reimbursedAmount; // 报销金额
+ @ApiModelProperty("现金、打卡或平借款")
+ private String reimbursedWay; // 现金、打卡或平借款
+ @ApiModelProperty("打卡请输入(姓名、卡号、开户行)")
+ private String reimbursedInfo; // 打卡请输入(姓名、卡号、开户行)
+
+ private AssetObjVo assetListObj; //固定资产采购编号及列表
+
+}
\ No newline at end of file
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyMapper.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyMapper.java
new file mode 100644
index 0000000000..dd33a869ea
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyMapper.java
@@ -0,0 +1,37 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.anrui.oa.biz.adreimbursedassetapply;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface AdReimbursedAssetApplyMapper extends BaseMapper {
+
+ int selectBySid(String join);
+
+ AdReimbursedAssetApplyDetailVo details(String sid);
+}
\ No newline at end of file
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyMapper.xml b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyMapper.xml
new file mode 100644
index 0000000000..28aa6a6444
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyMapper.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyService.java
new file mode 100644
index 0000000000..6924c43f3c
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyService.java
@@ -0,0 +1,346 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.anrui.oa.biz.adreimbursedassetapply;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.yxt.anrui.oa.biz.adreimbursedassetdetails.AdReimbursedAssetDetailsService;
+import com.yxt.anrui.oa.biz.adreimbursedassetdetails.AdReimbursedAssetDetailsVo;
+import com.yxt.anrui.oa.biz.adreimbursedassetdetails.AssetObjVo;
+import com.yxt.anrui.oa.biz.oaappendix.OaAppendixService;
+import com.yxt.anrui.oa.biz.oaform.*;
+import com.yxt.anrui.oa.biz.oaform.flowable.*;
+import com.yxt.anrui.oa.feign.flowable.flow.ProcDefEnum;
+import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationFeign;
+import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationVo;
+import com.yxt.anrui.oa.feign.sysuser.SysUserFeign;
+import com.yxt.anrui.oa.feign.sysuser.SysUserVo;
+import com.yxt.common.base.service.MybatisBaseService;
+import com.yxt.common.core.result.ResultBean;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class AdReimbursedAssetApplyService extends MybatisBaseService {
+
+ @Autowired
+ private OaAppendixService oaAppendixService;
+ @Autowired
+ private OaFormService oaFormService;
+ @Autowired
+ private AdReimbursedAssetDetailsService adReimbursedAssetDetailsService;
+ @Autowired
+ private SysOrganizationFeign sysOrganizationFeign;
+ @Autowired
+ private SysUserFeign sysUserFeign;
+
+ public ResultBean getSaveInit(String userSid, String orgPath) {
+ ResultBean rb = ResultBean.fireFail();
+ AdReimbursedAssetApplyVo adReimbursedAssetApplyVo = new AdReimbursedAssetApplyVo();
+ adReimbursedAssetApplyVo.setCreateBySid(userSid);
+ adReimbursedAssetApplyVo.setOrgSidPath(orgPath);
+ adReimbursedAssetApplyVo.setReimbursementSid(userSid);
+ SysUserVo userVo = sysUserFeign.fetchBySid(userSid).getData();
+ if (null != userVo) {
+ adReimbursedAssetApplyVo.setReimbursement(userVo.getName());
+ }
+ return rb.success().setData(adReimbursedAssetApplyVo);
+ }
+
+ public ResultBean getUpdateInit(String sid) {
+ ResultBean rb = ResultBean.fireFail();
+ AdReimbursedAssetApplyVo applyVo = new AdReimbursedAssetApplyVo();
+ AdReimbursedAssetApply apply = fetchBySid(sid);
+ if (apply == null) {
+ return rb.setMsg("该申请不存在");
+ }
+ OaForm oaForm = oaFormService.fetchBySid(sid);
+ applyVo.setTaskId(oaForm.getTaskId());
+ applyVo.setProcInsId(oaForm.getProcInstId());
+ //根据部门sid获取orgPath并赋值
+ SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(oaForm.getDeptSid()).getData();
+ String orgSidPath = organizationVo.getOrgSidPath();
+ applyVo.setOrgSidPath(orgSidPath);
+ applyVo.setCreateBySid(oaForm.getCreateBySid());
+ BeanUtil.copyProperties(apply, applyVo);
+ FormCommon assetTypeObj = FormCommon.of(apply.getAssetTypeKey(), apply.getAssetTypeValue());
+ applyVo.setAssetTypeObj(assetTypeObj);
+ FormCommon isStationObj = FormCommon.of(apply.getIsStationKey(), apply.getIsStationValue());
+ applyVo.setIsStationObj(isStationObj);
+ FormCommon obj1 = FormCommon.of(apply.getFeesDeptSid(), apply.getFeesDept());
+ applyVo.setFeesDeptObj(obj1);
+ FormCommon obj2 = FormCommon.of(apply.getIsPurchaseKey(), apply.getIsPurchaseValue());
+ applyVo.setIsPurchaseObj(obj2);
+ FormCommon obj3 = FormCommon.of(apply.getIsBeyondKey(), apply.getIsBeyondValue());
+ applyVo.setIsBeyondObj(obj3);
+ if (StringUtils.isNotBlank(apply.getLinkFormSids())) {
+ AssetObjVo assetObj = new AssetObjVo();
+ assetObj.setId(apply.getLinkFormSids());
+ assetObj.setDictValue(apply.getSourceBillNo());
+ List list = adReimbursedAssetDetailsService.getUpdateInit(sid);
+ list.removeAll(Collections.singleton(null));
+ if (!list.isEmpty()) {
+ Map> extra = new HashMap<>();
+ extra.put("list", list);
+ assetObj.setExtra(extra);
+ }
+ applyVo.setAssetListObj(assetObj);
+ }
+ applyVo.setSid(sid);
+ return rb.success().setData(applyVo);
+ }
+
+ public ResultBean saveOrUpdateDto(AdReimbursedAssetApplyDto dto) {
+ ResultBean rb = ResultBean.fireFail();
+ String sid = dto.getSid();
+ AssetObjVo assetListObj = dto.getAssetListObj();
+ String linkSid = "";
+ String sourceBillNo = "";
+ if (null != assetListObj) {
+ if (StringUtils.isNotBlank(assetListObj.getId())) {
+ linkSid = assetListObj.getId();
+ }
+ if (StringUtils.isNotBlank(assetListObj.getDictValue())) {
+ sourceBillNo = assetListObj.getDictValue();
+ }
+ }
+ Map> extra = assetListObj.getExtra();
+ if (StringUtils.isBlank(sid)) {
+ // 新建操作
+ AdReimbursedAssetApply entity = new AdReimbursedAssetApply();
+ BeanUtil.copyProperties(dto, entity, "sid");
+ entity.setLinkFormSids(linkSid);
+ entity.setSourceBillNo(sourceBillNo);
+ dto.setBillNo("GDZCFYBXSQ");
+ dto.setSid(entity.getSid());
+ ResultBean resultBean = oaFormService.saveOaForm(dto);
+
+ if (!resultBean.getSuccess()) {
+ return rb;
+ }
+
+ entity.setFormSid(resultBean.getData());
+ baseMapper.insert(entity);
+ sid = entity.getSid();
+ } else {
+ // 更新操作
+ AdReimbursedAssetApply entity = fetchBySid(sid);
+ BeanUtil.copyProperties(dto, entity, "id", "sid");
+ entity.setLinkFormSids(linkSid);
+ entity.setSourceBillNo(sourceBillNo);
+ baseMapper.updateById(entity);
+ }
+ if (null != extra) {
+ List list = extra.get("list");
+ if (!list.isEmpty()) {
+ adReimbursedAssetDetailsService.saveDetails(list, sid);
+ }
+ }
+ return rb.success().setData(sid);
+ }
+
+ // 保存文件
+ private void saveFiles(String sid, List files, String attachType, String fileType) {
+ files.removeAll(Collections.singleton(null));
+ oaAppendixService.saveFile(sid, files, attachType, fileType);
+ }
+
+ public ResultBean delAll(String[] sids) {
+ ResultBean rb = ResultBean.fireFail();
+ //查询该sid中是否有流程不是待提交的
+ int count = baseMapper.selectBySid(StringUtils.join(sids, ","));
+ if (count > 0) {
+ return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败");
+ }
+ delBySids(sids);
+ return rb.success();
+ }
+
+ public ResultBean details(String sid, String application) {
+ ResultBean rb = ResultBean.fireFail();
+ AdReimbursedAssetApplyDetailVo applyDetailVo = baseMapper.details(sid);
+ if (applyDetailVo == null) {
+ return rb.setMsg("该申请不存在");
+ }
+ //基础字段赋值
+ BeanUtil.copyProperties(oaFormService.getDetails(sid), applyDetailVo);
+ return rb.success().setData(applyDetailVo);
+ }
+
+ /**
+ * 提交
+ *
+ * @param dto
+ * @return
+ */
+ public ResultBean submit(AdReimbursedAssetApplyDto dto) {
+ ResultBean rb = ResultBean.fireFail();
+ ResultBean stringResultBean = saveOrUpdateDto(dto);
+ if (!stringResultBean.getSuccess()) {
+ return rb.setMsg(stringResultBean.getData());
+ }
+ String businessSid = stringResultBean.getData();
+
+ SubmitDto submitDto = new SubmitDto();
+ submitDto.setUserSid(dto.getCreateBySid());
+ submitDto.setBusinessSid(businessSid);
+
+ Map formVariables = new HashMap<>();
+ formVariables = getMap(formVariables, businessSid);
+ submitDto.setFormVariables(formVariables);
+ submitDto.setProcDefId(ProcDefEnum.HIHIREAPPLY.getProDefId());
+ submitDto.setNextTaskId(dto.getTaskId());
+ submitDto.setRule(OaFormRuleEnum.DIRECTLY_UNDER.getRule());
+ return oaFormService.submit(submitDto);
+ }
+
+ /**
+ * 办理(同意)
+ *
+ * @param dto
+ * @return
+ */
+ public ResultBean complete(CompleteDto dto) {
+ Map formVariables = dto.getFormVariables();
+ formVariables = getMap(formVariables, dto.getBusinessSid());
+ dto.setFormVariables(formVariables);
+ BusinessVariablesDto businessVariablesDto = new BusinessVariablesDto();
+ BeanUtil.copyProperties(dto, businessVariablesDto);
+ return oaFormService.complete(businessVariablesDto);
+ }
+
+ /**
+ * 驳回
+ *
+ * @param dto
+ * @return
+ */
+ public ResultBean reject(TaskDto dto) {
+ Map formVariables = dto.getFormVariables();
+ formVariables = getMap(formVariables, dto.getBusinessSid());
+ dto.setFormVariables(formVariables);
+ return oaFormService.reject(dto);
+ }
+
+ public ResultBean getFlowOperateTitle(NodeQuery query) {
+ // 默认失败返回
+ ResultBean rb = ResultBean.fireFail();
+
+ // 获取next值和formVariables
+ int next = query.getNext();
+
+ // 获取并更新formVariables
+ Map formVariables = getMap(query.getFormVariables(), query.getBusinessSid());
+ query.setFormVariables(formVariables);
+
+ // 校验next参数是否有效(只允许0或1)
+ if (next != 0 && next != 1) {
+ return rb.setMsg("参数错误:next"); // 如果next不是0或1,返回错误信息
+ }
+
+ // 获取节点名称
+ String data = getNodeName(query, next);
+
+ // 如果data为null,表示未获取到有效的节点信息
+ if (data == null) {
+ return rb.setMsg("没有获取到节点信息"); // 返回错误消息
+ }
+
+ // 返回成功的结果和获取到的节点名称
+ return rb.success().setData(data);
+ }
+
+ /**
+ * 网关参数组成
+ *
+ * @param formVariables
+ * @param sid
+ * @return
+ */
+ public Map getMap(Map formVariables, String sid) {
+ Map appMap = new HashMap<>();
+ appMap.put("sid", sid);
+ /*appMap.put("editUrl", "approval/#/pages/EditOnboradingApplyActivity?sid=" + sid);
+ appMap.put("detailUrl", "approval/#/pages/DetailOnboradingApplyActivity?sid=" + sid);
+ appMap.put("flowOperateUrl", "oa/v1/HrHireApply/getFlowOperateTitle");
+ appMap.put("agreeUrl", "oa/v1/HrHireApply/complete");
+ appMap.put("stopUrl", "oa/v1/oaform/breakProcess");
+ appMap.put("rejectUrl", "oa/v1/HrHireApply/reject");
+ appMap.put("recallUrl", "oa/v1/oaform/revokeProcess");
+ appMap.put("signUrl", "oa/v1/oaform/delegate");
+ appMap.put("transferUrl", "oa/v1/oaform/assignTask");*/
+ appMap.put(OaFormUrlEnum.HRHIREAPPLY_EDIT.getType(), OaFormUrlEnum.HRHIREAPPLY_EDIT.getUrl() + "?sid=" + sid);
+ appMap.put(OaFormUrlEnum.HRHIREAPPLY_DETAIL.getType(), OaFormUrlEnum.HRHIREAPPLY_DETAIL.getUrl() + "?sid=" + sid);
+ appMap.put(OaFormUrlEnum.HRHIREAPPLY_FLOWOPERATEURL.getType(), OaFormUrlEnum.HRHIREAPPLY_FLOWOPERATEURL.getUrl());
+ appMap.put(OaFormUrlEnum.HRHIREAPPLY_AGREEURL.getType(), OaFormUrlEnum.HRHIREAPPLY_AGREEURL.getUrl());
+ appMap.put(OaFormUrlEnum.STOPURL.getType(), OaFormUrlEnum.STOPURL.getUrl());
+ appMap.put(OaFormUrlEnum.HRHIREAPPLY_REJECTURL.getType(), OaFormUrlEnum.HRHIREAPPLY_REJECTURL.getUrl());
+ appMap.put(OaFormUrlEnum.RECALLURL.getType(), OaFormUrlEnum.RECALLURL.getUrl());
+ appMap.put(OaFormUrlEnum.SIGNURL.getType(), OaFormUrlEnum.SIGNURL.getUrl());
+ appMap.put(OaFormUrlEnum.TRANSFERURL.getType(), OaFormUrlEnum.TRANSFERURL.getUrl());
+ formVariables.put("app", appMap);
+ //根据组织查询是否是分公司
+ OaForm oaForm = oaFormService.fetchBySid(sid);
+ AdReimbursedAssetApply adExpatriatesApply = fetchBySid(sid);
+ SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(oaForm.getUseOrgSid()).getData();
+ //是否是分公司
+ formVariables.put("isTrue", sysOrganization.getIsDept() == 0);
+ return formVariables;
+ }
+
+ /**
+ * 根据next的值获取前一个节点或下一个节点的名称。
+ *
+ * @param query 包含查询所需参数的NodeQuery对象
+ * @param next 参数,0表示上一环节,1表示下一环节
+ * @return 节点名称,如果失败则返回null
+ */
+ private String getNodeName(NodeQuery query, int next) {
+ // 根据next值选择相应的服务方法获取节点信息
+ ResultBean> resultBean = (next == 0)
+ ? oaFormService.getPreviousNodesForReject(query) // 获取上一环节的节点
+ : oaFormService.getNextNodesForSubmit(query); // 获取下一环节的节点
+ // 如果服务调用成功
+ if (resultBean.getSuccess()) {
+ // 清除结果列表中的null值,避免空节点
+ resultBean.getData().removeAll(Collections.singleton(null));
+ // 如果结果列表非空,返回第一个节点的名称
+ if (!resultBean.getData().isEmpty()) {
+ return resultBean.getData().get(0).getName();
+ }
+ } else {
+ // 如果服务调用失败,返回null
+ return null;
+ }
+ // 如果结果为空,返回null
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyVo.java
new file mode 100644
index 0000000000..2a5afe0626
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetapply/AdReimbursedAssetApplyVo.java
@@ -0,0 +1,94 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.anrui.oa.biz.adreimbursedassetapply;
+
+import com.yxt.anrui.oa.biz.adreimbursedassetdetails.AssetObjVo;
+import com.yxt.anrui.oa.biz.oaform.FormCommon;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AdReimbursedAssetApplyVo {
+
+ private String sid;
+ /* private String userSid;
+ private String orgPath;*/
+ private String orgSidPath;
+ private String createBySid;
+
+ @ApiModelProperty("备注")
+ private String remarks;
+
+ @ApiModelProperty("报销人sid")
+ private String reimbursementSid; // 报销人sid
+ @ApiModelProperty("报销人")
+ private String reimbursement; // 报销人
+
+ private FormCommon feesDeptObj;
+ @ApiModelProperty("费用所属部门sid")
+ private String feesDeptSid; // 费用所属部门sid
+ @ApiModelProperty("费用所属部门")
+ private String feesDept; // 费用所属部门
+
+ private FormCommon isPurchaseObj;
+ @ApiModelProperty("是否有固定资产采购申请(1是,0否)")
+ private String isPurchaseKey; // 是否有固定资产采购申请(1是,0否)
+ @ApiModelProperty("是否有固定资产采购申请(1是,0否)")
+ private String isPurchaseValue; // 是否有固定资产采购申请(1是,0否)
+
+ private FormCommon isBeyondObj;
+ @ApiModelProperty("是否超固定资产采购申请范围(1是,0否)")
+ private String isBeyondKey; // 是否超固定资产采购申请范围(1是,0否)
+ @ApiModelProperty("是否超固定资产采购申请范围(1是,0否)")
+ private String isBeyondValue; // 是否超固定资产采购申请范围(1是,0否)
+
+ private FormCommon assetTypeObj;
+ @ApiModelProperty("固定资产类别key")
+ private String assetTypeKey; // 固定资产类别key
+ @ApiModelProperty("固定资产类别value")
+ private String assetTypeValue; // 固定资产类别value
+
+ private FormCommon isStationObj;
+ @ApiModelProperty("是否有服务站机器设备(1是,0否)")
+ private String isStationKey; // 是否有服务站机器设备(1是,0否)
+ private String isStationValue; // 是否有服务站机器设备(1是,0否)
+
+ @ApiModelProperty("合计采购金额")
+ private String totalAmount; // 合计采购金额
+ @ApiModelProperty("报销金额")
+ private String reimbursedAmount; // 报销金额
+ @ApiModelProperty("现金、打卡或平借款")
+ private String reimbursedWay; // 现金、打卡或平借款
+ @ApiModelProperty("打卡请输入(姓名、卡号、开户行)")
+ private String reimbursedInfo; // 打卡请输入(姓名、卡号、开户行)
+
+ private AssetObjVo assetListObj; //固定资产采购编号及列表
+
+ private String taskId;
+ @ApiModelProperty("流程实例id")
+ private String procInsId;
+
+}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetails.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetails.java
new file mode 100644
index 0000000000..cfd6032427
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetails.java
@@ -0,0 +1,60 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.anrui.oa.biz.adreimbursedassetdetails;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.yxt.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "固定资产费用报销列表", description = "固定资产费用报销")
+@TableName("ad_reimbursed_asset_details")
+public class AdReimbursedAssetDetails extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("申请sid")
+ private String mainSid; // 申请sid
+ @ApiModelProperty("固定资产基础信息sid")
+ private String goodsSpuSid; // 固定资产基础信息sid
+ @ApiModelProperty("固定资产编号")
+ private String goodsSkuCode; // 固定资产编号
+ @ApiModelProperty("固定资产名称")
+ private String goodsSpuName; // 固定资产名称
+ @ApiModelProperty("规格型号")
+ private String goodsSkuOwnSpec; // 规格型号
+ @ApiModelProperty("单位")
+ private String unit; // 单位
+ @ApiModelProperty("采购单价")
+ private BigDecimal cost; // 预计采购单价
+ @ApiModelProperty("采购数量")
+ private BigDecimal estimateCount; // 预计采购数量
+ @ApiModelProperty("采购金额")
+ private BigDecimal estimateMoney; // 预计采购金额
+}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsMapper.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsMapper.java
new file mode 100644
index 0000000000..0a6663c12e
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsMapper.java
@@ -0,0 +1,42 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.anrui.oa.biz.adreimbursedassetdetails;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+@Mapper
+public interface AdReimbursedAssetDetailsMapper extends BaseMapper {
+
+ @Select("select * from ad_reimbursed_asset_details where mainSid = #{mainSid}")
+ List selectByMainSid(String mainSid);
+
+ @Select("select * from ad_reimbursed_asset_details where mainSid = #{mainSid}")
+ List getUpdateInit(String mainSid);
+}
\ No newline at end of file
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsMapper.xml b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsMapper.xml
new file mode 100644
index 0000000000..8e27e353a4
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsService.java
new file mode 100644
index 0000000000..a9d7c98006
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsService.java
@@ -0,0 +1,62 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.anrui.oa.biz.adreimbursedassetdetails;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.yxt.common.base.service.MybatisBaseService;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+
+@Service
+public class AdReimbursedAssetDetailsService extends MybatisBaseService {
+
+ public void saveDetails(List list, String sid) {
+ //根据sid查询明细并删除
+ List list2 = baseMapper.selectByMainSid(sid);
+ list2.removeAll(Collections.singleton(null));
+ if (!list2.isEmpty()) {
+ list2.stream().forEach(v -> {
+ deleteBySid(v.getSid());
+ });
+ }
+ list.removeAll(Collections.singleton(null));
+ if (!list.isEmpty()) {
+ list.stream().forEach(details -> {
+ AdReimbursedAssetDetails entity = new AdReimbursedAssetDetails();
+ BeanUtil.copyProperties(details, entity);
+ entity.setMainSid(sid);
+ baseMapper.insert(entity);
+ });
+ }
+ }
+
+ public List getUpdateInit(String mainSid) {
+ return baseMapper.getUpdateInit(mainSid);
+ }
+
+}
\ No newline at end of file
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsVo.java
new file mode 100644
index 0000000000..fe1c2e85bd
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetDetailsVo.java
@@ -0,0 +1,26 @@
+package com.yxt.anrui.oa.biz.adreimbursedassetdetails;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AdReimbursedAssetDetailsVo {
+
+ @ApiModelProperty("固定资产基础信息sid")
+ private String goodsSpuSid; // 固定资产基础信息sid
+ @ApiModelProperty("固定资产编号")
+ private String goodsSkuCode; // 固定资产编号
+ @ApiModelProperty("固定资产名称")
+ private String goodsSpuName; // 固定资产名称
+ @ApiModelProperty("规格型号")
+ private String goodsSkuOwnSpec; // 规格型号
+ @ApiModelProperty("单位")
+ private String unit; // 单位
+ @ApiModelProperty("采购单价")
+ private String cost; // 预计采购单价
+ @ApiModelProperty("采购数量")
+ private String estimateCount; // 预计采购数量
+ @ApiModelProperty("采购金额")
+ private String estimateMoney; // 预计采购金额
+
+}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetListDetailsVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetListDetailsVo.java
new file mode 100644
index 0000000000..67f7944cd6
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AdReimbursedAssetListDetailsVo.java
@@ -0,0 +1,69 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.anrui.oa.biz.adreimbursedassetdetails;
+
+
+import com.yxt.common.core.vo.Vo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Project: yxt-oa(认定人员)
+ * File: AdExpatriatesDetailVo.java
+ * Class: com.yxt.anrui.oa.api.adexpatriatesdetail.AdExpatriatesDetailVo
+ * Description: 驻外人员认定列表 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-01-20 15:35:08
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel(value = "固定资产费用报销列表 视图数据对象", description = "固定资产费用报销列表 视图数据对象")
+public class AdReimbursedAssetListDetailsVo implements Vo {
+
+ private String sid;
+
+
+ @ApiModelProperty("固定资产编号")
+ private String goodsSkuCode; // 固定资产编号
+ @ApiModelProperty("固定资产名称")
+ private String goodsSpuName; // 固定资产名称
+ @ApiModelProperty("规格型号")
+ private String goodsSkuOwnSpec; // 规格型号
+ @ApiModelProperty("单位")
+ private String unit; // 单位
+ @ApiModelProperty("预计采购单价")
+ private String cost; // 预计采购单价
+ @ApiModelProperty("预计采购数量")
+ private String estimateCount; // 预计采购数量
+ @ApiModelProperty("预计采购金额")
+ private String estimateMoney; // 预计采购金额
+
+}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AssetObjVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AssetObjVo.java
new file mode 100644
index 0000000000..b428fa47de
--- /dev/null
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adreimbursedassetdetails/AssetObjVo.java
@@ -0,0 +1,16 @@
+package com.yxt.anrui.oa.biz.adreimbursedassetdetails;
+
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class AssetObjVo {
+
+ private String id;
+ private String dictValue;
+
+ private Map> extra;
+
+}