费用单据撤销

master
xiechao 2024-05-06 16:20:51 +08:00
parent 1588df888b
commit bc45de375d
4 changed files with 137 additions and 20 deletions

View File

@ -39,6 +39,10 @@ public class FybxController extends BaseController {
final IFybxService fybxService; final IFybxService fybxService;
final IBoKpsqService iBoKpsqService; final IBoKpsqService iBoKpsqService;
// final String F7_URL = "http://maxkiddie.w1.luyouxia.net";
// final String F7_URL = "https://f7-demo.jchl.com";
final String F7_URL = "http://8.130.133.196:9003";
@RequestMapping(value = "index", method = RequestMethod.GET) @RequestMapping(value = "index", method = RequestMethod.GET)
public String index() { public String index() {
return "zzsxt/xxgl/xmkpgl/fybx/index"; return "zzsxt/xxgl/xmkpgl/fybx/index";
@ -175,7 +179,7 @@ public class FybxController extends BaseController {
// 97835d6a607e1b83cf08f11a90dcb16820e5e8a3 // 97835d6a607e1b83cf08f11a90dcb16820e5e8a3
String token = getToken(); String token = getToken();
String apiUrl = "http://127.0.0.1:8989/taxshare/api/jxApi/fydjbx"; String apiUrl = F7_URL + "/taxshare/api/jxApi/fydjbx";
for (int i = 0; i < dataList.size(); i++) { for (int i = 0; i < dataList.size(); i++) {
JSONObject data = dataList.getJSONObject(i); JSONObject data = dataList.getJSONObject(i);
JSONObject reqData = this.packageRequestData(data); JSONObject reqData = this.packageRequestData(data);
@ -206,15 +210,67 @@ public class FybxController extends BaseController {
return getResult(mapModel, code, msg, callback); return getResult(mapModel, code, msg, callback);
} }
@RequestMapping(value = "bxwc", produces = "application/json;charset=UTF-8")
@ResponseBody
public Object bxwc(@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"));
String bxzt = params.get("bxzt");
if (dataList == null || dataList.isEmpty()) {
return getResult(mapModel, 1, "报销费用数据为空", callback);
}
String token = getToken();
String apiUrl = F7_URL + "/taxshare/api/jxApi/syncFydjBxzt";
for (int i = 0; i < dataList.size(); i++) {
JSONObject data = dataList.getJSONObject(i);
JSONObject reqData = new JSONObject();
reqData.put("djbh", data.get("DJBH")); // 单据编号
reqData.put("qysh", data.get("KHSH")); // 客户税号
reqData.put("bxzt", bxzt); // 客户税号
String param = JSONUtil.toJsonStr(reqData);
log.info("请求路径及参数:\n\t{} \n\t{}", apiUrl, param);
String res = HttpRequest.post(apiUrl)
.header("X-Access-Token", token)
.body(param)
.execute().body();
cn.hutool.json.JSONObject resObj = JSONUtil.parseObj(res);
if(!"200".equals(resObj.getStr("code"))){
throw new RuntimeException(res);
}
log.info("返回结果:{}", JSONUtil.toJsonPrettyStr(resObj));
// String result = HttpClientUtil.postRequest(apiUrl, param, "json", "utf-8", 0, 0);
// JSONObject resultJson = JSONUtil.parseObj(result);
Map updateMap = new HashMap();
updateMap.put("FYID", data.get("FYID"));
updateMap.put("BXZT", bxzt);
this.fybxService.updateBxztById(updateMap);
}
return getResult(mapModel, code, msg, callback);
}
private String getToken(){ private String getToken(){
//获取token //获取token
cn.hutool.json.JSONObject tokenJsonObReq = new cn.hutool.json.JSONObject(); cn.hutool.json.JSONObject tokenJsonObReq = new cn.hutool.json.JSONObject();
tokenJsonObReq.put("app_key","90d0fbd91d437658d2bdbf66f3ca4f61"); tokenJsonObReq.put("app_key","90d0fbd91d437658d2bdbf66f3ca4f61");
tokenJsonObReq.put("app_secret","97835d6a607e1b83cf08f11a90dcb16820e5e8a3"); tokenJsonObReq.put("app_secret","97835d6a607e1b83cf08f11a90dcb16820e5e8a3");
String post = HttpRequest.post("http://127.0.0.1:8989/taxshare/api/comApi/getToken") String post = HttpRequest.post(F7_URL + "/taxshare/api/comApi/getToken")
.header("Content-Type", "application/json") .header("Content-Type", "application/json")
.body(tokenJsonObReq).execute().body(); .body(tokenJsonObReq).execute().body();
// String post = HttpUtil.post("https://f7-demo.jchl.com/taxshare/api/comApi/getToken", tokenJsonObReq);
cn.hutool.json.JSONObject tokenJsonObjRes = JSONUtil.parseObj(post); cn.hutool.json.JSONObject tokenJsonObjRes = JSONUtil.parseObj(post);
String token = tokenJsonObjRes.getJSONObject("result").getStr("token"); String token = tokenJsonObjRes.getJSONObject("result").getStr("token");

View File

@ -60,7 +60,10 @@ public class BoCgfpServiceImpl implements IBoCgfpService {
jsonString = jsonString.replace("\\", "").replace("\"{", "{").replace("}\"", "}"); jsonString = jsonString.replace("\\", "").replace("\"{", "{").replace("}\"", "}");
Map fpMap = JSON.parseObject(jsonString, Map.class); List<Map> list = JSON.parseArray(jsonString, Map.class);
for (Map fpMap : list) {
Map<String,Object> fpxx = (Map) fpMap.get("fpxx"); Map<String,Object> fpxx = (Map) fpMap.get("fpxx");
@ -78,13 +81,17 @@ public class BoCgfpServiceImpl implements IBoCgfpService {
Map map = fphqMapper.select_JX_FPXX_BY_DMHM(fpxxMap); Map map = fphqMapper.select_JX_FPXX_BY_DMHM(fpxxMap);
if (map == null){ if (map == null){
return fphqMapper.insertZZSGL_JX_FPXX_FPXZ(fpxxMap); fphqMapper.insertZZSGL_JX_FPXX_FPXZ(fpxxMap);
}else { }else {
fpxxMap.put("fpid",map.get("fpid")); fpxxMap.put("fpid",map.get("fpid"));
return fphqMapper.updateZZSGL_JX_FPXX_FPXZ(fpxxMap); fphqMapper.updateZZSGL_JX_FPXX_FPXZ(fpxxMap);
} }
} }
return 0;
}
@Override @Override
public Integer deleteZZSGL_XX_JXFP(Map userMap) { public Integer deleteZZSGL_XX_JXFP(Map userMap) {
return cgfpMapper.deleteZZSGL_XX_JXFP(userMap); return cgfpMapper.deleteZZSGL_XX_JXFP(userMap);

View File

@ -49,6 +49,14 @@ var fybx_list = (function () {
$("#push").click(function () { $("#push").click(function () {
curSeg.onPush(); curSeg.onPush();
}); });
// 发起报销
$("#cx").click(function () {
curSeg.onBxwc('1');
});
// 发起报销
$("#bxwc").click(function () {
curSeg.onBxwc('3');
});
}; };
var getCols = function () { var getCols = function () {
var colsObj = [ var colsObj = [
@ -332,6 +340,50 @@ var fybx_list = (function () {
} }
}) })
}, },
onBxwc: function (bxzt) {
var checkedList = layui.table.checkStatus('table_sb').data;
if (!checkedList || checkedList.length === 0) {
sctTools.errorMsg('请选择数据!');
return false;
}
let bxztjy = [];
for (let i = 0; i < checkedList.length; i++) {
let obj = checkedList[i];
if (obj.BXZT != '2'){
bxztjy.push(i)
}
}
if (bxztjy.length > 0){
sctTools.errorMsg('请选择报销状态为报销中的数据!');
return false;
}
$.ajax({
url: "/web/xxgl/xmkpgl/fybx/bxwc",
type : "POST",
dataType: "json",
data: {
param: JSON.stringify(checkedList),
bxzt: bxzt,
},
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) { onOpen: function (data, BZ) {
top.window.iframeLayerData = {FYBX_obj: data}; top.window.iframeLayerData = {FYBX_obj: data};

View File

@ -30,6 +30,8 @@
<div class="btn_group"> <div class="btn_group">
<a href="#" class="layui-btn" id="add">新增</a> <a href="#" class="layui-btn" id="add">新增</a>
<a href="#" class="layui-btn" id="push">发起报销</a> <a href="#" class="layui-btn" id="push">发起报销</a>
<a href="#" class="layui-btn" id="cx">撤销</a>
<a href="#" class="layui-btn" id="bxwc">报销完成</a>
</div> </div>
<form class="layui-form" name="form_search" id="form_search" method="get" action="" lay-filter="form_search"> <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"> <div class="layui-form select_search top_header">