Jelajahi Sumber

同步点检数

9060 2 bulan lalu
induk
melakukan
94fbf63b00

+ 89 - 0
metadata/com/kingdee/eas/custom/calcdailypay/task/AutoSubDayDetailFacade.facade

@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<facade xmlns="com.kingdee.bos.metadata">
+    <package>com.kingdee.eas.custom.calcdailypay.task</package>
+    <name>AutoSubDayDetailFacade</name>
+    <alias>facade[com.kingdee.eas.custom.calcdailypay.task.AutoSubDayDetailFacade].alias</alias>
+    <description>facade[com.kingdee.eas.custom.calcdailypay.task.AutoSubDayDetailFacade].description</description>
+    <userDefined>true</userDefined>
+    <bosType>8B3934AD</bosType>
+    <stereoType>false</stereoType>
+    <businessImplName>com.kingdee.eas.custom.calcdailypay.task.AutoSubDayDetailFacade</businessImplName>
+    <businessControllerName>com.kingdee.eas.custom.calcdailypay.task.AutoSubDayDetailFacadeController</businessControllerName>
+    <accessLevel>public</accessLevel>
+    <subClassingMode>normal</subClassingMode>
+    <methods>
+        <method>
+            <name>autoSubDayDetail</name>
+            <isListenerMethod>false</isListenerMethod>
+            <alias>facade[com.kingdee.eas.custom.calcdailypay.task.AutoSubDayDetailFacade].methods.method[autoSubDayDetail].alias</alias>
+            <description>facade[com.kingdee.eas.custom.calcdailypay.task.AutoSubDayDetailFacade].methods.method[autoSubDayDetail].description</description>
+            <innerID>67a8c088-2ef0-4fe5-b927-0e5ca14cd6fe</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.AutoSubDayDetailFacade].methods.method[autoSubDayDetail].parameters.parameter[preCalcDays].alias</alias>
+                    <description>facade[com.kingdee.eas.custom.calcdailypay.task.AutoSubDayDetailFacade].methods.method[autoSubDayDetail].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>
+    </methods>
+    <resource>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.AutoSubDayDetailFacade].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.AutoSubDayDetailFacade].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="null" />
+            <lang locale="zh_HK" value="null" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.AutoSubDayDetailFacade].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.AutoSubDayDetailFacade].methods.method[autoSubDayDetail].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.AutoSubDayDetailFacade].methods.method[autoSubDayDetail].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.AutoSubDayDetailFacade].methods.method[autoSubDayDetail].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.AutoSubDayDetailFacade].methods.method[autoSubDayDetail].parameters.parameter[preCalcDays].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
+    </resource>
+</facade>

+ 127 - 0
metadata/com/kingdee/eas/custom/calcdailypay/task/SyncMesTpmInsRateFacade.facade

@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<facade xmlns="com.kingdee.bos.metadata">
+    <package>com.kingdee.eas.custom.calcdailypay.task</package>
+    <name>SyncMesTpmInsRateFacade</name>
+    <alias>facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].alias</alias>
+    <description>facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].description</description>
+    <userDefined>true</userDefined>
+    <bosType>EC48C980</bosType>
+    <stereoType>false</stereoType>
+    <businessImplName>com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade</businessImplName>
+    <businessControllerName>com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacadeController</businessControllerName>
+    <accessLevel>public</accessLevel>
+    <subClassingMode>normal</subClassingMode>
+    <methods>
+        <method>
+            <name>syncMesToShr</name>
+            <isListenerMethod>false</isListenerMethod>
+            <alias>facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].alias</alias>
+            <description>facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].description</description>
+            <innerID>6bb8bb17-c1f9-4ee5-b21c-ee90c0ba4adc</innerID>
+            <accessLevel>public</accessLevel>
+            <subClassingMode>normal</subClassingMode>
+            <returnValueType>String</returnValueType>
+            <metadataRef />
+            <transactionAttribute>Supports</transactionAttribute>
+            <userDefined>true</userDefined>
+            <userDefinedLogic />
+            <parameters>
+                <parameter>
+                    <name>startDdjdate</name>
+                    <alias>facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].parameters.parameter[startDdjdate].alias</alias>
+                    <description>facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].parameters.parameter[startDdjdate].description</description>
+                    <direction>in</direction>
+                    <dataType>String</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+                <parameter>
+                    <name>endDdjDate</name>
+                    <alias>facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].parameters.parameter[endDdjDate].alias</alias>
+                    <description>facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].parameters.parameter[endDdjDate].description</description>
+                    <direction>in</direction>
+                    <dataType>String</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+                <parameter>
+                    <name>cusercode</name>
+                    <alias>facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].parameters.parameter[cusercode].alias</alias>
+                    <description>facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].parameters.parameter[cusercode].description</description>
+                    <direction>in</direction>
+                    <dataType>String</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+            </parameters>
+            <configured>false</configured>
+        </method>
+    </methods>
+    <resource>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="从MES系统点检率同步到SHR系统" />
+            <lang locale="zh_HK" value="從MES系統點檢率同步到SHR系統" />
+            <lang locale="zh_TW" value="從MES系統點檢率同步到SHR系統" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="null" />
+            <lang locale="zh_HK" value="null" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].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.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].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.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].description">
+            <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.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].parameters.parameter[cusercode].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.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].parameters.parameter[cusercode].description">
+            <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.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].parameters.parameter[endDdjDate].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.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].parameters.parameter[endDdjDate].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="yyyy-MM-dd" />
+            <lang locale="zh_HK" value="yyyy-MM-dd" />
+            <lang locale="zh_TW" value="yyyy-MM-dd" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].parameters.parameter[startDdjdate].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.SyncMesTpmInsRateFacade].methods.method[syncMesToShr].parameters.parameter[startDdjdate].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="yyyy-MM-dd" />
+            <lang locale="zh_HK" value="yyyy-MM-dd" />
+            <lang locale="zh_TW" value="yyyy-MM-dd" />
+        </rs>
+    </resource>
+</facade>

+ 44 - 0
src/com/kingdee/eas/custom/calcdailypay/task/AbstractSyncMesTpmInsRateFacadeControllerBean.java

@@ -0,0 +1,44 @@
+package com.kingdee.eas.custom.calcdailypay.task;
+
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.Context;
+import com.kingdee.bos.framework.ejb.AbstractBizControllerBean;
+import com.kingdee.bos.metadata.MetaDataPK;
+import com.kingdee.bos.service.ServiceContext;
+import com.kingdee.bos.util.BOSObjectType;
+
+
+public abstract class AbstractSyncMesTpmInsRateFacadeControllerBean extends AbstractBizControllerBean implements SyncMesTpmInsRateFacadeController
+{
+    protected AbstractSyncMesTpmInsRateFacadeControllerBean()
+    {
+    }
+
+    protected BOSObjectType getBOSType()
+    {
+        return new BOSObjectType("EC48C980");
+    }
+
+    public String syncMesToShr(Context ctx, String startDdjdate, String endDdjDate, String cusercode) throws BOSException
+    {
+        try {
+            ServiceContext svcCtx = createServiceContext(new MetaDataPK("6bb8bb17-c1f9-4ee5-b21c-ee90c0ba4adc"), new Object[]{ctx, startDdjdate, endDdjDate, cusercode});
+            invokeServiceBefore(svcCtx);
+            if(!svcCtx.invokeBreak()) {
+            String retValue = (String)_syncMesToShr(ctx, startDdjdate, endDdjDate, cusercode);
+            svcCtx.setMethodReturnValue(retValue);
+            }
+            invokeServiceAfter(svcCtx);
+            return (String)svcCtx.getMethodReturnValue();
+        } catch (BOSException ex) {
+            throw ex;
+        } finally {
+            super.cleanUpServiceState();
+        }
+    }
+    protected String _syncMesToShr(Context ctx, String startDdjdate, String endDdjDate, String cusercode) throws BOSException
+    {    	
+        return null;
+    }
+
+}

+ 9 - 0
src/com/kingdee/eas/custom/calcdailypay/task/ISyncMesTpmInsRateFacade.java

@@ -0,0 +1,9 @@
+package com.kingdee.eas.custom.calcdailypay.task;
+
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.framework.IBizCtrl;
+
+public interface ISyncMesTpmInsRateFacade extends IBizCtrl
+{
+    public String syncMesToShr(String startDdjdate, String endDdjDate, String cusercode) throws BOSException;
+}

+ 47 - 0
src/com/kingdee/eas/custom/calcdailypay/task/SyncMesTpmInsRateFacade.java

@@ -0,0 +1,47 @@
+package com.kingdee.eas.custom.calcdailypay.task;
+
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.Context;
+import com.kingdee.bos.framework.AbstractBizCtrl;
+import com.kingdee.bos.framework.ejb.EJBRemoteException;
+import com.kingdee.bos.util.BOSObjectType;
+
+import java.rmi.RemoteException;
+
+public class SyncMesTpmInsRateFacade extends AbstractBizCtrl implements ISyncMesTpmInsRateFacade
+{
+    public SyncMesTpmInsRateFacade()
+    {
+        super();
+        registerInterface(ISyncMesTpmInsRateFacade.class, this);
+    }
+    public SyncMesTpmInsRateFacade(Context ctx)
+    {
+        super(ctx);
+        registerInterface(ISyncMesTpmInsRateFacade.class, this);
+    }
+    public BOSObjectType getType()
+    {
+        return new BOSObjectType("EC48C980");
+    }
+    private SyncMesTpmInsRateFacadeController getController() throws BOSException
+    {
+        return (SyncMesTpmInsRateFacadeController)getBizController();
+    }
+    /**
+     *��ʼ���ڡ���������Ϊ�գ����������Ĭ��ȡ���죬��ʼ����Ĭ��ȡ�����һ��-User defined method
+     *@param startDdjdate yyyy-MM-dd
+     *@param endDdjDate yyyy-MM-dd
+     *@param cusercode �����˱��
+     *@return
+     */
+    public String syncMesToShr(String startDdjdate, String endDdjDate, String cusercode) throws BOSException
+    {
+        try {
+            return getController().syncMesToShr(getContext(), startDdjdate, endDdjDate, cusercode);
+        }
+        catch(RemoteException err) {
+            throw new EJBRemoteException(err);
+        }
+    }
+}

+ 12 - 0
src/com/kingdee/eas/custom/calcdailypay/task/SyncMesTpmInsRateFacadeController.java

@@ -0,0 +1,12 @@
+package com.kingdee.eas.custom.calcdailypay.task;
+
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.Context;
+import com.kingdee.bos.framework.ejb.BizController;
+
+import java.rmi.RemoteException;
+
+public interface SyncMesTpmInsRateFacadeController extends BizController
+{
+    public String syncMesToShr(Context ctx, String startDdjdate, String endDdjDate, String cusercode) throws BOSException, RemoteException;
+}

+ 399 - 0
src/com/kingdee/eas/custom/calcdailypay/task/SyncMesTpmInsRateFacadeControllerBean.java

@@ -0,0 +1,399 @@
+package com.kingdee.eas.custom.calcdailypay.task;
+
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.Context;
+import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
+import com.kingdee.bos.metadata.entity.*;
+import com.kingdee.bos.rabbitmq.guava.Lists;
+import com.kingdee.bos.util.BOSUuid;
+import com.kingdee.eas.base.permission.UserInfo;
+import com.kingdee.eas.basedata.org.AdminOrgUnit;
+import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
+import com.kingdee.eas.basedata.org.CtrlUnitInfo;
+import com.kingdee.eas.basedata.org.PositionInfo;
+import com.kingdee.eas.basedata.person.PersonInfo;
+import com.kingdee.eas.common.EASBizException;
+import com.kingdee.eas.custom.calcdailypay.IInspectionRate;
+import com.kingdee.eas.custom.calcdailypay.InspectionRateCollection;
+import com.kingdee.eas.custom.calcdailypay.InspectionRateFactory;
+import com.kingdee.eas.custom.calcdailypay.InspectionRateInfo;
+import com.kingdee.eas.framework.CoreBaseCollection;
+import com.kingdee.eas.framework.ObjectBaseInfo;
+import com.kingdee.jdbc.rowset.IRowSet;
+import com.kingdee.jdbc.rowset.impl.JdbcRowSet;
+import com.kingdee.util.db.SQLUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+
+import java.io.FileInputStream;
+import java.sql.*;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Properties;
+
+public class SyncMesTpmInsRateFacadeControllerBean extends AbstractSyncMesTpmInsRateFacadeControllerBean {
+    private static Logger logger =
+            Logger.getLogger("com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacadeControllerBean");
+    private Properties propt = new Properties();
+
+    public SyncMesTpmInsRateFacadeControllerBean() {
+        try {
+            propt.load(new FileInputStream(String.valueOf(System.getProperty("EAS_HOME")) + "/server/properties/mingquan/syncMes.properties"));
+        } catch (Exception e) {
+            logger.error(e);
+        }
+    }
+    /**
+     * 开始日期、结束日期为空,则结束日期默认取当天,开始日期默认取当天减一天
+     * @description:
+     * @author: lhbj
+     * @date: 2025/5/30 16:48
+     * @param: null
+     * @return:null
+     **/
+    @Override
+    protected String _syncMesToShr(Context ctx, String startDdjdate, String endDdjDate, String personNum) throws BOSException{
+        super.syncMesToShr(ctx,startDdjdate,endDdjDate,personNum);
+        try {
+            SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+            List<String> param = Lists.newArrayList();
+            StringBuffer selSql = new StringBuffer();
+            selSql.append(" select id,max(dcreatetime) dcreatetime,bsysdel,cgsmc, ");
+            selSql.append("        cgw,isbs,iydj,iwdj,iwcl, ");
+            selSql.append("        ddjdate,cusercode,cusername,cfzname,cgwlx, ");
+            selSql.append("        cjndj,csfxc,cbzrz,cgzxl ");
+            selSql.append(" from vi_tpm_dj_wcllist where isnull(cusercode,'')!='' ");
+            selSql.append(" and ddjdate>=? and ddjdate<=? ");
+            //开始日期、结束日期为空,则结束日期默认取当天,开始日期默认取当天减一天
+            if (StringUtils.isNotBlank(startDdjdate) && StringUtils.isNotBlank(endDdjDate)) {
+                param.add(startDdjdate);
+                param.add(endDdjDate);
+            } else {
+                Calendar calendar = Calendar.getInstance();
+                endDdjDate = sf.format(calendar.getTime());
+                calendar.add(Calendar.DAY_OF_MONTH, -1);
+                startDdjdate = sf.format(calendar.getTime());
+                param.add(startDdjdate);
+                param.add(endDdjDate);
+            }
+            if (StringUtils.isNotBlank(personNum)) {
+                selSql.append(" and cusercode=? ");
+                param.add(personNum);
+            }
+            selSql.append(" group by  id,bsysdel,cgsmc, ");
+            selSql.append("        cgw,isbs,iydj,iwdj,iwcl, ");
+            selSql.append("        ddjdate,cusercode,cusername,cfzname,cgwlx, ");
+            selSql.append("        cjndj,csfxc,cbzrz,cgzxl ");
+            selSql.append("  order by ddjdate ");
+            IRowSet rs = this.executeQuery(selSql.toString(), param.toArray());
+            IInspectionRate iir = InspectionRateFactory.getLocalInstance(ctx);
+            CoreBaseCollection upddata = new CoreBaseCollection();
+            CoreBaseCollection newdata = new CoreBaseCollection();
+            while (rs.next()) {
+                String id = rs.getString("id");
+                String cusercode = rs.getString("cusercode");
+                Date ddjdate = rs.getDate("ddjdate");
+                String ddjdateStr = sf.format(ddjdate);
+                StringBuilder selPerson = new StringBuilder();
+                selPerson.append("  ");
+                selPerson.append(" select p.fid pId,p.Fname_l2 pName,p.FNumber pNumber, ");
+                selPerson.append(" company.fid companyId,dep.fid depId,pos.fid posId, ");
+                selPerson.append(" ir.fid irId,ir.fsimpleName mesId,ir.CFBizDate irBizDate ");
+                selPerson.append(" from t_bd_person p ");
+                selPerson.append(" left join t_hr_Personposition pn on pn.fpersonid=p.fid ");
+                selPerson.append(" left join t_org_admin dep on dep.fid=pn.FPersonDep ");
+                selPerson.append(" left join t_org_admin company on company.fid=pn.fcompanyid ");
+                selPerson.append(" left join t_org_position pos on pos.fid=pn.FPrimaryPositionID ");
+                selPerson.append(" left join CT_CAL_InspectionRate ir on p.fid=ir.cfpersonid and ir.CFBizDate=? ");
+                selPerson.append(" where p.fnumber=? ");
+                IRowSet prs = this.executeQuery(selSql.toString(), new String[]{ddjdateStr,cusercode});
+                if (prs.next()){
+                    String pId = prs.getString("pId");
+                    String pName = prs.getString("pName");
+                    String pNumber = prs.getString("pNumber");
+                    String companyId = prs.getString("companyId");
+                    String depId = prs.getString("depId");
+                    String posId = prs.getString("posId");
+                    String irId = prs.getString("irId");
+                    String mesId = prs.getString("mesId");
+                    String irBizDate = prs.getString("irBizDate");
+                    InspectionRateInfo irc = null;
+                    //当存在中间表数据,且MES系统id不一致时才更新
+                    if(StringUtils.isNotBlank(irId)&&(!id.equals(mesId))){
+                        irc = iir.getInspectionRateInfo(new ObjectUuidPK(irId));
+                        //日期
+                        irc.setBizDate(ddjdate);
+                        //点检完成率
+                        irc.setComrate(rs.getBigDecimal("iwcl"));
+                        //技能等级
+                        irc.setSkillLevel(rs.getString("cjndj"));
+                        //岗位类型
+                        irc.setPositiontype(rs.getString("cgwlx"));
+                        //是否现场作业
+                        irc.setOnSite(rs.getString("csfxc"));
+                        //班组任职
+                        irc.setTeamApp(rs.getString("cbzrz"));
+                        //工资序列
+                        irc.setSalarysEq(rs.getString("cgzxl"));
+                        //MES 的id
+                        irc.setSimpleName(id);
+                        Timestamp createtime = new Timestamp(System.currentTimeMillis());
+                        irc.setLastUpdateTime(createtime);
+                        upddata.add(irc);
+                    }else {
+                        irc = new InspectionRateInfo();
+                        //行政组织
+                        //部门
+                        AdminOrgUnitInfo adminOrgUnitInfo = new AdminOrgUnitInfo();
+                        adminOrgUnitInfo.setId(BOSUuid.read(depId));
+                        irc.setAdminOrgUnit(adminOrgUnitInfo);
+                        irc.setDepart(adminOrgUnitInfo);
+                        //职位
+                        PositionInfo position = new PositionInfo();
+                        position.setId(BOSUuid.read(posId));
+                        irc.setPosition(position);
+                        //公司
+                        AdminOrgUnitInfo cmpany = new AdminOrgUnitInfo();
+                        cmpany.setId(BOSUuid.read(companyId));
+                        irc.setCompany(cmpany);
+                        //员工编码
+                        irc.setPersonNum(pNumber);
+                        //员工
+                        PersonInfo personInfo = new PersonInfo();
+                        personInfo.setId(BOSUuid.read(pId));
+                        irc.setPerson(personInfo);
+                        //名称
+                        irc.setName(pName);
+                        //编码
+                        irc.setNumber(id);
+                        //日期
+                        irc.setBizDate(ddjdate);
+                        //点检完成率
+                        irc.setComrate(rs.getBigDecimal("iwcl"));
+                        //技能等级
+                        irc.setSkillLevel(rs.getString("cjndj"));
+                        //岗位类型
+                        irc.setPositiontype(rs.getString("cgwlx"));
+                        //是否现场作业
+                        irc.setOnSite(rs.getString("csfxc"));
+                        //班组任职
+                        irc.setTeamApp(rs.getString("cbzrz"));
+                        //工资序列
+                        irc.setSalarysEq(rs.getString("cgzxl"));
+                        //MES 的id
+                        irc.setSimpleName(id);
+                        UserInfo userInfo = new UserInfo();
+                        userInfo.setId(BOSUuid.read("256c221a-0106-1000-e000-10d7c0a813f413B7DE7F"));
+                        CtrlUnitInfo cu = new CtrlUnitInfo();
+                        cu.setId(BOSUuid.read("00000000-0000-0000-0000-000000000000CCE7AED4"));
+                        irc.setCU(cu);
+                        irc.setCreator(userInfo);
+                        Timestamp createtime = new Timestamp(System.currentTimeMillis());
+                        irc.setCreateTime(createtime);
+                        irc.setLastUpdateUser(userInfo);
+                        irc.setLastUpdateTime(createtime);
+                        newdata.add(irc);
+                    }
+                }
+                if(upddata.size()>=100){
+                    iir.updateBatchData(upddata);
+                    upddata.clear();
+                }
+                if(newdata.size()>=100){
+                    iir.addnewBatchData(newdata);
+                    newdata.clear();
+                }
+            }
+            if(!upddata.isEmpty()){
+                iir.updateBatchData(upddata);
+                upddata.clear();
+            }
+            if(!newdata.isEmpty()){
+                iir.addnewBatchData(newdata);
+                newdata.clear();
+            }
+        }catch (SQLException e){
+            logger.error(e);
+        } catch (EASBizException e) {
+            logger.error(e);
+        }
+        return "";
+    }
+
+
+
+    /**
+     * 建立Mes系统数据库连接
+     * @description:
+     * @author: lhbj
+     * @date: 2025/5/30 15:55
+     * @param: null
+     * @return:null
+     **/
+    private Connection getConnection() {
+        String MesUrl = propt.getProperty("MesUrl");
+        String MesUserName = propt.getProperty("MesUserName");
+        String MesPassWord = propt.getProperty("MesPassWord");
+        Connection connection = null;
+        try {
+            // 加载驱动程序
+            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
+            // 建立连接
+            connection = DriverManager.getConnection(MesUrl, MesUserName, MesPassWord);
+        } catch (ClassNotFoundException | SQLException e) {
+            logger.error(e);
+        } finally {
+        }
+        return connection;
+    }
+    /**
+     * Mes数据库查询
+     * @description:
+     * @author: lhbj
+     * @date: 2025/5/30 15:55
+     * @param: null
+     * @return:null
+     **/
+    public IRowSet executeQuery(String sql, Object[] params) throws BOSException {
+        Connection conn = this.getConnection();
+        PreparedStatement ps = null;
+        ResultSet rs = null;
+        JdbcRowSet var18;
+        try {
+            ps = conn.prepareStatement(sql);
+
+            for (int i = 0; i < params.length; ++i) {
+                ps.setObject(i + 1, params[i]);
+            }
+
+            rs = ps.executeQuery();
+            JdbcRowSet rowset = new JdbcRowSet();
+            rowset.populate(rs);
+            var18 = rowset;
+        } catch (SQLException exc) {
+            StringBuffer sb = new StringBuffer("");
+
+            for (int i = 0; i < params.length; ++i) {
+                sb.append("param ").append(i).append(" is:").append(params[i]);
+            }
+
+            logger.error("sql is:" + sql + " param is:" + sb.toString());
+            logger.error("sql error!", exc);
+            throw new BOSException("Sql execute exception : " + sql, exc);
+        } finally {
+            cleanup(rs, ps, conn);
+        }
+        return var18;
+    }
+    /**
+     * Mes数据库查询
+     * @description:
+     * @author: lhbj
+     * @date: 2025/5/30 15:55
+     * @param: null
+     * @return:null
+     **/
+    public IRowSet executeQuery(String sql) throws BOSException {
+        Connection conn =  this.getConnection();
+        Statement statement = null;
+        ResultSet rs = null;
+
+        JdbcRowSet var6;
+        try {
+            statement = conn.createStatement();
+            rs = statement.executeQuery(sql);
+            JdbcRowSet rowset = new JdbcRowSet();
+            rowset.populate(rs);
+            var6 = rowset;
+        } catch (SQLException exc) {
+            logger.error("333 sql is:" + sql, exc);
+            throw new BOSException("Sql3 execute exception : " + sql, exc);
+        } finally {
+            cleanup(rs, statement, conn);
+        }
+
+        return var6;
+    }
+    /**
+     * Mes数据库执行
+     * @description:
+     * @author: lhbj
+     * @date: 2025/5/30 15:55
+     * @param: null
+     * @return:null
+     **/
+    public void execute(String sql) throws BOSException {
+        Connection conn = this.getConnection();
+        Statement statement = null;
+
+        try {
+            statement = conn.createStatement();
+            statement.execute(sql);
+        } catch (SQLException exc) {
+            logger.error("sql 1 sql is:" + sql, exc);
+            throw new BOSException("Sql1 execute exception : " + sql, exc);
+        } finally {
+            cleanup(statement, conn);
+        }
+
+    }
+    /**
+     * Mes数据库执行
+     * @description:
+     * @author: lhbj
+     * @date: 2025/5/30 15:55
+     * @param: null
+     * @return:null
+     **/
+    public void execute(String sql, Object[] params) throws BOSException {
+        Connection conn =  this.getConnection();
+        PreparedStatement ps = null;
+
+        try {
+            ps = conn.prepareStatement(sql);
+
+            for(int i = 0; i < params.length; ++i) {
+                ps.setObject(i + 1, params[i]);
+            }
+
+            ps.execute();
+        } catch (SQLException exc) {
+            StringBuffer sb = new StringBuffer("");
+
+            for(int i = 0; i < params.length; ++i) {
+                sb.append("param ").append(i).append(" is:").append(params[i]);
+            }
+
+            logger.error("222 sql is:" + sql + " param is:" + sb.toString(), exc);
+            throw new BOSException("Sql222 execute exception : " + sql, exc);
+        } finally {
+            cleanup(ps, conn);
+        }
+
+    }
+    public static final void cleanup(Connection cn) {
+        cleanup((ResultSet) null, (Statement) null, cn);
+    }
+
+    public static void cleanup(Statement stmt) {
+        cleanup((ResultSet) null, stmt, (Connection) null);
+    }
+
+    public static void cleanup(Statement stmt, Connection cn) {
+        cleanup((ResultSet) null, stmt, cn);
+    }
+
+    public static void cleanup(ResultSet rs) {
+        cleanup(rs, (Statement) null, (Connection) null);
+    }
+
+    public static void cleanup(ResultSet rs, Statement stmt) {
+        cleanup(rs, stmt, (Connection) null);
+    }
+
+    public static void cleanup(ResultSet rs, Statement stmt, Connection cn) {
+        SQLUtils.cleanup(rs, stmt, cn);
+    }
+}

+ 30 - 0
src/com/kingdee/eas/custom/calcdailypay/task/SyncMesTpmInsRateFacadeFactory.java

@@ -0,0 +1,30 @@
+package com.kingdee.eas.custom.calcdailypay.task;
+
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.BOSObjectFactory;
+import com.kingdee.bos.util.BOSObjectType;
+import com.kingdee.bos.Context;
+
+public class SyncMesTpmInsRateFacadeFactory
+{
+    private SyncMesTpmInsRateFacadeFactory()
+    {
+    }
+    public static com.kingdee.eas.custom.calcdailypay.task.ISyncMesTpmInsRateFacade getRemoteInstance() throws BOSException
+    {
+        return (com.kingdee.eas.custom.calcdailypay.task.ISyncMesTpmInsRateFacade)BOSObjectFactory.createRemoteBOSObject(new BOSObjectType("EC48C980") ,com.kingdee.eas.custom.calcdailypay.task.ISyncMesTpmInsRateFacade.class);
+    }
+    
+    public static com.kingdee.eas.custom.calcdailypay.task.ISyncMesTpmInsRateFacade getRemoteInstanceWithObjectContext(Context objectCtx) throws BOSException
+    {
+        return (com.kingdee.eas.custom.calcdailypay.task.ISyncMesTpmInsRateFacade)BOSObjectFactory.createRemoteBOSObjectWithObjectContext(new BOSObjectType("EC48C980") ,com.kingdee.eas.custom.calcdailypay.task.ISyncMesTpmInsRateFacade.class, objectCtx);
+    }
+    public static com.kingdee.eas.custom.calcdailypay.task.ISyncMesTpmInsRateFacade getLocalInstance(Context ctx) throws BOSException
+    {
+        return (com.kingdee.eas.custom.calcdailypay.task.ISyncMesTpmInsRateFacade)BOSObjectFactory.createBOSObject(ctx, new BOSObjectType("EC48C980"));
+    }
+    public static com.kingdee.eas.custom.calcdailypay.task.ISyncMesTpmInsRateFacade getLocalInstance(String sessionID) throws BOSException
+    {
+        return (com.kingdee.eas.custom.calcdailypay.task.ISyncMesTpmInsRateFacade)BOSObjectFactory.createBOSObject(sessionID, new BOSObjectType("EC48C980"));
+    }
+}