Explorar el Código

日结功能代码优化

sbtjtserver/zhaoxh hace 9 meses
padre
commit
246b2f044b
Se han modificado 1 ficheros con 35 adiciones y 21 borrados
  1. 35 21
      src/main/java/fi/gl/formplugin/DailyexcuteFormPlugin.java

+ 35 - 21
src/main/java/fi/gl/formplugin/DailyexcuteFormPlugin.java

@@ -25,7 +25,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * 动态表单操作
  * 日结执行界面插件
  * 2024-06-28 wangj
  * 主要功能:日结执行按钮逻辑
@@ -64,6 +63,9 @@ public class DailyexcuteFormPlugin extends AbstractBillPlugIn implements CellCli
                 return;
             }
 
+            //先清空分录
+            this.getModel().deleteEntryData("nckd_entryentity");
+
             String message = dailyData(orgCol,dailydate);
             this.getView().showMessage(message);
         }else if (StringUtils.equals(source.getKey(), KEY_UNDAILY)) {
@@ -114,7 +116,8 @@ public class DailyexcuteFormPlugin extends AbstractBillPlugIn implements CellCli
     private String dailyData(DynamicObjectCollection orgCol, Date dailydate) {
         String returnMessage = "";
         for(DynamicObject orgObj : orgCol){
-            boolean isCan = true;
+//            boolean isCan = true;
+            String messageInfo = "";
             DynamicObject orgObjReal = orgObj.getDynamicObject("fbasedataid");
             QFilter qFilter_org = new QFilter("org", QCP.equals,orgObjReal.getPkValue());
             QFilter qFilter_bizdate = new QFilter("bizdate",QCP.equals,dailydate);
@@ -123,10 +126,10 @@ public class DailyexcuteFormPlugin extends AbstractBillPlugIn implements CellCli
             for(DynamicObject voucherObj : voucherCol){
                 boolean ispost = voucherObj.getBoolean("ispost");
                 if(ispost!=true){//是否过账等于否
-                    isCan = false;
+//                    isCan = false;
                     int rowid = this.getModel().createNewEntryRow("nckd_entryentity");
 
-                    this.getModel().setValue("nckd_voucherorg",orgObj,rowid);//设置组织
+                    this.getModel().setValue("nckd_voucherorg",orgObjReal,rowid);//设置组织
 
                     String voucherid = voucherObj.getString("id");
                     this.getModel().setValue("nckd_vouherid",voucherid,rowid);//设置凭证id
@@ -139,34 +142,45 @@ public class DailyexcuteFormPlugin extends AbstractBillPlugIn implements CellCli
 
                     String billstatus = voucherObj.getString("billstatus");
                     this.getModel().setValue("nckd_voucherstatus",billstatus,rowid);//设置凭证状态
+
+                    messageInfo = orgObjReal.getString("name") + "日结失败,所选日期存在未过账凭证;";
+                }
+            }
+
+            if("".equals(messageInfo)){
+                QFilter qFilter_nckd_org = new QFilter("nckd_org", QCP.equals,orgObjReal.getPkValue());
+                QFilter qFilter_nckd_dailydate = new QFilter("nckd_dailydate",QCP.equals,dailydate);
+                DynamicObject[] dailybillCol = BusinessDataServiceHelper.load("nckd_gl_dailybill","id",
+                        new QFilter[]{qFilter_nckd_org,qFilter_nckd_dailydate});
+                if(dailybillCol!=null && dailybillCol.length>0){
+                    messageInfo = orgObjReal.getString("name") + "日结失败,所选日期已日结;";
                 }
             }
 
-            //写入日结记录
-            String messageInfo = writeDailybill(isCan,orgObjReal,dailydate);
+            if("".equals(messageInfo)){
+                //写入日结记录
+                messageInfo = writeDailybill(orgObjReal,dailydate);
+            }
+
             returnMessage = returnMessage + messageInfo + "\r\n";
         }
 
         return returnMessage;
     }
 
-    private String writeDailybill(boolean isCan, DynamicObject orgObjReal, Date dailydate) {
+    private String writeDailybill(DynamicObject orgObjReal, Date dailydate) {
         String messageInfo = "";
         try {
-            if (isCan == true) {
-                DynamicObject dailybillObj = BusinessDataServiceHelper.newDynamicObject("nckd_gl_dailybill");
-                dailybillObj.set("nckd_org", orgObjReal);
-                dailybillObj.set("nckd_dailydate", dailydate);
-                dailybillObj.set("status", "A");
-                dailybillObj.set("enable", "1");
-                RequestContext rc = RequestContext.get();
-                dailybillObj.set("creator", rc.getUid());
-                DynamicObject[] datalist = new DynamicObject[]{dailybillObj};
-                SaveServiceHelper.save(datalist);
-                messageInfo = orgObjReal.getString("name") + "日结成功;";
-            } else {
-                messageInfo = orgObjReal.getString("name") + "日结失败,所选日期存在未过账凭证;";
-            }
+            DynamicObject dailybillObj = BusinessDataServiceHelper.newDynamicObject("nckd_gl_dailybill");
+            dailybillObj.set("nckd_org", orgObjReal);
+            dailybillObj.set("nckd_dailydate", dailydate);
+            dailybillObj.set("status", "A");
+            dailybillObj.set("enable", "1");
+            RequestContext rc = RequestContext.get();
+            dailybillObj.set("creator", rc.getUid());
+            DynamicObject[] datalist = new DynamicObject[]{dailybillObj};
+            SaveServiceHelper.save(datalist);
+            messageInfo = orgObjReal.getString("name") + "日结成功;";
         }catch(Exception e){
             messageInfo = orgObjReal.getString("name") + "日结失败,"+e.getMessage()+";";
         }