From 0a4f165eec7585da85a0bd58444efb5eac06d35f Mon Sep 17 00:00:00 2001
From: fs-danaus <danaus314@qq.com>
Date: 星期三, 21 二月 2024 17:53:34 +0800
Subject: [PATCH] 优化多附件上传功能及业绩宝接口代码更新

---
 src/com/yc/open/yejibao/schedule/T150109Thread.java             |   61 -----
 src/com/yc/action/login/LoginAction.java                        |    1 
 WebRoot/js/index/funcLink.js                                    |   80 ++++---
 src/com/yc/open/qiyunfang/service/QiyunfangImpl.java            |    2 
 src/com/yc/open/yejibao/service/YeJiBaoImpl.java                |    8 
 WebRoot/general/gridFileInput.jsp                               |   32 ++-
 src/com/yc/action/upload/AttachmentAction.java                  |   12 
 src/com/yc/open/yejibao/controller/YeJiBaoController.java       |    4 
 src/com/yc/open/yejibao/schedule/T150101Thread.java             |   61 -----
 src/com/yc/open/yejibao/controller/YeJiBaoHandleController.java |  285 ++++++++++++++++++++++++++++
 WebRoot/js/bootstrap/fileinput/js/fileinput.js                  |   27 +-
 11 files changed, 390 insertions(+), 183 deletions(-)

diff --git a/WebRoot/general/gridFileInput.jsp b/WebRoot/general/gridFileInput.jsp
index befb46d..860b151 100644
--- a/WebRoot/general/gridFileInput.jsp
+++ b/WebRoot/general/gridFileInput.jsp
@@ -121,7 +121,8 @@
         pubkey: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkRupiYcKVGGUtDBDoR1t/1zm3ZtZgnte39iTJW6hlqjdY0UagKjpNiIv7J6XjtgfX7SgsR4AWnivqQHAICIvdPKfGZZzIs62OQ19MqrDTMoB/LvK5teNWhClv23WMUfRbP+EHgprT6hTw8U5apw1IB6i/y57NkLav792wiYBYRU4X45NoTaT+aiTSLFEflbfm94EXnhSS3vFkBmrZGy5BRNI8gmzafroslGx2Hk90CqlNdeKYxgZQ6xtvj+u33yrszWvPT6F9fsJT8aMjtvH050iYKRVct+x6Q7VRJgCI4MgvAexnTKdxW54YzvXCuO5bDiy5la7CgerWkTAq9dzXwIDAQAB"
     };
     let arrayFileType = {};//淇濆瓨涓婁紶杩斿洖鐨勯檮浠秛uid;seq鍙婃枃浠剁被鍨�
-    var fileUploadCount = 0;//淇濆瓨鍔犺浇鐨勯檮浠舵暟閲�
+    let arrayFileSeq = {};//淇濆瓨涓婁紶杩斿洖鐨勯檮浠秛uid;seq鍙婃枃浠跺悕绉帮紝鐢ㄤ簬鍒犻櫎鏃舵牴鎹枃浠跺悕绉板尮閰嶅埌seq
+    var fileUploadCount = 0;//淇濆瓨闄勪欢鎬绘暟
     //娓叉煋鍑洪檮浠剁晫闈㈠嚭鏉�9,19
     const BootstrapFileInputOption = function (g) {
         let o = {
@@ -151,6 +152,7 @@
                 allowedFileExtensions: null,//鍏佽涓婁紶鐨勬枃浠舵墿灞曞悕鍒楄〃銆傞粯璁ゆ儏鍐典笅璁剧疆涓� null
                 dropZoneTitle: '鐐瑰嚮鎴栨嫋鎷芥枃浠�',
                 dropZoneClickTitle: '',
+                multiple: g.type == 9 ? false : true,//by danaus 2024-02-19 17:39
                 layoutTemplates: {
                     indicator: ''//鍘绘帀涓婁紶鐘舵�佸浘鏍�
                     , actionUpload: ''//鍘婚櫎缂╃暐鍥句腑鏂囦欢涓婁紶鎿嶄綔鎸夐挳鐨勬ā鏉�
@@ -222,12 +224,15 @@
                     F.fileinput('upload');
                 }).on('filebatchuploadsuccess', function (event, data) {
                     // 姝や簨浠朵粎鍦╝jax涓婁紶涓旀枃浠舵壒閲忎笂浼犳垚鍔熶箣鍚庤Е鍙�
+                    //debugger;
                     if (g) {
-                        fileUploadCount++;
+                        fileUploadCount += data.files.length;
                         let tmp = {};
                         let v = $('#file-inputv');
                         let oldKey = v.val();// 鏃х殑鍊�
                         let newKey = data.response.uuid ? data.response.uuid + ";" : "";   // 鏂扮殑鍊�
+                        arrayFileSeq = JSON.parse(data.response.seqMap);
+                        arrayFileType = JSON.parse(data.response.fileExtMap);
                         if (oldKey != "") {
                             let keys = oldKey.split(";");
                             for (let i = 1; i < keys.length; i++) {
@@ -243,7 +248,6 @@
                         let unId = data.response.uuid ? data.response.uuid : "";
                         let grid = g.id;
                         let obj = unId + ";" + data.response.fileType;//  by danaus 2020/4/30 11:32
-                        arrayFileType[newKey.substring(0, newKey.length - 1)] = data.response.fileType;//鍘绘帀鏈�鍚庝竴涓�;鍙�
                         grid.SetValue(g.row, g.col, obj, 0);
                         grid.RefreshCell(g.row, g.col);
                     }
@@ -278,8 +282,10 @@
                     }
                 }).on('filesuccessremove', function (event, val) {
                     // 浣跨敤缂╃暐鍥惧垹闄ゆ寜閽垹闄ゆ垚鍔熶笂浼犵殑缂╃暐鍥惧悗锛屼細瑙﹀彂姝や簨浠�
+                    let title = val.title;//鏂囦欢鍚嶇О锛岀敤浜庢煡鎵惧搴旂殑seq
+                    let delSeq = arrayFileSeq[title];//瀵瑰簲鍒犻櫎鐨剆eq
                     let uuid = val.key.split(";")[0];
-                    let seq = val.key.split(";")[1];
+                    //let seq = val.key.split(";")[1];
                     let hd = 0;//涓讳粠琛ㄦ爣璁�,0琛ㄧず浠庤〃
                     let formidType = g.id.gType;
                     if (formidType == 3 || formidType == 301 || formidType == 304 || formidType == 4 || formidType == 7 || formidType == 1) {
@@ -293,20 +299,20 @@
                         type: "POST",
                         dataType: 'json',
                         url: '/attachment/deleteOwnerAttachment.do?type=' + val.type + '&unid='
-                            + uuid + '&seq=' + seq + '&ishd=' + hd + '&fieldid=' + g.col + '&formid=' + g.id.formid,   // 鍒犻櫎璺緞
+                            + uuid + '&seq=' + delSeq + '&ishd=' + hd + '&fieldid=' + g.col + '&formid=' + g.id.formid,   // 鍒犻櫎璺緞
                         success: function (data) {
                             if (data.status == 'success') {
                                 if (g) {
                                     fileUploadCount--;
+                                    delete arrayFileSeq[title];
                                     var grid = g.id;
                                     var obj = "";
-                                    let key = val.key.substring(0, val.key.length - 1) + "";//鍘绘帀鏈�鍚庝竴涓垎鍙�
+                                    let key = uuid + ";" + delSeq;
                                     if (g.type == 19) {
-                                        if (key != g.row[g.col + "_Img"]) {
+                                        if (key != g.row[g.col + "_Img"] || fileUploadCount != 0) {
                                             //琛ㄧず19绫诲瀷涓旀湁澶氫釜闄勪欢
-                                            let delseq = key.split(";")[1];
                                             let orgUnId = g.row[g.col + "_Img"];
-                                            orgUnId = orgUnId.replace(";" + delseq, "");//鍦ㄥ師鍊间腑鍘绘帀鐩稿叧鐨剆eq
+                                            orgUnId = orgUnId.replace(";" + delSeq, "");//鍦ㄥ師鍊间腑鍘绘帀鐩稿叧鐨剆eq
                                             g.row[g.col + "_Img"] = orgUnId;
                                             let arrayUnid = orgUnId.split(";");
 
@@ -315,6 +321,10 @@
                                                 let newKey = arrayUnid[0] + ";" + arrayUnid[1];
                                                 let newUnid = newKey + ";" + (arrayFileType[newKey] != undefined ? arrayFileType[newKey] : "jpg");
                                                 g.row[g.col] = g.id.createPicPath(newUnid);
+                                                let tmp = {};
+                                                tmp.key = newUnid;
+                                                $('#file-inputv').val(newKey);
+                                                // data.thumbs.attr("data-key", JSON.stringify(tmp));
                                             }
                                         } else {
                                             //褰撳墠鍙湁涓�涓檮浠讹紝鐩存帴娓呯┖
@@ -532,7 +542,7 @@
                     fileInput.option.uploadUrl = upURL; // 闄勪欢涓婁紶璺緞
                     // fileInput.option.maxFileCount = 1;   // 涓烘瘡涓娆′笂杞藉厑璁哥殑鏈�澶ф枃浠舵暟銆傚鏋滆缃负0锛屽垯鎰忓懗鐫�鍏佽鐨勬枃浠舵暟鏄棤闄愮殑銆傞粯璁ゅ�间负0銆�
                     fileInput.option.maxTotalFileCount = g.type == 9 ? 1 : 0;  // 鍏佽鐨勬�绘枃浠舵暟銆傚鏋滆缃负0锛屽垯鎰忓懗鐫�鍏佽鐨勬�绘枃浠舵暟鏄棤闄愮殑銆傞粯璁ゅ�间负0銆�
-                    fileInput.option.isNine = g.type ? true : false;
+                    fileInput.option.isNine = g.type == 9 ? true : false;
                     fileInput.option.validateInitialCount = true;   // 鏄惁鍖呮嫭鍒濆棰勮鏂囦欢鏁帮紙鏈嶅姟鍣ㄤ笂浼犳枃浠讹級楠岃瘉minfilecount鍜宮axfilecount銆傞粯璁や负false.
                     fileInput.option.overwriteInitial = false;   // 鏄惁瑕佽鐩栧垵濮嬮瑙堝唴瀹瑰拰鏍囬璁剧疆
                     if (jsons.length > 0) {
@@ -544,7 +554,7 @@
         } catch (e) {
             alert(e);
         } finally {
-            fileInput.fileInput();// 鍔犺浇鍥剧墖鏄剧ず
+            fileInput.fileInput({multiple: g.type == 9 ? false : true});// 鍔犺浇鍥剧墖鏄剧ず
             $(".image").addClass("hide");
             $(".fileInput").removeClass("hide");
         }
diff --git a/WebRoot/js/bootstrap/fileinput/js/fileinput.js b/WebRoot/js/bootstrap/fileinput/js/fileinput.js
index dec030a..487c6f8 100644
--- a/WebRoot/js/bootstrap/fileinput/js/fileinput.js
+++ b/WebRoot/js/bootstrap/fileinput/js/fileinput.js
@@ -954,6 +954,9 @@
             if (!refreshMode) {
                 self._cleanup();
             }
+            if (self.multiple == true) {//by danaus 2024-02-19 10:58 澧炲姞澶氶�夋枃浠剁殑閫夐」
+                $el.attr('multiple', 'multiple');
+            }
             self.duplicateErrors = [];
             self.$form = $el.closest('form');
             self._initTemplateDefaults();
@@ -1532,15 +1535,6 @@
                         chunkCount: rm.chunkCount
                     });
                     fnBefore = function (jqXHR) {
-                        //澶勭悊琛ㄦ牸澶氶檮浠� by danaus 2024-02-01 11:00
-                        let val = $('#file-inputv').val();
-                        if (val != "") {
-                            //鏇存柊鏈�鏂扮殑uuid锛屽湪闄勪欢鍏ㄩ兘鏄柊涓婁紶鏃跺�欙紝涓嶅鐞嗕細鏈夐棶棰橈紝uuid姣忔閮戒細涓嶅悓
-                            let url = self.options.uploadUrl.split("?");
-                            let searchParams = new URLSearchParams(url[1]);
-                            searchParams.set('uuid', val);
-                            self.options.uploadUrl = url[0] + searchParams.toString();
-                        }
                         outData = self._getOutData(fd, jqXHR);
                         self._raise('filetestbeforesend', [id, fm, rm, outData]);
                     };
@@ -3789,12 +3783,13 @@
                     var $thumb = $(this), $remove = $thumb.find('.kv-file-remove');
                     $remove.removeAttr('disabled');
                     self._handler($remove, 'click', function () {
-                        if(self.isControl9){
-                            self.isControl9=false;
+                        if (self.isControl9) {
+                            self.isControl9 = false;
                         }
                         var id = $thumb.attr('id'),
-                            key= $thumb.data('key'),
-                            out = self._raise('filesuccessremove', [key,id, $thumb.attr('data-fileindex')]);
+                            key = $thumb.data('key');
+                        key['title'] = $thumb.attr('title');
+                        var out = self._raise('filesuccessremove', [key, id, $thumb.attr('data-fileindex')]);//澧炲姞鏂囦欢鍚嶇О杈撳嚭锛岀敤浜庨〉闈綔涓哄垹闄ゆ枃浠剁殑key,閫氳繃鍚庡彴浼犲洖鏉ョ殑kv鍊兼壘鍒板搴旂殑seq,by danaus 2024-02-21 09:30
                         $h.cleanMemory($thumb);
                         if (out === false) {
                             return;
@@ -4065,7 +4060,11 @@
                         searchParams.set('uuid', '');
                         $('#file-inputv').val('');//娓呯┖鍘熸湁鍊�
                     } else {
-                        searchParams.set('uuid', val.replaceAll("%3B", ";").substring(0, val.length - 1));
+                        if (val.lastIndexOf(';') == val.length - 1) {//琛ㄧず浠�;缁撳熬
+                            searchParams.set('uuid', val.replaceAll("%3B", ";").substring(0, val.length - 1));
+                        } else {
+                            searchParams.set('uuid', val.replaceAll("%3B", ";").substring(0, val.length));
+                        }
                     }
                     return url[0] + "?" + searchParams.toString().replaceAll("%3B", ";");
                 }
diff --git a/WebRoot/js/index/funcLink.js b/WebRoot/js/index/funcLink.js
index f4aa3f1..2ec1c57 100644
--- a/WebRoot/js/index/funcLink.js
+++ b/WebRoot/js/index/funcLink.js
@@ -1,17 +1,22 @@
 var version = 0;// 鐗堟湰鍙�
 var pwdCallBack = null;// 瀵嗙爜杈撳叆鐐瑰嚮纭畾鍚庡洖璋冨嚱鏁�
 var obj22 = null;// 22绫诲瀷浼犲�煎璞�
-var shx=false;
-var leftWidth="0";
-var gridId=[];
+var shx = false;
+var leftWidth = "0";
+var gridId = [];
 //var uploadObj = null;
 //var edit='';
-var pic={};// 鏍肩嚎闄勪欢涓婁紶鍙傛暟灞炴��
-var rsakey={
-    pubkey:"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkRupiYcKVGGUtDBDoR1t/1zm3ZtZgnte39iTJW6hlqjdY0UagKjpNiIv7J6XjtgfX7SgsR4AWnivqQHAICIvdPKfGZZzIs62OQ19MqrDTMoB/LvK5teNWhClv23WMUfRbP+EHgprT6hTw8U5apw1IB6i/y57NkLav792wiYBYRU4X45NoTaT+aiTSLFEflbfm94EXnhSS3vFkBmrZGy5BRNI8gmzafroslGx2Hk90CqlNdeKYxgZQ6xtvj+u33yrszWvPT6F9fsJT8aMjtvH050iYKRVct+x6Q7VRJgCI4MgvAexnTKdxW54YzvXCuO5bDiy5la7CgerWkTAq9dzXwIDAQAB"
+var pic = {};// 鏍肩嚎闄勪欢涓婁紶鍙傛暟灞炴��
+var rsakey = {
+    pubkey: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkRupiYcKVGGUtDBDoR1t/1zm3ZtZgnte39iTJW6hlqjdY0UagKjpNiIv7J6XjtgfX7SgsR4AWnivqQHAICIvdPKfGZZzIs62OQ19MqrDTMoB/LvK5teNWhClv23WMUfRbP+EHgprT6hTw8U5apw1IB6i/y57NkLav792wiYBYRU4X45NoTaT+aiTSLFEflbfm94EXnhSS3vFkBmrZGy5BRNI8gmzafroslGx2Hk90CqlNdeKYxgZQ6xtvj+u33yrszWvPT6F9fsJT8aMjtvH050iYKRVct+x6Q7VRJgCI4MgvAexnTKdxW54YzvXCuO5bDiy5la7CgerWkTAq9dzXwIDAQAB"
 };
+let arrayFileType_Panel = {};//淇濆瓨涓婁紶杩斿洖鐨勯檮浠秛uid;seq鍙婃枃浠剁被鍨�
+let arrayFileSeq_Panel = {};//淇濆瓨涓婁紶杩斿洖鐨勯檮浠秛uid;seq鍙婃枃浠跺悕绉帮紝鐢ㄤ簬鍒犻櫎鏃舵牴鎹枃浠跺悕绉板尮閰嶅埌seq
+let fileUploadCount_Panel = 0;//淇濆瓨闄勪欢鎬绘暟
+let formid_Panel;
+
 //鎷兼帴闄勪欢url
-function getAttachmentUrl(staticUrl,formid,unid,domain,dbid,isShowOrgPic,width,height,fileExt,isDownLoad){
+function getAttachmentUrl(staticUrl, formid, unid, domain, dbid, isShowOrgPic, width, height, fileExt, isDownLoad) {
     // if (staticUrl != null && staticUrl != "") {
     //     if (isDownLoad) {
     //         return unid + "_" + dbid + "_" + formid + "_" + fileExt;
@@ -108,12 +113,13 @@
             uploadAsync: false,   // bool鏄惁澶氭枃浠舵壒閲忎笂浼犲皢骞惰寮傛/銆傞粯璁や负true
             showCaption: false,//鏄惁鏄剧ず琚�夋枃浠剁殑绠�浠�
             showBrowse: false,//鏄惁鏄剧ず鏂囦欢娴忚鎸夐挳
-            showBatchDownload:true,//鏄剧ず鎵归噺涓嬭浇鎸夐挳
+            showBatchDownload: true,//鏄剧ず鎵归噺涓嬭浇鎸夐挳
             showUpload: false,//鏄惁鏄剧ず涓婁紶鎸夐挳
             showCancel: false,//鏄惁鏄剧ず鍙栨秷鎸夐挳
             showRemove: false,//鏄惁鏄剧ず绉婚櫎鎸夐挳
-            showDrag:false,//鏄惁鏄剧ず鎷栧姩鎸夐挳
+            showDrag: false,//鏄惁鏄剧ず鎷栧姩鎸夐挳
             showClose: false,//鏄惁鏄剧ず鍏抽棴鎸夐挳
+            multiple: id.type == 9 ? false : true,//by danaus 2024-02-19 17:39
             dropZoneEnabled: true,   //鏄惁鏄剧ず鎷栨嫿鍖哄煙
             browseOnZoneClick: false,   //甯冨皵鍊硷紝鏄惁鍦ㄧ偣鍑婚瑙堝尯鍩熸椂瑙﹀彂鏂囦欢娴忚/閫夋嫨銆傞粯璁や负false
             showUploadedThumbs: true,   // 鏄惁鍦ㄩ瑙堢獥鍙d腑鎸佺画鏄剧ず宸茬粡涓婁紶鐨勬枃浠剁缉鐣ュ浘锛堢敤浜巃jax涓婁紶锛夛紝鐩村埌鎸変笅鍒犻櫎/娓呴櫎鎸夐挳
@@ -122,8 +128,8 @@
             isNine: false,   // 19绫诲瀷灏变负false,9绫诲瀷灏变负true,涓嬮潰鏈夊垽鏂�
             validateInitialCount: false,   // 鏄惁鍖呮嫭鍒濆棰勮鏂囦欢鏁帮紙鏈嶅姟鍣ㄤ笂浼犳枃浠讹級楠岃瘉minfilecount鍜宮axfilecount銆傞粯璁や负false.
             overwriteInitial: true,   // 鏄惁瑕佽鐩栧垵濮嬮瑙堝唴瀹瑰拰鏍囬璁剧疆
-            initialPreviewAsData:true,
-            allowedFileExtensions:null,//鍏佽涓婁紶鐨勬枃浠舵墿灞曞悕鍒楄〃銆傞粯璁ゆ儏鍐典笅璁剧疆涓� null
+            initialPreviewAsData: true,
+            allowedFileExtensions: null,//鍏佽涓婁紶鐨勬枃浠舵墿灞曞悕鍒楄〃銆傞粯璁ゆ儏鍐典笅璁剧疆涓� null
             dropZoneTitle:'鐐瑰嚮鎴栨嫋鎷芥枃浠�',
             dropZoneClickTitle:'',
             layoutTemplates : {
@@ -238,16 +244,19 @@
                 fileInputId.fileinput('upload');
             }).on('filebatchuploadsuccess', function(event, data) {
                 // 姝や簨浠朵粎鍦╝jax涓婁紶涓旀枃浠舵壒閲忎笂浼犳垚鍔熶箣鍚庤Е鍙�
-                let tmp={};
-                let oldKey=id.val();// 鏃х殑鍊�
-                let newKey=data.response.uuid?data.response.uuid+";":"";   // 鏂扮殑鍊�
-                if(oldKey!=""){
-                    var keys=oldKey.split(";");
-                    for(var i=1;i<keys.length;i++){
-                        newKey=newKey.replace(";"+keys[i]+";",";");
+                fileUploadCount_Panel += data.files.length;
+                arrayFileSeq_Panel = JSON.parse(data.response.seqMap);
+                arrayFileType_Panel = JSON.parse(data.response.fileExtMap);
+                let tmp = {};
+                let oldKey = id.val();// 鏃х殑鍊�
+                let newKey = data.response.uuid ? data.response.uuid + ";" : "";   // 鏂扮殑鍊�
+                if (oldKey != "") {
+                    var keys = oldKey.split(";");
+                    for (var i = 1; i < keys.length; i++) {
+                        newKey = newKey.replace(";" + keys[i] + ";", ";");
                     }
                 }
-                tmp.key=newKey;
+                tmp.key = newKey;
                 tmp.type=data.response.type;
                 tmp.filedId=name;
                 tmp.oldKey=oldKey;
@@ -257,10 +266,10 @@
                     data.thumbs.attr("data-key",JSON.stringify(tmp));
                 }
                 // 鏍肩嚎璋冪敤
-                if(g){
-                    let grid=g.id;
-                    let obj=unid+";"+data.response.fileType;// by by danaus 2020/4/30 11:32
-                    grid.SetValue(g.row, g.col,obj,0);
+                if(g) {
+                    let grid = g.id;
+                    let obj = unid + ";" + data.response.fileType;// by danaus 2020/4/30 11:32
+                    grid.SetValue(g.row, g.col, obj, 0);
                     grid.RefreshCell(g.row, g.col);
                 }
             }).on('filebeforedelete', function(event, params) {
@@ -270,6 +279,8 @@
             }).on('filedeleted', function(event, key) {
                 // 鍦ㄥ垹闄nitialPreview鍐呭闆嗕腑鐨勬瘡涓缉鐣ュ浘鏂囦欢涔嬪悗瑙﹀彂姝や簨浠�
                 // 鏍肩嚎璋冪敤
+                debugger;
+                fileUploadCount_Panel--;
                 if (isGrid != null && isGrid == 'grid') {
                     if (g) {
                         let grid = g.id;
@@ -280,6 +291,7 @@
                 } else {   // 闈㈡澘
                     let va = id.val();
                     key = key.split(";")[1];
+                    delete arrayFileType_Panel[key];
                     va = va.replace(";" + key, "");
                     if (va.indexOf(";") < 0) {
                         va = "";
@@ -289,20 +301,21 @@
                 }
             }).on('filesuccessremove', function(event, val) {
                 // 浣跨敤缂╃暐鍥惧垹闄ゆ寜閽垹闄ゆ垚鍔熶笂浼犵殑缂╃暐鍥惧悗锛屼細瑙﹀彂姝や簨浠�
-                if(val!=null && val.key!=null){
-                    let vals = val.key.split(";");
-                    let uuid;
-                    let seq = 0;
-                    if (vals.length > 1) {
-                        uuid = val.key.split(";")[0];
-                        seq = val.key.split(";")[1];
-                    }
+                debugger;
+                if(val!=null && val.key!=null) {
+                    let title = val.title;//鏂囦欢鍚嶇О锛岀敤浜庢煡鎵惧搴旂殑seq
+                    let delSeq = arrayFileSeq_Panel[title];//瀵瑰簲鍒犻櫎鐨剆eq
+                    let uuid = val.key.split(";")[0];
                     $.ajax({
                         type: "POST",
                         dataType: 'json',
-                        url: '/attachment/deleteOwnerAttachment.do?type=' + val.type + '&unid=' + uuid + '&seq=' + seq,   // 鍒犻櫎璺緞
+                        url: '/attachment/deleteOwnerAttachment.do?formid=' + formid_Panel + '&fieldid=' + val.filedId + '&ishd=1&type=' + val.type + '&unid=' + uuid + '&seq=' + delSeq,   // 鍒犻櫎璺緞
                         success: function (data) {
-                            let newUid = val.oldKey == "" ? "" : val.oldKey.replace(";" + seq, "");
+                            fileUploadCount_Panel--;
+                            delete arrayFileSeq_Panel[title];
+                            delete arrayFileType_Panel[uuid + ";" + delSeq];
+                            // let newUid = val.oldKey == "" ? "" : val.oldKey.replace(";" + delSeq, "");
+                            let newUid = val.key == "" ? "" : val.key.replace(";" + delSeq, "");//by danaus 2024-02-21 16:56
                             id.val(newUid);
                         }
                     });
@@ -427,6 +440,7 @@
     var isReadOnly = false;
     try {
         // 涓婁紶闄勪欢闇�瑕佺殑鍙傛暟
+        formid_Panel = formid;
         var param = {};
         var panelautoSave = "";//鏍囪鏄惁涓哄崟鎹�
         var readerUserCodes = $('#readerusercodes').val();
diff --git a/src/com/yc/action/login/LoginAction.java b/src/com/yc/action/login/LoginAction.java
index d017f49..4830ebd 100644
--- a/src/com/yc/action/login/LoginAction.java
+++ b/src/com/yc/action/login/LoginAction.java
@@ -417,7 +417,6 @@
                                     return null;// 楠岃瘉鍑洪敊杩斿洖'
                                 }
                                 userCode = userAccount.getUserCode();//杞垚ERP鐨剈sercode杩涜鐧婚檰
-                                password = userAccount.getPassword();//杞垚ERP鐨勫瘑鐮佽繘琛岀櫥闄�
                             }else {
                                 //澶勭悊杈撳叆鐨勫瘑鐮佸湪涓嶅湪鎵�鍒楀嚭璐﹀彿閲岄潰锛屼笉瀛樺湪璇存槑瀵嗙爜閿欒锛屽瓨鍦ㄥ垯鏍囪鏄摢涓�涓处鍙�
                                 final String pwd=password;
diff --git a/src/com/yc/action/upload/AttachmentAction.java b/src/com/yc/action/upload/AttachmentAction.java
index c1d6965..b7d21f1 100644
--- a/src/com/yc/action/upload/AttachmentAction.java
+++ b/src/com/yc/action/upload/AttachmentAction.java
@@ -1,5 +1,6 @@
 package com.yc.action.upload;
 
+import com.alibaba.fastjson.JSON;
 import com.google.gson.JsonObject;
 import com.yc.action.BaseAction;
 import com.yc.action.grid.GridUtils;
@@ -1278,7 +1279,7 @@
             picEntity.setIp(ip);
             boolean success = attachmentIfc.deleteAttachment(picEntity);
             if (success) {
-                printJson(response, "{\"status\":\"success\"}");
+                printJson(response, "{\"status\":\"success\",\"key\":\"" + (unid + ";" + seq) + "\"}");
             } else {
                 printJson(response, "{\"status\":\"failed\"}");
             }
@@ -1527,6 +1528,8 @@
             byte[] orgBinaryimages = null;//婧愭枃浠�
             byte[] smallBinaryimages = null;//缂╃暐鍥�
             String fileExt = "";
+            Map<String, String> seqMap = new HashMap<>();
+            Map<String, String> fileExtMap = new HashMap<>();
             //鍥剧墖缂╁皬澶勭悊
             for (UpFile upFile : upFiles) {
                 Integer seq = null;
@@ -1580,7 +1583,8 @@
                 else {
                     seqString += attachmentWhereEntity.getSeq() + ";";
                 }
-
+                seqMap.put(upFile.getOldFileName(), attachmentWhereEntity.getSeq() + "");
+                fileExtMap.put(uuid + ";" + attachmentWhereEntity.getSeq(), fileExt);
                 //澶勭悊姘村嵃
                 if (ImageUtils.isPicture(upFile.getOldFileName())) {
                     ImageUtils.waterMark(fileName, request);
@@ -1662,7 +1666,9 @@
             m.put("status", "success");
             m.put("uuid", seqString);
             m.put("type", type);
-            m.put("fileType", fileExt);
+            m.put("seqMap", JSON.toJSONString(seqMap));
+            m.put("fileExtMap", JSON.toJSONString(fileExtMap));
+            m.put("fileType", fileExt);//杩欓噷鍙繑鍥炴渶鍚庝竴涓檮浠剁殑鏂囦欢绫诲瀷锛屽湪澶氶檮浠舵椂浼氭湁闂
             m.put("path", "|/getImage.do?type=0&uuid=" + seqString + "&r=" + Math.random() + JsonUtil.IMGRANG);
             return m;
 
diff --git a/src/com/yc/open/qiyunfang/service/QiyunfangImpl.java b/src/com/yc/open/qiyunfang/service/QiyunfangImpl.java
index 650f0b2..1fbd663 100644
--- a/src/com/yc/open/qiyunfang/service/QiyunfangImpl.java
+++ b/src/com/yc/open/qiyunfang/service/QiyunfangImpl.java
@@ -80,7 +80,7 @@
                 " a.Amount5 as AMT_5 , --25-36涓湀(閲戦)\n" +
                 " a.Amount6 as AMT_6 , --37-48涓湀(閲戦)\n" +
                 " a.Amount7 as AMT_7  --48涓湀浠ヤ笂(閲戦)\n" +
-                " from f140933(@companyid,@periodid,'','','',30,150,180,360,360,360) a", new BeanPropertyRowMapper<>(InventoryAgeDataEntry.class));
+                " from f140933(@companyid,@periodid,'','','',30,150,180,360,360,360) a where isnull(a.EndDigit,0)<>0 and isnull(a.EndAmount,0)<>0", new BeanPropertyRowMapper<>(InventoryAgeDataEntry.class));
     }
     @Override
     public List<CustomerDataEntry> getCustomerData() {
diff --git a/src/com/yc/open/yejibao/controller/YeJiBaoController.java b/src/com/yc/open/yejibao/controller/YeJiBaoController.java
index 76ebb31..536aeb1 100644
--- a/src/com/yc/open/yejibao/controller/YeJiBaoController.java
+++ b/src/com/yc/open/yejibao/controller/YeJiBaoController.java
@@ -442,7 +442,7 @@
         PostDataBaseService mPostDataBaseService = (PostDataBaseService) FactoryBean.getBean("postDataBaseService");
         try {
             SpObserver.setDBtoInstance("_" + entity.getDbid());
-            mPostDataBaseService.getSimpleJdbcTemplate().queryForObject("update a set a.YeJiBaoPushStatus=" + callBackMessage.getState() + ",a.YeJiBaoPushDate=getdate(),a.YeJiBaoPushTimes=isnull(a.YeJiBaoPushTimes,0)+1,a.YeJiBaoPushMsg='" + callBackMessage.getSuccess() + "'  from t120201H  a where a.doccode='" + cancelEntry.getDocCode() + "'", Integer.class);
+            mPostDataBaseService.getSimpleJdbcTemplate().queryForObject("update a set a.YeJiBaoPushStatus=" + callBackMessage.getState() + ",a.YeJiBaoPushDate=getdate(),a.YeJiBaoPushTimes=isnull(a.YeJiBaoPushTimes,0)+1,a.YeJiBaoPushMsg='" + callBackMessage.getSuccess() + "'  from t120201H  a where a.doccode='" + cancelEntry.getDocCode() + "' \n select @@rowcount", Integer.class);
         } catch (Exception ex) {
             mPostDataBaseService.doLogBy110565(new T110565Entity(
                     120201,
@@ -480,7 +480,7 @@
         PostDataBaseService mPostDataBaseService = (PostDataBaseService) FactoryBean.getBean("postDataBaseService");
         try {
             SpObserver.setDBtoInstance("_" + entity.getDbid());
-            mPostDataBaseService.getSimpleJdbcTemplate().queryForObject("update a set a.YeJiBaoPushStatus=" + callBackMessage.getState() + ",a.YeJiBaoPushDate=getdate(),a.YeJiBaoPushTimes=isnull(a.YeJiBaoPushTimes,0)+1,a.YeJiBaoPushMsg='" + callBackMessage.getSuccess() + "'  from t120201H  a where a.doccode='" + t120201Entity.getDocCode() + "'", Integer.class);
+            mPostDataBaseService.getSimpleJdbcTemplate().queryForObject("update a set a.YeJiBaoPushStatus=" + callBackMessage.getState() + ",a.YeJiBaoPushDate=getdate(),a.YeJiBaoPushTimes=isnull(a.YeJiBaoPushTimes,0)+1,a.YeJiBaoPushMsg='" + callBackMessage.getSuccess() + "'  from t120201H  a where a.doccode='" + t120201Entity.getDocCode() + "' \n select @@rowcount", Integer.class);
         } catch (Exception ex) {
             mPostDataBaseService.doLogBy110565(new T110565Entity(
                     120201,
diff --git a/src/com/yc/open/yejibao/controller/YeJiBaoHandleController.java b/src/com/yc/open/yejibao/controller/YeJiBaoHandleController.java
new file mode 100644
index 0000000..b6559a3
--- /dev/null
+++ b/src/com/yc/open/yejibao/controller/YeJiBaoHandleController.java
@@ -0,0 +1,285 @@
+package com.yc.open.yejibao.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.yc.entity.DataSourceEntity;
+import com.yc.exception.ApplicationException;
+import com.yc.exception.CallBackMessage;
+import com.yc.factory.FactoryBean;
+import com.yc.multiData.MultiDataSource;
+import com.yc.multiData.SpObserver;
+import com.yc.open.controller.BaseController;
+import com.yc.open.deli.entity.T110565Entity;
+import com.yc.open.deli.service.PostDataBaseService;
+import com.yc.open.init.InitSystemTaks;
+import com.yc.open.init.Task;
+import com.yc.open.mutual.schedule.GateEntity;
+import com.yc.open.yejibao.entry.T150101DetailEntity;
+import com.yc.open.yejibao.entry.T150101Entity;
+import com.yc.open.yejibao.entry.T150109DetailEntity;
+import com.yc.open.yejibao.entry.T150109Entity;
+import com.yc.open.yejibao.service.YeJiBaoIfc;
+import com.yc.service.build.type.T_22_Ifc;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+/**
+ * 涓氱哗瀹濈浉鍏�
+ */
+@RestController
+@RequestMapping("/yejibao")
+@Slf4j
+public class YeJiBaoHandleController extends BaseController {
+    @Autowired
+    T_22_Ifc t22ifc;
+    @Autowired
+    YeJiBaoIfc yeJiBaoIfc;
+    @Autowired
+    YeJiBaoController yeJiBaoController;
+
+
+    @RequestMapping(value = "/push120101.do")
+    public void push120101(HttpServletRequest request, HttpServletResponse response) {
+        String docCode = null;//鍗曞彿
+        CallBackMessage callBackMessage = new CallBackMessage();
+        try {
+            Map<String, String> map = null;
+            DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(request);
+            try {
+                SpObserver.setDBtoInstance("_" + dataSourceEntity.getDbId());//鍒囨崲鏁版嵁婧�
+                map = t22ifc.getParamMap(request);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error(e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
+                this.printJson(response, callBackMessage.sendErrorMessage(this.getErrorMsg(e)));
+                return;
+            } finally {
+                SpObserver.setDBtoInstance();
+            }
+
+            if (map != null) {
+                docCode = map.get("doccode");
+            }
+            if (docCode == null) {
+                if (log.isDebugEnabled()) {
+                    log.error("閫氳繃22绫诲瀷浼犺繘鏉ョ粍瑁呭嚭鏉ョ殑map:" + map.toString());
+                }
+                this.printJson(response, callBackMessage.sendErrorMessage("鍗曞彿涓嶈兘涓虹┖"));
+                return;
+            }
+            GateEntity gateEntity = new GateEntity();
+            gateEntity.setDocCode(docCode);
+            gateEntity.setFormid(120201);
+            gateEntity.setDbid(dataSourceEntity.getDbId() + "");
+            Task soTask = InitSystemTaks.getTask(gateEntity, "OP0070");
+            soTask.setCurrentDocStatus(100);
+            yeJiBaoController.pushT120201(gateEntity, soTask);
+            this.printJson(response, callBackMessage.toJSONStringByMemo("鍚屾鎴愬姛:" + docCode));
+        } catch (Exception e) {
+            //鍐欓敊璇棩蹇�
+            e.printStackTrace();
+            this.sendErrorLog(120201, docCode, e);
+            String errorMsg = (e.getCause() != null ? (e.getCause().getMessage()).trim() : e.getMessage());
+            this.printJson(response, callBackMessage.sendErrorMessage(errorMsg));
+        }
+    }
+
+    @RequestMapping(value = "/push150101.do")
+    public void push150101(HttpServletRequest request, HttpServletResponse response) {
+        String docCode = null;//鍗曞彿
+        CallBackMessage callBackMessage = new CallBackMessage();
+        try {
+            Map<String, String> map = null;
+            DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(request);
+            try {
+                SpObserver.setDBtoInstance("_" + dataSourceEntity.getDbId());//鍒囨崲鏁版嵁婧�
+                map = t22ifc.getParamMap(request);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error(e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
+                this.printJson(response, callBackMessage.sendErrorMessage(this.getErrorMsg(e)));
+                return;
+            } finally {
+                SpObserver.setDBtoInstance();
+            }
+
+            if (map != null) {
+                docCode = map.get("doccode");
+            }
+            if (docCode == null) {
+                if (log.isDebugEnabled()) {
+                    log.error("閫氳繃22绫诲瀷浼犺繘鏉ョ粍瑁呭嚭鏉ョ殑map:" + map.toString());
+                }
+                this.printJson(response, callBackMessage.sendErrorMessage("鍗曞彿涓嶈兘涓虹┖"));
+                return;
+            }
+            GateEntity gateEntity = new GateEntity();
+            gateEntity.setDocCode(docCode);
+            gateEntity.setFormid(150101);
+            gateEntity.setDbid(dataSourceEntity.getDbId() + "");
+            Task soTask = InitSystemTaks.getTask(gateEntity, "OP0071");
+            soTask.setCurrentDocStatus(100);
+            call150101(gateEntity, soTask);
+            this.printJson(response, callBackMessage.toJSONStringByMemo("鍚屾鎴愬姛:" + docCode));
+        } catch (Exception e) {
+            //鍐欓敊璇棩蹇�
+            e.printStackTrace();
+            this.sendErrorLog(150105, docCode, e);
+            String errorMsg = (e.getCause() != null ? (e.getCause().getMessage()).trim() : e.getMessage());
+            this.printJson(response, callBackMessage.sendErrorMessage(errorMsg));
+        }
+    }
+
+    public void call150101(GateEntity entity, Task task) throws Exception {
+        T150101Entity result = this.yeJiBaoIfc.getT150101List(entity.getDocCode(), task);
+        if (result != null) {
+            for (T150101DetailEntity detail : result.getReceive()) {
+                if (detail.getSoDocStatus() != null && detail.getSoDocStatus() != 100) {
+                    //鎺ㄩ�佷笉鏄‘璁ょ姸鎬侀攢鍞鍗�
+                    GateEntity gateEntity = new GateEntity();
+                    gateEntity.setDocCode(detail.getSoDoccode());
+                    gateEntity.setFormid(120201);
+                    gateEntity.setDbid(entity.getDbid());
+                    Task soTask = InitSystemTaks.getTask(gateEntity, "OP0070");
+                    soTask.setCurrentDocStatus(detail.getSoDocStatus());
+                    yeJiBaoController.pushT120201(gateEntity, soTask);
+                }
+            }
+            String data = JSON.toJSONString(result, SerializerFeature.SortField);
+            CallBackMessage callBackMessage = yeJiBaoController.doPost(task.getApiUrl(), result.getCompanyID(), data);
+            if (callBackMessage.getState() == 0) {
+                Map<String, String> map = JSON.parseObject(callBackMessage.getData(), Map.class);
+                if (String.valueOf(map.get("code")).equals("1")) {
+                    //鎴愬姛
+                    callBackMessage.sendSuccessMessage("鎺ㄩ�佹垚鍔�");
+                    updateState150101(result, callBackMessage, entity);
+                } else {
+                    throw new ApplicationException(map.get("msg"));
+                }
+            } else {
+                throw new ApplicationException(callBackMessage.getError());
+            }
+        }
+    }
+
+    private void updateState150101(T150101Entity t150101Entity, CallBackMessage callBackMessage, GateEntity entity) {
+        PostDataBaseService mPostDataBaseService = (PostDataBaseService) FactoryBean.getBean("postDataBaseService");
+        try {
+            SpObserver.setDBtoInstance("_" + entity.getDbid());
+            mPostDataBaseService.getSimpleJdbcTemplate().queryForObject("update a set a.YeJiBaoPushStatus=" + callBackMessage.getState() + ",a.YeJiBaoPushDate=getdate(),a.YeJiBaoPushTimes=isnull(a.YeJiBaoPushTimes,0)+1,a.YeJiBaoPushMsg='" + callBackMessage.getSuccess() + "'  from t150101H  a where a.doccode='" + t150101Entity.getDocCode() + "' \n select @@rowcount", Integer.class);
+        } catch (Exception ex) {
+            mPostDataBaseService.doLogBy110565(new T110565Entity(
+                    150101,
+                    t150101Entity.getDocCode(),
+                    null,
+                    "鏀舵鍗�150101",
+                    ex.getMessage().replaceAll("'", "''")
+            ));
+        } finally {
+            SpObserver.setDBtoInstance();
+        }
+    }
+
+    @RequestMapping(value = "/push150109.do")
+    public void push150109(HttpServletRequest request, HttpServletResponse response) {
+        String docCode = null;//鍗曞彿
+        CallBackMessage callBackMessage = new CallBackMessage();
+        try {
+            Map<String, String> map = null;
+            DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(request);
+            try {
+                SpObserver.setDBtoInstance("_" + dataSourceEntity.getDbId());//鍒囨崲鏁版嵁婧�
+                map = t22ifc.getParamMap(request);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error(e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
+                this.printJson(response, callBackMessage.sendErrorMessage(this.getErrorMsg(e)));
+                return;
+            } finally {
+                SpObserver.setDBtoInstance();
+            }
+
+            if (map != null) {
+                docCode = map.get("doccode");
+            }
+            if (docCode == null) {
+                if (log.isDebugEnabled()) {
+                    log.error("閫氳繃22绫诲瀷浼犺繘鏉ョ粍瑁呭嚭鏉ョ殑map:" + map.toString());
+                }
+                this.printJson(response, callBackMessage.sendErrorMessage("鍗曞彿涓嶈兘涓虹┖"));
+                return;
+            }
+
+            GateEntity gateEntity = new GateEntity();
+            gateEntity.setDocCode(docCode);
+            gateEntity.setFormid(150109);
+            gateEntity.setDbid(dataSourceEntity.getDbId() + "");
+            Task soTask = InitSystemTaks.getTask(gateEntity, "OP0072");
+            soTask.setCurrentDocStatus(100);
+            call150109(gateEntity, soTask);
+            this.printJson(response, callBackMessage.toJSONStringByMemo("鍚屾鎴愬姛:" + docCode));
+        } catch (Exception e) {
+            //鍐欓敊璇棩蹇�
+            e.printStackTrace();
+            this.sendErrorLog(150109, docCode, e);
+            String errorMsg = (e.getCause() != null ? (e.getCause().getMessage()).trim() : e.getMessage());
+            this.printJson(response, callBackMessage.sendErrorMessage(errorMsg));
+        }
+    }
+
+    public void call150109(GateEntity entity, Task task) throws Exception {
+        T150109Entity result = this.yeJiBaoIfc.getT150109List(entity.getDocCode(), task);
+        if (result != null) {
+            for (T150109DetailEntity detail : result.getRefund()) {
+                if (detail.getSoDocStatus() != null && detail.getSoDocStatus() != 100) {
+                    //鎺ㄩ�佷笉鏄‘璁ょ姸鎬侀攢鍞鍗�
+                    GateEntity gateEntity = new GateEntity();
+                    gateEntity.setDocCode(detail.getSoDoccode());
+                    gateEntity.setFormid(120201);
+                    gateEntity.setDbid(entity.getDbid());
+                    Task soTask = InitSystemTaks.getTask(gateEntity, "OP0070");
+                    soTask.setCurrentDocStatus(detail.getSoDocStatus());
+                    yeJiBaoController.pushT120201(gateEntity, soTask);
+                }
+            }
+            String data = JSON.toJSONString(result, SerializerFeature.SortField);
+            CallBackMessage callBackMessage = yeJiBaoController.doPost(task.getApiUrl(), result.getCompanyID(), data);
+            if (callBackMessage.getState() == 0) {
+                Map<String, String> map = JSON.parseObject(callBackMessage.getData(), Map.class);
+                if (String.valueOf(map.get("code")).equals("1")) {
+                    //鎴愬姛
+                    callBackMessage.sendSuccessMessage("鎺ㄩ�佹垚鍔�");
+                    updateState150109(result, callBackMessage, entity);
+                } else {
+                    throw new ApplicationException(map.get("msg"));
+                }
+            } else {
+                throw new ApplicationException(callBackMessage.getError());
+            }
+        }
+    }
+
+    private void updateState150109(T150109Entity t150109Entity, CallBackMessage callBackMessage, GateEntity entity) {
+        PostDataBaseService mPostDataBaseService = (PostDataBaseService) FactoryBean.getBean("postDataBaseService");
+        try {
+            SpObserver.setDBtoInstance("_" + entity.getDbid());
+            mPostDataBaseService.getSimpleJdbcTemplate().queryForObject("update a set a.YeJiBaoPushStatus=" + callBackMessage.getState() + ",a.YeJiBaoPushDate=getdate(),a.YeJiBaoPushTimes=isnull(a.YeJiBaoPushTimes,0)+1,a.YeJiBaoPushMsg='" + callBackMessage.getSuccess() + "'  from t150109H  a where a.doccode='" + t150109Entity.getDocCode() + "' \n select @@rowcount", Integer.class);
+        } catch (Exception ex) {
+            mPostDataBaseService.doLogBy110565(new T110565Entity(
+                    150109,
+                    t150109Entity.getDocCode(),
+                    null,
+                    "閫�娆惧崟150109",
+                    ex.getMessage().replaceAll("'", "''")
+            ));
+        } finally {
+            SpObserver.setDBtoInstance();
+        }
+    }
+}
diff --git a/src/com/yc/open/yejibao/schedule/T150101Thread.java b/src/com/yc/open/yejibao/schedule/T150101Thread.java
index 041d5ca..12a55b0 100644
--- a/src/com/yc/open/yejibao/schedule/T150101Thread.java
+++ b/src/com/yc/open/yejibao/schedule/T150101Thread.java
@@ -1,25 +1,15 @@
 package com.yc.open.yejibao.schedule;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.serializer.SerializerFeature;
-import com.yc.exception.ApplicationException;
-import com.yc.exception.CallBackMessage;
 import com.yc.factory.FactoryBean;
 import com.yc.multiData.SpObserver;
-import com.yc.open.deli.entity.T110565Entity;
-import com.yc.open.deli.service.PostDataBaseService;
 import com.yc.open.init.BaseGate;
-import com.yc.open.init.InitSystemTaks;
 import com.yc.open.init.Task;
 import com.yc.open.mutual.schedule.GateEntity;
 import com.yc.open.yejibao.controller.YeJiBaoController;
-import com.yc.open.yejibao.entry.T150101DetailEntity;
-import com.yc.open.yejibao.entry.T150101Entity;
+import com.yc.open.yejibao.controller.YeJiBaoHandleController;
 import com.yc.open.yejibao.service.YeJiBaoIfc;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-
-import java.util.Map;
 
 /**
  * 鎺ㄩ�佹敹娆惧崟
@@ -44,35 +34,8 @@
             Task task = checkPoint(entity, TASKID);
             //婊¤冻鏉′欢鎵嶆墽琛�
             if (task != null && task.getResult() == 1) {
-                T150101Entity result = this.yeJiBaoIfc.getT150101List(entity.getDocCode(), task);
-                if (result != null) {
-                    for (T150101DetailEntity detail : result.getReceive()) {
-                        if (detail.getSoDocStatus() != null && detail.getSoDocStatus() != 100) {
-                            //鎺ㄩ�佷笉鏄‘璁ょ姸鎬侀攢鍞鍗�
-                            GateEntity gateEntity = new GateEntity();
-                            gateEntity.setDocCode(detail.getSoDoccode());
-                            gateEntity.setFormid(120201);
-                            gateEntity.setDbid(entity.getDbid());
-                            Task soTask = InitSystemTaks.getTask(gateEntity, "OP0070");
-                            soTask.setCurrentDocStatus(0);
-                            yeJiBaoController.pushT120201(gateEntity, soTask);
-                        }
-                    }
-                    String data = JSON.toJSONString(result, SerializerFeature.SortField);
-                    CallBackMessage callBackMessage = yeJiBaoController.doPost(task.getApiUrl(), result.getCompanyID(), data);
-                    if (callBackMessage.getState() == 0) {
-                        Map<String, String> map = JSON.parseObject(callBackMessage.getData(), Map.class);
-                        if (String.valueOf(map.get("code")).equals("1")) {
-                            //鎴愬姛
-                            callBackMessage.sendSuccessMessage("鎺ㄩ�佹垚鍔�");
-                            updateState(result, callBackMessage);
-                        } else {
-                            throw new ApplicationException(map.get("msg"));
-                        }
-                    }else {
-                        throw new ApplicationException(callBackMessage.getError());
-                    }
-                }
+                YeJiBaoHandleController yeJiBaoHandleController = (YeJiBaoHandleController) FactoryBean.getBean("yeJiBaoHandleController");
+                yeJiBaoHandleController.call150101(entity, task);
             }
         } catch (Exception ex) {
             ex.printStackTrace();
@@ -82,21 +45,5 @@
             SpObserver.setDBtoInstance();
         }
     }
-    private void updateState(T150101Entity t150101Entity,CallBackMessage callBackMessage){
-        PostDataBaseService mPostDataBaseService= (PostDataBaseService)FactoryBean.getBean("postDataBaseService");
-        try {
-            SpObserver.setDBtoInstance("_" + entity.getDbid());
-            mPostDataBaseService.getSimpleJdbcTemplate().queryForObject("update a set a.YeJiBaoPushStatus=" +callBackMessage.getState()  + ",a.YeJiBaoPushDate=getdate(),a.YeJiBaoPushTimes=isnull(a.YeJiBaoPushTimes,0)+1,a.YeJiBaoPushMsg='" + callBackMessage.getSuccess() + "'  from t150101H  a where a.doccode='" + t150101Entity.getDocCode()+"'",Integer.class);
-        }catch (Exception ex){
-            mPostDataBaseService.doLogBy110565(new T110565Entity(
-                    150101,
-                    t150101Entity.getDocCode(),
-                    null,
-                    "鏀舵鍗�150101",
-                    ex.getMessage().replaceAll("'", "''")
-            ));
-        }finally {
-            SpObserver.setDBtoInstance();
-        }
-    }
+
 }
diff --git a/src/com/yc/open/yejibao/schedule/T150109Thread.java b/src/com/yc/open/yejibao/schedule/T150109Thread.java
index 8da9e29..1cab70e 100644
--- a/src/com/yc/open/yejibao/schedule/T150109Thread.java
+++ b/src/com/yc/open/yejibao/schedule/T150109Thread.java
@@ -1,25 +1,15 @@
 package com.yc.open.yejibao.schedule;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.serializer.SerializerFeature;
-import com.yc.exception.ApplicationException;
-import com.yc.exception.CallBackMessage;
 import com.yc.factory.FactoryBean;
 import com.yc.multiData.SpObserver;
-import com.yc.open.deli.entity.T110565Entity;
-import com.yc.open.deli.service.PostDataBaseService;
 import com.yc.open.init.BaseGate;
-import com.yc.open.init.InitSystemTaks;
 import com.yc.open.init.Task;
 import com.yc.open.mutual.schedule.GateEntity;
 import com.yc.open.yejibao.controller.YeJiBaoController;
-import com.yc.open.yejibao.entry.T150109DetailEntity;
-import com.yc.open.yejibao.entry.T150109Entity;
+import com.yc.open.yejibao.controller.YeJiBaoHandleController;
 import com.yc.open.yejibao.service.YeJiBaoIfc;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-
-import java.util.Map;
 
 /**
  * 鎺ㄩ�佹敹娆惧崟
@@ -44,35 +34,8 @@
             Task task = checkPoint(entity, TASKID);
             //婊¤冻鏉′欢鎵嶆墽琛�
             if (task != null && task.getResult() == 1) {
-                T150109Entity result = this.yeJiBaoIfc.getT150109List(entity.getDocCode(), task);
-                if (result != null) {
-                    for (T150109DetailEntity detail : result.getRefund()) {
-                        if (detail.getSoDocStatus() != null && detail.getSoDocStatus() != 100) {
-                            //鎺ㄩ�佷笉鏄‘璁ょ姸鎬侀攢鍞鍗�
-                            GateEntity gateEntity = new GateEntity();
-                            gateEntity.setDocCode(detail.getSoDoccode());
-                            gateEntity.setFormid(120201);
-                            gateEntity.setDbid(entity.getDbid());
-                            Task soTask = InitSystemTaks.getTask(gateEntity, "OP0070");
-                            soTask.setCurrentDocStatus(0);
-                            yeJiBaoController.pushT120201(gateEntity, soTask);
-                        }
-                    }
-                    String data = JSON.toJSONString(result, SerializerFeature.SortField);
-                    CallBackMessage callBackMessage = yeJiBaoController.doPost(task.getApiUrl(), result.getCompanyID(), data);
-                    if (callBackMessage.getState() == 0) {
-                        Map<String, String> map = JSON.parseObject(callBackMessage.getData(), Map.class);
-                        if (String.valueOf(map.get("code")).equals("1")) {
-                            //鎴愬姛
-                            callBackMessage.sendSuccessMessage("鎺ㄩ�佹垚鍔�");
-                            updateState(result, callBackMessage);
-                        } else {
-                            throw new ApplicationException(map.get("msg"));
-                        }
-                    }else {
-                        throw new ApplicationException(callBackMessage.getError());
-                    }
-                }
+                YeJiBaoHandleController yeJiBaoHandleController = (YeJiBaoHandleController) FactoryBean.getBean("yeJiBaoHandleController");
+                yeJiBaoHandleController.call150109(entity, task);
             }
         } catch (Exception ex) {
             ex.printStackTrace();
@@ -82,21 +45,5 @@
             SpObserver.setDBtoInstance();
         }
     }
-    private void updateState(T150109Entity t150109Entity,CallBackMessage callBackMessage){
-        PostDataBaseService mPostDataBaseService= (PostDataBaseService)FactoryBean.getBean("postDataBaseService");
-        try {
-            SpObserver.setDBtoInstance("_" + entity.getDbid());
-            mPostDataBaseService.getSimpleJdbcTemplate().queryForObject("update a set a.YeJiBaoPushStatus=" +callBackMessage.getState()  + ",a.YeJiBaoPushDate=getdate(),a.YeJiBaoPushTimes=isnull(a.YeJiBaoPushTimes,0)+1,a.YeJiBaoPushMsg='" + callBackMessage.getSuccess() + "'  from t150109H  a where a.doccode='" + t150109Entity.getDocCode()+"'",Integer.class);
-        }catch (Exception ex){
-            mPostDataBaseService.doLogBy110565(new T110565Entity(
-                    150109,
-                    t150109Entity.getDocCode(),
-                    null,
-                    "閫�娆惧崟150109",
-                    ex.getMessage().replaceAll("'", "''")
-            ));
-        }finally {
-            SpObserver.setDBtoInstance();
-        }
-    }
+
 }
diff --git a/src/com/yc/open/yejibao/service/YeJiBaoImpl.java b/src/com/yc/open/yejibao/service/YeJiBaoImpl.java
index 27ff955..197d1df 100644
--- a/src/com/yc/open/yejibao/service/YeJiBaoImpl.java
+++ b/src/com/yc/open/yejibao/service/YeJiBaoImpl.java
@@ -693,7 +693,7 @@
                 "	c.discount, c.cv2, c.unsubscribeDoccode\n" +
 
 
-                " from t120201H b join t120201D c on b.doccode = c.doccode \n" ;
+                " from t120201H b left join t120201D c on b.doccode = c.doccode \n";
 
 
         sql += " where isnull(b.cccode,'') <> '' \n"+
@@ -748,13 +748,13 @@
                 " end \n" +
                 " close mycurDeli\n" +
                 " deallocate mycurDeli \n" +
-                " select sumtotalmoney2,docCode,convert(varchar(10),preSendDate,120) as preSendDate,docType,\n" +
+                " select isnull(sumtotalmoney2,0) as sumtotalmoney2,docCode,convert(varchar(10),preSendDate,120) as preSendDate,docType,\n" +
                 "	cltCode,cltName,linkMan,ccCode,ccName,hDMemo, tel, \n" +
                 "	tel2, propertyAddress,sellerName, shopGuideName,serviceName, \n" +
                 "	dengjiname, referralsName,docStatus, docStatusName,convert(varchar(10),docDate,120) as docDate, \n" +
                 "	actname,refCode, EnterName,companyId ,companyName,shopGuideCode,\n" +
                 "	rowid,DocItem,MatCode ,MatName , special ,\n" +
-                "	uom,digit,price,totalmoney,stcode,stname,ItemMemo, \n" +
+                "	uom,isnull(digit,0) as digit,isnull(price,0) as price,isnull(totalmoney,0) as totalmoney,stcode,stname,ItemMemo, \n" +
                 "	locationName, brand, trademarkPrice, \n" +
                 "	discount, cv2, unsubscribeDoccode\n" +
 
@@ -1033,7 +1033,7 @@
 
                 " declare mycurDeli cursor for\n" +
                 " select a.docDate,a.docCode,a.cltCode,a.cltName,a.companyID,a.companyName,a.ccCode,a.ccName,a.amount as sumAmount,a.hdMemo,b.soDoccode,b.amount,a.docType\n" +
-                " from t150181H a join t150181D b on a.doccode = b.doccode \n" +
+                " from t150181H a left join t150181D b on a.doccode = b.doccode \n" +
                 " where  a.docStatus=@mydocStatus \n" +
                 "    and a.docCode=@myDocCode \n" +
                 " order by a.DocCode\n" +

--
Gitblit v1.8.0