费用报销单
parent
a731961c40
commit
589310505e
|
@ -2,10 +2,16 @@ package net.htjs.pt4.zzsxt.controller.xxgl.xmkpgl.fybx;
|
|||
|
||||
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONArray;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.htjs.pt4.core.BaseController;
|
||||
import net.htjs.pt4.core.entity.SaveException;
|
||||
import net.htjs.pt4.zzsxt.service.xxgl.xmkpgl.fybx.IFybxService;
|
||||
import net.htjs.pt4.zzsxt.service.xxgl.xmkpgl.kpsq.IBoKpsqService;
|
||||
import net.htjs.pt4.zzsxt.tools.HttpClientUtil;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
@ -27,6 +33,7 @@ import java.util.Map;
|
|||
public class FybxController extends BaseController {
|
||||
|
||||
final IFybxService fybxService;
|
||||
final IBoKpsqService iBoKpsqService;
|
||||
|
||||
@RequestMapping(value = "index", method = RequestMethod.GET)
|
||||
public String index() {
|
||||
|
@ -110,6 +117,87 @@ public class FybxController extends BaseController {
|
|||
return getResult(mapModel, code, msg, callback);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "fqbx", produces = "application/json;charset=UTF-8")
|
||||
@ResponseBody
|
||||
public Object sendJxpz(@RequestParam Map<String, String> params, String callback) throws SaveException {
|
||||
int code = 1;
|
||||
String msg = "操作成功!";
|
||||
Map mapModel = new HashMap();
|
||||
|
||||
JSONArray dataList = JSONUtil.parseArray(params.get("param"));
|
||||
|
||||
if (dataList == null || dataList.isEmpty()) {
|
||||
return getResult(mapModel, 1, "报销费用数据为空", callback);
|
||||
}
|
||||
|
||||
Map<String, Object> xtcsMap = new HashMap<>();
|
||||
xtcsMap.put("CSMC", "FYBX_TS_URL");
|
||||
Map xycsMap = iBoKpsqService.selectZZSGL_XT_CSSZ(xtcsMap);
|
||||
String apiUrl = MapUtil.getStr(xycsMap, "CSZ");
|
||||
for (int i = 0; i < dataList.size(); i++) {
|
||||
JSONObject data = dataList.getJSONObject(i);
|
||||
JSONObject reqData = this.packageRequestData(data);
|
||||
String param = JSONUtil.toJsonStr(reqData);
|
||||
log.info("请求路径及参数:\n\t{} \n\t{}", apiUrl, param);
|
||||
String result = HttpClientUtil.postRequest(apiUrl, param, "json", "utf-8", 0, 0);
|
||||
JSONObject resultJson = JSONUtil.parseObj(result);
|
||||
log.info("返回结果:{}", JSONUtil.toJsonPrettyStr(resultJson));
|
||||
}
|
||||
|
||||
return getResult(mapModel, code, msg, callback);
|
||||
}
|
||||
|
||||
private JSONObject packageRequestData(JSONObject data) throws SaveException {
|
||||
JSONObject fydj = new JSONObject();
|
||||
fydj.put("djbh", data.get("DJBH")); // 单据编号
|
||||
fydj.put("djrq", data.get("DJRQ")); // 单据日期 格式:yyyy-MM-dd
|
||||
fydj.put("djlx", data.get("DJLX")); // 单据类型
|
||||
fydj.put("djje", data.get("DJJE")); // 单据金额
|
||||
fydj.put("djse", data.get("DJSE")); // 单据税额
|
||||
fydj.put("bxr", data.get("BXR")); // 报销人
|
||||
fydj.put("bxsj", data.get("BXSJ")); // 报销时间 yyyy-MM-dd HH:mm:ss
|
||||
fydj.put("bxsy", data.get("BXSY")); // 报销事由
|
||||
fydj.put("bxzt", data.get("BXZT")); // 报销状态:1.未报销 2.报销中 3.已报销
|
||||
fydj.put("bz", data.get("BZ")); // 备注
|
||||
fydj.put("qysh", data.get("KHSH")); // 客户税号
|
||||
fydj.put("qymc", data.get("KHMC")); // 客户名称
|
||||
fydj.put("zw", data.get("ZW")); // 职位
|
||||
|
||||
Map queryFydjmxMap = new HashMap();
|
||||
queryFydjmxMap.put("FYID", data.get("FYID"));
|
||||
|
||||
JSONArray mxList = new JSONArray();
|
||||
fydj.put("mxList", mxList);
|
||||
List<Map> mx_list = this.fybxService.selectZZSGL_JX_FYDJMX(queryFydjmxMap);
|
||||
for (Map mx_map : mx_list) {
|
||||
JSONObject fydjmx = new JSONObject();
|
||||
fydjmx.put("xh", mx_map.get("XH"));
|
||||
fydjmx.put("fpzs", mx_map.get("FPZS"));
|
||||
fydjmx.put("fylx", mx_map.get("FYLX"));
|
||||
fydjmx.put("fysy", mx_map.get("FYSY"));
|
||||
fydjmx.put("hjje", mx_map.get("HJJE"));
|
||||
fydjmx.put("hjse", mx_map.get("HJSE"));
|
||||
fydjmx.put("jshj", mx_map.get("JSHJ"));
|
||||
|
||||
|
||||
JSONArray fpList = new JSONArray();
|
||||
fydjmx.put("fpList", fpList);
|
||||
List<Map> list = this.fybxService.selectZZSGL_JX_FYDJ_MX_FP(queryFydjmxMap);
|
||||
for (Map map : list) {
|
||||
JSONObject fymxfp = new JSONObject();
|
||||
fymxfp.put("fpdm", map.get("FPDM")); // 发票代码
|
||||
fymxfp.put("fphm", map.get("FPHM")); // 发票号码
|
||||
fymxfp.put("jshj", map.get("JSHJ")); // 价税合计
|
||||
|
||||
fpList.add(fymxfp);
|
||||
}
|
||||
mxList.add(fydjmx);
|
||||
}
|
||||
|
||||
return fydj;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
DJBH VARCHAR ( 50 ) COMMENT '单据编号',
|
||||
DJRQ DATETIME COMMENT '单据日期',
|
||||
|
|
|
@ -18,4 +18,6 @@ public interface FybxMapper {
|
|||
Integer insertZZSGL_JX_FYDJ_MX_FP(List<Map> list);
|
||||
|
||||
List<Map> selectZZSGL_JX_FYDJMX(Map userMap);
|
||||
|
||||
List<Map> selectZZSGL_JX_FYDJ_MX_FP(Map userMap);
|
||||
}
|
||||
|
|
|
@ -87,4 +87,9 @@ public class FybxServiceImpl implements IFybxService {
|
|||
throw new SaveException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map> selectZZSGL_JX_FYDJ_MX_FP(Map userMap) {
|
||||
return this.fybxMapper.selectZZSGL_JX_FYDJ_MX_FP(userMap);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,4 +13,6 @@ public interface IFybxService {
|
|||
Integer insert(Map userMap);
|
||||
|
||||
List<Map> selectZZSGL_JX_FYDJMX(Map userMap) throws SaveException;
|
||||
|
||||
List<Map> selectZZSGL_JX_FYDJ_MX_FP(Map userMap);
|
||||
}
|
||||
|
|
|
@ -70,4 +70,19 @@
|
|||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectZZSGL_JX_FYDJ_MX_FP" resultType="map" parameterType="map">
|
||||
select
|
||||
FPID, FPDM, FPHM, KPRQ, JSHJ
|
||||
from ZZSGL_JX_FYDJMX mx
|
||||
inner join ZZSGL_JX_FPXX fp on mx.FPID = fp.FPID
|
||||
<where>
|
||||
<if test="FYMXID!=null and FYMXID!=''">
|
||||
AND mx.FYMXID = #{FYMXID}
|
||||
</if>
|
||||
<if test="FYID!=null and FYID!=''">
|
||||
AND mx.FYID = #{FYID}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
|
@ -88,24 +88,10 @@ var kpsq_list = (function () {
|
|||
$('#add').click(function () {
|
||||
curSeg.onAdd();
|
||||
});
|
||||
|
||||
//添加开票申请信息
|
||||
$('#sta').click(function () {
|
||||
layui.use('table', function () {
|
||||
var table = layui.table;
|
||||
var selectData = table.checkStatus('table_sb').data;
|
||||
if (selectData.length < 1) {
|
||||
layui.use('layer', function () {
|
||||
var layer = layui.layer;
|
||||
layer.ready(function () {
|
||||
top.layer.alert("请选择一条开票申请!", {icon: 0, closeBtn: 0});
|
||||
})
|
||||
// 发起报销
|
||||
$("#push").click(function () {
|
||||
curSeg.onPush();
|
||||
});
|
||||
return false;
|
||||
}
|
||||
curSeg.onStart(selectData);
|
||||
})
|
||||
})
|
||||
};
|
||||
var getCols = function () {
|
||||
var colsObj = [
|
||||
|
@ -209,72 +195,6 @@ var kpsq_list = (function () {
|
|||
$(window).unload(function () {
|
||||
});
|
||||
},
|
||||
|
||||
onTbkp: function (hcfp, kplx) {
|
||||
layui.use("table", function () {
|
||||
var table = layui.table;
|
||||
var selectData = table.checkStatus('table_sb').data;
|
||||
if (selectData == null || selectData == '' || selectData == undefined) {
|
||||
layui.use('layer', function () {
|
||||
var layer = layui.layer;
|
||||
layer.ready(function () {
|
||||
top.layer.alert("请选择一条记录!", {icon: 0, closeBtn: 0});
|
||||
})
|
||||
})
|
||||
return;
|
||||
} else if (selectData.length >= 2) {
|
||||
layui.use('layer', function () {
|
||||
var layer = layui.layer;
|
||||
layer.ready(function () {
|
||||
top.layer.alert("同步开票,请选一条数据!", {icon: 0, closeBtn: 0});
|
||||
})
|
||||
})
|
||||
return;
|
||||
}
|
||||
if (kpsx == "sybkp") {
|
||||
if (selectData[0].SQZT != 2) {
|
||||
parent.layer.msg("此单据未审核", {icon: 6, time: 3000});
|
||||
return;
|
||||
}
|
||||
}
|
||||
baseTools.xhrAjax({
|
||||
url: "/web/xxgl/xmkpgl/kpsq/tbkp.do",
|
||||
params: {"SQID": selectData[0].SQID, kpzt: hcfp, kplx: kplx},
|
||||
callback: [function (jsonObj, xhrArgs) {
|
||||
if (jsonObj.code == 0) {
|
||||
if (kpsx == "qdtbkp") {
|
||||
var intervalTimes = 0;
|
||||
var intervalIndex = setInterval(function () {
|
||||
$.get("/web/xxgl/xmkpgl/kpsq/get.do", {sqid: selectData[0].SQID}, function (res) {
|
||||
if (res.code == 0) {
|
||||
if (res.data.fphm) {
|
||||
clearInterval(intervalIndex)
|
||||
parent.layer.msg("开票成功", {icon: 6, time: 3000});
|
||||
sctTools.successMsg(jsonObj.msg);
|
||||
layui.table.reload("table_sb", {page: {curr: $(".layui-laypage-em").next().html()}});
|
||||
} else if (res.data.msg) {
|
||||
clearInterval(intervalIndex)
|
||||
parent.layer.msg(res.data.msg);
|
||||
}
|
||||
}
|
||||
intervalTimes++;
|
||||
if (intervalTimes >= 10) {
|
||||
clearInterval(intervalIndex)
|
||||
parent.layer.msg("开票失败");
|
||||
}
|
||||
})
|
||||
}, 1000)
|
||||
} else {
|
||||
sctTools.successMsg(jsonObj.msg);
|
||||
layui.table.reload("table_sb", {page: {curr: $(".layui-laypage-em").next().html()}});
|
||||
}
|
||||
} else if (jsonObj.code == -1) {
|
||||
sctTools.errorMsg(jsonObj.msg);
|
||||
}
|
||||
}]
|
||||
});
|
||||
})
|
||||
},
|
||||
reOnLoad: function () {
|
||||
//执行重载
|
||||
layui.use('table', function () {
|
||||
|
@ -297,13 +217,6 @@ var kpsq_list = (function () {
|
|||
$("#form_search")[0].reset();
|
||||
},
|
||||
|
||||
//点击左侧导航项目树节点的回调事件
|
||||
onZzjgZtreeCallBack: function (node) {
|
||||
selectXmObj = node;
|
||||
top.window.iframeLayerData = selectXmObj;
|
||||
curSeg.onQuery();
|
||||
},
|
||||
|
||||
/**
|
||||
*@Author Blue shaoming
|
||||
*@Description 查询
|
||||
|
@ -391,134 +304,6 @@ var kpsq_list = (function () {
|
|||
});
|
||||
},
|
||||
|
||||
//生成负数单据
|
||||
onAddFsdj: function (data) {
|
||||
$.ajax({
|
||||
url: "/web/xxgl/xmkpgl/kpsq/addFS_ZZSGL_XX_KPSQ.do",
|
||||
data: data,
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
if (res.code == '1') {
|
||||
layer.msg("生成负数单据成功", {
|
||||
icon: 6,
|
||||
time: 3000
|
||||
});
|
||||
layui.table.reload("table_sb", {page: {curr: $(".layui-laypage-em").next().html()}});
|
||||
} else {
|
||||
layer.msg(res.msg, {
|
||||
icon: 2,
|
||||
time: 3000
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
onEwm: function (data) {
|
||||
top.window.iframeLayerData = data[0];
|
||||
top.sctTools.openPage({
|
||||
type: 2,
|
||||
title: '<b>抬头二维码</b>',
|
||||
maxmin: false,
|
||||
shadeClose: false, //点击遮罩关闭层
|
||||
area: ['500px', '400px'],
|
||||
content: '/web/xxgl/xmkpgl/kpsq/QRCode_index',
|
||||
btnAlign: 'c',
|
||||
yes: function (index, layero) {
|
||||
parent.layer.close(parent.layer.index);
|
||||
},
|
||||
});
|
||||
},
|
||||
//添加开票申请页面
|
||||
onFyjn: function (data) {
|
||||
top.sctTools.openPage({
|
||||
type: 2,
|
||||
id: 'win_kpsq_addfpxx',
|
||||
title: '<b>费用缴纳</b>',
|
||||
maxmin: true,
|
||||
shadeClose: true, //点击遮罩关闭层
|
||||
area: ['80%', '75%'],
|
||||
content: '/web/xxgl/xmkpgl/kpsq/index_fyjn',
|
||||
btn: ['确定', '关闭'],
|
||||
btnAlign: 'c',
|
||||
success: function (layero, index) {
|
||||
var $doc = layero.find('iframe').contents();
|
||||
|
||||
$doc.find('#SQID').val(data.SQID);
|
||||
$doc.find('#qymc').val(data.QYMC);
|
||||
$doc.find('#qysh').val(data.QYSH);
|
||||
|
||||
if (data.FPLXDM == "004") {
|
||||
$doc.find('#fplx').val("专票");
|
||||
} else if (data.FPLXDM == "007") {
|
||||
$doc.find('#fplx').val("普票");
|
||||
} else {
|
||||
$doc.find('#fplx').val(data.FPLXDM);
|
||||
}
|
||||
|
||||
|
||||
$doc.find('#htje').val(data.HTJE + "元");
|
||||
$doc.find('#zfje').val(data.ZFJE + "元");
|
||||
},
|
||||
yes: function (index, layero) {
|
||||
var $doc = layero.find('iframe').contents();
|
||||
var SQID = $doc.find('#SQID').val();
|
||||
var JJZHH = $doc.find('#JJZHH').val();
|
||||
|
||||
console.log($doc.find('input[name="pay_type"]:checked').val());
|
||||
|
||||
if ($doc.find('input[name="pay_type"]:checked').val() == "1") {
|
||||
top.layui.layer.confirm('请确认已扫码支付', {icon: 3, title: '提示'}, function (index) {
|
||||
//do something
|
||||
|
||||
parent.layer.closeAll();
|
||||
});
|
||||
|
||||
return;
|
||||
} else {
|
||||
if (JJZHH == undefined || JJZHH == null || JJZHH == '') {
|
||||
top.layui.layer.msg("请输入基金账户号", {
|
||||
icon: 2,
|
||||
time: 3000
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "/web/xxgl/xmkpgl/kpsq/payKpsqAndUpdateStatus.do",
|
||||
data: {
|
||||
SQID: SQID,
|
||||
JJZHH: JJZHH
|
||||
},
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
curSeg.reOnLoad();
|
||||
if (res.code == '1') {
|
||||
top.layui.layer.msg("操作成功", {
|
||||
icon: 6,
|
||||
time: 3000
|
||||
}, function () {
|
||||
parent.layer.closeAll();
|
||||
});
|
||||
|
||||
} else {
|
||||
layer.msg("操作失败", {
|
||||
icon: 2,
|
||||
time: 3000
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
btn2: function (index, layero) {
|
||||
parent.layer.closeAll();
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
// 添加页面
|
||||
onAdd: function () {
|
||||
top.window.iframeLayerData = kpsx;
|
||||
|
@ -564,7 +349,8 @@ var kpsq_list = (function () {
|
|||
});
|
||||
return false;
|
||||
} else if (data.length === 1) {
|
||||
if (data.BXZT === 3) {
|
||||
var row = data[0];
|
||||
if (row.BXZT === 3) {
|
||||
layui.use('layer', function () {
|
||||
var layer = layui.layer;
|
||||
layer.ready(function () {
|
||||
|
@ -573,7 +359,7 @@ var kpsq_list = (function () {
|
|||
});
|
||||
return false;
|
||||
}
|
||||
if (data.BXZT === 2) {
|
||||
if (row.BXZT === 2) {
|
||||
layui.use('layer', function () {
|
||||
var layer = layui.layer;
|
||||
layer.ready(function () {
|
||||
|
@ -582,7 +368,8 @@ var kpsq_list = (function () {
|
|||
});
|
||||
return false;
|
||||
}
|
||||
top.window.iframeLayerData = {FYBX_obj: data[0]};
|
||||
row.BJRQ = new Date(row.BJRQ);
|
||||
top.window.iframeLayerData = {FYBX_obj: row};
|
||||
top.sctTools.openPage({
|
||||
type: 2,
|
||||
id: 'win_kpsq_editfpxx',
|
||||
|
@ -605,6 +392,37 @@ var kpsq_list = (function () {
|
|||
}
|
||||
},
|
||||
|
||||
onPush: function (data) {
|
||||
var checkedList = layui.table.checkStatus('table_sb').data;
|
||||
if (!checkedList || checkedList.length === 0) {
|
||||
sctTools.errorMsg('请选择需要推送的数据!');
|
||||
return false;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "/web/xxgl/xmkpgl/fybx/fqbx",
|
||||
type : "POST",
|
||||
dataType: "json",
|
||||
data: {
|
||||
param: JSON.stringify(checkedList),
|
||||
},
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
curSeg.onQuery();
|
||||
if (res.code == '0') {
|
||||
layer.msg(res.msg, {
|
||||
icon: 6,
|
||||
time: 3000
|
||||
});
|
||||
} else {
|
||||
layer.msg(res.msg, {
|
||||
icon: 2,
|
||||
time: 3000
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
//查看开票申请信息页面
|
||||
onOpen: function (data, BZ) {
|
||||
top.window.iframeLayerData = {FYBX_obj: data};
|
||||
|
|
|
@ -113,8 +113,6 @@ var kpsq_edit =(function(){
|
|||
});
|
||||
},
|
||||
|
||||
|
||||
|
||||
// 保存数据
|
||||
onSave : function(field){
|
||||
var url = "/web/xxgl/xmkpgl/fybx/insert";// 新增费用报销,新增和修改页面保存操作调用的是同一个后台方法
|
||||
|
@ -195,8 +193,7 @@ var kpsq_edit =(function(){
|
|||
baseTools.xhrAjax({
|
||||
url: url,
|
||||
params: {
|
||||
SQID: selectedKpsqObj.SQID,
|
||||
CFBZ:'new'//查询拆分后的新明细还是之前的原明细记录
|
||||
FYID: selectedKpsqObj.FYID
|
||||
},
|
||||
callback: [function (jsonObj,xhrArgs) {
|
||||
if(jsonObj.code==0){
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
<div class="layui-form" lay-filter="searchForm">
|
||||
<div class="btn_group">
|
||||
<a href="#" class="layui-btn" id="add">新增</a>
|
||||
<a href="#" class="layui-btn" id="push">发起报销</a>
|
||||
</div>
|
||||
<form class="layui-form" name="form_search" id="form_search" method="get" action="" lay-filter="form_search">
|
||||
<div class="layui-form select_search top_header">
|
||||
|
|
Loading…
Reference in New Issue