lsw 11 місяців тому
батько
коміт
a4b7b806db

+ 1 - 0
admin-ui/src/assets/styles/ruoyi.scss

@@ -93,6 +93,7 @@ h6 {
 }
 .el-dialog__wrapper{
 	z-index: 1504!important;
+  background-color: #00000078;
 }
 .el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body {
   overflow: auto;

+ 2 - 2
admin-ui/src/views/work/statement/give/index.vue

@@ -34,7 +34,7 @@
       <el-table-column label="应发金额(元)" align="center" prop="money" width="125" />
       <el-table-column label="发放业务费(元)" align="center" prop="realMoney" width="125" />
       <el-table-column label="综合服务费(元)" align="center" prop="serviceMoney" width="125" />
-      <el-table-column label="发放状态" align="center" width="110">
+      <el-table-column label="发放状态" align="center" width="110" fixed="right">
         <template slot-scope="scope">
           <el-tag type="info" v-if="scope.row.give == 0">待发放</el-tag>
           <el-tag type="danger" v-if="scope.row.give == 1">待平台核实</el-tag>
@@ -42,7 +42,7 @@
         </template>
       </el-table-column>
       <el-table-column label="创建日期" align="center" prop="auditTime" width="160" />
-      <el-table-column label="操作" align="center" width="200">
+      <el-table-column label="操作" align="center" width="200" fixed="right">
         <template slot-scope="scope">
           <el-button size="mini" type="text" icon="el-icon-view" @click="op('detail', scope.row)">详情</el-button>
           <el-button size="mini" type="text" icon="el-icon-s-promotion" @click="op('send', scope.row)" v-if="scope.row.give == 0">发放</el-button>

+ 67 - 58
admin-ui/src/views/work/statement/pay/edit.vue

@@ -24,12 +24,12 @@
     <el-table :data="response.rows" border height="400">
       <el-table-column type="index" label="序号" align="center" width="70" />
       <el-table-column label="姓名" align="center" prop="name" width="100" />
-      <el-table-column label="身份证号" align="center" prop="idCard" width="180"/>
+      <el-table-column label="身份证号" align="center" prop="idCard" width="180" />
       <el-table-column label="手机号" align="center" prop="phone" width="130" />
       <el-table-column label="支付宝账户" align="center" prop="alipay" width="130" />
       <el-table-column label="流水号" align="center" prop="num" width="170" />
-      <el-table-column label="开户行" align="center" prop="bankName" width="130"/>
-      <el-table-column label="银行卡号" align="center" prop="bankAccount" width="180"/>
+      <el-table-column label="开户行" align="center" prop="bankName" width="130" />
+      <el-table-column label="银行卡号" align="center" prop="bankAccount" width="180" />
       <el-table-column label="结算金额(元)" align="center" prop="money" width="120" />
       <el-table-column label="发放业务费(元)" align="center" prop="realMoney" width="120" />
       <el-table-column label="综合服务费(元)" align="center" prop="serviceMoney" width="120" />
@@ -45,71 +45,80 @@
     </el-table>
     <pagination v-if="response.total > 0" :total="response.total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
     <div class="mfooter" v-if="!param.detail">
+      <el-button type="primary" icon="el-icon-download" @click="handleExport()">导出网银助手表单</el-button>
       <el-button type="primary" @click="submitForm">确认发放</el-button>
       <el-button @click="$layer.close(layerid)">取 消</el-button>
     </div>
   </div>
 </template>
 <script>
-export default {
-  data() {
-    return {
-      ids: [],
-      showSearch: true,
-      response: {},
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        name: null,
-        phone: null,
-        idCard: null,
-        orderByColumn: 'id',
-        isAsc: 'desc'
-      }
-    };
-  },
-  props: {
-    param: {
-      type: Object,
-      default: () => {
-        return {};
-      }
+  export default {
+    data() {
+      return {
+        ids: [],
+        showSearch: true,
+        response: {},
+        queryParams: {
+          pageNum: 1,
+          pageSize: 10,
+          name: null,
+          phone: null,
+          idCard: null,
+          orderByColumn: 'id',
+          isAsc: 'desc'
+        }
+      };
     },
-    layerid: {
-      type: String
-    }
-  },
-  mounted() {
-    this.queryParams.statementId = this.param.form.id;
-    this.getList();
-  },
-  methods: {
-    getList() {
-      this.ajax({ url: '/work/statement/detailList', data: this.queryParams }).then((response) => {
-        this.response = response;
-      });
+    props: {
+      param: {
+        type: Object,
+        default: () => {
+          return {};
+        }
+      },
+      layerid: {
+        type: String
+      }
     },
-    handleQuery() {
-      this.queryParams.pageNum = 1;
+    mounted() {
+      this.queryParams.statementId = this.param.form.id;
       this.getList();
     },
-    resetQuery() {
-      this.resetForm('queryForm');
-      this.handleQuery();
-    },
-    submitForm() {
-      this.$confirm('是否确认发放业务费?', '警告', { type: 'warning' }).then(() => {
-        this.ajax({ url: '/work/statement/pay/ok/' + this.param.form.id }).then((response) => {
-          this.$modal.msgSuccess('发放成功,已成功扣款');
-          this.$layer.close(this.layerid);
-          this.getList();
+    methods: {
+      getList() {
+        this.ajax({ url: '/work/statement/detailList', data: this.queryParams }).then((response) => {
+          this.response = response;
         });
-      });
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('/work/recharge/export', { ...this.queryParams }, '充值明细.xlsx');
+      },
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      resetQuery() {
+        this.resetForm('queryForm');
+        this.handleQuery();
+      },
+      submitForm() {
+        this.$confirm('是否已经确认发放业务费(建行网银转账成功)?', '警告', { type: 'warning' }).then(() => {
+          this.ajax({ url: '/work/statement/pay/ok/' + this.param.form.id }).then((response) => {
+            this.$modal.msgSuccess('发放成功,已成功扣款');
+            this.$layer.close(this.layerid);
+            this.getList();
+          });
+        });
+      },
+      /** 导出按钮操作 */
+      handleExport(row) {
+        this.$prompt('确定导出网银助手表单', {
+          type: 'warning',
+          showInput: true,
+          inputType: 'textarea',
+          inputPlaceholder: '转账备注(选填)',
+          inputValidator: (value) => {}
+        }).then(({ value }) => {
+          this.download('/work/statement/pay/export', { ...{ statementId: this.param.form.id, remarks: value } }, '网银助手表单.xlsx');
+        });
+      }
     }
-  }
-};
+  };
 </script>

+ 74 - 52
admin-ui/src/views/work/statement/pay/index.vue

@@ -32,17 +32,19 @@
       <el-table-column label="结算金额(元)" align="center" prop="money" width="125" />
       <el-table-column label="发放业务费(元)" align="center" prop="realMoney" width="125" />
       <el-table-column label="综合服务费(元)" align="center" prop="serviceMoney" width="125" />
-      <el-table-column label="发放状态" align="center" width="110">
+      <el-table-column label="创建日期" align="center" prop="giveTime" width="160" />
+      <el-table-column label="发放状态" align="center" width="110" fixed="right">
         <template slot-scope="scope">
           <el-tag type="info" v-if="scope.row.give == 1">待发放</el-tag>
           <el-tag type="success" v-if="scope.row.give == 2">已发放</el-tag>
         </template>
       </el-table-column>
-      <el-table-column label="创建日期" align="center" prop="giveTime" width="160" />
-      <el-table-column label="操作" align="center" width="160" fixed="right">
+      <el-table-column label="操作" align="center" width="250" fixed="right">
         <template slot-scope="scope">
           <el-button size="mini" type="text" icon="el-icon-view" @click="op('detail', scope.row)">详情</el-button>
           <el-button size="mini" type="text" icon="el-icon-s-promotion" @click="op('ok', scope.row)" v-hasPermi="['work:statement:ok']" v-if="scope.row.give === 1">发放</el-button>
+          <el-button size="mini" type="text" icon="el-icon-download" @click="handleExport(scope.row)" v-hasPermi="['work:statement:export']" v-if="scope.row.give === 1">导出</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="del(scope.row)" v-hasPermi="['work:statement:delete']">删除</el-button>
         </template>
       </el-table-column>
       <template slot="empty">
@@ -54,58 +56,78 @@
 </template>
 
 <script>
-import edit from './edit';
-import company from '@/views/work/company/edit';
-export default {
-  data() {
-    return {
-      showSearch: true,
-      response: {},
-      dateRange: [],
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        num: null,
-        give: null,
-        orderByColumn: 's.id',
-        isAsc: 'desc'
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    getList() {
-      if (this.dateRange) {
-        this.queryParams.dateBegin = this.dateRange[0];
-        this.queryParams.dateEnd = this.dateRange[1];
-      }
-      this.ajax({ url: '/work/statement/pay', data: this.queryParams }).then((response) => {
-        this.response = response;
-      });
+  import edit from './edit';
+  import company from '@/views/work/company/edit';
+  export default {
+    data() {
+      return {
+        showSearch: true,
+        response: {},
+        dateRange: [],
+        queryParams: {
+          pageNum: 1,
+          pageSize: 10,
+          num: null,
+          give: null,
+          orderByColumn: 's.id',
+          isAsc: 'desc'
+        }
+      };
     },
-    handleQuery() {
-      this.queryParams.pageNum = 1;
+    created() {
       this.getList();
     },
-    resetQuery() {
-      this.resetForm('queryForm');
-      this.dateRange = [];
-      this.handleQuery();
-    },
-    op(tag, row) {
-      const id = row.id;
-      if (tag == 'company') {
-        this.iframe({ obj: company, param: { id: row.companyId, detail: true }, title: '查看企业信息', width: '60%', height: '75%' });
-      }
-      if (tag == 'detail') {
-        this.iframe({ obj: edit, param: { form: row, detail: true }, title: '查看详情', width: '75%', height: '70%' });
-      }
-      if (tag == 'ok') {
-        this.iframe({ obj: edit, param: { form: row }, title: '发放业务费', width: '75%', height: '70%' });
+    methods: {
+      getList() {
+        if (this.dateRange) {
+          this.queryParams.dateBegin = this.dateRange[0];
+          this.queryParams.dateEnd = this.dateRange[1];
+        }
+        this.ajax({ url: '/work/statement/pay', data: this.queryParams }).then((response) => {
+          this.response = response;
+        });
+      },
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      resetQuery() {
+        this.resetForm('queryForm');
+        this.dateRange = [];
+        this.handleQuery();
+      },
+      op(tag, row) {
+        const id = row.id;
+        if (tag == 'company') {
+          this.iframe({ obj: company, param: { id: row.companyId, detail: true }, title: '查看企业信息', width: '60%', height: '75%' });
+        }
+        if (tag == 'detail') {
+          this.iframe({ obj: edit, param: { form: row, detail: true }, title: '查看详情', width: '75%', height: '70%' });
+        }
+        if (tag == 'ok') {
+          this.iframe({ obj: edit, param: { form: row }, title: '发放业务费', width: '75%', height: '70%' });
+        }
+      },
+      del(row) {
+        this.$confirm('是否确认删除选中数据?', '警告', { type: 'warning' }).then(() => {
+          this.get({ url: '/work/statement/pay/delete/' + row.id }).then((response) => {
+            this.$modal.msgSuccess('删除成功');
+            this.getList();
+          });
+        });
+      },
+      /** 导出按钮操作 */
+      handleExport(row) {
+        this.$prompt('确定导出网银助手表单', {
+          type: 'warning',
+          showInput: true,
+          inputType: 'textarea',
+          inputPlaceholder: '转账备注(选填)',
+          inputValidator: (value) => {}
+        }).then(({ value }) => {
+          this.download('/work/statement/pay/export', { ...{ statementId: row.id, remarks: value } }, '网银助手表单.xlsx');
+        });
       }
     }
-  }
-};
+  };
 </script>

+ 2 - 2
app/pages.json

@@ -13,13 +13,13 @@
 		{
 			"path": "pages/index/index",
 			"style": {
-				"navigationBarTitleText": "承揽广场"
+				"navigationBarTitleText": "结算广场"
 			}
 		},
 		{
 			"path": "pages/packages/index",
 			"style": {
-				"navigationBarTitleText": "承揽广场",
+				"navigationBarTitleText": "结算广场",
 				"enablePullDownRefresh": true
 			}
 		},

+ 8 - 0
app/pages/clsd/serve/index.vue

@@ -62,6 +62,14 @@
 					</view>
 				</view>
 			</view>
+			<view class="cd">
+				<view class="out">
+					<view class="int">
+						<view class="icon" style="background-color: #795548">&#xe6a6;</view>
+						<view class="title">社保窗口</view>
+					</view>
+				</view>
+			</view>
 		</view>
 		<!--新闻-->
 		<view class="news" @click="webview('https://chenglantimes.com/tzgg')">

+ 1 - 1
app/pages/index/index.vue

@@ -60,7 +60,7 @@
 					<view class="int">
 						<view class="icon tb" style="color: rgb(250, 83, 118)">&#xe604;</view>
 						<view class="con">
-							<view class="bt">进入承揽</view>
+							<view class="bt">进入结算</view>
 							<view class="zt">{{ !user.isCompany || user.isCompany == 0 ? '请先签约' : '开始' }}</view>
 						</view>
 						<view class="state">

+ 18 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/controller/StatementController.java

@@ -11,6 +11,8 @@ import com.ruoyi.web.work.domain.StatementDetail;
 import com.ruoyi.web.work.domain.dto.RejectDto;
 import com.ruoyi.web.work.domain.dto.SmsDto;
 import com.ruoyi.web.work.domain.dto.StatementDto;
+import com.ruoyi.web.work.domain.dto.StatementExportDto;
+import com.ruoyi.web.work.domain.vo.StatementExportListVo;
 import com.ruoyi.web.work.service.ICommonService;
 import com.ruoyi.web.work.service.IStatementDetailService;
 import com.ruoyi.web.work.service.IStatementService;
@@ -131,6 +133,22 @@ public class StatementController extends BaseController {
         return statementService.payOk(id);
     }
 
+    @PreAuthorize("@ss.hasPermi('work:statement:export')")
+    @Log(title = "平台导出网银助手表单", businessType = BusinessType.EXPORT)
+    @PostMapping("/pay/export")
+    public void payExport(HttpServletResponse response, @Validated StatementExportDto dto){
+        List<StatementExportListVo> list = statementService.exportList(dto);
+        ExcelUtil<StatementExportListVo> util = new ExcelUtil<StatementExportListVo>(StatementExportListVo.class);
+        util.exportExcel(response, list, "网银助手表单");
+    }
+
+    @PreAuthorize("@ss.hasPermi('work:statement:delete')")
+    @Log(title = "平台删除发放业务费", businessType = BusinessType.UPDATE)
+    @GetMapping("/pay/delete/{id}")
+    public AjaxResult payDelete(@PathVariable("id") Long id) throws ServerException {
+        return statementService.payDelete(id);
+    }
+
     @PreAuthorize("@ss.hasPermi('work:statement:give')")
     @Log(title = "发放业务费获取验证码", businessType = BusinessType.INSERT)
     @GetMapping("/give/sms")

+ 22 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/dto/StatementExportDto.java

@@ -0,0 +1,22 @@
+package com.ruoyi.web.work.domain.dto;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lsw
+ * @date 2024-04-20
+ */
+@Data
+@Accessors(chain = true)
+public class StatementExportDto {
+    private static final long serialVersionUID = 1L;
+
+    @NotNull(message = "参数错误")
+    private Long statementId;
+
+    private String remarks;
+
+}

+ 45 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/vo/StatementExportListVo.java

@@ -0,0 +1,45 @@
+package com.ruoyi.web.work.domain.vo;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+
+/**
+ * @author lsw
+ * @date 2024-04-20
+ */
+@Data
+@Accessors(chain = true)
+public class StatementExportListVo {
+    private static final long serialVersionUID = 1L;
+
+    @Excel(name = "序号(必填)")
+    private Integer index;
+
+    @Excel(name = "账号(必填)",width =30)
+    private String bankAccount;
+
+    @Excel(name = "户名(必填)")
+    private String name;
+
+    @Excel(name = "金额(必填)")
+    private BigDecimal money;
+
+    @Excel(name = "跨行标识(选填 建行填0 他行填1)",width =35)
+    private Integer flag;
+
+    @Excel(name = "行名(跨行业务与联行行号不能同时为空)",width=37)
+    private String bankName;
+
+    @Excel(name = "联行行号(跨行业务与行名不能同时为空)",width=37)
+    private String row;
+
+    @Excel(name = "摘要(选填 显示在收款账户流水明细中)",width=37)
+    private String excerpt;
+
+    @Excel(name = "备注(选填)",width=40)
+    private String remarks;
+
+}

+ 6 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/mapper/StatementMapper.java

@@ -2,7 +2,10 @@ package com.ruoyi.web.work.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.web.work.domain.Statement;
+import com.ruoyi.web.work.domain.dto.StatementExportDto;
+import com.ruoyi.web.work.domain.vo.StatementExportListVo;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 
@@ -15,5 +18,8 @@ public interface StatementMapper extends BaseMapper<Statement> {
 
     List<Statement> selectPayList(Statement statement);
 
+    @Select("SELECT * FROM tb_statement_detail WHERE statement_id=#{statementId}")
+    List<StatementExportListVo> exportList(StatementExportDto dto);
+
     Statement calculate(@Param("id") Long id);
 }

+ 22 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/IStatementService.java

@@ -6,6 +6,8 @@ import com.ruoyi.web.work.domain.Statement;
 import com.ruoyi.web.work.domain.StatementDetail;
 import com.ruoyi.web.work.domain.dto.RejectDto;
 import com.ruoyi.web.work.domain.dto.StatementDto;
+import com.ruoyi.web.work.domain.dto.StatementExportDto;
+import com.ruoyi.web.work.domain.vo.StatementExportListVo;
 
 import java.rmi.ServerException;
 import java.util.List;
@@ -20,6 +22,14 @@ public interface IStatementService extends IService<Statement> {
     List<Statement> selectPayList(Statement statement);
 
     /**
+     * 平台导出网银助手表单
+     *
+     * @param dto
+     * @return
+     */
+    List<StatementExportListVo> exportList(StatementExportDto dto);
+
+    /**
      * 创建结算单
      *
      * @param list
@@ -63,6 +73,7 @@ public interface IStatementService extends IService<Statement> {
 
     /**
      * 结算单审核驳回
+     *
      * @param dto
      * @return
      */
@@ -79,6 +90,7 @@ public interface IStatementService extends IService<Statement> {
 
     /**
      * 发放业务费
+     *
      * @param dto
      * @return
      */
@@ -86,9 +98,19 @@ public interface IStatementService extends IService<Statement> {
 
     /**
      * 平台确认发放业务费
+     *
      * @param id
      * @return
      * @throws ServerException
      */
     AjaxResult payOk(Long id) throws ServerException;
+
+    /**
+     * 平台删除发放业务费
+     *
+     * @param id
+     * @return
+     * @throws ServerException
+     */
+    AjaxResult payDelete(Long id) throws ServerException;
 }

+ 23 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/StatementServiceImpl.java

@@ -11,6 +11,8 @@ import com.ruoyi.common.utils.bean.BeanValidators;
 import com.ruoyi.web.work.domain.*;
 import com.ruoyi.web.work.domain.dto.RejectDto;
 import com.ruoyi.web.work.domain.dto.StatementDto;
+import com.ruoyi.web.work.domain.dto.StatementExportDto;
+import com.ruoyi.web.work.domain.vo.StatementExportListVo;
 import com.ruoyi.web.work.mapper.StatementDetailMapper;
 import com.ruoyi.web.work.mapper.StatementMapper;
 import com.ruoyi.web.work.service.*;
@@ -64,6 +66,18 @@ public class StatementServiceImpl extends ServiceImpl<StatementMapper, Statement
         return statementMapper.selectPayList(statement);
     }
 
+    @Override
+    public List<StatementExportListVo> exportList(StatementExportDto dto) {
+        List<StatementExportListVo> list = statementMapper.exportList(dto);
+        for (int i = 0; i < list.size(); i++) {
+            StatementExportListVo e = list.get(i);
+            e.setIndex(i + 1);
+            e.setFlag(e.getBankName().contains("建设银行") ? 0 : 1);
+            e.setRemarks(dto.getRemarks());
+        }
+        return list;
+    }
+
     @Transactional
     @Override
     public AjaxResult makeAdd(List<StatementDetail> list, Statement statement) {
@@ -258,7 +272,7 @@ public class StatementServiceImpl extends ServiceImpl<StatementMapper, Statement
         if (!statementDetailMapper.updateState(statement.getId())) {
             throw new ServiceException("更新结算单失败,请联系管理员");
         }
-        Record record=new Record();
+        Record record = new Record();
         record.setType(2);
         record.setCompanyId(statement.getCompanyId());
         record.setOpId(statement.getId());
@@ -268,4 +282,12 @@ public class StatementServiceImpl extends ServiceImpl<StatementMapper, Statement
         }
         return AjaxResult.success();
     }
+
+    @Override
+    public AjaxResult payDelete(Long id) throws ServerException {
+        if (!removeById(id)) {
+            throw new ServiceException("平台删除发放业务费失败,请联系平台");
+        }
+        return AjaxResult.success();
+    }
 }