From 6e94d52d0ce0c92c2169cdb19bc675ae08391a35 Mon Sep 17 00:00:00 2001 From: xinyb_ <xin0322> Date: 星期四, 17 二月 2022 17:32:53 +0800 Subject: [PATCH] 调整维护费支付功能 --- src/com/yc/MaintenanceFee/utils/ReceiptUtils.java | 2 src/com/yc/MaintenanceFee/controller/MaintainPayController.java | 63 +++- src/com/yc/MaintenanceFee/entiy/Receipt.java | 8 src/com/yc/MaintenanceFee/service/impl/ReceiptServiceImpl.java | 34 +- WebRoot/shopping/maintaince/systemconfig.jsp | 41 +- src/com/yc/MaintenanceFee/entiy/PayInfo.java | 7 src/com/yc/MaintenanceFee/utils/BackMsg.java | 5 src/com/yc/MaintenanceFee/service/impl/MaintainServiceImpl.java | 55 ++-- src/com/yc/MaintenanceFee/service/impl/PayLogServiceImpl.java | 54 +++- src/com/yc/MaintenanceFee/entiy/PayItem.java | 8 WebRoot/home.jsp | 2 src/com/yc/MaintenanceFee/controller/MaintainController.java | 19 + src/com/yc/MaintenanceFee/entiy/ReceiptEntity.java | 14 WebRoot/public/staticform/150371/5/index.jsp | 154 +++++++---- src/com/yc/MaintenanceFee/entiy/ReceiptDetailed.java | 2 WebRoot/public/staticform/150371/5/payment.jsp | 133 +++++++--- src/applicationContext.xml | 4 src/com/yc/MaintenanceFee/service/ReceiptService.java | 2 src/com/yc/MaintenanceFee/schedule/MaintainGate.java | 14 + WebRoot/demo/update1.jsp | 41 +- src/com/yc/MaintenanceFee/service/impl/PayInfoServiceImpl.java | 16 21 files changed, 425 insertions(+), 253 deletions(-) diff --git a/WebRoot/demo/update1.jsp b/WebRoot/demo/update1.jsp index 8c0f297..aa6588c 100644 --- a/WebRoot/demo/update1.jsp +++ b/WebRoot/demo/update1.jsp @@ -203,6 +203,25 @@ </select> </div> </div> + <% if(isInternalSystem){%> + <div class="layui-form-item"> + <label class="layui-form-label">鏀跺彇缁存姢璐硅处鎴�</label> + <div class="layui-input-block"> + <select name="MaintenanceFeeAcctCode" lay-filter="pay"> + <option value=""> </option> + <% + if(acctcode!=null && acctcode.size()>0){ + for(Map<String,Object> m : acctcode){ + %> + <option value="<%=DBHelper.getValue(m,"subacctcode")%>"><%=DBHelper.getValue(m,"subacctname")%></option> + <% + } + } + %> + </select> + </div> + </div> + <%}%> <fieldset class="layui-elem-field layui-field-title"> <legend>瀵规帴绗笁鏂圭郴缁熼�夐」</legend> </fieldset> @@ -507,28 +526,6 @@ <input type="text" name="tengXunMapLocationServiceKey" value="" placeholder="璺緞锛氳吘璁綅缃湇鍔�->key涓庨厤棰�->key绠$悊" autocomplete="off" class="layui-input"> </div> </div> - <% if(isInternalSystem){%> - <fieldset class="layui-elem-field layui-field-title"> - <legend>鏀跺彇缁存姢璐圭殑璐︽埛</legend> - </fieldset> - <div class="layui-form-item"> - <label class="layui-form-label">缁存姢璐硅处鎴�</label> - <div class="layui-input-block"> - <select name="MaintenanceFeeAcctCode" lay-filter="pay"> - <option value=""> </option> -<% - if(acctcode!=null && acctcode.size()>0){ - for(Map<String,Object> m : acctcode){ - %> - <option value="<%=DBHelper.getValue(m,"subacctcode")%>"><%=DBHelper.getValue(m,"subacctname")%></option> - <% - } - } -%> - </select> - </div> - </div> - <%}%> <input type="hidden" name="host" placeholder="" autocomplete="off" class="layui-input"> <input type="hidden" name="userid" placeholder="" autocomplete="off" class="layui-input"> <input type="hidden" name="port" placeholder="" autocomplete="off" class="layui-input"> diff --git a/WebRoot/home.jsp b/WebRoot/home.jsp index 291b8f8..93e03a4 100644 --- a/WebRoot/home.jsp +++ b/WebRoot/home.jsp @@ -31,7 +31,7 @@ String userCode = (String) session.getAttribute(SessionKey.USERCODE); //绯荤粺杩囨湡鍓╀綑澶╂暟 xin 2022-2-11 17:53:30 Integer expireDay=maintainService.getSystemExpireDay(dataSourceEntity.getExpiredDate()); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dayStr=(expireDay>0?sdf.format(dataSourceEntity.getExpiredDate()):null); String expireText="鎮ㄥソ锛屾偍鐨勭郴缁熷皢浜�<span style=\"color: #f35d22;\">"+expireDay+ "</span>澶╁悗<span style=\"color: #f35d22\">锛�"+dayStr+"锛�</span>鍒版湡锛�" + diff --git a/WebRoot/public/staticform/150371/5/index.jsp b/WebRoot/public/staticform/150371/5/index.jsp index 089d62a..074cef8 100644 --- a/WebRoot/public/staticform/150371/5/index.jsp +++ b/WebRoot/public/staticform/150371/5/index.jsp @@ -3,8 +3,8 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <% - String url= SettingKey.getHostUrl(request); - String dbId=(String) request.getSession().getAttribute(SessionKey.DATA_BASE_ID); + String url = SettingKey.getHostUrl(request); + String dbId = (String) request.getSession().getAttribute(SessionKey.DATA_BASE_ID); %> <!DOCTYPE html> <html lang="zh-cn"> @@ -23,14 +23,22 @@ .hide { display: none !important; } - .waitPay{ + + .waitPay { color: red; } - .otherPay{ + + .otherPay { color: green; } - .closePay{ + + .closePay { color: #df862a; + } + + .huise { + background-color: #CCC !important; + border-color: #5FB878 !important; } </style> </head> @@ -73,11 +81,17 @@ <script src="<%=url%>/layui/layui.js"></script> <script src="<%=url%>/help/js/vue.js"></script> <script type="text/html" id="barPayId"> - {{# if(d.docStatus == 0 ){ }} + {{# if((d.docStatus == 0 || d.isPaid==0) && d.skCode!=null && d.skCode!="" ){ }} <a class="layui-btn layui-btn-xs" lay-event="goPay">鍘绘敮浠�</a> - <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="close">鍙栨秷鏀粯</a> {{# }else{ }} - <span>鏃�</span> + <%-- <span>鏃�</span>--%> + {{# } }} +</script> +<script type="text/html" id="barPayId1"> + {{# if(d.docStatus == 0 && d.isPaid==0){ }} + <a class="layui-btn layui-btn-xs" lay-event="goPay">鍘绘敮浠�</a> + {{# }else{ }} + <%-- <span>鏃�</span>--%> {{# } }} </script> <script> @@ -123,7 +137,7 @@ var table = layui.table; let json_costId = [[ - {type: 'checkbox'} + {type: 'checkbox', LAY_CHECKED: true}// , {field: 'docCode', width: 180, title: '璐圭敤鍗曞彿', align: 'center'} , { field: 'docDate', width: 180, title: '璐圭敤鏃ユ湡', align: 'center', templet: function (t) { @@ -154,14 +168,19 @@ } } , { - field: 'status', width: 100, title: '鐘舵��', align: 'center', templet: function (t) { - if (t.status == 1) { - return "<font style='color:red'>寰呮敮浠�</font>"; + field: 'status', width: 150, title: '鐘舵��', align: 'center', templet: function (t) { + if (t.docStatus == 1) { + if (t.isPaid == 1) { + return "<font style='color:red'>宸叉敮浠橈紝寰呭鐞�</font>"; + } else { + return "<font style='color:red'>寰呮敮浠�</font>"; + } } else { return "<font style='color:green'>姝e父</font>"; } } } + , {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#barPayId', width: 150} ]]; let json_toBePaid = [[ {field: 'docCode', title: '鏀舵鍗曞彿', align: 'center'} @@ -196,19 +215,23 @@ , { field: 'docStatus', title: '鐘舵��', align: 'center', templet: function (t) { switch (t.docStatus) { - case "0": - return "<font style='color:red'>寰呮敮浠�</font>"; + case 0: + if (t.isPaid == 1) { + return "<font style='color:red'>宸叉敮浠橈紝寰呭鐞�</font>"; + } else { + return "<font style='color:red'>寰呮敮浠�</font>"; + } break - case "100": + case 100: return "<font style='color:green'>宸叉敮浠�</font>"; break - case "-200": + case -200: return "<font style='color:#df862a'>宸插彇娑�</font>"; break } } } - , {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#barPayId', width: 150} + , {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#barPayId1', width: 150} ]]; $("#payTableId li").on("click", function () { vm.butPrice = 0; @@ -236,15 +259,15 @@ } , done: function (res, curr, count) { let d = res.data; - let check = $(".layui-table-view").eq(index).find("table").find("tr"); - let color="otherPay"; + let color = "otherPay"; for (let j in d) { + let checkbox = $(".layui-table tr[data-index=" + d[j].LAY_TABLE_INDEX + "]"); if (index == 1) { - color="waitPay"; - }else if(index==3){ - color="closePay"; + color = "waitPay"; + } else if (index == 3) { + color = "closePay"; } - check.eq(d[j].LAY_TABLE_INDEX + 1).addClass(color).attr("title", "鍗曟嵁绫诲瀷:"+d[j].docType); + checkbox.addClass(color).attr("title", "鍗曟嵁绫诲瀷:" + d[j].docType); } } , cols: json_toBePaid @@ -265,6 +288,13 @@ if (res != null) { vm.cltCode = res.cltCode; } + if (res.data != null && res.data.length > 0) { + for (let r in res.data) { + if (res.data[r].docStatus == 1) { + res.data[r].LAY_CHECKED = false; + } + } + } return { "code": res.code, //瑙f瀽鎺ュ彛鐘舵�� "msg": '', //瑙f瀽鎻愮ず鏂囨湰 @@ -273,15 +303,31 @@ }; } , done: function (res, curr, count) { + vm.butPrice = 0; + vm.fields = []; let d = res.data; - let check = $(".layui-table-view").eq(0).find("table").find("tr"); for (let j in d) { - if (d[j].status == 1) { - check.eq(d[j].LAY_TABLE_INDEX + 1).find(".laytable-cell-checkbox").addClass("hide"); - check.eq(d[j].LAY_TABLE_INDEX + 1).addClass("waitPay").attr("title", "鍙屽嚮鍘绘敮浠�"); + let checkbox = $(".layui-table tr[data-index=" + d[j].LAY_TABLE_INDEX + "]"); + if (d[j].docStatus == 1) { + checkbox.addClass("waitPay").attr("title", "鍙屽嚮鍘诲鐞�"); + let c = checkbox.find("input[type='checkbox']"); + c.prop('disabled', true); + c.next().addClass('layui-btn-disabled'); + c.next().removeClass("layui-form-checked"); + c.next().find("i").removeClass("layui-icon-ok"); + c.next().find("i").addClass("huise"); } else { - check.eq(d[j].LAY_TABLE_INDEX + 1).addClass("otherPay"); + checkbox.addClass("otherPay"); + vm.butPrice = (Number(vm.butPrice) + Number(d[j].receivMoney)); + vm.fields.push(d[j].docCode); } + } + if (vm.butPrice > 0) { + vm.butPrice = parseFloat(vm.butPrice).toFixed(2); + } + if (vm.fields.length > 0) { + $("#payment").removeClass("layui-btn-disabled"); + vm.disabled = false; } if (backIndex() > 0 && index != 0) { $("#payTableId li").eq(backIndex()).trigger("click"); @@ -292,8 +338,6 @@ , skin: 'line' //琛岃竟妗嗛鏍� , size: 'sm' //灏忓昂瀵哥殑琛ㄦ牸 }); - - table.on('checkbox(costId)', function (obj) { let checkStatus = table.checkStatus('costId'); vm.butPrice = 0; @@ -301,7 +345,7 @@ if (checkStatus.data.length > 0) { let mut = checkStatus.data; for (let v in mut) { - if (mut[v].status == 1) { + if (mut[v].docStatus == 1) { continue; } vm.butPrice = (Number(vm.butPrice) + Number(mut[v].receivMoney)); @@ -321,6 +365,18 @@ $("#payment").addClass("layui-btn-disabled"); vm.disabled = true; } + let checkbox = $(".layui-table tr[data-index]"); + checkbox.each(function () { + let i = $(this).find("input[type='checkbox']"); + if (i.next().hasClass("layui-checkbox-disbaled")) { + i.next().find("i").removeClass("layui-icon-ok"); + i.next().find("i").addClass("huise"); + } + }) + }) + + table.on('checkbox(layTableAllChoose)', function () { + layer.alert("杩涙潵浜�"); }) //鐩戝惉琛屽崟鍑讳簨浠讹紙鍙屽嚮浜嬩欢涓猴細rowDouble锛� @@ -334,43 +390,23 @@ //鐩戝惉琛屽弻鍑讳簨浠讹紙鍗曞嚮浜嬩欢涓猴細row锛� table.on('rowDouble(costId)', function (obj) { let data = obj.data; - if (data.status == 1) { + if (data.docStatus == 1) { location.href = '<%=url%>/app/<%=dbId%>/0/cnzh/150371/5/payment.jsp?skCode=' + data.skCode; - // location.href = '/general/maintainPay/payment.html?skCode=' + data.skCode; } - // let data = obj.data; - // let checkbox = $(".laytable-cell-checkbox"); - // if (data.status == 0) { - // let che = checkbox.eq(obj.tr[0].rowIndex + 1).find("div"); - // if (che.hasClass("layui-form-checked")) { - // che.removeClass("layui-form-checked"); - // checkbox.eq(0).find("div").removeClass("layui-form-checked"); - // vm.butPrice = (Number(vm.butPrice) - Number(data.receivMoney)); - // vm.fields.splice($.inArray(data.docCode, vm.fields), 1); - // } else { - // che.addClass("layui-form-checked"); - // vm.butPrice = (Number(vm.butPrice) + Number(data.receivMoney)); - // vm.fields.push(data.docCode); - // } - // if (vm.butPrice > 0) { - // vm.butPrice = parseFloat(vm.butPrice).toFixed(2); - // } - // } - // if (vm.fields.length > 0) { - // $("#payment").removeClass("layui-btn-disabled"); - // vm.disabled = false; - // } else { - // $("#payment").addClass("layui-btn-disabled"); - // vm.disabled = true; - // } }); + table.on('tool(costId)', function (obj) { + let data = obj.data; //鑾峰緱褰撳墠琛屾暟鎹� + let layEvent = obj.event; //鑾峰緱 lay-event 瀵瑰簲鐨勫�� + if (layEvent === 'goPay') { //鏌ョ湅 + location.href = '<%=url%>/app/<%=dbId%>/0/cnzh/150371/5/payment.jsp?skCode=' + data.skCode; + } + }) table.on('tool(toBePaid)', function (obj) { let data = obj.data; //鑾峰緱褰撳墠琛屾暟鎹� let layEvent = obj.event; //鑾峰緱 lay-event 瀵瑰簲鐨勫�� if (layEvent === 'goPay') { //鏌ョ湅 location.href = '<%=url%>/app/<%=dbId%>/0/cnzh/150371/5/payment.jsp?skCode=' + data.docCode; - // location.href = '/general/maintainPay/payment.html?skCode=' + data.docCode; } else if (layEvent === 'close') { //鍙栨秷 $.ajax({ url: '/Maintain/skClose.do?skCode=' + data.docCode, diff --git a/WebRoot/public/staticform/150371/5/payment.jsp b/WebRoot/public/staticform/150371/5/payment.jsp index 8c96dea..f573e35 100644 --- a/WebRoot/public/staticform/150371/5/payment.jsp +++ b/WebRoot/public/staticform/150371/5/payment.jsp @@ -3,8 +3,8 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <% - String url= SettingKey.getHostUrl(request); - String dbId=(String) request.getSession().getAttribute(SessionKey.DATA_BASE_ID); + String url = SettingKey.getHostUrl(request); + String dbId = (String) request.getSession().getAttribute(SessionKey.DATA_BASE_ID); %> <!DOCTYPE html> <html lang="zh-cn"> @@ -89,6 +89,10 @@ .hide { display: none; } + + .conterTop { + padding-top: 50px; + } </style> </head> <body> @@ -107,7 +111,7 @@ <thead> <tr> <th>璐圭敤鍗曞彿</th> -<%-- <th>璐圭敤鏃ユ湡</th>--%> + <%-- <th>璐圭敤鏃ユ湡</th>--%> <th>閲戦</th> <th>鏀惰垂椤圭洰</th> <th>鏈夋晥鏈�</th> @@ -116,7 +120,7 @@ <tbody> <tr v-for="(item,index) in order" style="color:green;"> <td>{{item.sodocCode}}</td> -<%-- <td v-html="getFilters(item.payItem,1)"></td>--%> + <%-- <td v-html="getFilters(item.payItem,1)"></td>--%> <td>{{item.amount}}</td> <td v-html="getFilters(item.payItem,2)"></td> <td v-html="getFilters(item.payItem,3)"></td> @@ -155,6 +159,9 @@ </table> </div> <div class="info payInfo" style="margin-top: 10px"> + <div id="skCodeRet" class="text-center" style="padding-top: 50px;display: none"> + <button class="layui-btn layui-btn-normal" @click="goBack('skAgain')">閲嶆柊鐢熸垚鏀舵鍗�</button> + </div> <div class="flex-row"> <div class="payment-nav" style="width: 90%"> <span style="float: left;">閫夋嫨鏀粯鏂瑰紡锛�</span> @@ -210,7 +217,7 @@ <p style="color: green;font-weight: 600;font-size: 20px">鏀粯鎴愬姛</p> <div class="orderstaus"> <ul> -<!-- <li>鏀粯璁㈠崟锛�<font style="color: green">{{callBack.skCode}}</font></li>--> + <!-- <li>鏀粯璁㈠崟锛�<font style="color: green">{{callBack.skCode}}</font></li>--> <li v-if="callBack.payType == 'wxPay'">寰俊璁㈠崟锛�<font style="color: green">{{callBack.transactionId}}</font> </li> <li v-else="callBack.payType == 'aliPay'">鏀粯瀹濊鍗曪細<font style="color: green">{{callBack.transactionId}}</font> @@ -244,8 +251,10 @@ enterDate: "", lastPayTime: "", payType: "", - time:"", - payee:"" + time: "", + payee: "", + cltCode: "", + sodocCode: [] }, mounted: function () {//娓叉煋鍚庡姞杞� let skCode = this.getParem("skCode"); @@ -260,21 +269,28 @@ let res = data.data; if (res != null) { vm.docCode = res.docCode; + vm.cltCode = res.cltCode; vm.amount = res.sumAmount; vm.cltName = res.cltName; vm.enterDate = res.enterDate; - vm.payee=res.payee; + vm.payee = res.payee; let json = res.detailed; for (let v in json) { let item = json[v]; vm.order.push(item); + vm.sodocCode.push(item.sodocCode); } - vm.computedLastPayTime(); + if (res.isPaid == 1 || res.docStatus == -200 || res.docStatus != 0) { + $(".payInfo").html("<div style='text-align: center;color: red'>" + data.msg + "</div>"); + } else { + vm.computedLastPayTime(); + } } else { layer.alert("鏈彂鐜�" + skCode + "鐨勪俊鎭紒"); } } else { - alert(data.msg); + $(".payInfo").html("<div style='text-align: center;color: red'>" + data.msg + "</div>"); + $(".centerss").addClass("conterTop"); } }); }, @@ -282,39 +298,56 @@ goBack: function (Indexes) {//杩斿洖鎴栧彇娑堟敮浠� //鍙栨秷鏀粯 if (Indexes == 'close') { - layer.confirm('鏄鍙栨秷鏀粯璁㈠崟锛�'+vm.docCode+' 鍚�?', {icon: 3, title:'鏀粯',btn: ['鏄�', '鍚�'] - ,btnAlign: 'c',closeBtn: false}, function(index){ + layer.confirm('鏄鍙栨秷鏀粯璁㈠崟锛�' + vm.docCode + ' 鍚�?', { + icon: 3, title: '鏀粯', btn: ['鏄�', '鍚�'] + , btnAlign: 'c', closeBtn: false + }, function (index) { vm.skClose(Indexes); layer.close(index); - },function(index){ + }, function (index) { layer.close(index); }); - }else if(Indexes == 'overtime'){ + } else if (Indexes == 'overtime') { vm.skClose(Indexes); - }else{ + } else if (Indexes == 'skAgain') { + $.post("/Maintain/skCreate.do", { + "whCode": vm.sodocCode.join(","), + "cltCode": vm.cltCode + }, function (data) { + if (data != null && data.code == 0) { + let skCode = data.data; + location.href = '<%=url%>/app/<%=dbId%>/0/cnzh/150371/5/payment.jsp?skCode=' + skCode; + } else { + layer.alert(data.msg, {closeBtn: false}); + } + }); + } else { location.href = '<%=url%>/app/<%=dbId%>/0/cnzh/150371/5/index.jsp?index=' + Indexes; } } - ,skClose:function(Indexes){ + , skClose: function (Indexes) { $.ajax({ - url: '/payment/pay/PayCancel.do?skCode=' + vm.docCode+'&payType='+vm.payType, + url: '/payment/pay/PayCancel.do?skCode=' + vm.docCode + '&payType=' + vm.payType, type: "get", async: false, headers: {'Content-Type': 'application/json;charset=utf-8'}, //鎺ュ彛json鏍煎紡 success: function (data) { if (data.code == 0) { - if(Indexes=="close"){ + if (Indexes == "close") { location.href = '<%=url%>/app/<%=dbId%>/0/cnzh/150371/5/index.jsp?index=3'; } } else { - layer.alert(data.msg); + // layer.alert(data.msg); + layer.alert(data.msg + '' ,{closeBtn: false}, function (index) { + location.reload(); + }); } }, error: function (data) { layer.alert(data); } }); } - ,getParem: function (name) { + , getParem: function (name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) { @@ -359,10 +392,11 @@ self.lastPayTime = '鍓╀綑鏀粯鏃堕棿锛�' + int_minute + '鍒�' + lastTime + '绉�' } else { clearInterval(vm.time); - self.lastPayTime = '璁㈠崟瓒呮椂锛屾敮浠樺凡澶辨晥锛佽閲嶆柊鐢熸垚璁㈠崟鍐嶆敮浠樸��';//'鍓╀綑鏀粯鏃堕棿锛�0 绉�'; + self.lastPayTime = '璁㈠崟瓒呮椂锛屾敮浠樺凡澶辨晥锛佽閲嶆柊鐢熸垚鏀舵鍗曘��';//'鍓╀綑鏀粯鏃堕棿锛�0 绉�'; $("#submit-btn").addClass("hide"); $(".closeee").addClass("hide"); - $(".payment-nav").hide(); + $(".payment-nav").html(""); + $("#skCodeRet").show(); layer.close(isPayQR); vm.goBack('overtime');//瓒呮椂澶勭悊 } @@ -378,33 +412,33 @@ if (data.code == 0) { let j = data.data; vm.updateMessage(); - layer.alert(j.tradeStateDesc,{closeBtn: false}, function(index){ + layer.alert(j.tradeStateDesc, {closeBtn: false}, function (index) { if (j.code == 0) {//鏀粯鎴愬姛锛� vm.goBack(2); } layer.close(index); }); } else { - layer.alert(data.msg,{closeBtn: false}); + layer.alert(data.msg, {closeBtn: false}); } }, error: function (data) { - layer.alert(data,{closeBtn: false}); + layer.alert(data, {closeBtn: false}); } }); }, - updateMessage:function(){//鏇存柊閫氱煡娑堟伅 + updateMessage: function () {//鏇存柊閫氱煡娑堟伅 $.ajax({ url: '/Maintain/updateMessage.do?skCode=' + vm.docCode, type: "get", async: false, headers: {'Content-Type': 'application/json;charset=utf-8'}, //鎺ュ彛json鏍煎紡 success: function (data) { - if(data!=null && data.code==0){ + if (data != null && data.code == 0) { //鏇存柊缁存姢璐归�氱煡寰界珷 - let count=data.data; - if(count!=null && count>0){ + let count = data.data; + if (count != null && count > 0) { top.$(".tixings").html(count); - }else{ + } else { top.$(".tixings").html(""); } } @@ -446,7 +480,7 @@ // Dom.qrcodeContainer.show(); Dom.paymentWay.removeClass('show'); Dom.paymentWay.eq(index).addClass('show'); - isPayQR= layer.open({ + isPayQR = layer.open({ type: 1 , title: false //涓嶆樉绀烘爣棰樻爮 , area: ['350px', '350px'] @@ -454,16 +488,18 @@ , id: 'LAY_layuipro' //璁惧畾涓�涓猧d锛岄槻姝㈤噸澶嶅脊鍑� , moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1 , content: $(".qrcode-container") - ,cancel: function(index, layero){ - layer.confirm('鏀粯瀹屾垚鍓嶄笉瑕佸叧闂绐楀彛鍝�', {title:'鏀粯',btn: ['宸插畬鎴愭敮浠�', '閲嶆柊閫夋嫨鏀粯鏂瑰紡'] - ,btnAlign: 'c',closeBtn: false}, function(index){ + , cancel: function (index, layero) { + layer.confirm('鏀粯瀹屾垚鍓嶄笉瑕佸叧闂绐楀彛鍝�', { + title: '鏀粯', btn: ['宸插畬鎴愭敮浠�', '閲嶆柊閫夋嫨鏀粯鏂瑰紡'] + , btnAlign: 'c', closeBtn: false + }, function (index) { vm.isOk(); layer.close(index); - },function(index){ + }, function (index) { layer.close(index); }); } - }); + }); } }) @@ -519,7 +555,10 @@ qrUrl = data.data.codeURL; websocketOpen(); } else { - layer.alert(data.msg+''); + // layer.alert(data.msg + ''); + layer.alert(data.msg + '' ,{closeBtn: false}, function (index) { + location.reload(); + }); } }, error: function (data) { alert(data.responseText); @@ -544,13 +583,31 @@ if (v != null && v.code == 0) { if (v.msg = "SUCCESS") { clearInterval(vm.time); - vm.lastPayTime=""; + vm.lastPayTime = ""; vm.callBack = v; layer.close(isPayQR); checkPaymentStatus(); vm.updateMessage(); ws.close(); } + } else if (v != null && v.code == -1) { + ws.close(); + layer.close(isPayQR); + layer.open({ + type: 1 + , title: false //涓嶆樉绀烘爣棰樻爮 + , closeBtn: false + , area: ['300px', '300px'] + , shade: 0.8 + , id: 'LAY_layuipro1' //璁惧畾涓�涓猧d锛岄槻姝㈤噸澶嶅脊鍑� + , btn: ['鍏抽棴'] + , btnAlign: 'c' + , moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1 + , content: '<div style="text-align: center;margin: 10px">v.msg</div>' + , yes: function (index, layero) { + location.reload(); + } + }); } else { layer.alert(v.msg); } diff --git a/WebRoot/shopping/maintaince/systemconfig.jsp b/WebRoot/shopping/maintaince/systemconfig.jsp index e82183d..b4cc243 100644 --- a/WebRoot/shopping/maintaince/systemconfig.jsp +++ b/WebRoot/shopping/maintaince/systemconfig.jsp @@ -143,6 +143,25 @@ </select> </div> </div> + <% if(isInternalSystem){%> + <div class="layui-form-item"> + <label class="layui-form-label">缁存姢璐硅处鎴�</label> + <div class="layui-input-block"> + <select name="MaintenanceFeeAcctCode" lay-filter="pay"> + <option value=""> </option> + <% + if(acctcode!=null && acctcode.size()>0){ + for(Map<String,Object> m : acctcode){ + %> + <option value="<%=DBHelper.getValue(m,"subacctcode")%>"><%=DBHelper.getValue(m,"subacctname")%></option> + <% + } + } + %> + </select> + </div> + </div> + <%}%> <fieldset class="layui-elem-field layui-field-title"> <legend>瀵规帴绗笁鏂圭郴缁熼�夐」</legend> </fieldset> @@ -372,28 +391,6 @@ <input type="text" name="tengXunMapLocationServiceKey" value="" placeholder="璺緞锛氳吘璁綅缃湇鍔�->key涓庨厤棰�->key绠$悊" autocomplete="off" class="layui-input"> </div> </div> - <% if(isInternalSystem){%> - <fieldset class="layui-elem-field layui-field-title"> - <legend>鏀跺彇缁存姢璐圭殑璐︽埛</legend> - </fieldset> - <div class="layui-form-item"> - <label class="layui-form-label">缁存姢璐硅处鎴�</label> - <div class="layui-input-block"> - <select name="MaintenanceFeeAcctCode" lay-filter="pay"> - <option value=""> </option> - <% - if(acctcode!=null && acctcode.size()>0){ - for(Map<String,Object> m : acctcode){ - %> - <option value="<%=DBHelper.getValue(m,"subacctcode")%>"><%=DBHelper.getValue(m,"subacctname")%></option> - <% - } - } - %> - </select> - </div> - </div> - <%}%> <input type="hidden" name="host" placeholder="" autocomplete="off" class="layui-input"> <input type="hidden" name="userid" placeholder="" autocomplete="off" class="layui-input"> <input type="hidden" name="port" placeholder="" autocomplete="off" class="layui-input"> diff --git a/src/applicationContext.xml b/src/applicationContext.xml index 9c9f960..e22f29f 100644 --- a/src/applicationContext.xml +++ b/src/applicationContext.xml @@ -109,9 +109,9 @@ <!-- 浜嬬墿锛屾棩蹇�(鎷︽埅service鍖呯殑鎵�鏈夋墽琛宻ql鍑芥暟瀵规墽琛宻ql鎶ラ敊鐨勪繚瀛樺埌鏁版嵁搴�)AOP閰嶇疆--> <aop:config> <aop:pointcut id="bizMethods" - expression="execution(* com.yc.service..*.*(..)) or execution(* com.yc.sdk.shopping.service..*.*(..)) or execution(* com.yc.sdk.weixincp.service..*.*(..)) or execution(* com.yc.sdk.weixinmp.service..*.*(..)) or execution(* com.yc.api.service..*.*(..)) or execution(* com.yc.ionic.service..*.*(..)) or execution(* com.yc.sdk.oauth2.service..*.*(..)) or execution(* com.yc.im.service..*.*(..)) or execution(* com.yc.batchUpload.service..*.*(..)) "/> + expression="execution(* com.yc.service..*.*(..)) or execution(* com.yc.sdk.shopping.service..*.*(..)) or execution(* com.yc.sdk.weixincp.service..*.*(..)) or execution(* com.yc.sdk.weixinmp.service..*.*(..)) or execution(* com.yc.api.service..*.*(..)) or execution(* com.yc.ionic.service..*.*(..)) or execution(* com.yc.sdk.oauth2.service..*.*(..)) or execution(* com.yc.im.service..*.*(..)) or execution(* com.yc.batchUpload.service..*.*(..)) or execution(* com.yc.MaintenanceFee.service..*.*(..))"/> <aop:pointcut id="logger" - expression="(execution(* com.yc.service..*.*(..)) or execution(* com.yc.sdk.shopping.service..*.*(..)) or execution(* com.yc.sdk.weixincp.service..*.*(..)) or execution(* com.yc.sdk.weixinmp.service..*.*(..)) or execution(* com.yc.api.service..*.*(..)) or execution(* com.yc.ionic.service..*.*(..)) or execution(* com.yc.sdk.oauth2.service..*.*(..)) or execution(* com.yc.im.service..*.*(..)) or execution(* com.yc.batchUpload.service..*.*(..)) ) and !execution(* com.yc.service.log.ErrorLogImpl.*(..))"/> + expression="(execution(* com.yc.service..*.*(..)) or execution(* com.yc.sdk.shopping.service..*.*(..)) or execution(* com.yc.sdk.weixincp.service..*.*(..)) or execution(* com.yc.sdk.weixinmp.service..*.*(..)) or execution(* com.yc.api.service..*.*(..)) or execution(* com.yc.ionic.service..*.*(..)) or execution(* com.yc.sdk.oauth2.service..*.*(..)) or execution(* com.yc.im.service..*.*(..)) or execution(* com.yc.batchUpload.service..*.*(..)) or execution(* com.yc.MaintenanceFee.service..*.*(..)) ) and !execution(* com.yc.service.log.ErrorLogImpl.*(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="bizMethods"/> <aop:aspect id="loggerAspect" ref="genericLoggerBean"> <aop:around pointcut-ref="logger" method="invoke"/> diff --git a/src/com/yc/MaintenanceFee/controller/MaintainController.java b/src/com/yc/MaintenanceFee/controller/MaintainController.java index 2fa0464..1303fb7 100644 --- a/src/com/yc/MaintenanceFee/controller/MaintainController.java +++ b/src/com/yc/MaintenanceFee/controller/MaintainController.java @@ -7,6 +7,7 @@ import com.yc.MaintenanceFee.utils.BackMsg; import com.yc.MaintenanceFee.utils.PayCallBackUtil; import com.yc.entity.DataSourceEntity; +import com.yc.exception.ApplicationException; import com.yc.multiData.MultiDataSource; import com.yc.multiData.SpObserver; import com.yc.service.grid.GridServiceIfc; @@ -77,7 +78,7 @@ for (PayInfo f : info) { for (Map<String, Object> m : d) { if (f.getDocCode().equals(DBHelper.getValue(m,"soDocCode"))) { - f.setStatus(DBHelper.getValueInt(m, "docStatus")); + f.setDocStatus(DBHelper.getValueInt(m, "docStatus")); f.setSkCode(DBHelper.getValue(m,"docCode")); } } @@ -115,8 +116,8 @@ Integer feeId = PayCallBackUtil.chargeMaintenanceFee(request); DataSourceEntity data = MultiDataSource.getDataSourceMap(feeId + "");//鑾峰彇瀵瑰簲鏁版嵁婧愯缃殑缁存姢璐硅处鎴� - if (StringUtils.isBlank(data.getMaintenanceFeeAcctCode())) { - msg.setError("缁存姢璐硅处鎴蜂笉鑳戒负绌猴紒"); + if(data.getMaintenanceFeeToDbId()==null){ + msg.setError("銆愭敹鍙栫淮鎶よ垂鎵�灞炲叕鍙搞�戜笉鑳戒负绌猴紝璇峰湪銆愬揩鎹�->缁存姢绯荤粺璁剧疆銆戜腑褰曞叆"); return msg; } SpObserver.setDBtoInstance(DBID); @@ -178,6 +179,18 @@ String dbId = (String) request.getSession().getAttribute(SessionKey.DATA_BASE_ID); //鑾峰彇鏀舵浜� receipt.setPayee(PayCallBackUtil.getReceivingCompany(dbId)); + if (receipt.getIsPaid() == 1) { + msg.setOkEd(receipt,"宸叉敮浠樻垚鍔燂紝涓嶈兘閲嶅鏀粯銆�"); + return msg; + } + if (receipt.getDocStatus() == -200) { + msg.setOkEd(receipt,"璁㈠崟宸茶鍙栨秷锛屾敮浠樺け璐ャ��"); + return msg; + } + if (receipt.getDocStatus() != 0) { + msg.setOkEd(receipt,"璁㈠崟涓嶆槸寰呮敮浠樼姸鎬侊紝鏀粯澶辫触銆�"); + return msg; + } } msg.setOk(receipt); } catch (Exception e) { diff --git a/src/com/yc/MaintenanceFee/controller/MaintainPayController.java b/src/com/yc/MaintenanceFee/controller/MaintainPayController.java index 871bdcf..300d19a 100644 --- a/src/com/yc/MaintenanceFee/controller/MaintainPayController.java +++ b/src/com/yc/MaintenanceFee/controller/MaintainPayController.java @@ -80,9 +80,21 @@ SpObserver.setDBtoInstance(DBID); Receipt receipt = receiptService.QueryReceipt(skCode, 0); if (receipt != null && !StringUtils.isBlank(receipt.getDocCode())) { + if (receipt.getIsPaid() == 1) { + msg.setError("宸叉敮浠樻垚鍔燂紝涓嶈兘閲嶅鏀粯銆�"); + return msg; + } + if (receipt.getDocStatus() == -200) { + msg.setError("璁㈠崟宸茶鍙栨秷锛屾敮浠樺け璐ャ��"); + return msg; + } + if (receipt.getDocStatus() != 0) { + msg.setError("璁㈠崟涓嶆槸寰呮敮浠樼姸鎬侊紝鏀粯澶辫触銆�"); + return msg; + } receipt.setCltName(receipt.getCltName() + "-" + receipt.getDocType()); //璁剧疆鍥炶皟鍦板潃 - String notifyUrl = SettingKey.getHostUrl(request)+"/payment/pay";//"http://u69m1tj.nat.ipyingshe.com/payment/pay"; + String notifyUrl = SettingKey.getHostUrl(request) + "/payment/pay";//"http://u69m1tj.nat.ipyingshe.com/payment/pay"; switch (payType.toLowerCase()) { case "wx"://寰俊鏀粯 case "1": @@ -159,8 +171,6 @@ Integer code = DBHelper.getValueInt(map, "code"); //杩斿洖鐘舵�佹槸鏀粯鎴愬姛鐨勫鐞� if (code == 0) { - //鎵ц淇濆瓨鍙婅繃璐� - maintainService.savePostingLogic(skCode); list = maintainService.selectWHCode(skCode); //澶囨敞淇℃伅 remarks = "缁存姢璐规敮浠樹俊鎭�傝鍗曞彿锛�" + map.get("tradeNo") + ",浜ゆ槗鍙凤細" + map.get("transactionId"); @@ -177,6 +187,10 @@ log.setAmount(map.get("totalFee").toString()); log.setThirdOrderNo((String) map.get("transactionId")); payLogService.saveOrUpdatePayLog(log); + if (code == 0) { + //鎵ц淇濆瓨鍙婅繃璐� + maintainService.savePostingLogic(skCode); + } } } catch (Exception e) { map.put("LogError", e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); @@ -256,16 +270,14 @@ @RequestMapping("/PayCancel.do") public BackMsg setPayCancel(String skCode, String payType, HttpServletRequest request) { BackMsg msg = new BackMsg(); + PayLog log = new PayLog(); try { if (StringUtils.isBlank(skCode)) { msg.setError("璁㈠崟鍙蜂笉鑳戒负绌�"); return msg; } - if (StringUtils.isBlank(payType)) { - payType = "null"; - } SpObserver.setDBtoInstance(DBID); - PayLog log = payLogService.getPayLog(skCode); + log = payLogService.getPayLog(skCode); switch (payType.toLowerCase()) { case "wx"://寰俊 case "1": @@ -280,16 +292,18 @@ break; } if (msg.getCode() == 0) { - receiptService.cancelReceipt(skCode); + receiptService.doCancelReceipt(skCode); log.setStatus("-200"); log.setRefDoccode(skCode); - log.setTrxType(payType); - log.setPayType(payType); - log.setMerchantRemarks("缁存姢璐瑰彇娑堜俊鎭�傚彇娑堟敹娆惧崟锛�" + skCode + ",涓嶈兘鍐嶈繘琛屾敮浠樻搷浣滐紒"); + log.setMerchantRemarks("缁存姢璐瑰彇娑堟敮浠樹俊鎭�傚彇娑堟敹娆惧崟锛�" + skCode + ",涓嶈兘鍐嶈繘琛屾敮浠樻搷浣滐紒"); payLogService.saveOrUpdatePayLog(log); msg.setOk("鏀舵鍗曪細" + skCode + "锛屽凡澶辨晥锛�"); } } catch (Exception e) { + log.setStatus("-500"); + log.setRefDoccode(skCode); + log.setMerchantRemarks("缁存姢璐瑰彇娑堟敮浠樺嚭鐜伴敊璇細" + e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); + payLogService.saveOrUpdatePayLog(log); msg.setError(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); } finally { SpObserver.setDBtoInstance(); @@ -299,9 +313,10 @@ /** * 寰俊鏀粯鍜屾敮浠樺疂鏀粯鐨勫洖璋冨鐞� xin 2021-12-13 09:42:50 - * @param skCode 鍗曞彿 - * @param type 鏀粯绫诲瀷銆傚井淇℃垨鏀粯瀹� - * @param dbId //鏁版嵁婧怚d(璁剧疆鏀舵鐨勭郴缁熸暟鎹簮) + * + * @param skCode 鍗曞彿 + * @param type 鏀粯绫诲瀷銆傚井淇℃垨鏀粯瀹� + * @param dbId //鏁版嵁婧怚d(璁剧疆鏀舵鐨勭郴缁熸暟鎹簮) * @param request * @param response * @throws IOException @@ -310,9 +325,9 @@ public void wxPayCallBack(@PathVariable String skCode, @PathVariable String type, @PathVariable String dbId, HttpServletRequest request, HttpServletResponse response) throws IOException { synchronized (this) { + PayCallBack pcb = new PayCallBack(); try { PrintWriter out = null; - PayCallBack pcb = new PayCallBack(); String backTxt = ""; boolean bol = false; if (!StringUtils.isBlank(skCode) && !StringUtils.isBlank(type)) { @@ -326,7 +341,7 @@ response.setContentType("application/xml; charset=utf-8"); backTxt = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>"; //淇濆瓨鏀粯璁板綍淇℃伅 - log=PayCallBackUtil.setPayLog(null, result); + log = PayCallBackUtil.setPayLog(null, result); //杩斿洖淇℃伅 pcb.setTransactionId(result.getTransactionId()); pcb.setSkCode(result.getOutTradeNo()); @@ -340,7 +355,7 @@ if (bol) {//楠岃瘉鎴愬姛鍚� backTxt = "SUCCESS"; //淇濆瓨鏀粯璁板綍淇℃伅 - log=PayCallBackUtil.setPayLog(param, null); + log = PayCallBackUtil.setPayLog(param, null); //澶勭悊璁㈠崟鎿嶄綔 pcb.setTransactionId(param.get("trade_no")); pcb.setSkCode(param.get("out_trade_no")); @@ -356,12 +371,12 @@ out.close(); try { SpObserver.setDBtoInstance(DBID); - //澶勭悊杩囪处 - maintainService.savePostingLogic(skCode); //鏇存柊鏃ュ織 log.setRefDoccode(skCode); payLogService.saveOrUpdatePayLog(log); - }finally { + //澶勭悊杩囪处 + maintainService.savePostingLogic(skCode); + } finally { SpObserver.setDBtoInstance(); } //鍙戝竷璁㈤槄淇℃伅 @@ -372,7 +387,13 @@ } } } catch (Exception e) { - response.getWriter().print("Fail"); + //鍙戝竷璁㈤槄淇℃伅 + pcb.setMsg("鏀粯澶辫触锛�" + e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); + pcb.setCode(-1); + pcb.setState("true"); + redisDAO.publishMessage("Onbus_Maintain", GridUtils.toJsonNotNull(pcb)); + e.printStackTrace(); + response.getWriter().print(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); } } } diff --git a/src/com/yc/MaintenanceFee/entiy/PayInfo.java b/src/com/yc/MaintenanceFee/entiy/PayInfo.java index e68ed34..acd68b7 100644 --- a/src/com/yc/MaintenanceFee/entiy/PayInfo.java +++ b/src/com/yc/MaintenanceFee/entiy/PayInfo.java @@ -2,6 +2,7 @@ import lombok.Data; import java.math.BigDecimal; +import java.util.Date; import java.util.List; /** @@ -14,11 +15,13 @@ private String CltCode; private String cltName; private String DocType; - private String DocDate; + private Date DocDate; private BigDecimal ReceivMoney; private List<PayItem> itemList; - private Integer status=0; + private Integer docStatus=0; private String skCode; + private Integer isPaid; + } diff --git a/src/com/yc/MaintenanceFee/entiy/PayItem.java b/src/com/yc/MaintenanceFee/entiy/PayItem.java index bac8e69..940f3f2 100644 --- a/src/com/yc/MaintenanceFee/entiy/PayItem.java +++ b/src/com/yc/MaintenanceFee/entiy/PayItem.java @@ -2,6 +2,7 @@ import lombok.Data; import java.math.BigDecimal; +import java.util.Date; /** * 缁存姢璐圭敤瀛愰」 @@ -12,13 +13,14 @@ private String CltCode; private String cltName; private String DocType; - private String DocDate; + private Date DocDate; private BigDecimal ReceivMoney; private String matName; private BigDecimal price; private BigDecimal totalMoney; private String itemMemo; private Integer Digit; - private String FYbeginday; - private String FYendday; + private Date FYbeginday; + private Date FYendday; + private Integer isPaid; } diff --git a/src/com/yc/MaintenanceFee/entiy/Receipt.java b/src/com/yc/MaintenanceFee/entiy/Receipt.java index cc3936a..7b38d9a 100644 --- a/src/com/yc/MaintenanceFee/entiy/Receipt.java +++ b/src/com/yc/MaintenanceFee/entiy/Receipt.java @@ -15,13 +15,13 @@ @Data public class Receipt { private String docCode; - private String formId; - private String docDate; + private Integer formId; + private Date docDate; private Date enterDate; private String docType; private String refCode; private String companyName; - private String docStatus; + private Integer docStatus; private String cltCode; private String cltName; private String hdMemo; @@ -30,5 +30,7 @@ private List<ReceiptDetailed> detailed=new ArrayList<>(); private String payee;//鏀舵浜� + private Integer isPaid; + } diff --git a/src/com/yc/MaintenanceFee/entiy/ReceiptDetailed.java b/src/com/yc/MaintenanceFee/entiy/ReceiptDetailed.java index f1e1abf..6209e4b 100644 --- a/src/com/yc/MaintenanceFee/entiy/ReceiptDetailed.java +++ b/src/com/yc/MaintenanceFee/entiy/ReceiptDetailed.java @@ -16,7 +16,7 @@ private String cltCode; private String cltName; private String SODocCode; - private String SOFormId; + private Integer SOFormId; private BigDecimal natAmount; private BigDecimal amount; diff --git a/src/com/yc/MaintenanceFee/entiy/ReceiptEntity.java b/src/com/yc/MaintenanceFee/entiy/ReceiptEntity.java index 87d9f2d..21bb70e 100644 --- a/src/com/yc/MaintenanceFee/entiy/ReceiptEntity.java +++ b/src/com/yc/MaintenanceFee/entiy/ReceiptEntity.java @@ -12,13 +12,13 @@ @Data public class ReceiptEntity { private String DocCode; - private String FormID; - private String DocDate; + private Integer FormID; + private Date DocDate; private Date EnterDate; private String DocType; private String RefCode; private String CompanyName; - private String DocStatus; + private Integer DocStatus; private String CltCode; private String CltName; private String HDMemo; @@ -26,13 +26,15 @@ private BigDecimal SumAmount; private String SODocCode; - private String SOFormId; + private Integer SOFormId; private BigDecimal natAmount; private BigDecimal amount; private String MatName; private BigDecimal TotalMoney; private Integer Digit; - private String FYbeginday; - private String FYendday; + private Date FYbeginday; + private Date FYendday; + + private Integer isPaid; } diff --git a/src/com/yc/MaintenanceFee/schedule/MaintainGate.java b/src/com/yc/MaintenanceFee/schedule/MaintainGate.java index 7cdfcc1..3937501 100644 --- a/src/com/yc/MaintenanceFee/schedule/MaintainGate.java +++ b/src/com/yc/MaintenanceFee/schedule/MaintainGate.java @@ -11,6 +11,7 @@ import com.yc.open.mutual.schedule.GateEntity; import com.yc.service.build.type.T_22_Ifc; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import java.util.List; import java.util.Map; @@ -43,9 +44,18 @@ if (task != null && task.getResult() == 1) { String table = t22Ifc.getProcName(gateEntity.getFormid() + ""); dbId = maintainService.selectCltCodeDbId(table, gateEntity.getDocCode()); - if ("148".equals(dbId) || "549".equals(dbId)) { - throw new Exception("姝ゅ鎴风紪鍙蜂笉鍦ㄧ淮鎶よ垂鐢ㄨ寖鍥村唴"); +// if ("148".equals(dbId) || "549".equals(dbId)) { +// throw new Exception("姝ゅ鎴风紪鍙蜂笉鍦ㄧ淮鎶よ垂鐢ㄨ寖鍥村唴"); +// } + DataSourceEntity data = MultiDataSource.getDataSourceMap(dbId); + if(data.getMaintenanceFeeToDbId()==null){ + throw new ApplicationException("璇蜂负銆�"+data.getSystemDescribe()+"銆戠郴缁熷綍鍏ャ�愭敹鍙栫淮鎶よ垂鎵�灞炲叕鍙搞��(鎿嶄綔璺緞锛氬揩鎹�->缁存姢绯荤粺璁剧疆)锛岀劧鍚庨噸璇曟鎿嶄綔銆�"); } + DataSourceEntity dataSourceEntity=MultiDataSource.getDataSourceMap(data.getMaintenanceFeeToDbId()+""); + if(StringUtils.isBlank(dataSourceEntity.getMaintenanceFeeAcctCode())){ + throw new ApplicationException("璇蜂负銆�"+dataSourceEntity.getSystemDescribe()+"銆戞暟鎹簮褰曞叆銆愭敹鍙栫淮鎶よ垂璐︽埛銆戯紝鐒跺悗閲嶈瘯姝ゆ搷浣溿��"); + } + } } catch (Exception e) { throw e; diff --git a/src/com/yc/MaintenanceFee/service/ReceiptService.java b/src/com/yc/MaintenanceFee/service/ReceiptService.java index 7980487..9307f81 100644 --- a/src/com/yc/MaintenanceFee/service/ReceiptService.java +++ b/src/com/yc/MaintenanceFee/service/ReceiptService.java @@ -15,7 +15,7 @@ abstract List<Receipt> selectReceipt(String cltCode,Integer docStatus); - abstract void cancelReceipt(String skCode); + abstract void doCancelReceipt(String skCode); abstract List<Map<String,Object>> getReceiptStatus(String docCode); } diff --git a/src/com/yc/MaintenanceFee/service/impl/MaintainServiceImpl.java b/src/com/yc/MaintenanceFee/service/impl/MaintainServiceImpl.java index a0e390e..fa01a01 100644 --- a/src/com/yc/MaintenanceFee/service/impl/MaintainServiceImpl.java +++ b/src/com/yc/MaintenanceFee/service/impl/MaintainServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.sql.ResultSet; import java.sql.SQLException; @@ -46,13 +47,25 @@ sb.append(" update t150372 \n" + " set ISpay = 1 ,PayDate=GETDATE() \n" + " where Refdoccode in(select SODoccode from t" + formId + "D where DocCode=@docCode) \n"); - sb.append(createPostSql(formId)); + sb.append(" --鎵ц淇濆瓨鍙婅繃璐�---缁存姢璐规敮浠樺悗杩涜鐨勪繚瀛樺強杩囪处---\n" + + " exec p" + formId + "Save @doccode\n" + + " select @PostFormId = FormId,@DocStatusValue = DocStatus from t" + formId + "H where docCode=@docCode\n" + + " select @PreDocStatus = PreDocStatus,@PostDocStatus = a.PostDocStatus from gform a where a.formid = @PostFormId \n" + + " if isnull(@DocStatusValue,0) = isnull(@PreDocStatus,0)\n" + + " begin \n" + + " update a set DocStatus = @PostDocStatus,PostCode=@EnterCode,PostName=@EnterName,PostDate=@now\n" + + " from t" + formId + "H a where a.DocCode = @docCode \n" + + " exec p" + formId + "Post @UserCode = @EnterCode,@UserName = @EnterName, \n" + + " @DocCode = @docCode,@FormId = @PostFormId,\n" + + " @DocStatusValue = @DocStatusValue,@ButtonType ='鎻愪氦', \n" + + " @Memo=@Memo output ,@LinkDocInfo = @LinkDocInfo output \n" + + " end\n"); sb.append(" select @docCode as docCode"); log.info("do120311sql:" + sb.toString()); this.jdbcTemplate.execute(sb.toString()); return true; } catch (Exception e) { - return false; + throw e; } } @@ -113,7 +126,8 @@ @Override public String selectCltCodeDbId(String table, String docCode) throws Exception { try { - String sql = "select DocCode,CltCode,DocType,DocDate \n" + + String sql = "set nocount on\n" + + " select DocCode,CltCode,DocType,DocDate \n" + " from " + table + " where DocCode = '" + docCode + "'"; PayInfo info = super.jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(PayInfo.class)); if (info != null && !StringUtils.isBlank(info.getCltCode())) { @@ -158,7 +172,8 @@ @Override public List<Map<String, Object>> selectMaintainMsg() { try { - String sql = "declare @today datetime = convert(varchar(10),getdate(),120) \n" + + String sql = "set nocount on\n" + + " declare @today datetime = convert(varchar(10),getdate(),120) \n" + " select a.autoid,a.messagetxt,a.refdoccode,a.refformid,a.refformtype,a.insertactioncode," + " a.insertactionname,a.insertdate ,b.dbid,a.unvaliddate,a.tipcount \n" + " from t150372 a join t110203 b on a.cltcode = b.cltcode \n" + @@ -172,7 +187,8 @@ @Override public Integer selectMaintainCunt(String dbId) { try { - String sql = "select COUNT(*) from t120301H a join t110203 b on a.CltCode=b.cltCode and a.DocStatus=100 and isnull(a.ReceivMoney,0) - isnull(a.ShouKuanAmount,0)>0 where b.dbId=" + dbId; + String sql = "set nocount on \n" + + " select COUNT(*) from t120301H a join t110203 b on a.CltCode=b.cltCode and a.DocStatus=100 and isnull(a.ReceivMoney,0) - isnull(a.ShouKuanAmount,0)>0 where b.dbId=" + dbId; return super.jdbcTemplate.queryForObject(sql, Integer.class); } catch (Exception e) { return 0; @@ -197,7 +213,8 @@ @Override public List<String> selectWHCode(String skCode) { try { - String sql = "select SODoccode from t150101D where DocCode='" + skCode + "'"; + String sql = "set nocount on\n" + + " select SODoccode from t150101D where DocCode='" + skCode + "'"; return super.jdbcTemplate.query(sql, new RowMapper<String>() { @Override public String mapRow(ResultSet resultSet, int i) throws SQLException { @@ -212,7 +229,8 @@ @Override public String queryPayDbId(String whCode) { try { - String sql = "select b.dbid from t120301H a join t110203 b on a.CltCode=b.cltCode where a.docCode='" + whCode + "'"; + String sql = "set nocount on\n" + + " select b.dbid from t120301H a join t110203 b on a.CltCode=b.cltCode where a.docCode='" + whCode + "'"; return super.jdbcTemplate.queryForObject(sql, String.class); } catch (Exception e) { return ""; @@ -242,28 +260,5 @@ } catch (Exception e) { return -1; } - } - - - /** - * 閫氳繃鐢熸垚鍗曟嵁淇濆瓨鍙婅繃璐ql,榛樿浠doccode涓哄崟鍙峰彉閲� - * - * @param formid - * @return - */ - private String createPostSql(int formid) { - return " --鎵ц淇濆瓨鍙婅繃璐�---缁存姢璐规敮浠樺悗杩涜鐨勪繚瀛樺強杩囪处---\n" + - " exec p" + formid + "Save @doccode\n" + - " select @PostFormId = FormId,@DocStatusValue = DocStatus from t" + formid + "H where docCode=@docCode\n" + - " select @PreDocStatus = PreDocStatus,@PostDocStatus = a.PostDocStatus from gform a where a.formid = @PostFormId \n" + - " if isnull(@DocStatusValue,0) = isnull(@PreDocStatus,0)\n" + - " begin \n" + - " update a set DocStatus = @PostDocStatus,PostCode=@EnterCode,PostName=@EnterName,PostDate=@now\n" + - " from t" + formid + "H a where a.DocCode = @docCode \n" + - " exec p" + formid + "Post @UserCode = @EnterCode,@UserName = @EnterName, \n" + - " @DocCode = @docCode,@FormId = @PostFormId,\n" + - " @DocStatusValue = @DocStatusValue,@ButtonType ='鎻愪氦', \n" + - " @Memo=@Memo output ,@LinkDocInfo = @LinkDocInfo output \n" + - " end\n"; } } diff --git a/src/com/yc/MaintenanceFee/service/impl/PayInfoServiceImpl.java b/src/com/yc/MaintenanceFee/service/impl/PayInfoServiceImpl.java index fe90d05..7d07dce 100644 --- a/src/com/yc/MaintenanceFee/service/impl/PayInfoServiceImpl.java +++ b/src/com/yc/MaintenanceFee/service/impl/PayInfoServiceImpl.java @@ -17,10 +17,12 @@ @Override public List<PayInfo> queryListByCltCode(String dbId) { try { - String sql = "select a.DocCode,a.CltCode,a.cltName,a.DocType,a.DocDate,a.ReceivMoney,b.MatName, b.Price, b.TotalMoney, b.ItemMemo,b.Digit,b.FYbeginday,b.FYendday\n" + - "from dbo.t120301H a join t120301D b on a.DocCode=b.doccode and isnull(a.DocStatus,0)=100 and isnull(a.ReceivMoney,0)- isnull(a.ShouKuanAmount,0) > 0 \n" + - "join t110203 c on a.CltCode=c.cltCode \n" + - "where c.dbid=" + dbId + " order by a.DocDate desc"; + String sql = "set nocount on \n" + + " select a.DocCode,a.CltCode,a.cltName,a.DocType,a.DocDate,a.ReceivMoney,b.MatName, b.Price, b.TotalMoney, b.ItemMemo,b.Digit,b.FYbeginday,b.FYendday, " + + " case when exists(select 1 from t150101d d join t150101log e on d.doccode = e.RefDoccode where a.doccode = d.SODoccode and isnull(e.ThirdOrderNo,'') <> '' ) then 1 else 0 end as isPaid \n"+ + " from dbo.t120301H a join t120301D b on a.DocCode=b.doccode and isnull(a.DocStatus,0)=100 and isnull(a.ReceivMoney,0)- isnull(a.ShouKuanAmount,0) > 0 \n" + + " join t110203 c on a.CltCode=c.cltCode \n" + + " where c.dbid=" + dbId + " order by a.DocDate desc"; return ReceiptUtils.getList_T(super.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(PayItem.class))); } catch (Exception e) { throw e; @@ -30,7 +32,8 @@ @Override public Integer queryDbIdByCltCode(String cltCode) { try { - String sql = "select dbId from t110203 where cltCode='" + cltCode + "'"; + String sql = "set nocount on \n" + + " select dbId from t110203 where cltCode='" + cltCode + "'"; return super.jdbcTemplate.queryForObject(sql, Integer.class); } catch (Exception e) { return 0; @@ -40,7 +43,8 @@ @Override public String queryCltCodeByDbId(String dbId) { try { - String sql = "select cltCode from t110203 where dbId=" + dbId; + String sql = "set nocount on \n" + + " select cltCode from t110203 where dbId=" + dbId; return super.jdbcTemplate.queryForObject(sql, String.class); } catch (Exception e) { return ""; diff --git a/src/com/yc/MaintenanceFee/service/impl/PayLogServiceImpl.java b/src/com/yc/MaintenanceFee/service/impl/PayLogServiceImpl.java index ed6c954..a8b78f5 100644 --- a/src/com/yc/MaintenanceFee/service/impl/PayLogServiceImpl.java +++ b/src/com/yc/MaintenanceFee/service/impl/PayLogServiceImpl.java @@ -2,9 +2,12 @@ import com.yc.MaintenanceFee.entiy.PayLog; import com.yc.MaintenanceFee.service.PayLogService; +import com.yc.action.grid.GridUtils; import com.yc.service.BaseService; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; /** * @USER: xinyb_ @@ -16,37 +19,54 @@ @Override public int saveOrUpdatePayLog(PayLog payLog) { try { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String sql = "set nocount on ; \n" + - " begin \n"; - sql+="if not exists(select 1 from t150101Log where RefDoccode='"+payLog.getRefDoccode()+"') \n"; + " declare @MerchantID varchar(50)=" + GridUtils.prossSqlParm(payLog.getMerchantID())+"" + + ",@TrxType varchar(50)=" + GridUtils.prossSqlParm(payLog.getTrxType())+"" + + ",@RefDoccode varchar(50)="+GridUtils.prossSqlParm(payLog.getRefDoccode())+"" + + ",@Refformid int="+payLog.getRefformid()+"" + + ",@Refformtype int="+payLog.getRefformtype()+"" + + ",@Amount money="+payLog.getAmount()+"" + + ",@BatchNo varchar(50)="+GridUtils.prossSqlParm(payLog.getBatchNo()+"")+"" + + ",@VoucherNo varchar(50)="+GridUtils.prossSqlParm(payLog.getVoucherNo())+"" + + ",@HostDate varchar(50)="+GridUtils.prossSqlParm(payLog.getHostDate())+"" + + ",@HostTime varchar(50)="+GridUtils.prossSqlParm(payLog.getHostTime())+"" + + ",@MerchantRemarks varchar(200)="+GridUtils.prossSqlParm(payLog.getMerchantRemarks())+"" + + ",@PayType varchar(50)="+GridUtils.prossSqlParm(payLog.getPayType())+"" + + ",@NotifyType varchar(50)="+GridUtils.prossSqlParm(payLog.getNotifyType())+"" + + ",@ThirdOrderNo varchar(100)="+GridUtils.prossSqlParm(payLog.getThirdOrderNo())+"" + + ",@Status varchar(50)="+GridUtils.prossSqlParm(payLog.getStatus())+"" + + ",@InsertTime datetime ="+GridUtils.prossSqlParm(payLog.getInsertTime()==null?null:formatter.format(payLog.getInsertTime()))+" \n" ; + + sql+="if not exists(select 1 from t150101Log where RefDoccode=@RefDoccode) \n"; + sql+=" begin \n"; sql += "insert into t150101Log(MerchantID,TrxType,RefDoccode,Refformid,Refformtype,Amount,BatchNo,\n" + "VoucherNo,HostDate,HostTime,MerchantRemarks,PayType,NotifyType,ThirdOrderNo,Status,InsertTime)\n" + - "values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) \n"; + "values(@MerchantID,@TrxType,@RefDoccode,@Refformid,@Refformtype,@Amount,@BatchNo," + + "@VoucherNo,@HostDate,@HostTime,@MerchantRemarks,@PayType,@NotifyType,@ThirdOrderNo,@Status,@InsertTime) \n"+ + " end \n"; sql+=" else \n"; - sql+="update a set a.MerchantRemarks='"+payLog.getMerchantRemarks()+"',a.TrxType='"+payLog.getTrxType()+"'," + - "a.PayType='"+payLog.getPayType()+"',a.Status=?"+ - ",a.Amount="+payLog.getAmount()+ - ",a.ThirdOrderNo='"+payLog.getThirdOrderNo()+"',a.InsertTime=?"+ - " from t150101Log a where a.RefDoccode='"+payLog.getRefDoccode()+"'\n"; + sql+=" begin \n"; + sql+="update a set a.MerchantRemarks=@MerchantRemarks,a.TrxType=@TrxType," + + "a.PayType=@PayType,a.Status=@Status"+ + ",a.Amount=@Amount,a.ThirdOrderNo=@ThirdOrderNo,a.InsertTime=@InsertTime"+ + " from t150101Log a where a.RefDoccode=@RefDoccode \n"; sql += " end \n" + " select @@ROWCOUNT"; - int count = super.jdbcTemplate.queryForObject(sql, new Object[]{payLog.getMerchantID() - , payLog.getTrxType(), payLog.getRefDoccode(), payLog.getRefformid(), payLog.getRefformtype(), - payLog.getAmount(), payLog.getBatchNo(), payLog.getVoucherNo(), payLog.getHostDate(), payLog.getHostTime(), - payLog.getMerchantRemarks(), payLog.getPayType(), payLog.getNotifyType(), payLog.getThirdOrderNo(), - payLog.getStatus(), payLog.getInsertTime(),payLog.getStatus(),payLog.getInsertTime()}, Integer.class); + int count = super.jdbcTemplate.queryForObject(sql, Integer.class); return count; } catch (Exception e) { - throw e; + return -1; } } @Override public PayLog getPayLog(String docCode) { try { - String sql = "select MerchantID,TrxType,RefDoccode,Refformid,Refformtype,Amount,BatchNo,\n" + - "VoucherNo,HostDate,HostTime,MerchantRemarks,PayType,NotifyType,ThirdOrderNo,Status,InsertTime " + - "from t150101Log where RefDoccode='" + docCode + "'"; + String sql = "set nocount on \n" + + " select MerchantID,TrxType,RefDoccode,Refformid,Refformtype,Amount,BatchNo,\n" + + " VoucherNo,HostDate,HostTime,MerchantRemarks,PayType,NotifyType,ThirdOrderNo,Status,InsertTime " + + " from t150101Log where RefDoccode='" + docCode + "'"; return super.jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(PayLog.class)); } catch (Exception e) { throw null; diff --git a/src/com/yc/MaintenanceFee/service/impl/ReceiptServiceImpl.java b/src/com/yc/MaintenanceFee/service/impl/ReceiptServiceImpl.java index 634bda8..82bff3d 100644 --- a/src/com/yc/MaintenanceFee/service/impl/ReceiptServiceImpl.java +++ b/src/com/yc/MaintenanceFee/service/impl/ReceiptServiceImpl.java @@ -4,6 +4,7 @@ import com.yc.MaintenanceFee.entiy.ReceiptEntity; import com.yc.MaintenanceFee.service.ReceiptService; import com.yc.MaintenanceFee.utils.ReceiptUtils; +import com.yc.action.grid.GridUtils; import com.yc.service.BaseService; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.stereotype.Service; @@ -21,12 +22,15 @@ @Override public Receipt QueryReceipt(String docCode, Integer docStatus) { try { - String sql="select a.DocCode,a.FormID,a.DocDate,a.EnterDate,a.DocType,a.RefCode,a.CompanyName,a.DocStatus,a.CltCode,\n" + - "a.CltName,a.HDMemo,a.SumNatAmount,a.SumAmount,b.SODocCode,b.SOFormId,b.natAmount,b.amount,\n" + - "c.MatName,c.Digit,c.TotalMoney,c.FYendday,c.FYbeginday \n" + - "from t150101H a join t150101D b on a.DocCode=b.DocCode\n" + - "join t120301D c on c.doccode=b.SODoccode\n" + - "where a.DocCode='"+docCode+"' and a.DocStatus="+docStatus; + String sql="set nocount on \n " + + " declare @DocCode varchar(50) = " + GridUtils.prossSqlParm(docCode)+ + " select a.DocCode,a.FormID,a.DocDate,a.EnterDate,a.DocType,a.RefCode,a.CompanyName,a.DocStatus,a.CltCode,\n" + + " a.CltName,a.HDMemo,a.SumNatAmount,a.SumAmount,b.SODocCode,b.SOFormId,b.natAmount,b.amount,\n" + + " c.MatName,c.Digit,c.TotalMoney,c.FYendday,c.FYbeginday,case when exists(select 1 from t150101log d " + + " where a.doccode = d.RefDoccode and isnull(d.ThirdOrderNo,'') <> '' ) then 1 else 0 end as isPaid \n" + + " from t150101H a join t150101D b on a.DocCode=b.DocCode\n" + + " join t120301D c on c.doccode=b.SODoccode \n" + + " where a.DocCode=@DocCode \n"; return ReceiptUtils.getReceipt(super.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ReceiptEntity.class))); } catch (Exception e) { throw e; @@ -36,12 +40,14 @@ @Override public List<Receipt> selectReceipt(String cltCode, Integer docStatus) { try { - String sql="select a.DocCode,a.FormID,a.DocDate,a.EnterDate,a.DocType,a.RefCode,a.CompanyName,a.DocStatus,a.CltCode,\n" + - "a.CltName,a.HDMemo,a.SumNatAmount,a.SumAmount,b.SODocCode,b.SOFormId,b.natAmount,b.amount,\n" + - "c.MatName,c.Digit,c.TotalMoney,c.FYendday,c.FYbeginday \n" + - "from t150101H a join t150101D b on a.DocCode=b.DocCode\n" + - "join t120301D c on c.doccode=b.SODoccode\n" + - "where a.CltCode='"+cltCode+"' and a.DocStatus="+docStatus; + String sql="set nocount on \n" + + " select a.DocCode,a.FormID,a.DocDate,a.EnterDate,a.DocType,a.RefCode,a.CompanyName,a.DocStatus,a.CltCode,\n" + + " a.CltName,a.HDMemo,a.SumNatAmount,a.SumAmount,b.SODocCode,b.SOFormId,b.natAmount,b.amount,\n" + + " c.MatName,c.Digit,c.TotalMoney,c.FYendday,c.FYbeginday ,case when exists(select 1 from t150101log d " + + " where a.doccode = d.RefDoccode and isnull(d.ThirdOrderNo,'') <> '' ) then 1 else 0 end as isPaid \n" + + " from t150101H a join t150101D b on a.DocCode=b.DocCode\n" + + " join t120301D c on c.doccode=b.SODoccode\n" + + " where a.CltCode='"+cltCode+"' and a.DocStatus="+docStatus; return ReceiptUtils.getReceipts(super.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ReceiptEntity.class))); } catch (Exception e) { throw e; @@ -49,14 +55,14 @@ } @Override - public void cancelReceipt(String skCode) { + public void doCancelReceipt(String skCode) { try { String sql = " set nocount on\n" + " declare @docCode varchar(50)='"+skCode+"' \n" + " exec p150101v4 @doccode \n"; super.jdbcTemplate.update(sql); } catch (Exception e) { -// throw e; + throw e; } } diff --git a/src/com/yc/MaintenanceFee/utils/BackMsg.java b/src/com/yc/MaintenanceFee/utils/BackMsg.java index 75c2632..d1c52e7 100644 --- a/src/com/yc/MaintenanceFee/utils/BackMsg.java +++ b/src/com/yc/MaintenanceFee/utils/BackMsg.java @@ -18,6 +18,11 @@ this.data=data; return this; } + public BackMsg setOkEd(Object data,String msg){ + this.msg=msg; + this.data=data; + return this; + } public BackMsg setError(String msg){ this.code=-1; this.msg=msg; diff --git a/src/com/yc/MaintenanceFee/utils/ReceiptUtils.java b/src/com/yc/MaintenanceFee/utils/ReceiptUtils.java index 3081f3e..7c0d89e 100644 --- a/src/com/yc/MaintenanceFee/utils/ReceiptUtils.java +++ b/src/com/yc/MaintenanceFee/utils/ReceiptUtils.java @@ -33,6 +33,7 @@ payInfo.setDocType(item.getDocType()); payInfo.setDocDate(item.getDocDate()); payInfo.setReceivMoney(item.getReceivMoney()); + payInfo.setIsPaid(item.getIsPaid()); payInfo.setItemList(m); info.add(payInfo); } @@ -69,6 +70,7 @@ receipt.setHdMemo(r1.get(0).getHDMemo()); receipt.setSumAmount(r1.get(0).getSumAmount()); receipt.setSumNatAmount(r1.get(0).getSumNatAmount()); + receipt.setIsPaid(r1.get(0).getIsPaid()); List<ReceiptDetailed> receiptDetailedList = new ArrayList<>(); for (ReceiptEntity e1 : r1) { String whCode = e1.getSODocCode(); -- Gitblit v1.8.0