From 966c6721a1de34221a7a8c7ab44b217a9bb80d7f Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Mon, 20 Jan 2025 09:50:06 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=9E=8D=E8=B5=84?= =?UTF-8?q?=E5=B9=B3=E4=BB=93=E4=BB=98=E6=AC=BE=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../financingClosingPayment.js | 38 ++ .../src/router/modules/codemenu.js | 15 + .../financingClosingPayment.vue | 520 ++++++++++++++++++ .../paymentInformation/paymentInformation.vue | 2 +- 4 files changed, 574 insertions(+), 1 deletion(-) create mode 100644 anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/financingClosingPayment.js create mode 100644 anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/financingClosingPayment/financingClosingPayment.vue diff --git a/anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/financingClosingPayment.js b/anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/financingClosingPayment.js new file mode 100644 index 0000000000..fad7b4a5ce --- /dev/null +++ b/anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/financingClosingPayment.js @@ -0,0 +1,38 @@ +import request from '@/utils/request' + +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + url: '/fin/v1/finpaymentapplydetailsbeloweve/listPage', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 保存修改记录 + saveOrUpdate: function(params) { + return request({ + url: '/fin/v1/finpaymentapplydetailsbeloweve/save', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 通过sid查询一条记录 + fetchBySid: function(sid) { + return request({ + url: '/fin/v1/finpaymentapplydetailsbeloweve/fetchDetailsBySid/' + sid, + method: 'get' + }) + }, + // 通过sid删除一条或多条记录 + delBySids: function(data) { + return request({ + url: '/fin/v1/finpaymentapplydetailsbeloweve/delBySids', + method: 'DELETE', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + } +} diff --git a/anrui-buscenter/anrui-finmanage-ui/src/router/modules/codemenu.js b/anrui-buscenter/anrui-finmanage-ui/src/router/modules/codemenu.js index 2d14fc25c7..8f43654164 100644 --- a/anrui-buscenter/anrui-finmanage-ui/src/router/modules/codemenu.js +++ b/anrui-buscenter/anrui-finmanage-ui/src/router/modules/codemenu.js @@ -139,6 +139,21 @@ const codemenu = [ meta: { title: '付款信息管理', noCache: true } }] }, + // 付款单位信息管理 + { + path: '/anruifinmanagement', + component: Layout, + redirect: '/anruifinmanagement', + meta: { + title: '融资平仓付款管理' + }, + children: [{ + path: '/anruifinmanagement/financingClosingPayment', + component: () => import('@/views/anruifinmanagement/financingClosingPayment/financingClosingPayment.vue'), + name: 'FinancingClosingPayment', + meta: { title: '融资平仓付款管理', noCache: true } + }] + }, { path: '/anruifinmanagement', component: Layout, diff --git a/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/financingClosingPayment/financingClosingPayment.vue b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/financingClosingPayment/financingClosingPayment.vue new file mode 100644 index 0000000000..c0bb6f326d --- /dev/null +++ b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/financingClosingPayment/financingClosingPayment.vue @@ -0,0 +1,520 @@ + + + + diff --git a/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentInformation/paymentInformation.vue b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentInformation/paymentInformation.vue index e6c7031f36..b7b5fb2bdb 100644 --- a/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentInformation/paymentInformation.vue +++ b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentInformation/paymentInformation.vue @@ -300,10 +300,10 @@ export default { }, handleConfirm() { this.formobj.createBySid = window.sessionStorage.getItem('userSid') - this.formobj.useOrgSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1) getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => { if (res.success) { this.formobj.createOrgSid = res.data + this.formobj.useOrgSid = res.data this.$refs['form_obj'].validate((valid) => { if (valid) { req.saveOrUpdate(this.formobj).then((resp) => { From dabb94df77ad70cf0ffa9a965f1e6db85cb11be0 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 20 Jan 2025 10:42:05 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=8B=9B=E8=81=98=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yxt/anrui/oa/api/HrHireApplyRest.java | 7 +++++++ .../biz/hrhireapply/HrHireApplyService.java | 19 +++++++++++++++++++ .../oa/biz/hrhireapply/HrHireApplyVo.java | 4 ++++ 3 files changed, 30 insertions(+) diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java index 03bc4fd1bb..dbb883307a 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java @@ -3,6 +3,7 @@ package com.yxt.anrui.oa.api; import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyDto; import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyService; import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyVo; +import com.yxt.anrui.oa.biz.oaform.flowable.CompleteDto; import com.yxt.anrui.oa.biz.oaform.flowable.TaskDto; import com.yxt.common.core.result.ResultBean; import io.swagger.annotations.ApiOperation; @@ -53,4 +54,10 @@ public class HrHireApplyRest { return hrHireApplyService.reject(dto); } + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody CompleteDto dto) { + return hrHireApplyService.complete(dto); + } + } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java index 674a6e0237..b18e30931c 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java @@ -9,6 +9,8 @@ import com.yxt.anrui.oa.biz.oaform.FormCommon; import com.yxt.anrui.oa.biz.oaform.OaForm; import com.yxt.anrui.oa.biz.oaform.OaFormRuleEnum; import com.yxt.anrui.oa.biz.oaform.OaFormService; +import com.yxt.anrui.oa.biz.oaform.flowable.BusinessVariablesDto; +import com.yxt.anrui.oa.biz.oaform.flowable.CompleteDto; import com.yxt.anrui.oa.biz.oaform.flowable.SubmitDto; import com.yxt.anrui.oa.biz.oaform.flowable.TaskDto; import com.yxt.anrui.oa.feign.flowable.flow.ProcDefEnum; @@ -58,6 +60,8 @@ public class HrHireApplyService extends MybatisBaseService formVariables = dto.getFormVariables(); + formVariables = getMap(formVariables, dto.getBusinessSid()); + dto.setFormVariables(formVariables); + BusinessVariablesDto businessVariablesDto = new BusinessVariablesDto(); + BeanUtil.copyProperties(dto, businessVariablesDto); + return oaFormService.complete(businessVariablesDto); + } + public Map getMap(Map formVariables, String sid) { Map appMap = new HashMap<>(); diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyVo.java index c4ae16bd06..1f89adff04 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyVo.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyVo.java @@ -25,4 +25,8 @@ public class HrHireApplyVo { private String isFinanceValue; private List list = new ArrayList<>(); + + private String taskId; + @ApiModelProperty("流程实例id") + private String procInsId; } From 4eb09d8252a0341b65270fee85ab5a33c1e69d91 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 20 Jan 2025 10:57:31 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=8B=9B=E8=81=98=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yxt/anrui/oa/api/HrHireApplyRest.java | 9 ++++ .../com/yxt/anrui/oa/api/OaMendApplyRest.java | 7 ++++ .../biz/hrhireapply/HrHireApplyService.java | 35 ++++++++++++++-- .../oa/biz/oaform/flowable/NodeQuery.java | 5 +++ .../biz/oamendapply/OaMendApplyService.java | 41 +++++++++++++++++-- 5 files changed, 90 insertions(+), 7 deletions(-) diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java index dbb883307a..44d7e7ba8b 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java @@ -4,10 +4,12 @@ import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyDto; import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyService; import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyVo; 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; @@ -60,4 +62,11 @@ public class HrHireApplyRest { return hrHireApplyService.complete(dto); } + @ApiOperation("获取流程操作标题") + @GetMapping("/getFlowOperateTitle") + @ResponseBody + ResultBean getFlowOperateTitle(@SpringQueryMap NodeQuery query) { + return hrHireApplyService.getFlowOperateTitle(query); + } + } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java index ab3827c71c..44af80b84f 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java @@ -122,4 +122,11 @@ public class OaMendApplyRest { public ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap NodeQuery query) { return oaMendApplyService.getNextNodesForSubmit(query); } + + @ApiOperation("移动端获取上一环节获取下一环节") + @GetMapping("/getFlowOperateTitle") + @ResponseBody + ResultBean getFlowOperateTitle(@SpringQueryMap NodeQuery query) { + return oaMendApplyService.getFlowOperateTitle(query); + } } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java index b18e30931c..30f0b3a000 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java @@ -9,10 +9,7 @@ import com.yxt.anrui.oa.biz.oaform.FormCommon; import com.yxt.anrui.oa.biz.oaform.OaForm; import com.yxt.anrui.oa.biz.oaform.OaFormRuleEnum; import com.yxt.anrui.oa.biz.oaform.OaFormService; -import com.yxt.anrui.oa.biz.oaform.flowable.BusinessVariablesDto; -import com.yxt.anrui.oa.biz.oaform.flowable.CompleteDto; -import com.yxt.anrui.oa.biz.oaform.flowable.SubmitDto; -import com.yxt.anrui.oa.biz.oaform.flowable.TaskDto; +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; @@ -174,6 +171,36 @@ public class HrHireApplyService extends MybatisBaseService getFlowOperateTitle(NodeQuery query) { + ResultBean rb = ResultBean.fireFail(); + //0 上一环节 1下一环节 + int next = query.getNext(); + Map formVariables = query.getFormVariables(); + formVariables = getMap(formVariables, 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"); + } + return rb.success().setData(data); + } + public Map getMap(Map formVariables, String sid) { Map appMap = new HashMap<>(); diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeQuery.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeQuery.java index 8d3c397140..add1cdcd99 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeQuery.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeQuery.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.util.HashMap; import java.util.Map; @@ -22,4 +23,8 @@ public class NodeQuery { private String businessSid; private Map formVariables = new HashMap<>(); + + @ApiModelProperty(value = "0 上一环节 1下一环节") + @NotNull(message = "参数错误:next") + private Integer next; } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java index 410b0a52dc..0a4b562e56 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java @@ -158,15 +158,15 @@ public class OaMendApplyService extends MybatisBaseService files, String attachType,String fileType) { + private void saveFiles(String sid, List files, String attachType, String fileType) { files.removeAll(Collections.singleton(null)); - oaAppendixService.saveFile(sid, files, attachType,fileType); + oaAppendixService.saveFile(sid, files, attachType, fileType); } public OaMendApplyVo fetchDetailsVoBySid(String sid) { @@ -294,6 +294,41 @@ public class OaMendApplyService extends MybatisBaseService getFlowOperateTitle(NodeQuery query) { + ResultBean rb = ResultBean.fireFail(); + //0 上一环节 1下一环节 + int next = query.getNext(); + Map formVariables = query.getFormVariables(); + //添加网关 +// formVariables.put("", ""); + //若有移动端,则需和移动端沟通具体参数,若没有删去即可。 + Map appMap = new HashMap<>(); + appMap.put("sid", query.getBusinessSid()); + formVariables.put("app", appMap); + 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"); + } + return rb.success().setData(data); + } + /** * 具体申请设置网关参数的统一方法 */ From 123ea743fe9214efa306aa4e1db99fb2e247e4c1 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 20 Jan 2025 11:26:25 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0yxt-oa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- anrui-gateway/src/main/resources/application.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/anrui-gateway/src/main/resources/application.yml b/anrui-gateway/src/main/resources/application.yml index 705bc32451..e4c2f1f3a9 100644 --- a/anrui-gateway/src/main/resources/application.yml +++ b/anrui-gateway/src/main/resources/application.yml @@ -133,6 +133,12 @@ spring: uri: lb://yxt-vehfleet filters: - StripPrefix=1 + - id: yxt-vehfleet + predicates: + - Path= /oa/** + uri: lb://yxt-oa + filters: + - StripPrefix=1 ignore: whites: From 99dba28400362f9e1d63616581ca2b3c1ddb8cfc Mon Sep 17 00:00:00 2001 From: myTest383
Date: Mon, 20 Jan 2025 13:51:41 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=94=AE=E5=90=8E?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=20=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../statement/monthlyReport/claimFormRate.js | 25 ++ .../monthlyReport/essentialDetails.js | 17 ++ .../statement/monthlyReport/oneTimeRate.js | 25 ++ .../claimFormRate/claimFormRate.vue | 205 +++++++++++++++- .../claimFormRate/claimFormRateDetail.vue | 91 +++++++ .../essentialDetails/essentialDetails.vue | 223 +++++++++++++++++- .../inventoryManagement.vue | 6 +- .../inventoryManagementDetail.vue | 88 ++++++- .../monthlyReport/oneTimeRate/oneTimeRate.vue | 205 +++++++++++++++- .../oneTimeRate/oneTimeRateDetail.vue | 218 +++++++++++++++++ 10 files changed, 1081 insertions(+), 22 deletions(-) create mode 100644 yxt-as-ui/src/api/statement/monthlyReport/claimFormRate.js create mode 100644 yxt-as-ui/src/api/statement/monthlyReport/essentialDetails.js create mode 100644 yxt-as-ui/src/api/statement/monthlyReport/oneTimeRate.js create mode 100644 yxt-as-ui/src/views/statement/monthlyReport/claimFormRate/claimFormRateDetail.vue create mode 100644 yxt-as-ui/src/views/statement/monthlyReport/oneTimeRate/oneTimeRateDetail.vue diff --git a/yxt-as-ui/src/api/statement/monthlyReport/claimFormRate.js b/yxt-as-ui/src/api/statement/monthlyReport/claimFormRate.js new file mode 100644 index 0000000000..46ee2943d9 --- /dev/null +++ b/yxt-as-ui/src/api/statement/monthlyReport/claimFormRate.js @@ -0,0 +1,25 @@ +import request from '@/utils/request' +// 月度报表 三包索赔单生效率统计表 +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + baseURL: "http://127.0.0.1:4523/m1/613533-0-default", + url: '/as/v1/claimFormRate/listPage', + method: 'post', + data: params, + headers: { + 'Content-Type': 'application/json' + } + }) + }, + // 查询详情 + getDetail: function(params) { + return request({ + baseURL: "http://127.0.0.1:4523/m1/613533-0-default", + url: '/as/v1/claimFormRate/getDetail/' + params, + method: 'get', + + }) + } +} diff --git a/yxt-as-ui/src/api/statement/monthlyReport/essentialDetails.js b/yxt-as-ui/src/api/statement/monthlyReport/essentialDetails.js new file mode 100644 index 0000000000..bb2eea89c6 --- /dev/null +++ b/yxt-as-ui/src/api/statement/monthlyReport/essentialDetails.js @@ -0,0 +1,17 @@ +import request from '@/utils/request' +// 月度报表 必备件明细 +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + baseURL: "http://127.0.0.1:4523/m1/613533-0-default", + url: '/as/v1/essentialDetails/listPage', + method: 'post', + data: params, + headers: { + 'Content-Type': 'application/json' + } + }) + }, + +} diff --git a/yxt-as-ui/src/api/statement/monthlyReport/oneTimeRate.js b/yxt-as-ui/src/api/statement/monthlyReport/oneTimeRate.js new file mode 100644 index 0000000000..a7961b1c7c --- /dev/null +++ b/yxt-as-ui/src/api/statement/monthlyReport/oneTimeRate.js @@ -0,0 +1,25 @@ +import request from '@/utils/request' +// 月度报表 配件库房一次性满足率统计表 +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + baseURL: "http://127.0.0.1:4523/m1/613533-0-default", + url: '/as/v1/oneTimeRate/listPage', + method: 'post', + data: params, + headers: { + 'Content-Type': 'application/json' + } + }) + }, + // 查询详情 + getDetail: function(params) { + return request({ + baseURL: "http://127.0.0.1:4523/m1/613533-0-default", + url: '/as/v1/oneTimeRate/getDetail/' + params, + method: 'get', + + }) + } +} diff --git a/yxt-as-ui/src/views/statement/monthlyReport/claimFormRate/claimFormRate.vue b/yxt-as-ui/src/views/statement/monthlyReport/claimFormRate/claimFormRate.vue index 02409e35d2..cf2ac47074 100644 --- a/yxt-as-ui/src/views/statement/monthlyReport/claimFormRate/claimFormRate.vue +++ b/yxt-as-ui/src/views/statement/monthlyReport/claimFormRate/claimFormRate.vue @@ -1,8 +1,207 @@ + import Pagination from '@/components/pagination' + import pageye from '@/components/pagination/pageye' + import ButtonBar from '@/components/ButtonBar' + import req from '@/api/statement/monthlyReport/claimFormRate' + import divinfo from './claimFormRateDetail.vue' + + export default { + name: 'claimFormRate', + components: { + Pagination, + pageye, + ButtonBar, + divinfo + }, + data() { + return { + btndisabled: false, + btnList: [{ + type: 'info', + size: 'small', + icon: 'cross', + btnKey: 'doClose', + btnLabel: '关闭' + }], + isSearchShow: false, + searchxianshitit: '显示查询条件', + viewState: 1, // 1、列表 2、新增 3、编辑 4、查看 + tableKey: 0, + list: [], + sids: [], // 用于导出的时候保存已选择的SIDs + listLoading: false, + // 翻页 + listQuery: { + current: 1, + size: 10, + total: 0, + params: { + createStartTime: '', + createEndTime: '', + deptName: '', + userSid: '', + orgPath: '', + menuUrl: '' + } + } + } + }, + created() { + // 初始化变量 + this.getList() + }, + mounted() { + this.$refs['btnbar'].setButtonList(this.btnList) + }, + methods: { + handle(row) { + console.log('handle ' + row.sid) - \ No newline at end of file + this.viewState = 4 + this.$refs['divinfo'].showAdd(row) + + }, + resetState() { + this.viewState = 1 + this.getList() + }, + // 搜索条件效果 + clicksearchShow() { + this.isSearchShow = !this.isSearchShow + if (this.isSearchShow) { + this.searchxianshitit = '隐藏查询条件' + } else { + this.searchxianshitit = '显示查询条件' + } + }, + btnHandle(btnKey) { + console.log('XXXXXXXXXXXXXXX ' + btnKey) + switch (btnKey) { + case 'doClose': + this.doClose() + break + default: + break + } + }, + // 信息条数 获取点击时当前的sid + handleSelectionChange(row) { + const aa = [] + row.forEach(element => { + aa.push(element.sid) + }) + this.sids = aa + }, + // 表中序号 + indexMethod(index) { + var pagestart = (this.listQuery.current - 1) * this.listQuery.size + var pageindex = index + 1 + pagestart + return pageindex + }, + // 查询列表信息 + getList() { + this.listLoading = true + this.listQuery.params.userSid = window.sessionStorage.getItem('userSid') + this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath') + this.listQuery.params.menuUrl = this.$route.path + req.listPage(this.listQuery).then((response) => { + this.listLoading = false + if (response.success) { + this.list = response.data.records + this.listQuery.total = response.data.total + } else { + this.list = [] + this.listQuery.total = 0 + } + }) + }, + // 查询按钮 + handleFilter() { + this.listQuery.current = 1 + this.getList() + }, + // 点击重置 + handleReset() { + this.listQuery = { + current: 1, + size: 10, + total: 0, + params: { + createStartTime: '', + createEndTime: '', + deptName: '', + userSid: '', + orgPath: '', + menuUrl: '' + } + } + this.getList() + }, + doClose() { + this.$store.dispatch('tagsView/delView', this.$route) + this.$router.go(-1) + } + + } + } + + diff --git a/yxt-as-ui/src/views/statement/monthlyReport/claimFormRate/claimFormRateDetail.vue b/yxt-as-ui/src/views/statement/monthlyReport/claimFormRate/claimFormRateDetail.vue new file mode 100644 index 0000000000..7c2045c267 --- /dev/null +++ b/yxt-as-ui/src/views/statement/monthlyReport/claimFormRate/claimFormRateDetail.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/yxt-as-ui/src/views/statement/monthlyReport/essentialDetails/essentialDetails.vue b/yxt-as-ui/src/views/statement/monthlyReport/essentialDetails/essentialDetails.vue index 02409e35d2..859c66699d 100644 --- a/yxt-as-ui/src/views/statement/monthlyReport/essentialDetails/essentialDetails.vue +++ b/yxt-as-ui/src/views/statement/monthlyReport/essentialDetails/essentialDetails.vue @@ -1,8 +1,225 @@ + import Pagination from '@/components/pagination' + import pageye from '@/components/pagination/pageye' + import ButtonBar from '@/components/ButtonBar' + import req from '@/api/statement/monthlyReport/essentialDetails' + + export default { + name: 'essentialDetails', + components: { + Pagination, + pageye, + ButtonBar, + }, + data() { + return { + btndisabled: false, + btnList: [{ + type: 'success', + size: 'small', + icon: '', + btnKey: 'doExport', + btnLabel: '导出' + }, { + type: 'info', + size: 'small', + icon: 'cross', + btnKey: 'doClose', + btnLabel: '关闭' + }], + isSearchShow: false, + searchxianshitit: '显示查询条件', + viewState: 1, // 1、列表 2、新增 3、编辑 4、查看 + tableKey: 0, + list: [], + sids: [], // 用于导出的时候保存已选择的SIDs + listLoading: false, + // 翻页 + listQuery: { + current: 1, + size: 10, + total: 0, + params: { + "createOrgName": "", + "deptName": "", + "accessoryName": "", + "goodsCode": "", + "userSid": "", + "orgPath": "", + "menuUrl": "" + } + } + } + }, + created() { + // 初始化变量 + this.getList() + }, + mounted() { + this.$refs['btnbar'].setButtonList(this.btnList) + }, + methods: { + handle(row) { + console.log('handle ' + row.sid) - \ No newline at end of file + this.viewState = 4 + this.$refs['divinfo'].showAdd(row) + + }, + resetState() { + this.viewState = 1 + this.getList() + }, + // 搜索条件效果 + clicksearchShow() { + this.isSearchShow = !this.isSearchShow + if (this.isSearchShow) { + this.searchxianshitit = '隐藏查询条件' + } else { + this.searchxianshitit = '显示查询条件' + } + }, + btnHandle(btnKey) { + console.log('XXXXXXXXXXXXXXX ' + btnKey) + switch (btnKey) { + case 'doClose': + this.doClose() + break + default: + break + } + }, + // 信息条数 获取点击时当前的sid + handleSelectionChange(row) { + const aa = [] + row.forEach(element => { + aa.push(element.sid) + }) + this.sids = aa + }, + // 表中序号 + indexMethod(index) { + var pagestart = (this.listQuery.current - 1) * this.listQuery.size + var pageindex = index + 1 + pagestart + return pageindex + }, + // 查询列表信息 + getList() { + this.listLoading = true + this.listQuery.params.userSid = window.sessionStorage.getItem('userSid') + this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath') + this.listQuery.params.menuUrl = this.$route.path + req.listPage(this.listQuery).then((response) => { + this.listLoading = false + if (response.success) { + this.list = response.data.records + this.listQuery.total = response.data.total + } else { + this.list = [] + this.listQuery.total = 0 + } + }) + }, + // 查询按钮 + handleFilter() { + this.listQuery.current = 1 + this.getList() + }, + // 点击重置 + handleReset() { + this.listQuery = { + current: 1, + size: 10, + total: 0, + params: { + "createOrgName": "", + "deptName": "", + "accessoryName": "", + "goodsCode": "", + "userSid": "", + "orgPath": "", + "menuUrl": "" + } + } + this.getList() + }, + doClose() { + this.$store.dispatch('tagsView/delView', this.$route) + this.$router.go(-1) + } + + } + } + + diff --git a/yxt-as-ui/src/views/statement/monthlyReport/inventoryManagement/inventoryManagement.vue b/yxt-as-ui/src/views/statement/monthlyReport/inventoryManagement/inventoryManagement.vue index ae127a234a..653d70091e 100644 --- a/yxt-as-ui/src/views/statement/monthlyReport/inventoryManagement/inventoryManagement.vue +++ b/yxt-as-ui/src/views/statement/monthlyReport/inventoryManagement/inventoryManagement.vue @@ -11,10 +11,10 @@ + type="month" placeholder="开始月份"> + type="month" placeholder="结束月份"> @@ -28,7 +28,7 @@
-
指标完成情况
+
服务站列表
diff --git a/yxt-as-ui/src/views/statement/monthlyReport/inventoryManagement/inventoryManagementDetail.vue b/yxt-as-ui/src/views/statement/monthlyReport/inventoryManagement/inventoryManagementDetail.vue index 2887ec0dad..04951f695f 100644 --- a/yxt-as-ui/src/views/statement/monthlyReport/inventoryManagement/inventoryManagementDetail.vue +++ b/yxt-as-ui/src/views/statement/monthlyReport/inventoryManagement/inventoryManagementDetail.vue @@ -153,8 +153,8 @@ list: [], title: "", mergeObj: {}, // 用来记录需要合并行的下标 - // mergeArr: ['品牌', '服务站名称', '软件系统', '品名', '库存当量出库金额', '库存当量出库占比', '库存当量入库金额', '库存当量入库占比'], // 表格中的列名 - mergeArr: ['品牌', '服务站名称', '软件系统', '品名'], // 表格中的列名 + mergeArr: ['品牌', '服务站名称', '软件系统', '品名', '库存当量出库金额', '库存当量出库占比', '库存当量入库金额', '库存当量入库占比'], // 表格中的列名 + // mergeArr: ['品牌', '服务站名称', '软件系统', '品名'], // 表格中的列名 } }, @@ -178,7 +178,6 @@ } } - // 判断列的属性 if (this.mergeArr.indexOf(column.property) !== -1) { // 判断其值是不是为0 @@ -190,6 +189,43 @@ } } + // var columnIndex1 = 1 + // var columnIndex2 = 1 + // var columnIndex3 = 1 + + // for (var i = 0; i < this.list.length; i++) { + // for (var j = 0; j < this.list.length; j++) { + + // if (this.list[i].品牌 == this.list[j].品牌) { + // columnIndex1 += 1 + // } + // if (this.list[i].服务站名称 == this.list[j].服务站名称) { + // columnIndex2 += 1 + // } + // if (this.list[i].软件系统 == this.list[j].软件系统) { + // columnIndex3 += 1 + // } + // } + // } + + // console.log('>>>>>>>>>1', columnIndex1) + // console.log('>>>>>>>>>2', columnIndex2) + // console.log('>>>>>>>>>3', columnIndex3) + + // if (columnIndex === 1) { + // //定位到6行4列的ID,告诉该单元格合并1行2列 + // return [columnIndex1, 1] + // } + + // if (columnIndex === 2) { + // //定位到6行4列的ID,告诉该单元格合并1行2列 + // return [columnIndex2, 1] + // } + // if (columnIndex === 3) { + // //定位到6行4列的ID,告诉该单元格合并1行2列 + // return [columnIndex3, 1] + // } + }, @@ -218,19 +254,51 @@ if (index === 0) { this.mergeObj[key].push(1); } else { - console.log('>>>>>>>>>commodityCurrentChange', item) - console.log('>>>>>>>>>commodityCurrentChange', key) - console.log('>>>>>>>>>commodityCurrentChange', item[key]) - console.log('>>>>>>>>>commodityCurrentChange', data[index - 1][key]) + // console.log('>>>>>>>>>commodityCurrentChange', item) + // console.log('>>>>>>>>>commodityCurrentChange', key) + // console.log('>>>>>>>>>commodityCurrentChange', item[key]) + // console.log('>>>>>>>>>commodityCurrentChange', data[index - 1][key]) // 判断当前行是否与上一行其值相等 如果相等 在 count 记录的位置其值 +1 表示当前行需要合并 并push 一个 0 作为占位 - if (item[key] === data[index - 1][key]) { - this.mergeObj[key][count] += 1; - this.mergeObj[key].push(0); + if (item.品牌 == data[index - 1].品牌) { + + if (item.服务站名称 == data[index - 1].服务站名称) { + + if (item.软件系统 == data[index - 1].软件系统) { + if (item.品名 == data[index - 1].品名) { + if (item[key] === data[index - 1][key]) { + this.mergeObj[key][count] += 1; + this.mergeObj[key].push(0); + } else { + // 如果当前行和上一行其值不相等 + count = index; // 记录当前位置 + this.mergeObj[key].push(1); // 重新push 一个 1 + } + } else { + // 如果当前行和上一行其值不相等 + count = index; // 记录当前位置 + this.mergeObj[key].push(1); // 重新push 一个 1 + } + } else { + // 如果当前行和上一行其值不相等 + count = index; // 记录当前位置 + this.mergeObj[key].push(1); // 重新push 一个 1 + } + + } else { + // 如果当前行和上一行其值不相等 + count = index; // 记录当前位置 + this.mergeObj[key].push(1); // 重新push 一个 1 + } + } else { // 如果当前行和上一行其值不相等 count = index; // 记录当前位置 this.mergeObj[key].push(1); // 重新push 一个 1 } + + + + } }) }) diff --git a/yxt-as-ui/src/views/statement/monthlyReport/oneTimeRate/oneTimeRate.vue b/yxt-as-ui/src/views/statement/monthlyReport/oneTimeRate/oneTimeRate.vue index 02409e35d2..dbd3e01261 100644 --- a/yxt-as-ui/src/views/statement/monthlyReport/oneTimeRate/oneTimeRate.vue +++ b/yxt-as-ui/src/views/statement/monthlyReport/oneTimeRate/oneTimeRate.vue @@ -1,8 +1,207 @@ + import Pagination from '@/components/pagination' + import pageye from '@/components/pagination/pageye' + import ButtonBar from '@/components/ButtonBar' + import req from '@/api/statement/monthlyReport/oneTimeRate' + import divinfo from './oneTimeRateDetail.vue' + + export default { + name: 'oneTimeRate', + components: { + Pagination, + pageye, + ButtonBar, + divinfo + }, + data() { + return { + btndisabled: false, + btnList: [{ + type: 'info', + size: 'small', + icon: 'cross', + btnKey: 'doClose', + btnLabel: '关闭' + }], + isSearchShow: false, + searchxianshitit: '显示查询条件', + viewState: 1, // 1、列表 2、新增 3、编辑 4、查看 + tableKey: 0, + list: [], + sids: [], // 用于导出的时候保存已选择的SIDs + listLoading: false, + // 翻页 + listQuery: { + current: 1, + size: 10, + total: 0, + params: { + createStartTime: '', + createEndTime: '', + deptName: '', + userSid: '', + orgPath: '', + menuUrl: '' + } + } + } + }, + created() { + // 初始化变量 + this.getList() + }, + mounted() { + this.$refs['btnbar'].setButtonList(this.btnList) + }, + methods: { + handle(row) { + console.log('handle ' + row.sid) - \ No newline at end of file + this.viewState = 4 + this.$refs['divinfo'].showAdd(row) + + }, + resetState() { + this.viewState = 1 + this.getList() + }, + // 搜索条件效果 + clicksearchShow() { + this.isSearchShow = !this.isSearchShow + if (this.isSearchShow) { + this.searchxianshitit = '隐藏查询条件' + } else { + this.searchxianshitit = '显示查询条件' + } + }, + btnHandle(btnKey) { + console.log('XXXXXXXXXXXXXXX ' + btnKey) + switch (btnKey) { + case 'doClose': + this.doClose() + break + default: + break + } + }, + // 信息条数 获取点击时当前的sid + handleSelectionChange(row) { + const aa = [] + row.forEach(element => { + aa.push(element.sid) + }) + this.sids = aa + }, + // 表中序号 + indexMethod(index) { + var pagestart = (this.listQuery.current - 1) * this.listQuery.size + var pageindex = index + 1 + pagestart + return pageindex + }, + // 查询列表信息 + getList() { + this.listLoading = true + this.listQuery.params.userSid = window.sessionStorage.getItem('userSid') + this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath') + this.listQuery.params.menuUrl = this.$route.path + req.listPage(this.listQuery).then((response) => { + this.listLoading = false + if (response.success) { + this.list = response.data.records + this.listQuery.total = response.data.total + } else { + this.list = [] + this.listQuery.total = 0 + } + }) + }, + // 查询按钮 + handleFilter() { + this.listQuery.current = 1 + this.getList() + }, + // 点击重置 + handleReset() { + this.listQuery = { + current: 1, + size: 10, + total: 0, + params: { + createStartTime: '', + createEndTime: '', + deptName: '', + userSid: '', + orgPath: '', + menuUrl: '' + } + } + this.getList() + }, + doClose() { + this.$store.dispatch('tagsView/delView', this.$route) + this.$router.go(-1) + } + + } + } + + diff --git a/yxt-as-ui/src/views/statement/monthlyReport/oneTimeRate/oneTimeRateDetail.vue b/yxt-as-ui/src/views/statement/monthlyReport/oneTimeRate/oneTimeRateDetail.vue new file mode 100644 index 0000000000..f67b23da76 --- /dev/null +++ b/yxt-as-ui/src/views/statement/monthlyReport/oneTimeRate/oneTimeRateDetail.vue @@ -0,0 +1,218 @@ + + + + +