Przeglądaj źródła

元数据提交

Heyuan 2 tygodni temu
rodzic
commit
d3bf4acd91

+ 103 - 0
metadata/com/kingdee/eas/custom/calcdailypay/task/CalcDailyPayFacade.facade

@@ -25,6 +25,17 @@
             <transactionAttribute>Supports</transactionAttribute>
             <userDefined>true</userDefined>
             <userDefinedLogic />
+            <parameters>
+                <parameter>
+                    <name>preCalcDays</name>
+                    <alias>facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[calculate].parameters.parameter[preCalcDays].alias</alias>
+                    <description>facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[calculate].parameters.parameter[preCalcDays].description</description>
+                    <direction>in</direction>
+                    <dataType>Integer</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+            </parameters>
             <exceptions>
                 <bizException>
                     <key name="package" value="com.kingdee.eas.common" />
@@ -46,6 +57,49 @@
             <transactionAttribute>Supports</transactionAttribute>
             <userDefined>true</userDefined>
             <userDefinedLogic />
+            <parameters>
+                <parameter>
+                    <name>preCalcDays</name>
+                    <alias>facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[sendSalary].parameters.parameter[preCalcDays].alias</alias>
+                    <description>facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[sendSalary].parameters.parameter[preCalcDays].description</description>
+                    <direction>in</direction>
+                    <dataType>Integer</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+            </parameters>
+            <exceptions>
+                <bizException>
+                    <key name="package" value="com.kingdee.eas.common" />
+                    <key name="name" value="EASBizException" />
+                </bizException>
+            </exceptions>
+            <configured>false</configured>
+        </method>
+        <method>
+            <name>calculateOverall</name>
+            <isListenerMethod>false</isListenerMethod>
+            <alias>facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[calculateOverall].alias</alias>
+            <description>facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[calculateOverall].description</description>
+            <innerID>f71726c0-ca7a-40e6-892a-d6d3f97eaf81</innerID>
+            <accessLevel>public</accessLevel>
+            <subClassingMode>normal</subClassingMode>
+            <returnValueType />
+            <metadataRef />
+            <transactionAttribute>Supports</transactionAttribute>
+            <userDefined>true</userDefined>
+            <userDefinedLogic />
+            <parameters>
+                <parameter>
+                    <name>preCalcDays</name>
+                    <alias>facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[calculateOverall].parameters.parameter[preCalcDays].alias</alias>
+                    <description>facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[calculateOverall].parameters.parameter[preCalcDays].description</description>
+                    <direction>in</direction>
+                    <dataType>Integer</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+            </parameters>
             <exceptions>
                 <bizException>
                     <key name="package" value="com.kingdee.eas.common" />
@@ -68,11 +122,38 @@
             <lang locale="zh_HK" value="null" />
             <lang locale="zh_TW" value="null" />
         </rs>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].extendedProperty.genBusinessImplCode">
+            <lang locale="en_US" value="true" />
+            <lang locale="zh_CN" value="true" />
+            <lang locale="zh_TW" value="true" />
+        </rs>
         <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].extendedProperty.userDefined">
             <lang locale="en_US" value="true" />
             <lang locale="zh_CN" value="true" />
             <lang locale="zh_TW" value="true" />
         </rs>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[calculateOverall].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="整体计算" />
+            <lang locale="zh_HK" value="整體計算" />
+            <lang locale="zh_TW" value="整體計算" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[calculateOverall].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[calculateOverall].parameters.parameter[preCalcDays].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="前延计算天数" />
+            <lang locale="zh_HK" value="前延計算天數" />
+            <lang locale="zh_TW" value="前延計算天數" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[calculateOverall].parameters.parameter[preCalcDays].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
         <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[calculate].alias">
             <lang locale="en_US" value="null" />
             <lang locale="zh_CN" value="日薪计算" />
@@ -85,6 +166,17 @@
             <lang locale="zh_HK" value="null" />
             <lang locale="zh_TW" value="null" />
         </rs>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[calculate].parameters.parameter[preCalcDays].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="前延计算天数" />
+            <lang locale="zh_HK" value="前延計算天數" />
+            <lang locale="zh_TW" value="前延計算天數" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[calculate].parameters.parameter[preCalcDays].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
         <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[sendSalary].alias">
             <lang locale="en_US" value="null" />
             <lang locale="zh_CN" value="发布工资条" />
@@ -97,5 +189,16 @@
             <lang locale="zh_HK" value="null" />
             <lang locale="zh_TW" value="null" />
         </rs>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[sendSalary].parameters.parameter[preCalcDays].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="前延计算天数" />
+            <lang locale="zh_HK" value="前延計算天數" />
+            <lang locale="zh_TW" value="前延計算天數" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacade].methods.method[sendSalary].parameters.parameter[preCalcDays].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
     </resource>
 </facade>

+ 30 - 8
src/com/kingdee/eas/custom/calcdailypay/task/AbstractCalcDailyPayFacadeControllerBean.java

@@ -35,13 +35,13 @@ public abstract class AbstractCalcDailyPayFacadeControllerBean extends AbstractB
         return new BOSObjectType("3DA4F375");
     }
 
-    public void calculate(Context ctx) throws BOSException, EASBizException
+    public void calculate(Context ctx, int preCalcDays) throws BOSException, EASBizException
     {
         try {
-            ServiceContext svcCtx = createServiceContext(new MetaDataPK("37e70c84-39f7-4e09-b6e0-1b1a1de709bf"), new Object[]{ctx});
+            ServiceContext svcCtx = createServiceContext(new MetaDataPK("37e70c84-39f7-4e09-b6e0-1b1a1de709bf"), new Object[]{ctx, new Integer(preCalcDays)});
             invokeServiceBefore(svcCtx);
               if(!svcCtx.invokeBreak()) {
-            _calculate(ctx);
+            _calculate(ctx, preCalcDays);
             }
             invokeServiceAfter(svcCtx);
         } catch (BOSException ex) {
@@ -52,18 +52,18 @@ public abstract class AbstractCalcDailyPayFacadeControllerBean extends AbstractB
             super.cleanUpServiceState();
         }
     }
-    protected void _calculate(Context ctx) throws BOSException, EASBizException
+    protected void _calculate(Context ctx, int preCalcDays) throws BOSException, EASBizException
     {    	
         return;
     }
 
-    public void sendSalary(Context ctx) throws BOSException, EASBizException
+    public void sendSalary(Context ctx, int preCalcDays) throws BOSException, EASBizException
     {
         try {
-            ServiceContext svcCtx = createServiceContext(new MetaDataPK("ad2ef547-b54e-4f24-92e4-1e3cc00e31f0"), new Object[]{ctx});
+            ServiceContext svcCtx = createServiceContext(new MetaDataPK("ad2ef547-b54e-4f24-92e4-1e3cc00e31f0"), new Object[]{ctx, new Integer(preCalcDays)});
             invokeServiceBefore(svcCtx);
               if(!svcCtx.invokeBreak()) {
-            _sendSalary(ctx);
+            _sendSalary(ctx, preCalcDays);
             }
             invokeServiceAfter(svcCtx);
         } catch (BOSException ex) {
@@ -74,7 +74,29 @@ public abstract class AbstractCalcDailyPayFacadeControllerBean extends AbstractB
             super.cleanUpServiceState();
         }
     }
-    protected void _sendSalary(Context ctx) throws BOSException, EASBizException
+    protected void _sendSalary(Context ctx, int preCalcDays) throws BOSException, EASBizException
+    {    	
+        return;
+    }
+
+    public void calculateOverall(Context ctx, int preCalcDays) throws BOSException, EASBizException
+    {
+        try {
+            ServiceContext svcCtx = createServiceContext(new MetaDataPK("f71726c0-ca7a-40e6-892a-d6d3f97eaf81"), new Object[]{ctx, new Integer(preCalcDays)});
+            invokeServiceBefore(svcCtx);
+              if(!svcCtx.invokeBreak()) {
+            _calculateOverall(ctx, preCalcDays);
+            }
+            invokeServiceAfter(svcCtx);
+        } catch (BOSException ex) {
+            throw ex;
+        } catch (EASBizException ex0) {
+            throw ex0;
+        } finally {
+            super.cleanUpServiceState();
+        }
+    }
+    protected void _calculateOverall(Context ctx, int preCalcDays) throws BOSException, EASBizException
     {    	
         return;
     }

+ 19 - 4
src/com/kingdee/eas/custom/calcdailypay/task/CalcDailyPayFacade.java

@@ -35,11 +35,12 @@ public class CalcDailyPayFacade extends AbstractBizCtrl implements ICalcDailyPay
     }
     /**
      *日薪计算-User defined method
+     *@param preCalcDays 前延计算天数
      */
-    public void calculate() throws BOSException, EASBizException
+    public void calculate(int preCalcDays) throws BOSException, EASBizException
     {
         try {
-            getController().calculate(getContext());
+            getController().calculate(getContext(), preCalcDays);
         }
         catch(RemoteException err) {
             throw new EJBRemoteException(err);
@@ -47,11 +48,25 @@ public class CalcDailyPayFacade extends AbstractBizCtrl implements ICalcDailyPay
     }
     /**
      *发布工资条-User defined method
+     *@param preCalcDays 前延计算天数
      */
-    public void sendSalary() throws BOSException, EASBizException
+    public void sendSalary(int preCalcDays) throws BOSException, EASBizException
     {
         try {
-            getController().sendSalary(getContext());
+            getController().sendSalary(getContext(), preCalcDays);
+        }
+        catch(RemoteException err) {
+            throw new EJBRemoteException(err);
+        }
+    }
+    /**
+     *整体计算-User defined method
+     *@param preCalcDays 前延计算天数
+     */
+    public void calculateOverall(int preCalcDays) throws BOSException, EASBizException
+    {
+        try {
+            getController().calculateOverall(getContext(), preCalcDays);
         }
         catch(RemoteException err) {
             throw new EJBRemoteException(err);

+ 3 - 2
src/com/kingdee/eas/custom/calcdailypay/task/CalcDailyPayFacadeController.java

@@ -17,6 +17,7 @@ import com.kingdee.bos.framework.ejb.BizController;
 
 public interface CalcDailyPayFacadeController extends BizController
 {
-    public void calculate(Context ctx) throws BOSException, EASBizException, RemoteException;
-    public void sendSalary(Context ctx) throws BOSException, EASBizException, RemoteException;
+    public void calculate(Context ctx, int preCalcDays) throws BOSException, EASBizException, RemoteException;
+    public void sendSalary(Context ctx, int preCalcDays) throws BOSException, EASBizException, RemoteException;
+    public void calculateOverall(Context ctx, int preCalcDays) throws BOSException, EASBizException, RemoteException;
 }

+ 111 - 19
src/com/kingdee/eas/custom/calcdailypay/task/CalcDailyPayFacadeControllerBean.java

@@ -1,26 +1,118 @@
 package com.kingdee.eas.custom.calcdailypay.task;
 
+import com.kingdee.eas.util.app.DbUtil;
+import com.kingdee.jdbc.rowset.IRowSet;
+import com.kingdee.shr.base.syssetting.context.SHRContext;
+import com.kingdee.shr.base.syssetting.exception.SHRWebException;
+import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
+import com.kingdee.shr.compensation.app.integrate.SubmitSchemeBillFacadeFactory;
+import com.kingdee.shr.compensation.service.timepiece.TimepieceBillDataService;
+import com.kingdee.shr.compensation.service.timepiece.TimepieceBillEntryDataCalService;
+import com.kingdee.shr.compensation.util.db.CmpInSql;
+import com.kingdee.shr.compensation.util.db.CmpInSqlFactory;
+import com.kingdee.util.BaseException;
 import org.apache.log4j.Logger;
-import javax.ejb.*;
-import java.rmi.RemoteException;
 import com.kingdee.bos.*;
-import com.kingdee.bos.util.BOSObjectType;
-import com.kingdee.bos.metadata.IMetaDataPK;
-import com.kingdee.bos.metadata.rule.RuleExecutor;
-import com.kingdee.bos.metadata.MetaDataPK;
-//import com.kingdee.bos.metadata.entity.EntityViewInfo;
-import com.kingdee.bos.framework.ejb.AbstractEntityControllerBean;
-import com.kingdee.bos.framework.ejb.AbstractBizControllerBean;
-//import com.kingdee.bos.dao.IObjectPK;
-import com.kingdee.bos.dao.IObjectValue;
-import com.kingdee.bos.dao.IObjectCollection;
-import com.kingdee.bos.service.ServiceContext;
-import com.kingdee.bos.service.IServiceContext;
-
 import com.kingdee.eas.common.EASBizException;
 
-public class CalcDailyPayFacadeControllerBean extends AbstractCalcDailyPayFacadeControllerBean
-{
-    private static Logger logger =
-        Logger.getLogger("com.kingdee.eas.custom.calcdailypay.task.CalcDailyPayFacadeControllerBean");
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class CalcDailyPayFacadeControllerBean extends AbstractCalcDailyPayFacadeControllerBean {
+    private static Logger logger = Logger.getLogger(CalcDailyPayFacadeControllerBean.class);
+
+    /**
+     * 日薪计算
+     *
+     * @param ctx
+     * @param preCalcDays 前延计算天数
+     * @throws BOSException
+     * @throws EASBizException
+     */
+    @Override
+    protected void _calculate(Context ctx, int preCalcDays) throws BOSException, EASBizException {
+        super._calculate(ctx, preCalcDays);
+        //TimepieceDailyDynamicListHandler
+        //com.kingdee.shr.compensation.app.integrate.SubmitSchemeBillFacadeControllerBean
+        //checkIsCal
+        //calculate
+        if (preCalcDays < 0) {
+            preCalcDays = 0;
+        }
+
+//        String whereSql = this.getSelectDataId(request, ctx);
+//        Map<String, List<String>> batchmap = TimepieceBillEntryDataCalService.batchBillEntryDataByScheme(ctx, whereSql);
+//        if (!batchmap.isEmpty()) {
+//            try {
+//                List<Map> list = new ArrayList();
+//                int record = 0;
+//                CmpInSql<String> inSql0 = CmpInSqlFactory.getInstance();
+//                String filterSql = inSql0.createInSql(ctx, batchmap.keySet().toArray(), "'", "T_HR_SCalSubmitScheme", "fid");
+//                //已计算的id
+//                List<String> haslist = TimepieceBillEntryDataCalService.checkIsHasCalFormula(ctx, filterSql);
+//
+//                for (Map.Entry<String, List<String>> entry : batchmap.entrySet()) {
+//                    Map<String, String> param = new HashMap();
+//                    record += ((List) entry.getValue()).size();
+//                    String calSchemeID = (String) entry.getKey();
+//                    param.put("calSchemeID", calSchemeID);
+//                    param.put("mainTable", "T_HR_TimepieceBillEntry");
+//                    CmpInSql<String> inSql = CmpInSqlFactory.getInstance();
+//                    String conditionSql = inSql.createInSql(ctx, ((List) entry.getValue()).toArray(), "'", "T_HR_TimepieceBillEntry", "fid");
+//                    if (!haslist.contains(calSchemeID)) {
+//                        //更新为已计算
+//                        String updateSQL = "update  T_HR_timepieceBillEntry set  fentrycalstatus = 1 where fid in " + conditionSql;
+//                        DbUtil.execute(ctx, updateSQL);
+//                    }
+//
+//                    param.put("condition", conditionSql.replace("(", "").replace(")", ""));
+//                    //计算
+//                    Map result = SubmitSchemeBillFacadeFactory.getLocalInstance(ctx).calculate(param);
+//                    list.add(result);
+//                }
+//
+//                Map<String, Object> result = new HashMap();
+//                result.put("uid", list);
+//                result.put("record", record);
+//                JSONUtils.SUCCESS(result);
+//            } catch (EASBizException | BOSException e) {
+//            }
+       //}
+    }
+
+    /**
+     * 发布工资条
+     *
+     * @param ctx
+     * @param preCalcDays 前延计算天数
+     * @throws BOSException
+     * @throws EASBizException
+     */
+    @Override
+    protected void _sendSalary(Context ctx, int preCalcDays) throws BOSException, EASBizException {
+        super._sendSalary(ctx, preCalcDays);
+//        sendSalaryAction
+
+    }
+
+    /**
+     * @param ctx
+     * @param preCalcDays
+     * @throws BOSException
+     * @throws EASBizException
+     */
+    @Override
+    protected void _calculateOverall(Context ctx, int preCalcDays) throws BOSException, EASBizException {
+        super._calculateOverall(ctx, preCalcDays);
+        //1.同步Mes系统的点检率
+        //2.考勤数据抓取
+        //3.提交时间范围内的为提交的提报单
+        //4.日薪计算
+        //5.发布工资条
+
+
+    }
 }

+ 3 - 2
src/com/kingdee/eas/custom/calcdailypay/task/ICalcDailyPayFacade.java

@@ -14,6 +14,7 @@ import com.kingdee.bos.framework.*;
 
 public interface ICalcDailyPayFacade extends IBizCtrl
 {
-    public void calculate() throws BOSException, EASBizException;
-    public void sendSalary() throws BOSException, EASBizException;
+    public void calculate(int preCalcDays) throws BOSException, EASBizException;
+    public void sendSalary(int preCalcDays) throws BOSException, EASBizException;
+    public void calculateOverall(int preCalcDays) throws BOSException, EASBizException;
 }