Commit d15eb210 by ddx

add real user list

parent fefab0c3
......@@ -14,6 +14,7 @@ import com.sxc.etaxincome.common.model.report.RequestConfig;
import com.sxc.etaxincome.common.model.report.ResponseCarrier;
import com.sxc.etaxincome.common.util.ETaxPureNetUtil;
import com.sxc.etaxincome.criteria.IncomeQueryCriteria;
import com.sxc.etaxincome.criteria.IncomeRealTaxnoQueryCriteria;
import com.sxc.etaxincome.domain.business.IExceptionManager;
import com.sxc.etaxincome.domain.business.IIncomeService;
import com.sxc.etaxincome.domain.business.IQueryManager;
......@@ -21,10 +22,12 @@ import com.sxc.etaxincome.domain.business.ISysManageManager;
import com.sxc.etaxincome.domain.command.analysis.IAnalysisCommand;
import com.sxc.etaxincome.domain.infrastructure.IEtaxConfigService;
import com.sxc.etaxincome.domain.model.report.*;
import com.sxc.etaxincome.entity.FinUserTaxno;
import com.sxc.framework.common.code.MD5Util;
import com.sxc.framework.common.date.DateUtils;
import com.sxc.framework.common.file.FileUtil;
import com.sxc.framework.common.json.JSONUtil;
import com.sxc.framework.common.string.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -713,6 +716,50 @@ public class JxSampleController {
}
}
@PostMapping("/management/query/income/taxnoList/page")
public String queryIncomeTaxnoListPage(@RequestBody IncomeRealTaxnoQueryCriteria incomeRealTaxnoQueryCriteria) {
try {
if (incomeRealTaxnoQueryCriteria.getPageSize() > 100) {
incomeRealTaxnoQueryCriteria.setPageSize(100);
}
if(StringUtil.isNotEmpty(incomeRealTaxnoQueryCriteria.getStartDateTime())) {
incomeRealTaxnoQueryCriteria.setStartDateTime(this.getDateTimeHead(incomeRealTaxnoQueryCriteria.getStartDateTime()));
}
if(StringUtil.isNotEmpty(incomeRealTaxnoQueryCriteria.getEndDateTime())) {
incomeRealTaxnoQueryCriteria.setEndDateTime(this.getDateTimeTail(incomeRealTaxnoQueryCriteria.getEndDateTime()));
}
String usernameSecret = incomeRealTaxnoQueryCriteria.getUserCode();
String usernamePlain = this.getUserPlain(usernameSecret);
incomeRealTaxnoQueryCriteria.setUserCode(usernamePlain);
log.info("query income request page param:{}", JSONUtil.toString(incomeRealTaxnoQueryCriteria));
String response = queryManager.queryIncomeRealTaxnoPageList(incomeRealTaxnoQueryCriteria);
log.info("query income request page response:{}", response);
return this.handlePageResult(response);
} catch (Exception e) {
log.error("query income request page error:", e);
return "{}";
}
}
@GetMapping("/management/update/income/taxStatus/byId")
public String updateIncomeTaxStatusById(String applyId, String taxStatus) {
Map<String, Object> maps = new HashMap<>();
try {
log.info("update income taxStatus request page param:{}", applyId);
FinUserTaxno finUserTaxno = new FinUserTaxno();
finUserTaxno.setId(Integer.parseInt(applyId));
finUserTaxno.setTaxStatus(taxStatus);
boolean response = sysManageManager.updateTaxStatusById(finUserTaxno);
log.info("update income taxStatus request page response:{}", response);
maps.put("result", response);
} catch (Exception e) {
log.error("update income taxStatus request page error:", e);
maps.put("result", false);
}
return JSONUtil.toString(maps);
}
@GetMapping("/get-dqdm")
public String getDqdm(String taxno) {
return etaxConfigService.getArea(taxno);
......
package com.sxc.etaxincome.domain.business;
import com.sxc.etaxincome.criteria.IncomeQueryCriteria;
import com.sxc.etaxincome.criteria.IncomeRealTaxnoQueryCriteria;
import com.sxc.etaxincome.entity.FinRealLog;
public interface IQueryManager {
......@@ -9,4 +10,6 @@ public interface IQueryManager {
String completePeriod(Long applyId);
String completePeriod(FinRealLog incomeInvoiceApply);
String queryIncomeRealTaxnoPageList(IncomeRealTaxnoQueryCriteria incomeRealTaxnoQueryCriteria);
}
......@@ -2,6 +2,7 @@ package com.sxc.etaxincome.domain.business;
import com.sxc.etaxincome.domain.model.sysManage.SysAppUserSummary;
import com.sxc.etaxincome.entity.FinSysDict;
import com.sxc.etaxincome.entity.FinUserTaxno;
import java.util.List;
......@@ -18,5 +19,6 @@ public interface ISysManageManager {
List<SysAppUserSummary> queryListByCriteria();
List<FinSysDict> queryDictListByDictGroup(String dictGroup);
boolean updateTaxStatusById(FinUserTaxno finUserTaxno);
}
......@@ -6,12 +6,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.collect.Lists;
import com.sxc.etaxincome.criteria.FinRealLogCriteria;
import com.sxc.etaxincome.criteria.IncomeQueryCriteria;
import com.sxc.etaxincome.criteria.IncomeRealTaxnoQueryCriteria;
import com.sxc.etaxincome.domain.business.IQueryManager;
import com.sxc.etaxincome.domain.constants.CommonConstants;
import com.sxc.etaxincome.domain.model.common.PageList;
import com.sxc.etaxincome.domain.model.report.IncomeCompletePeriod;
import com.sxc.etaxincome.entity.FinRealLog;
import com.sxc.etaxincome.entity.FinUserTaxno;
import com.sxc.etaxincome.service.IFinRealLogService;
import com.sxc.etaxincome.service.IFinUserTaxnoService;
import com.sxc.framework.common.code.EncryptUtil;
import com.sxc.framework.common.json.JSONUtil;
import com.sxc.framework.common.string.StringUtil;
......@@ -32,6 +35,8 @@ public class QueryManager implements IQueryManager {
@Autowired
private IFinRealLogService finRealLogService;
@Autowired
private IFinUserTaxnoService finUserTaxnoService;
@Override
......@@ -100,5 +105,16 @@ public class QueryManager implements IQueryManager {
return JSONUtil.toString(incomeCompletePeriod);
}
public String queryIncomeRealTaxnoPageList(IncomeRealTaxnoQueryCriteria incomeRealTaxnoQueryCriteria) {
int start = incomeRealTaxnoQueryCriteria.getPageNumber();
int limit = incomeRealTaxnoQueryCriteria.getPageSize();
IPage<FinUserTaxno> incomeInvoiceApplyPage = finUserTaxnoService.queryIncomeRealTaxnoPageList(incomeRealTaxnoQueryCriteria);
List<FinUserTaxno> incomeInvoiceApplyList = incomeInvoiceApplyPage.getRecords();
PageList<FinUserTaxno> incomeInvoiceApplyPageList = PageList.<FinUserTaxno>builder()
.total(Integer.valueOf(String.valueOf(incomeInvoiceApplyPage.getTotal())))
.pageNumber(start)
.pageSize(limit)
.list(incomeInvoiceApplyList).build();
return JSONUtil.toString(incomeInvoiceApplyPageList);
}
}
......@@ -4,8 +4,10 @@ import com.sxc.etaxincome.domain.business.ICachedConfigManager;
import com.sxc.etaxincome.domain.business.ISysManageManager;
import com.sxc.etaxincome.domain.model.sysManage.SysAppUserSummary;
import com.sxc.etaxincome.entity.FinSysDict;
import com.sxc.etaxincome.entity.FinUserTaxno;
import com.sxc.etaxincome.entity.SysAppUser;
import com.sxc.etaxincome.service.IFinSysDictService;
import com.sxc.etaxincome.service.IFinUserTaxnoService;
import com.sxc.etaxincome.service.ISysAppUserService;
import com.sxc.framework.common.date.DateUtils;
import lombok.extern.slf4j.Slf4j;
......@@ -34,6 +36,9 @@ public class SysManageManager implements ISysManageManager {
private ISysAppUserService sysAppUserService;
@Autowired
private IFinUserTaxnoService finUserTaxnoService;
@Autowired
private ICachedConfigManager cachedConfigManager;
public List<SysAppUserSummary> queryListByCriteria() {
......@@ -52,4 +57,8 @@ public class SysManageManager implements ISysManageManager {
return sysDictList;
}
public boolean updateTaxStatusById(FinUserTaxno finUserTaxno) {
return finUserTaxnoService.updateTaxStatusById(finUserTaxno);
}
}
package com.sxc.etaxincome.criteria;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author caosongqing
* @date 2023/10/30
* @description
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class IncomeRealTaxnoQueryCriteria {
private Integer pageSize;
private Integer pageNumber;
private String taxno;
private String userCode;
private String taxStatus;
private String startDateTime;
private String endDateTime;
}
......@@ -4,26 +4,30 @@
"url": "jxIndex.html"
},{
"index": 2,
"api": "进项实时用户列表",
"url": "management-query-realuser-page.html"
},{
"index": 3,
"api": "进项实时请求列表",
"url": "management-query-income-page.html"
},{
"index": 3,
"index": 4,
"api": "进项勾选用户列表",
"url": "management-query-taxuser-page.html"
},{
"index": 4,
"index": 5,
"api": "进项勾选发票列表",
"url": "management-query-income-invoice-page.html"
},{
"index": 5,
"index": 6,
"api": "进项全量用户列表",
"url": "management-query-taxnumberuser-page.html"
},{
"index": 6,
"index": 7,
"api": "进项全量发票列表",
"url": "management-query-income-number-invoice-page.html"
},{
"index": 7,
"index": 8,
"api": "登录短信列表",
"url": "management-query-smsSend-page.html"
}]
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- debug disable cache -->
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Management Query Real User Page</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<link type="image/x-ico" href="/etax-income/favicon.ico" rel="shortcut icon"/>
<!-- Bootstrap 3.3.5 -->
<link rel="stylesheet" href="/etax-income/plugins/bootstrap/css/bootstrap.min.css">
<!-- DataTables -->
<link rel="stylesheet" href="css/bootstrap-table.min.css">
<link rel="stylesheet" href="css/bootstrap-table-editable.css">
<link rel="stylesheet" href="/etax-income/plugins/font-awesome-4.5.0/css/font-awesome.min.css">
</head>
<script src="/etax-income/plugins/jQuery/jQuery-2.1.4.min.js"></script>
<script src="/etax-income/plugins/jQueryUI/jquery-ui.min.js"></script>
<script src="/etax-income/plugins/bootstrap/js/bootstrap.min.js"></script>
<script src="/etax-income/plugins/datatables/bootstrap-table.min.js"></script>
<script src="/etax-income/plugins/echarts/echarts.min.js"></script>
<script src="/etax-income/plugins/My97DatePicker/WdatePicker.js"></script>
<script src="/etax-income/plugins/fileDownload/jquery.fileDownload.js"></script>
<script src="/etax-income/scripts/common.js"></script>
<script src="/etax-income/scripts/management-query-realuser-page.js"></script>
<script>
$(document).ready(function () {
$.widget.bridge('uibutton', $.ui.button);
initAll();
});
</script>
<body>
<div class="box-body">
<div class="toolbar" style="float: right;">
<a class="btn btn-info" onclick="refreshPageList()">
<i class="fa fa-search" style="font-size: 15px; color: white;"></i> 查询
</a>
</div>
<form class="form-inline">
<div class="box-body">
<div class="form-group" role="form">
<label class="col-sm-2 control-label">userCode:</label>
<div class="col-sm-4">
<select class="form-control" id="userCode">
<option value="">请选择</option>
</select>
</div>
<label class="col-sm-2 control-label">税号状态:</label>
<div class="col-sm-4">
<select class="form-control" id="taxStatus">
<option value="">请选择</option>
<option value="0">正常</option>
<option value="1">暂停</option>
<option value="9">删除</option>
</select>
</div>
<label class="col-sm-2 control-label">taxno:</label>
<div class="col-sm-4">
<input class="form-control" id="taxno" value="">
</div>
<label class="col-sm-2 control-label">创建时间:</label>
<div class="col-sm-4">
<input class="form-control" id="startDate" size="10" placeholder="yyyy-MM-dd" onClick="WdatePicker({el:this,dateFmt:'yyyy-MM-dd'})"> - <input class="form-control" id="endDate" size="10" placeholder="yyyy-MM-dd" onClick="WdatePicker({el:this,dateFmt:'yyyy-MM-dd'})">
</div>
</div>
</div>
</form>
<div class="col-xs-12">
<table id="queryTaxUserTable"></table>
</div>
</div><!-- /.box-body -->
<div class="modal fade" id="incomeInvoiceSampleModal" role="dialog" aria-labelledby="incomeInvoiceSampleModalLabel" aria-hidden="false">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×
</button>
<h4 class="modal-title" id="incomeInvoiceCompletePeriodModalLabel">
income taxuser sample
</h4>
</div>
<div class="modal-body">
<form class="form-horizontal">
<div class="box-body">
<div class="form-group">
<label class="col-sm-3 control-label">模拟参数:</label>
<div class="col-sm-9">
<textarea class="form-control" id="simulateParam" cols="60" rows="6"></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">请求值:</label>
<div class="col-sm-9">
<textarea class="form-control" id="incomeInvoiceSampleRequest" cols="60" rows="10"></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">返回值:</label>
<div class="col-sm-9">
<textarea class="form-control" id="incomeInvoiceSampleResponse" cols="60" rows="10"></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">cookie:</label>
<div class="col-sm-9">
<textarea class="form-control" id="cookie" cols="60" rows="10"></textarea>
</div>
</div>
</div>
</form>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<div class="modal fade" id="confirmModal" tabindex="-1" role="dialog" aria-labelledby="confirmModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="confirmModalLabel">启用操作</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
</div>
<div class="modal-body">
<p>您确定要执行此操作吗?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="button" class="btn btn-primary" id="confirm-action">确认</button>
</div>
</div>
</div>
</div>
</body>
</html>
function initAll() {
initAllUsernameList("userCode");
queryPageList();
}
function refreshPageList() {
// first destroy, then reload
$('#queryTaxUserTable').bootstrapTable('destroy');
queryPageList();
}
function queryPageList() {
var userCode = $("#userCode").val();
var taxno = $("#taxno").val();
var taxStatus = $("#taxStatus").val();
var endDate = $("#endDate").val();
var startDate = $("#startDate").val();
$('#queryTaxUserTable').bootstrapTable({
url: 'jxSample/management/query/income/taxnoList/page', //接口地址
method: 'post',
contentType:"application/json",
dataType: 'json',
queryParams: function queryParams(params) { //设置查询参数
var param = {
pageSize: params.limit, //每页多少条数据
pageNumber: (params.offset / params.limit) + 1, //计算当前页码
userCode: userCode,
taxStatus: taxStatus,
taxno: taxno,
startDateTime: startDate,
endDateTime: endDate
};
return param;
},
height: 560,
striped: true, //是否显示行间隔色
pagination: true, //是否显示分页(*)
maintainSelected: true, //设置为 true 在点击分页按钮或搜索按钮时,将记住checkbox的选择项
sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: 5, //每页的记录行数(*)
pageList: [5, 10, 25, 50, 100], //可供选择的每页的行数(*)
search: true, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端
strictSearch: true, //设置为 true启用 全匹配搜索,否则为模糊搜索
showRefresh: true, //是否显示刷新按钮
minimumCountColumns: 2, //最少允许的列数
uniqueId: "id", //每一行的唯一标识,一般为主键列
sortStable: true,
columns: [
{field: 'id', title: 'id'},
{field: 'username', title: '用户名'},
{field: 'taxno', title: '税号'},
{field: '', title: '税号状态', formatter: function(value, row, index) {
var type = row['taxStatus'];
if (type === '0') {
return '正常';
} else if (type === '1') {
return '暂停';
} else if (type === '9') {
return '删除';
} else {
return '未知';
}
}
},
{field: '', title: '创建时间', formatter: function(value, row, index) {
var createDate = row["createDate"];
if (createDate === undefined) {
return '-';
}
return new Date(createDate).format('yyyy-MM-dd HH:mm:ss');
}
},
{field: '', title: '操作', formatter: function(value, row, index) {
var taxStatus = row['taxStatus'];
if (taxStatus === '9') {
var viewButton = '<a class="edit ml10" href="javascript:openSampleModal(\'' + row["id"] + '\',\'0\');">启用</a>';
return viewButton;
} else if (taxStatus === '0') {
var viewButton = '<a class="edit ml10" href="javascript:openSampleModal(\'' + row["id"] + '\',\'9\');">清理</a>';
return viewButton;
} else {
return "--";
}
}
}
]
});
}
function initAllUsernameList(usernameId) {
var username = $("#" + usernameId).val();
if (username == "") {
$.ajax({
type: "GET",
url: "/etax-income/jxSample/jx-query-user-list",
data: {
},
dataType: "json",
contentType: "application/x-www-form-urlencoded",
async: false,
success: function (response) {
$("#" + usernameId).empty();
$("#" + usernameId).append("<option value=''>请选择</option>");
$.each(response, function(index, value) {
var selected = (value.username === '751cad12b54d883d723652d17aeb6948' ? "selected" : "");
var showName = value.nickname;
$("#" + usernameId).append("<option value='" + value.username + "' " + selected + ">" + showName + "</option>");
});
},
error: function (e) {
alert("查询用户信息失败.");
},
complete: function (e) {
;
}
});
}
}
function openSampleModal(applyId, taxStatus) {
var url = "jxSample/management/update/income/taxStatus/byId";
console.log("applyId=" + applyId);
$.ajax({
type: "GET",
url: url,
data: {
"applyId": applyId,
"taxStatus": taxStatus
},
dataType: "json",
contentType: "application/json",
async: false,
success: function (response) {
console.log("result=" + response.result);
if(response.result==true) {
refreshPageList();
} else {
alert("启用失败.");
}
},
error: function (e) {
alert("启用失败.");
},
complete: function (e) {
;
}
});
}
package com.sxc.etaxincome.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sxc.etaxincome.criteria.IncomeQueryCommon;
import com.sxc.etaxincome.criteria.IncomeRealTaxnoQueryCriteria;
import com.sxc.etaxincome.entity.FinUserTaxno;
import com.baomidou.mybatisplus.extension.service.IService;
......@@ -16,4 +18,8 @@ import java.util.List;
*/
public interface IFinUserTaxnoService extends IService<FinUserTaxno> {
List<FinUserTaxno> queryList(IncomeQueryCommon incomeQueryCommon);
IPage<FinUserTaxno> queryIncomeRealTaxnoPageList(IncomeRealTaxnoQueryCriteria incomeRealTaxnoQueryCriteria);
boolean updateTaxStatusById(FinUserTaxno finUserTaxno);
}
package com.sxc.etaxincome.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sxc.etaxincome.criteria.FinRealLogCriteria;
import com.sxc.etaxincome.criteria.IncomeQueryCommon;
import com.sxc.etaxincome.criteria.IncomeRealTaxnoQueryCriteria;
import com.sxc.etaxincome.entity.FinRealLog;
import com.sxc.etaxincome.entity.FinUserTaxno;
import com.sxc.etaxincome.mapper.FinUserTaxnoMapper;
import com.sxc.etaxincome.service.IFinUserTaxnoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sxc.framework.common.date.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
......@@ -31,4 +38,25 @@ public class FinUserTaxnoServiceImpl extends ServiceImpl<FinUserTaxnoMapper, Fin
return this.list(queryWrapper);
}
@Override
public IPage<FinUserTaxno> queryIncomeRealTaxnoPageList(IncomeRealTaxnoQueryCriteria incomeRealTaxnoQueryCriteria) {
Wrapper<FinUserTaxno> queryWrapper = Wrappers.<FinUserTaxno>lambdaQuery()
.eq(StringUtils.isNotBlank(incomeRealTaxnoQueryCriteria.getUserCode()), FinUserTaxno::getUsername, incomeRealTaxnoQueryCriteria.getUserCode())
.eq(StringUtils.isNotBlank(incomeRealTaxnoQueryCriteria.getTaxno()), FinUserTaxno::getTaxno, incomeRealTaxnoQueryCriteria.getTaxno())
.eq(StringUtils.isNotBlank(incomeRealTaxnoQueryCriteria.getTaxStatus()), FinUserTaxno::getTaxStatus, incomeRealTaxnoQueryCriteria.getTaxStatus())
.between(StringUtils.isNotBlank(incomeRealTaxnoQueryCriteria.getStartDateTime()), FinUserTaxno::getCreateDate, incomeRealTaxnoQueryCriteria.getStartDateTime(), incomeRealTaxnoQueryCriteria.getEndDateTime())
.orderByDesc(true, FinUserTaxno::getCreateDate);
return this.page(new Page<>(incomeRealTaxnoQueryCriteria.getPageNumber(), incomeRealTaxnoQueryCriteria.getPageSize()), queryWrapper);
}
@Override
public boolean updateTaxStatusById(FinUserTaxno finUserTaxno) {
Wrapper<FinUserTaxno> updateWrapper = Wrappers.lambdaUpdate(FinUserTaxno.class)
.set(FinUserTaxno::getTaxStatus, finUserTaxno.getTaxStatus())
.set(FinUserTaxno::getUpdateDate, DateUtils.getDate())
.eq(FinUserTaxno::getId, finUserTaxno.getId());
return this.update(updateWrapper);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment