Explorar el Código

Merge branch 'master' of http://47.92.104.23:3000/LiuYing/jiuzhoutong

yuanzhi_kuang hace 7 meses
padre
commit
d5db8085ce

+ 140 - 141
deployed_metas/com/kingdee/eas/custom/individualback/app/CT_IND_TaxPaymentBackCalculate.table

@@ -8,9 +8,23 @@
   <bizUnitPK>com.kingdee.eas.custom.individualback.TaxPaymentBackCalculate</bizUnitPK>
   <columns>
     <column>
-      <name>FCreatorID</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FCreatorID].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FCreatorID].description</description>
+      <name>FFivouchered</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FFivouchered].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FFivouchered].description</description>
+      <userDefined>true</userDefined>
+      <isMultilingual>false</isMultilingual>
+      <isEncoded>false</isEncoded>
+      <isNullable>true</isNullable>
+      <defaultValue>0</defaultValue>
+      <sqlType>INT</sqlType>
+      <length>1</length>
+      <scale>0</scale>
+      <precision>1</precision>
+    </column>
+    <column>
+      <name>CFPersonID</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFPersonID].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFPersonID].description</description>
       <userDefined>true</userDefined>
       <isMultilingual>false</isMultilingual>
       <isEncoded>false</isEncoded>
@@ -22,51 +36,65 @@
       <precision>0</precision>
     </column>
     <column>
-      <name>FCreateTime</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FCreateTime].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FCreateTime].description</description>
+      <name>CFPeriodMonth</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFPeriodMonth].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFPeriodMonth].description</description>
       <userDefined>true</userDefined>
       <isMultilingual>false</isMultilingual>
       <isEncoded>false</isEncoded>
       <isNullable>true</isNullable>
       <defaultValue />
-      <sqlType>DATETIME</sqlType>
-      <length>8</length>
+      <sqlType>VARCHAR</sqlType>
+      <length>100</length>
       <scale>0</scale>
-      <precision>8</precision>
+      <precision>100</precision>
     </column>
     <column>
-      <name>FLastUpdateUserID</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FLastUpdateUserID].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FLastUpdateUserID].description</description>
+      <name>CFPeriodYear</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFPeriodYear].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFPeriodYear].description</description>
       <userDefined>true</userDefined>
       <isMultilingual>false</isMultilingual>
       <isEncoded>false</isEncoded>
       <isNullable>true</isNullable>
       <defaultValue />
       <sqlType>VARCHAR</sqlType>
-      <length>44</length>
+      <length>100</length>
       <scale>0</scale>
-      <precision>0</precision>
+      <precision>100</precision>
     </column>
     <column>
-      <name>FLastUpdateTime</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FLastUpdateTime].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FLastUpdateTime].description</description>
+      <name>CFIndividual</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFIndividual].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFIndividual].description</description>
       <userDefined>true</userDefined>
       <isMultilingual>false</isMultilingual>
       <isEncoded>false</isEncoded>
       <isNullable>true</isNullable>
       <defaultValue />
-      <sqlType>DATETIME</sqlType>
-      <length>8</length>
-      <scale>0</scale>
-      <precision>8</precision>
+      <sqlType>NUMERIC</sqlType>
+      <length>28</length>
+      <scale>10</scale>
+      <precision>28</precision>
     </column>
     <column>
-      <name>FControlUnitID</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FControlUnitID].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FControlUnitID].description</description>
+      <name>CFSalarySum</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFSalarySum].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFSalarySum].description</description>
+      <userDefined>true</userDefined>
+      <isMultilingual>false</isMultilingual>
+      <isEncoded>false</isEncoded>
+      <isNullable>true</isNullable>
+      <defaultValue />
+      <sqlType>NUMERIC</sqlType>
+      <length>28</length>
+      <scale>10</scale>
+      <precision>28</precision>
+    </column>
+    <column>
+      <name>CFCmpschemeID</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFCmpschemeID].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFCmpschemeID].description</description>
       <userDefined>true</userDefined>
       <isMultilingual>false</isMultilingual>
       <isEncoded>false</isEncoded>
@@ -77,6 +105,20 @@
       <scale>0</scale>
       <precision>0</precision>
     </column>
+    <column>
+      <name>CFTaxItemPlan</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFTaxItemPlan].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFTaxItemPlan].description</description>
+      <userDefined>true</userDefined>
+      <isMultilingual>false</isMultilingual>
+      <isEncoded>false</isEncoded>
+      <isNullable>true</isNullable>
+      <defaultValue />
+      <sqlType>VARCHAR</sqlType>
+      <length>100</length>
+      <scale>0</scale>
+      <precision>100</precision>
+    </column>
     <column>
       <name>FNumber</name>
       <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FNumber].alias</alias>
@@ -87,9 +129,9 @@
       <isNullable>true</isNullable>
       <defaultValue />
       <sqlType>NVARCHAR</sqlType>
-      <length>80</length>
+      <length>100</length>
       <scale>0</scale>
-      <precision>80</precision>
+      <precision>0</precision>
     </column>
     <column>
       <name>FBizDate</name>
@@ -128,10 +170,10 @@
       <isEncoded>false</isEncoded>
       <isNullable>true</isNullable>
       <defaultValue />
-      <sqlType>NVARCHAR</sqlType>
-      <length>80</length>
+      <sqlType>VARCHAR</sqlType>
+      <length>100</length>
       <scale>0</scale>
-      <precision>80</precision>
+      <precision>0</precision>
     </column>
     <column>
       <name>FHasEffected</name>
@@ -143,9 +185,9 @@
       <isNullable>true</isNullable>
       <defaultValue />
       <sqlType>INT</sqlType>
-      <length>4</length>
+      <length>1</length>
       <scale>0</scale>
-      <precision>4</precision>
+      <precision>1</precision>
     </column>
     <column>
       <name>FAuditorID</name>
@@ -170,10 +212,10 @@
       <isEncoded>false</isEncoded>
       <isNullable>true</isNullable>
       <defaultValue />
-      <sqlType>NVARCHAR</sqlType>
-      <length>80</length>
+      <sqlType>VARCHAR</sqlType>
+      <length>100</length>
       <scale>0</scale>
-      <precision>80</precision>
+      <precision>0</precision>
     </column>
     <column>
       <name>FSourceFunction</name>
@@ -184,43 +226,15 @@
       <isEncoded>false</isEncoded>
       <isNullable>true</isNullable>
       <defaultValue />
-      <sqlType>NVARCHAR</sqlType>
-      <length>80</length>
-      <scale>0</scale>
-      <precision>80</precision>
-    </column>
-    <column>
-      <name>FID</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FID].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FID].description</description>
-      <userDefined>true</userDefined>
-      <isMultilingual>false</isMultilingual>
-      <isEncoded>false</isEncoded>
-      <isNullable>false</isNullable>
-      <defaultValue />
       <sqlType>VARCHAR</sqlType>
-      <length>44</length>
-      <scale>0</scale>
-      <precision>44</precision>
-    </column>
-    <column>
-      <name>FFivouchered</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FFivouchered].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FFivouchered].description</description>
-      <userDefined>true</userDefined>
-      <isMultilingual>false</isMultilingual>
-      <isEncoded>false</isEncoded>
-      <isNullable>true</isNullable>
-      <defaultValue />
-      <sqlType>INT</sqlType>
-      <length>1</length>
+      <length>100</length>
       <scale>0</scale>
       <precision>0</precision>
     </column>
     <column>
-      <name>CFPersonID</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFPersonID].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFPersonID].description</description>
+      <name>FCreatorID</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FCreatorID].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FCreatorID].description</description>
       <userDefined>true</userDefined>
       <isMultilingual>false</isMultilingual>
       <isEncoded>false</isEncoded>
@@ -232,65 +246,51 @@
       <precision>0</precision>
     </column>
     <column>
-      <name>CFPeriodMonth</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFPeriodMonth].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFPeriodMonth].description</description>
+      <name>FCreateTime</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FCreateTime].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FCreateTime].description</description>
       <userDefined>true</userDefined>
       <isMultilingual>false</isMultilingual>
       <isEncoded>false</isEncoded>
       <isNullable>true</isNullable>
       <defaultValue />
-      <sqlType>NVARCHAR</sqlType>
-      <length>100</length>
+      <sqlType>DATETIME</sqlType>
+      <length>8</length>
       <scale>0</scale>
-      <precision>0</precision>
+      <precision>8</precision>
     </column>
     <column>
-      <name>CFPeriodYear</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFPeriodYear].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFPeriodYear].description</description>
+      <name>FLastUpdateUserID</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FLastUpdateUserID].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FLastUpdateUserID].description</description>
       <userDefined>true</userDefined>
       <isMultilingual>false</isMultilingual>
       <isEncoded>false</isEncoded>
       <isNullable>true</isNullable>
       <defaultValue />
-      <sqlType>NVARCHAR</sqlType>
-      <length>100</length>
+      <sqlType>VARCHAR</sqlType>
+      <length>44</length>
       <scale>0</scale>
       <precision>0</precision>
     </column>
     <column>
-      <name>CFIndividual</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFIndividual].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFIndividual].description</description>
-      <userDefined>true</userDefined>
-      <isMultilingual>false</isMultilingual>
-      <isEncoded>false</isEncoded>
-      <isNullable>true</isNullable>
-      <defaultValue />
-      <sqlType>NUMERIC</sqlType>
-      <length>28</length>
-      <scale>10</scale>
-      <precision>28</precision>
-    </column>
-    <column>
-      <name>CFSalarySum</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFSalarySum].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFSalarySum].description</description>
+      <name>FLastUpdateTime</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FLastUpdateTime].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FLastUpdateTime].description</description>
       <userDefined>true</userDefined>
       <isMultilingual>false</isMultilingual>
       <isEncoded>false</isEncoded>
       <isNullable>true</isNullable>
       <defaultValue />
-      <sqlType>NUMERIC</sqlType>
-      <length>28</length>
-      <scale>10</scale>
-      <precision>28</precision>
+      <sqlType>DATETIME</sqlType>
+      <length>8</length>
+      <scale>0</scale>
+      <precision>8</precision>
     </column>
     <column>
-      <name>CFCmpschemeID</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFCmpschemeID].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFCmpschemeID].description</description>
+      <name>FControlUnitID</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FControlUnitID].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FControlUnitID].description</description>
       <userDefined>true</userDefined>
       <isMultilingual>false</isMultilingual>
       <isEncoded>false</isEncoded>
@@ -302,22 +302,22 @@
       <precision>0</precision>
     </column>
     <column>
-      <name>CFTaxItemPlan</name>
-      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFTaxItemPlan].alias</alias>
-      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[CFTaxItemPlan].description</description>
+      <name>FID</name>
+      <alias>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FID].alias</alias>
+      <description>dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FID].description</description>
       <userDefined>true</userDefined>
       <isMultilingual>false</isMultilingual>
       <isEncoded>false</isEncoded>
-      <isNullable>true</isNullable>
-      <defaultValue />
-      <sqlType>NVARCHAR</sqlType>
-      <length>100</length>
+      <isNullable>false</isNullable>
+      <defaultValue>''</defaultValue>
+      <sqlType>VARCHAR</sqlType>
+      <length>44</length>
       <scale>0</scale>
-      <precision>0</precision>
+      <precision>44</precision>
     </column>
   </columns>
   <primaryKey>
-    <name>CPK_IND_TaxPBCIpum</name>
+    <name>PK_TaxPaymentBackC</name>
     <userDefined>true</userDefined>
     <primaryKeyColumns>
       <primaryKeyColumn>
@@ -331,7 +331,7 @@
   </primaryKey>
   <foreignKeys>
     <foreignKey>
-      <name>CFK_IND_INDTPBCCpu</name>
+      <name>CFK_IND_INDTPBCRtr</name>
       <userDefined>true</userDefined>
       <refTable>
         <key name="package" value="com.kingdee.eas.base.permission.app" />
@@ -350,7 +350,7 @@
       </fkColumnPairs>
     </foreignKey>
     <foreignKey>
-      <name>CFK_IND_INDTPBCLqu</name>
+      <name>CFK_IND_INDTPBCAUU</name>
       <userDefined>true</userDefined>
       <refTable>
         <key name="package" value="com.kingdee.eas.base.permission.app" />
@@ -369,17 +369,17 @@
       </fkColumnPairs>
     </foreignKey>
     <foreignKey>
-      <name>CFK_IND_INDTPBCCqu</name>
+      <name>CFK_IND_INDTPBCCU</name>
       <userDefined>true</userDefined>
       <refTable>
         <key name="package" value="com.kingdee.eas.basedata.org" />
-        <key name="name" value="T_ORG_OUPartCtrl" />
+        <key name="name" value="T_ORG_CtrlUnit" />
       </refTable>
       <fkColumnPairs>
         <fkColumnPair>
           <sequence>0</sequence>
           <refColumn>
-            <key name="name" value="FUnitID" />
+            <key name="name" value="FID" />
           </refColumn>
           <fkColumn>
             <key name="name" value="FControlUnitID" />
@@ -388,7 +388,7 @@
       </fkColumnPairs>
     </foreignKey>
     <foreignKey>
-      <name>CFK_IND_INDTPBCHru</name>
+      <name>CFK_IND_INDTPBCAnd</name>
       <userDefined>true</userDefined>
       <refTable>
         <key name="package" value="com.kingdee.eas.base.permission.app" />
@@ -407,7 +407,7 @@
       </fkColumnPairs>
     </foreignKey>
     <foreignKey>
-      <name>CFK_IND_INDTPBCAru</name>
+      <name>CFK_IND_INDTPBCUdt</name>
       <userDefined>true</userDefined>
       <refTable>
         <key name="package" value="com.kingdee.eas.base.permission.app" />
@@ -426,7 +426,7 @@
       </fkColumnPairs>
     </foreignKey>
     <foreignKey>
-      <name>CFK_IND_INDTPBCEf0</name>
+      <name>CFK_IND_INDTPBCErs</name>
       <userDefined>true</userDefined>
       <refTable>
         <key name="package" value="com.kingdee.eas.basedata.person" />
@@ -445,11 +445,11 @@
       </fkColumnPairs>
     </foreignKey>
     <foreignKey>
-      <name>CFK_IND_INDTPBCMqj</name>
+      <name>CFK_IND_INDTPBCMps</name>
       <userDefined>true</userDefined>
       <refTable>
-        <key name="package" value="com.kingdee.eas.basedata.person" />
-        <key name="name" value="T_BD_Person" />
+        <key name="package" value="com.kingdee.shr.compensation.app" />
+        <key name="name" value="T_HR_SCalScheme" />
       </refTable>
       <fkColumnPairs>
         <fkColumnPair>
@@ -557,9 +557,9 @@
     </rs>
     <rs key="dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FAuditorID].alias">
       <lang locale="en_US" value="null" />
-      <lang locale="zh_CN" value="审核人" />
-      <lang locale="zh_HK" value="審核人" />
-      <lang locale="zh_TW" value="審核人" />
+      <lang locale="zh_CN" value="null" />
+      <lang locale="zh_HK" value="null" />
+      <lang locale="zh_TW" value="null" />
     </rs>
     <rs key="dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FAuditorID].description">
       <lang locale="en_US" value="null" />
@@ -581,9 +581,9 @@
     </rs>
     <rs key="dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FControlUnitID].alias">
       <lang locale="en_US" value="null" />
-      <lang locale="zh_CN" value="控制单元" />
-      <lang locale="zh_HK" value="控制單元" />
-      <lang locale="zh_TW" value="控制單元" />
+      <lang locale="zh_CN" value="null" />
+      <lang locale="zh_HK" value="null" />
+      <lang locale="zh_TW" value="null" />
     </rs>
     <rs key="dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FControlUnitID].description">
       <lang locale="en_US" value="null" />
@@ -605,9 +605,9 @@
     </rs>
     <rs key="dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FCreatorID].alias">
       <lang locale="en_US" value="null" />
-      <lang locale="zh_CN" value="创建者" />
-      <lang locale="zh_HK" value="創建者" />
-      <lang locale="zh_TW" value="創建者" />
+      <lang locale="zh_CN" value="null" />
+      <lang locale="zh_HK" value="null" />
+      <lang locale="zh_TW" value="null" />
     </rs>
     <rs key="dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FCreatorID].description">
       <lang locale="en_US" value="null" />
@@ -641,9 +641,9 @@
     </rs>
     <rs key="dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FHandlerID].alias">
       <lang locale="en_US" value="null" />
-      <lang locale="zh_CN" value="经手人" />
-      <lang locale="zh_HK" value="經手人" />
-      <lang locale="zh_TW" value="經手人" />
+      <lang locale="zh_CN" value="null" />
+      <lang locale="zh_HK" value="null" />
+      <lang locale="zh_TW" value="null" />
     </rs>
     <rs key="dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FHandlerID].description">
       <lang locale="en_US" value="null" />
@@ -665,14 +665,13 @@
     </rs>
     <rs key="dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FID].alias">
       <lang locale="en_US" value="null" />
-      <lang locale="zh_CN" value="null" />
-      <lang locale="zh_HK" value="null" />
-      <lang locale="zh_TW" value="null" />
+      <lang locale="zh_CN" value="ID" />
+      <lang locale="zh_HK" value="ID" />
+      <lang locale="zh_TW" value="ID" />
     </rs>
     <rs key="dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FID].description">
       <lang locale="en_US" value="null" />
-      <lang locale="zh_CN" value="null" />
-      <lang locale="zh_HK" value="null" />
+      <lang locale="zh_CN" value="" />
       <lang locale="zh_TW" value="null" />
     </rs>
     <rs key="dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FLastUpdateTime].alias">
@@ -689,9 +688,9 @@
     </rs>
     <rs key="dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FLastUpdateUserID].alias">
       <lang locale="en_US" value="null" />
-      <lang locale="zh_CN" value="最后修改者" />
-      <lang locale="zh_HK" value="最後修改者" />
-      <lang locale="zh_TW" value="最後修改者" />
+      <lang locale="zh_CN" value="null" />
+      <lang locale="zh_HK" value="null" />
+      <lang locale="zh_TW" value="null" />
     </rs>
     <rs key="dataTable[com.kingdee.eas.custom.individualback.app.CT_IND_TaxPaymentBackCalculate].columns.column[FLastUpdateUserID].description">
       <lang locale="en_US" value="null" />

+ 4 - 2
deployed_metas/com/kingdee/eas/custom/individualback/app/R_TaxPaymentBackCalculate_Person_cmpscheme.relation

@@ -14,18 +14,20 @@
     <key name="name" value="TaxPaymentBackCalculate" />
   </clientObject>
   <supplierObject>
-    <key name="package" value="com.kingdee.eas.basedata.person.app" />
-    <key name="name" value="Person" />
+    <key name="package" value="com.kingdee.shr.compensation.app" />
+    <key name="name" value="CalScheme" />
   </supplierObject>
   <resource>
     <rs key="relationship[com.kingdee.eas.custom.individualback.app.R_TaxPaymentBackCalculate_Person_cmpscheme].alias">
       <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="relationship[com.kingdee.eas.custom.individualback.app.R_TaxPaymentBackCalculate_Person_cmpscheme].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>
   </resource>

+ 27 - 0
deployed_metas/com/kingdee/eas/custom/individualback/individualback.package

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<package xmlns="com.kingdee.bos.metadata">
+  <package>com.kingdee.eas.custom.individualback</package>
+  <name>individualback</name>
+  <alias>package[com.kingdee.eas.custom.individualback.individualback].alias</alias>
+  <description>package[com.kingdee.eas.custom.individualback.individualback].description</description>
+  <basicCode />
+  <resource>
+    <rs key="package[com.kingdee.eas.custom.individualback.individualback].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="package[com.kingdee.eas.custom.individualback.individualback].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="package[com.kingdee.eas.custom.individualback.individualback].extendedProperty.userDefined">
+      <lang locale="en_US" value="true" />
+      <lang locale="zh_CN" value="true" />
+      <lang locale="zh_TW" value="true" />
+    </rs>
+  </resource>
+</package>

+ 146 - 26
websrc/com/kingdee/eas/custom/compensation/handler/CmpCalDynamicListHandlerExExEx.java

@@ -74,6 +74,68 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
     private Context ctx = SHRContext.getInstance().getContext();
     Logger logger = Logger.getLogger("com.kingdee.eas.custom.compensation.handler.CmpCalDynamicListHandlerExExEx");
 
+    /**
+     * 反算同步
+     *
+     * @param request
+     * @param response
+     * @param modelMap
+     * @throws SHRWebException
+     * @throws BOSException
+     * @throws EASBizException
+     */
+    public void taxPaymentBackSynAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException, BOSException {
+        logger.error("taxPaymentBackSynAction---------starst-------------");
+        //计算规则ID
+        String cmpschemeid = request.getParameter("cmpschemeid");
+        if (StringUtils.isEmpty(cmpschemeid)) {
+            throw new ShrWebBizException("计算规则ID不可为空!!");
+        }
+        Map msgMap = new HashMap();
+        try {
+            //薪酬项目
+            Map cmpItemMap = new HashMap();
+            ICmpItem iCmpItem = CmpItemFactory.getLocalInstance(ctx);
+            //GS014:当月个税  JZT02:税后保应发
+            CmpItemCollection cmpItemCollection = iCmpItem.getCmpItemCollection("where number in ('GS014','JZT02')");
+            for (int i = 0; i < cmpItemCollection.size(); i++) {
+                CmpItemInfo cmpItemInfo = cmpItemCollection.get(i);
+                cmpItemMap.put(cmpItemInfo.getNumber(), cmpItemInfo.getFieldSn());
+            }
+            logger.error("cmpItemMap----------------------" + cmpItemMap);
+            //税款反算
+            ITaxPaymentBackCalculate iTaxPaymentBackCalculate = TaxPaymentBackCalculateFactory.getLocalInstance(ctx);
+            TaxPaymentBackCalculateCollection taxPaymentBackCalculateCollection = iTaxPaymentBackCalculate.getTaxPaymentBackCalculateCollection("where cmpscheme = '" + cmpschemeid + "'");
+            if (taxPaymentBackCalculateCollection.size() <= 0) {
+                throw new ShrWebBizException("税款反算未找到该计算规则数据,请进行税款反算提交操作后再同步!!");
+            }
+            for (int i = 0; i < taxPaymentBackCalculateCollection.size(); i++) {
+                TaxPaymentBackCalculateInfo taxPaymentBackCalculateInfo = taxPaymentBackCalculateCollection.get(i);
+                //税后保应发
+                BigDecimal salarySum = taxPaymentBackCalculateInfo.getSalarySum();
+                //当月个税
+                BigDecimal individual = taxPaymentBackCalculateInfo.getIndividual();
+                //员工信息
+                PersonInfo person = taxPaymentBackCalculateInfo.getPerson();
+                //计算规则
+                CalSchemeInfo cmpscheme = taxPaymentBackCalculateInfo.getCmpscheme();
+                // 税后保应发序号   税后保应发  当月个税序号  当月个税 计算规则ID 员工ID
+                String updateSql = String.format("update T_HR_SCmpCalTable set s%s = '%s'  , s%s = '%s' where  FCALSCHEMEID = '%s' and FPERSONID = '%s'",
+                        cmpItemMap.get("JZT02"), salarySum.toString(), cmpItemMap.get("GS014"), individual, cmpscheme.getId(), person.getId());
+                logger.error("updateSql---------" + updateSql);
+                DbUtil.execute(ctx, updateSql);
+                //String updateSql = "select * from T_HR_SCmpCalTable where FCALSCHEMEID = 'FqEAAAe2vAv/zfKx' and FPERSONID = '383Uzn7KSea0Y+B08YP6qIDvfe0='";
+                //update T_HR_SCmpCalTable set s1 , s2 where  FCALSCHEMEID = '' and FPERSONID = ''
+            }
+            msgMap.put("msg", "同步成功");
+            JSONUtils.SUCCESS(msgMap);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new ShrWebBizException(e);
+
+        }
+    }
+
     /**
      * 税款反算
      *
@@ -83,7 +145,8 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
      * @throws ShrWebBizException
      * @throws BOSException
      */
-    public void taxPaymentBackCalculateAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException, BOSException, EASBizException {
+    public void taxPaymentBackCalculateAction(HttpServletRequest request, HttpServletResponse response, ModelMap
+            modelMap) throws SHRWebException, BOSException, EASBizException {
         //计算规则ID
         String cmpschemeid = request.getParameter("cmpschemeid");
         if (StringUtils.isEmpty(cmpschemeid)) {
@@ -120,7 +183,8 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
                     //查询是否存在税后保实发
                     Integer abroadIncome = getAbroadIncome(personId, cmpschemeid);
                     logger.error("abroadIncome-----------" + personId + "--------------" + cmpschemeid);
-                    if (abroadIncome != null) {
+                    logger.error("abroadIncome-----------" + abroadIncome);
+                    if (abroadIncome != null && abroadIncome != 0) {
                         //获取纳税单位
                         String sql = getSalaryOrgMappingByPersonId(personId);
                         logger.error("getSalaryOrgMappingByPersonId--------" + sql);
@@ -244,7 +308,10 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
      * @throws SQLException
      * @throws JsonProcessingException
      */
-    private CalculateIndividualIncomeTaxRequest getCalculateIndividualIncomeTaxRequest(Map.Entry<String, List<TaxUnitAndPerson>> entry, TaxUnitInfo taxUnitInfo, String taxItemPlanNumber, String taxItemPlanName, String cmpschemeid, LogInfoInfo logInfo) throws BOSException, EASBizException, SQLException, JsonProcessingException {
+    private CalculateIndividualIncomeTaxRequest getCalculateIndividualIncomeTaxRequest
+    (Map.Entry<String, List<TaxUnitAndPerson>> entry, TaxUnitInfo taxUnitInfo, String taxItemPlanNumber, String
+            taxItemPlanName, String cmpschemeid, LogInfoInfo logInfo) throws
+            BOSException, EASBizException, SQLException, JsonProcessingException {
         CalculateIndividualIncomeTaxRequest calculateIndividualIncomeTaxRequest = new CalculateIndividualIncomeTaxRequest();
         //外部业务编号
         String replace = UUID.randomUUID().toString().replace("-", "");
@@ -306,7 +373,7 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
         PersonPositionCollection personPositionCollection = iPersonPosition.getPersonPositionCollection(personEntityViewInfo);
         logger.error("personPositionCollection------------size" + personPositionCollection.size());
         //综合所得对象
-        ComplexIncomeRequest complexIncomeRequest = getComplexIncomeRequest(taxItemPlanNumber, taxItemPlanName, personPositionCollection, cmpschemeid);
+        ComplexIncomeRequest complexIncomeRequest = getComplexIncomeRequest(taxItemPlanNumber, taxItemPlanName, personPositionCollection, cmpschemeid, taxUnitInfo);
         logger.error("complexIncomeRequest------------" + complexIncomeRequest);
         //综合所得
         calculateIndividualIncomeTaxRequest.setComplexIncomeRequest(complexIncomeRequest);
@@ -316,6 +383,7 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
         logInfo.setInterfaceAddress("gateway/iit/reverseCalculateTax/calculateASynIndividualIncomeTax");//接口地址
         logInfo.setInterfaceName("calculateASynIndividualIncomeTax");//接口名
         ObjectMapper mapper = new ObjectMapper();
+        logger.error("calculateIndividualIncomeTaxRequest------------" + mapper.writeValueAsString(calculateIndividualIncomeTaxRequest));
         logInfo.setInParameter(mapper.writeValueAsString(calculateIndividualIncomeTaxRequest));//入参
         return calculateIndividualIncomeTaxRequest;
     }
@@ -488,7 +556,8 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
      * @param param   员工ID
      * @return
      */
-    public String addTaxPaymentBackCalculate(CalculateTaxResultRequest resBody, com.alibaba.fastjson.JSONObject param) throws BOSException, EASBizException {
+    public String addTaxPaymentBackCalculate(CalculateTaxResultRequest resBody, com.alibaba.fastjson.JSONObject
+            param) throws BOSException, EASBizException {
         logger.error("addTaxPaymentBackCalculate============Start===============");
         String personId = param.getString("personId");//员工ID
         String periodYear = param.getString("periodYear");//统计年
@@ -524,17 +593,17 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
         //zhsd   综合所得
         ComplexIncomeResultRequest complexIncomeResultRequest = resBody.getComplexIncomeResultRequest();
         //全年一次性奖金
-        if ("2024083001".equals(taxItemPlanNumber)) {
+        if ("GS003".equals(taxItemPlanNumber)) {
             //qnycxjjsslb  全年一次性奖金
             complexTaxCalculateResult = complexIncomeResultRequest.getAnnualOneTimeBonusIncome();
         }
         //一般劳务报酬所得列表
-        if ("2024083003".equals(taxItemPlanNumber)) {
+        if ("GS002".equals(taxItemPlanNumber)) {
             //lwbclb  一般劳务报酬所得列表
             complexTaxCalculateResult = complexIncomeResultRequest.getLaborRemunerationIncome();
         }
         //正常工资薪金对象
-        if ("2024083004".equals(taxItemPlanNumber)) {
+        if ("GS001".equals(taxItemPlanNumber)) {
             //zcgzxj  正常工资薪金对象
             complexTaxCalculateResult = complexIncomeResultRequest.getNormalSalarySpecIncome();
         }
@@ -557,7 +626,8 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
      *
      * @return
      */
-    public NonResidentsIncomeRequest getNonResidentsIncomeRequest(String taxItemPlanName, PersonInfo personInfo, String cmpschemeid) throws SQLException, BOSException {
+    public NonResidentsIncomeRequest getNonResidentsIncomeRequest(String taxItemPlanName, PersonInfo
+            personInfo, String cmpschemeid) throws SQLException, BOSException {
         NonResidentsIncomeRequest nonResidentsIncomeRequest = new NonResidentsIncomeRequest();
         List<NonResidentsIncome> foreignerWagesSalaryIncomes = new ArrayList();
         NonResidentsIncome nonResidentsIncome = getNonResidentsIncome(taxItemPlanName, personInfo, cmpschemeid);
@@ -572,7 +642,8 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
      * * personInfo 员工信息
      * * cmpschemeid 计算规则ID
      */
-    public NonResidentsIncome getNonResidentsIncome(String taxItemPlanName, PersonInfo personInfo, String cmpschemeid) throws SQLException, BOSException {
+    public NonResidentsIncome getNonResidentsIncome(String taxItemPlanName, PersonInfo personInfo, String
+            cmpschemeid) throws SQLException, BOSException {
         NonResidentsIncome nonResidentsIncome = new NonResidentsIncome();
         //nonResidentsIncome.setName("何云");
         //nonResidentsIncome.setLicenseType("居民身份证");
@@ -613,11 +684,14 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
      *
      * @return
      */
-    public ComplexIncomeRequest getComplexIncomeRequest(String taxItemPlanNumber, String taxItemPlanName, PersonPositionCollection personPositionCollection, String cmpschemeid) throws BOSException, EASBizException, SQLException {
+    public ComplexIncomeRequest getComplexIncomeRequest(String taxItemPlanNumber, String
+            taxItemPlanName, PersonPositionCollection personPositionCollection, String cmpschemeid, TaxUnitInfo taxUnitInfo) throws
+            BOSException, EASBizException, SQLException {
         logger.error("getComplexIncomeRequest-----" + taxItemPlanNumber + "---" + taxItemPlanName + "---" + personPositionCollection + "---" + cmpschemeid);
         ComplexIncomeRequest complexIncomeRequest = new ComplexIncomeRequest();
         //全年一次性奖金
-        if (taxItemPlanNumber.equals("2024083001")) {
+        if (taxItemPlanNumber.equals("GS003")) {
+            //if (taxItemPlanNumber.equals("2024083001")) {
             List<ComplexIncome> aOneBonusIncomeList = new ArrayList();
             for (int i = 0; i < personPositionCollection.size(); i++) {
                 PersonPositionInfo personPositionInfo = personPositionCollection.get(i);
@@ -631,7 +705,8 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
             }
         }
         //一般劳务报酬所得列表
-        if (taxItemPlanNumber.equals("2024083003")) {
+        //if (taxItemPlanNumber.equals("2024083003")) {
+        if (taxItemPlanNumber.equals("GS002")) {
             List<ComplexIncome> complexIncomeList = new ArrayList();
             for (int i = 0; i < personPositionCollection.size(); i++) {
                 PersonPositionInfo personPositionInfo = personPositionCollection.get(i);
@@ -645,8 +720,10 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
             }
         }
         //正常工资薪金对象
-        if (taxItemPlanNumber.equals("2024083004")) {
-            NormalSalarySpecIncome normalSalarySpecIncome = getNormalSalarySpecIncome(personPositionCollection);
+        //if (taxItemPlanNumber.equals("2024083004")) {
+        if (taxItemPlanNumber.equals("GS001")) {
+            logger.error("GS001-----" + personPositionCollection);
+            NormalSalarySpecIncome normalSalarySpecIncome = getNormalSalarySpecIncome(personPositionCollection, taxItemPlanName, cmpschemeid, taxUnitInfo);
             complexIncomeRequest.setNormalSalarySpecIncome(normalSalarySpecIncome);
         }
         return complexIncomeRequest;
@@ -660,7 +737,8 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
      *
      * @return
      */
-    public ComplexIncome getAnnualOneTimeBonusIncome(PersonInfo personInfo, String taxItemPlanName, String cmpschemeid) throws SQLException, BOSException {
+    public ComplexIncome getAnnualOneTimeBonusIncome(PersonInfo personInfo, String taxItemPlanName, String
+            cmpschemeid) throws SQLException, BOSException {
         ComplexIncome complexIncome = new ComplexIncome();
         //姓名
         complexIncome.setName(personInfo.getName());
@@ -694,7 +772,8 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
      *
      * @return
      */
-    public ComplexIncome getLaborRemunerationIncome(PersonInfo personInfo, String taxItemPlanName, String cmpschemeid) throws SQLException, BOSException {
+    public ComplexIncome getLaborRemunerationIncome(PersonInfo personInfo, String taxItemPlanName, String
+            cmpschemeid) throws SQLException, BOSException {
         ComplexIncome complexIncome = new ComplexIncome();
         //姓名
         complexIncome.setName(personInfo.getName());
@@ -726,7 +805,10 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
      *
      * @return
      */
-    public NormalSalarySpecIncome getNormalSalarySpecIncome(PersonPositionCollection personPositionCollection) throws BOSException, EASBizException {
+    public NormalSalarySpecIncome getNormalSalarySpecIncome(PersonPositionCollection
+                                                                    personPositionCollection, String taxItemPlanName, String cmpschemeid, TaxUnitInfo taxUnitInfo) throws
+            BOSException, EASBizException, SQLException {
+        logger.error("getNormalSalarySpecIncome-------------start");
         //正常工资薪金对象
         NormalSalarySpecIncome normalSalarySpecIncome = new NormalSalarySpecIncome();
         //人员列表
@@ -735,10 +817,37 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
             PersonPositionInfo personPositionInfo = personPositionCollection.get(i);
             PersonInfo personInfo = personPositionInfo.getPerson();
             //获取人员数据
-            DetailCompanyEmployee detailCompanyEmployee = getDetailCompanyEmployee(personInfo);
+            DetailCompanyEmployee detailCompanyEmployee = getDetailCompanyEmployee(personInfo, taxUnitInfo);
             companyEmployeeList.add(detailCompanyEmployee);
+            normalSalarySpecIncome.setCompanyEmployeeList(companyEmployeeList);
+            //正常薪金列表
+            List<ComplexIncome> normalSalarySpec = new ArrayList();
+            ComplexIncome complexIncome = new ComplexIncome();
+            //姓名
+            complexIncome.setName(personInfo.getName());
+            //complexIncome.setName("何云");
+            //居民身份证
+            if (personInfo.getIdCardNO() != null) {
+                //证照号码
+                complexIncome.setLicenseNumber(personInfo.getIdCardNO());
+                //证照类型
+                complexIncome.setLicenseType("居民身份证");
+            }
+            //中国护照不
+            if (personInfo.getPassportNO() != null) {
+                //证照类型
+                complexIncome.setLicenseType("中国护照");
+                //证照号码
+                complexIncome.setLicenseNumber(personInfo.getPassportNO());
+            }
+            Integer abroadIncome = getAbroadIncome(personInfo.getId().toString(), cmpschemeid);
+            //complexIncome.setLicenseNumber("429004198601085125");
+            //税后收入额
+            complexIncome.setAfterTaxIncome(new BigDecimal(abroadIncome));
+            complexIncome.setIncomeItemName(taxItemPlanName);
+            normalSalarySpec.add(complexIncome);
+            normalSalarySpecIncome.setNormalSalarySpec(normalSalarySpec);
         }
-        normalSalarySpecIncome.setCompanyEmployeeList(companyEmployeeList);
         return normalSalarySpecIncome;
     }
 
@@ -747,8 +856,9 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
      *
      * @return
      */
-    public DetailCompanyEmployee getDetailCompanyEmployee(PersonInfo personInfo) throws BOSException, EASBizException {
-
+    public DetailCompanyEmployee getDetailCompanyEmployee(PersonInfo personInfo, TaxUnitInfo taxUnitInfo) throws
+            BOSException, EASBizException {
+        logger.error("getDetailCompanyEmployee-------------start");
         //人员对象
         DetailCompanyEmployee detailCompanyEmployee = new DetailCompanyEmployee();
         ////姓名
@@ -759,6 +869,8 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
         //detailCompanyEmployee.setLicenseNumber("429004198601085125");
         //姓名
         detailCompanyEmployee.setName(personInfo.getName());
+        logger.error("personInfoName-------------" + personInfo.getName());
+        logger.error("personInfo.getIdCardNO()-------------" + personInfo.getIdCardNO());
         //complexIncome.setName("何云");
         //居民身份证
         if (personInfo.getIdCardNO() != null) {
@@ -787,9 +899,14 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
         ITaxPersonRecordEntry iTaxPersonRecordEntry = TaxPersonRecordEntryFactory.getLocalInstance(ctx);
         TaxPersonRecordEntryCollection taxPersonRecordEntryCollection = iTaxPersonRecordEntry.getTaxPersonRecordEntryCollection("where person.id = '" + personInfo.getId() + "'");
         TaxPersonRecordEntryInfo taxPersonRecordEntryInfo = taxPersonRecordEntryCollection.get(0);
+        logger.error("taxPersonRecordEntryInfo-------------" + taxPersonRecordEntryInfo);
         //任职受雇类型  可选择雇员、保险营销员、证券经纪人、其他、实习学生(全日制学历教育)
         //detailCompanyEmployee.setIsEmployee("其他");
-        detailCompanyEmployee.setIsEmployee(taxPersonRecordEntryInfo.getEmployedType().getAlias());
+        if (taxPersonRecordEntryInfo.getEmployedType() == null) {
+            detailCompanyEmployee.setIsEmployee("其他");
+        } else {
+            detailCompanyEmployee.setIsEmployee(taxPersonRecordEntryInfo.getEmployedType().getAlias());
+        }
         //受雇日期  YYYY-MM-DD,不能大于当前时间,任职受雇类型选择雇员、保险营销员、证券经纪人时必录
         SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
         detailCompanyEmployee.setEmployedDate(inputFormat.format(taxPersonRecordEntryInfo.getEmployedDate()));
@@ -800,7 +917,10 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
         //国籍 nationality
         NationalityInfo nationality = personInfo.getNationality();
         detailCompanyEmployee.setNationality(nationality.getName());
-
+        //纳税人状态
+        detailCompanyEmployee.setState(taxPersonRecordEntryInfo.getPersonStatus().getAlias());
+        logger.error("detailCompanyEmployee-------------" + detailCompanyEmployee);
+        logger.error("getDetailCompanyEmployee-------------end");
         return detailCompanyEmployee;
     }
 
@@ -812,12 +932,12 @@ public class CmpCalDynamicListHandlerExExEx extends CmpCalDynamicListHandlerExEx
      * @return
      */
     public Integer getAbroadIncome(String perosnId, String cmpschemeid) throws BOSException, SQLException {
-        String sql = String.format("select S336  from  T_HR_SCmpCalTable where FPERSONID = '%s' and  FCALSCHEMEID = '%s'", perosnId, cmpschemeid);
+        String sql = String.format("select S328  from  T_HR_SCmpCalTable where FPERSONID = '%s' and  FCALSCHEMEID = '%s'", perosnId, cmpschemeid);
         logger.error("getAbroadIncomeSql---------------" + sql);
         IRowSet iRowSet = DbUtil.executeQuery(ctx, sql);
         Integer abroadIncome = null;
         while (iRowSet.next()) {
-            abroadIncome = iRowSet.getInt("S336");
+            abroadIncome = iRowSet.getInt("S328");
         }
         return abroadIncome;
     }

+ 1 - 346
websrc/com/kingdee/eas/custom/compensation/handler/IncomeTaxDeclareListHandlerEx.java

@@ -236,7 +236,7 @@ public class IncomeTaxDeclareListHandlerEx extends IncomeTaxDeclareListHandler {
                         JSONObject json = new JSONObject();
                         json.put("requestId", requestId);
                         json.put("param", param.toString());
-                        isyUtilsFacade.addTask("synIncomeTaxDeclareService", json.toJSONString(), TaskCatalogEnum.UN_CAL_GET, "");
+                        isyUtilsFacade.addTask("synIncomeTaxDeclareService", json.toJSONString(), TaskCatalogEnum.TAX, "");
                     }
                 }
             }
@@ -929,349 +929,4 @@ public class IncomeTaxDeclareListHandlerEx extends IncomeTaxDeclareListHandler {
         resultMap.put("WATI_TO_DECLARE", waitToDeclareList);
         return resultMap;
     }
-
-    
-    
-    
-    
-    private void updateOrCancel(HttpServletRequest request, HttpServletResponse response, TaskCatalogEnum catalog)
-    		throws SHRWebException {
-    	Context ctx = SHRContext.getInstance().getContext();
-    	String selectedId = request.getParameter("selectedId");
-    	String oql = "select id, tbType, yearMonth, yearMonthDate, taxUnit.id, taxUnit.name, taxUnit.areaCode, taxUnit.taxNumber, taxUnit.regNumber, taxUnit.declPassword, taxUnit.realPassword, acceptId where id = '"
-    			+ selectedId + "'";
-    	
-    	try {
-    		IncomeTaxDeclarCollection collection = IncomeTaxDeclarFactory.getLocalInstance(ctx)
-    				.getIncomeTaxDeclarCollection(oql);
-    		if (null != collection && collection.size() != 0) {
-    			IncomeTaxDeclarInfo incomeTaxDeclare = collection.get(0);
-    			if (TaskCatalogEnum.TaxDeclareUpdate == catalog) {
-    				//更新
-    				updateDeclare(ctx,incomeTaxDeclare);
-    			} else {
-    				//更新以外的
-    				if (TaskCatalogEnum.CancelTaxDeclare != catalog) {
-    					//撤销更正
-    					cancelUpdate( ctx ,incomeTaxDeclare);
-    					return;
-    				}
-    				//撤销申报
-    				cancelDeclare(ctx,incomeTaxDeclare);
-    			}
-    			
-    			String templateId = "4i4AAAAS76+Vh943";
-    			String columnSQL = "select t.fieldsn, f.FPROPNAME,f.fname_l2,f.fcustomfield from T_BS_SHRFileTemplateFields f left join t_HR_sTaxItem t on f.FPROPNAME = t.FNUMBER where f.fcmpimporttempid = '"
-    					+ templateId + "' order by f.fsortsn ";
-    			IRowSet columnSet = DbUtil.executeQuery(ctx, columnSQL);
-    			StringBuilder tmpSQL = new StringBuilder();
-    			tmpSQL.append("select ");
-    			String dynamicFieldPrefix = "t";
-    			String local = SHRContext.getInstance().getContext().getLocale().getDisplayLanguage();
-    			int columnSize = columnSet.size();
-    			
-    			while (columnSet.next()) {
-    				int index = columnSet.getInt(1);
-    				String propName = columnSet.getString(2);
-    				int isCustom = columnSet.getInt(4);
-    				if (isCustom == 1 && index > 0) {
-    					tmpSQL.append(dynamicFieldPrefix).append(index).append(",");
-    				} else if (propName.endsWith("_")) {
-    					tmpSQL.append(propName).append(local).append(",");
-    				} else {
-    					tmpSQL.append(propName).append(",");
-    				}
-    			}
-    			
-    			String sql = tmpSQL.substring(0, tmpSQL.length() - 1);
-    			Date date = incomeTaxDeclare.getYearMonthDate();
-    			String taxUnitId = incomeTaxDeclare.getTaxUnit().getId().toString();
-    			TbTypeEnum tbType = incomeTaxDeclare.getTbType();
-    			String personType = CmpConstants.getPayerTypeByTbType(tbType.getValue());
-    			String dataSQL = sql
-    					+ " from t_hr_sTaxCalConfigDetail t left join T_BD_Person person on t.fPersonId = person.fid left join T_HR_STaxPersonRecord taxPersonRec on t.fPersonId = taxPersonRec.fPersonId left join T_HR_TaxUnit taxUnit on t.fTaxUnitId = taxUnit.fid left join T_HR_STaxIncomeItem item on t.fIncomeItemId = item.fid left join T_HR_STaxPersonRecordEntry pEntry on taxPersonRec.fid = pEntry.fBillId where t.fPeriodBegin = "
-    					+ CmpDateUtil.toKSqlDate(date) + " and t.fTaxUnitId = '" + taxUnitId
-    					+ "' and pEntry.fTaxUnitId = '" + taxUnitId + "' and pEntry.fPayerType = '" + personType
-    					+ "'";
-    			IRowSet dataSet = DbUtil.executeQuery(ctx, dataSQL);
-    			List<List<Object>> dataList = new ArrayList();
-    			IRowSetMetaData metaData = dataSet.getRowSetMetaData();
-    			
-    			for (int rowIndex = 1; dataSet.next(); ++rowIndex) {
-    				List<Object> row = new ArrayList();
-    				row.add(rowIndex);
-    				
-    				for (int i = 1; i <= columnSize; ++i) {
-    					int dataType = metaData.getColumnType(i);
-    					row.add(ImplUtils.getDataFromDr(dataType, dataSet, i));
-    				}
-    				
-    				dataList.add(row);
-    			}
-    			
-    			String template = request.getSession().getServletContext().getRealPath("/")
-    					+ "addon/compensation/web/resource/incomeTaxSbbExportTemplate.xlsx";
-    			String taxUnitName = incomeTaxDeclare.getTaxUnit().getName();
-    			String tbTypeName = incomeTaxDeclare.getTbType().getAlias();
-    			String period = TaxCalcFileUtils.getCnPeriod1(incomeTaxDeclare.getYearMonthDate());
-    			String timestamp = TaxCalcFileUtils.getTimestamp(new Date());
-    			String userTempDirAbsolutePath = UserUtil.getUserTempDirAbsolutePath(request.getSession());
-    			userTempDirAbsolutePath = userTempDirAbsolutePath + "/exportExcel";
-    			File dir = new File(userTempDirAbsolutePath);
-    			if (!dir.exists()) {
-    				dir.mkdirs();
-    			}
-    			
-    			String fileName = "个税申报表_" + taxUnitName + "_" + tbTypeName + "_" + period + "_" + timestamp
-    					+ ".xlsx";
-    			String path = dir.getAbsolutePath() + File.separator + fileName;
-    			Map<String, String> params = new HashMap();
-    			params.put("startAndEnd", TaxCalcFileUtils.getCnPeriod2(incomeTaxDeclare.getYearMonthDate()));
-    			params.put("taxUnitName", taxUnitName);
-    			params.put("taxUnitNumber", incomeTaxDeclare.getTaxUnit().getTaxNumber());
-    			CmpExcelUtil.writeData2Template(dataList, template, 8, path, params);
-    			String headerStr = "attachment;filename=" + URLEncoder.encode(fileName, "utf-8");
-    			response.setHeader("Content-disposition", headerStr);
-    			response.getOutputStream().write(TaxCalcFileUtils.file2ByteArray(new File(path)));
-    			response.getOutputStream().flush();
-    			return;
-    		} else {
-    			throw new SHRWebException("没有找到申报记录");
-    		}
-    	} catch (Exception var37) {
-    		LOG.error("updateDeclareAction error: ", var37);
-    		throw new SHRWebException(var37.getMessage());
-    	}
-    }
-		
-		
-		
-    protected Map cancelUpdate(Context ctx, IncomeTaxDeclarInfo taxDeclare) throws BOSException {
-    	try {
-    		String sql = "select t.fAccept_id as acceptId from t_hr_sIncomeTaxDeclar d left join t_hr_sTaskIncomeTaxRelation r on d.fid = r.fBizId left join t_hr_sTaxCalTask t on r.fTaskId = t.fid where d.fid = '"
-    				+ taxDeclare.getId().toString() + "' and t.fCatalog = " + 120;
-    		IRowSet rowSet = DbUtil.executeQuery(ctx, sql);
-    		if (rowSet.size() == 0) {
-    			throw new BOSException("找不到更正申报任务受理id");
-    		} else {
-    			while (rowSet.next()) {
-    				taxDeclare.setAcceptId(rowSet.getString("acceptId"));
-    			}
-    			
-    			return  updateOrCancel(ctx, taxDeclare, TaskCatalogEnum.CancelTaxUpdate);
-    		}
-    	} catch (SQLException var5) {
-    		LOG.error("_cancelUpdate error: ", var5);
-    		throw new BOSException(var5.getMessage());
-    	}
-    }
-    
-    
-    
-    private Map updateOrCancel(Context ctx, IncomeTaxDeclarInfo taxDeclare, TaskCatalogEnum catalog)
-    		throws BOSException {
-    	JSONObject param = new JSONObject();
-    	param.put("taxDeclarId", taxDeclare.getId());
-    	param.put("taxDeclarBatchNo", taxDeclare.getBatchNo());
-    	Map<String, Object> paramMap = new HashMap();
-    	DeclareCancelRequest requestObj = new DeclareCancelRequest();
-    	TaxUnitInfo taxUnit = taxDeclare.getTaxUnit();
-    	/// bizNo	外部业务编号	String(64)	是	外部业务编号,唯一,幂等需要,最长64位,建议使用UUID
-    	String bizNo = UUID.randomUUID().toString();
-    	paramMap.put("bizNo" , bizNo);
-    	requestObj.setBizNo(bizNo);
-    	//qymc	企业名称	String(64)	是	代报企业全称
-    	paramMap.put("qymc" , taxUnit.getName() );
-    	requestObj.setName(taxUnit.getName());
-    	//djxhid	登记序号	String(64)	条件必填	存在多个登记序号时,需要指定传入一个.例:10117440105249764755
-    	paramMap.put("djxhid" , taxUnit.getRegNumber());
-    	requestObj.setRegistrationNumber(taxUnit.getRegNumber());
-    	//nsrsbh	税号	String(64)	是	扣缴单位纳税人识别号
-    	paramMap.put("nsrsbh" , taxUnit.getTaxNumber());
-    	requestObj.setTaxNo(taxUnit.getTaxNumber());
-    	//areaid	地区编号	String(64)	是	6位行政区划代码,精确到市级,例如:440100,参考省市区编码
-    	paramMap.put("areaid" , taxUnit.getAreaCode());
-    	requestObj.setArea(taxUnit.getAreaCode());
-    	//bmbh	部门编号	String(64)	条件必填	分部门代报时必传
-    	//bmmc	部门名称	String(64)	否	
-    	//skssq	所属期	String(64)	是	格式YYYYMM。为空时, 根据任职受雇日期判断:
-    	String period = taxDeclare.getYearMonth();
-    	period = period.contains("-") ? period.replace("-", "") : period;
-    	period = period.substring(0, 6);
-    	requestObj.setMonth(taxUnit.getAreaCode());
-    	//sblx	申报类型	String(64)	必填	1:综合所得;2:分类所得;3:非居民所得;4:限售股所得
-    	paramMap.put("sblx" , "1");
-    	requestObj.setDeclarationType("1");
-    	//sfqksd	是否清空所得数据	String(64)	否	0:不清空 1 清空, 默认为0, 作废申报的同时清空数据
-    	requestObj.setCancelImportDataOption("0");
-    	//jmsmmm	加密实名密码	String(64)	否	默认不传则设置为0,0表示不加密;1表示加密
-    	paramMap.put("jmsbmm" , "0");
-    	requestObj.setEncryptedRealNamePassword("0");
-    	if (!StringUtils.isEmpty(taxUnit.getRealPassword())) {
-    		//mmlx	密码类型	String(64)	否	默认不传则设置为0, 0表示申报密码;2表示实名账号实名密码
-    		paramMap.put("mmlx" , "2");
-    		requestObj.setPasswordType("2");
-    		//smzh	实名账号	String(64)	条件必填	当mmlx=2时,必填。
-    		paramMap.put("smzh",  false);
-    		requestObj.setRealNameAccount("");
-    		//smmm	实名密码	String(64)	条件必填	当mmlx=2时,必填
-    		paramMap.put("smmm", Base64Utils.decode(taxUnit.getRealPassword()));
-    		requestObj.setRealNamePassword(Base64Utils.decode(taxUnit.getRealPassword()));
-    	}
-    	if (!StringUtils.isEmpty(taxUnit.getDeclPassword())) {
-    		//sbmm	申报密码	String(64)	条件必填	当mmlx=0时,必填
-    		paramMap.put("sbmm", Base64Utils.decode(taxUnit.getDeclPassword()));
-    		requestObj.setDeclarePassword(Base64Utils.decode(taxUnit.getDeclPassword()));
-    		//mmlx	密码类型	String(64)	否	默认不传则设置为0, 0表示申报密码;2表示实名账号实名密码
-    		paramMap.put("mmlx" , "0");
-    		requestObj.setPasswordType("0");
-    	}
-    	
-    	
-    	//客户端代理工厂
-    	try {
-    		ClientProxyFactory clientProxyFactory  = ClientProxyFactoryUtils.getClientProxyFactory();
-    		//算税请求接口
-    		DeclarationRequest declarationRequest = clientProxyFactory.getDeclarationRequest();
-    		//获取请求参数
-    		if(  catalog.equals(TaskCatalogEnum.CancelTaxDeclare) ) {
-    			System.out.print("撤销申报执行");
-    			Gson gson = new Gson();  
-    			Type personType = new TypeToken<DeclareCancelRequest>(){}.getType();  
-    			DeclareCancelRequest newObj = gson.fromJson(gson.toJson(paramMap), personType);  
-    			//CancelTaxDeclare  作废申报  140
-    			ApiResponse<AsyncResult> apiResponse = declarationRequest.cancel (newObj);
-    			if (apiResponse.getHead().getCode().equals("00000000")) {
-    				AsyncResult body = apiResponse.getBody();
-    				String requestId = body.getRequestId();
-    				LOG.error("requestId-----" + requestId);
-    				ISYUtilsFacade isyUtilsFacade = SYUtilsFacadeFactory.getLocalInstance(ctx);
-    				//backTask(url,requestId,回调osf服务,自定义参数,任务类型)
-    				JSONObject json = new JSONObject();
-    				json.put("requestId", requestId);
-    				json.put("param", param.toString());
-    				isyUtilsFacade.addTask("CancelDeclareService", json.toJSONString(), TaskCatalogEnum.CancelTaxDeclare, "");
-    			}
-    		}else if(catalog.equals(TaskCatalogEnum.TaxDeclareUpdate)) {
-    			System.out.print("更正申报执行");
-    			//更正申报  120
-    			Gson gson = new Gson();  
-    			Type personType = new TypeToken<DeclareCorrectRequest>(){}.getType();  
-    			DeclareCorrectRequest newObj = gson.fromJson(gson.toJson(paramMap), personType);  
-    			ApiResponse<AsyncResult> apiResponse = declarationRequest.correct (newObj);
-    			if (apiResponse.getHead().getCode().equals("00000000")) {
-    				//同步接口;
-    				//个税申报批次号
-    				String taxDeclarBatchNo = taxDeclare.getBatchNo();
-    				IIncomeTaxDeclar iIncomeTaxDeclar = IncomeTaxDeclarFactory.getLocalInstance(ctx);
-    				IncomeTaxDeclarCollection incomeTaxDeclarCollection = iIncomeTaxDeclar.getIncomeTaxDeclarCollection("where batchNo = '" + taxDeclarBatchNo + "'");
-    				SelectorItemCollection updateSic = new SelectorItemCollection();
-    				updateSic.add("declareStatus");
-    				if (incomeTaxDeclarCollection.size() > 0) {
-    					IncomeTaxDeclarInfo incomeTaxDeclarInfo = incomeTaxDeclarCollection.get(0);
-    					incomeTaxDeclarInfo.setDeclareStatus(TaxDeclareStatusEnum.DECLARE_NO);
-    					iIncomeTaxDeclar.updatePartial(incomeTaxDeclarInfo, updateSic);
-    				}
-    			}
-    		}else if(catalog.equals(TaskCatalogEnum.CancelTaxUpdate )) {
-    			System.out.print("撤销更正执行");
-    			//撤销更正申报
-    			Gson gson = new Gson();  
-    			Type personType = new TypeToken<DeclareCorrectRequest>(){}.getType();  
-    			DeclareCorrectRequest newObj = gson.fromJson(gson.toJson(paramMap), personType);  
-    			ApiResponse<AsyncResult> apiResponse = declarationRequest.cancelCorrect (newObj);
-    			if (apiResponse.getHead().getCode().equals("00000000")) {
-    				//同步接口;
-    				//个税申报批次号
-    				String taxDeclarBatchNo = taxDeclare.getBatchNo();
-    				IIncomeTaxDeclar iIncomeTaxDeclar = IncomeTaxDeclarFactory.getLocalInstance(ctx);
-    				IncomeTaxDeclarCollection incomeTaxDeclarCollection = iIncomeTaxDeclar.getIncomeTaxDeclarCollection("where batchNo = '" + taxDeclarBatchNo + "'");
-    				SelectorItemCollection updateSic = new SelectorItemCollection();
-    				updateSic.add("declareStatus");
-    				if (incomeTaxDeclarCollection.size() > 0) {
-    					IncomeTaxDeclarInfo incomeTaxDeclarInfo = incomeTaxDeclarCollection.get(0);
-    					incomeTaxDeclarInfo.setDeclareStatus(TaxDeclareStatusEnum.DECLARE_SUCCESS);
-    					iIncomeTaxDeclar.updatePartial(incomeTaxDeclarInfo, updateSic);
-    				}
-    			}
-    		}
-    	} catch (IOException e) {
-    		e.printStackTrace();
-    	} catch (EASBizException e) {
-    		e.printStackTrace();
-    	}
-    	return paramMap;
-    }
-    
-
-		
-		
-		
-    
-    
-    
-    /**
-     * 撤销申请
-     * @param ctx
-     * @param taxDeclare
-     * @return
-     * @throws BOSException
-     */
-    protected Map cancelDeclare(Context ctx, IncomeTaxDeclarInfo taxDeclare) throws BOSException {
-    	System.out.print("申报作废进入自己的分支");
-    	return this.updateOrCancel(ctx, taxDeclare, TaskCatalogEnum.CancelTaxDeclare);
-    }
-    
-    
-    
-    
-    /**
-     * 更正
-     * @param ctx
-     * @param taxDeclare
-     * @return
-     * @throws BOSException
-     */
-    protected Map updateDeclare(Context ctx, IncomeTaxDeclarInfo taxDeclare) throws BOSException {
-    	return  updateOrCancel(ctx, taxDeclare, TaskCatalogEnum.TaxDeclareUpdate);
-    }
-    
-    
-    /**
-     * 撤销申报
-     * 
-     */
-    public void cancelDeclareAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
-    		throws SHRWebException {
-    	System.out.print("申报作废开始1");
-    	this.updateOrCancel(request, response, TaskCatalogEnum.CancelTaxDeclare);
-    	request.setAttribute(CmpConstants.CMP_LOG_OPERATE, "cancelDeclare");
-    	System.out.print("申报作废开始over");
-    }
-    
-    /**
-     * 更正申请
-     */
-    public void updateDeclareAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
-    		throws SHRWebException {
-    	this.updateOrCancel(request, response, TaskCatalogEnum.TaxDeclareUpdate);
-    	request.setAttribute(CmpConstants.CMP_LOG_OPERATE, "updateDeclare");
-    }
-    
-    /**
-     * 撤销更正
-     * 
-     */
-    public void cancelUpdateAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
-    		throws SHRWebException {
-    	this.updateOrCancel(request, response, TaskCatalogEnum.CancelTaxUpdate);
-    	request.setAttribute(CmpConstants.CMP_LOG_OPERATE, "cancelUpdate");
-    }
-    
-    
-		
-
-    
-    
-    
 }

+ 9 - 9
websrc/com/kingdee/eas/custom/compensation/service/CancelDeclareService.java

@@ -133,16 +133,16 @@ public class CancelDeclareService implements IHRMsfService {
             incomeTaxDeclarInfo.setIsCancelled(1);
             iIncomeTaxDeclar.updatePartial(incomeTaxDeclarInfo, updateSic);
         }
-   
-          
+
+
     }
 
-     
-    
-	
-	
-	
-	
-	
+
+
+
+
+
+
+
 }
 

+ 4 - 1
websrc/com/kingdee/eas/custom/compensation/service/SynIncomeTaxDeclareService.java

@@ -85,21 +85,24 @@ public class SynIncomeTaxDeclareService implements IHRMsfService {
                 //请求失败响应
                 String msg = feedback.getHead().getMsg();
                 //throw new BOSException(msg);
+                logInfo.setStatus("处理中");
                 return MessageResult.FAILED(msg);
             } else {
                 //调用成功
                 //请求id
                 body = feedback.getBody();
                 logInfo.setOutParameter(mapper.writeValueAsString(body));//回参
-                LogInfoFactory.getLocalInstance(context).addnew(logInfo);
                 if (body.getDeclarationStateCode().equals("6") || body.getDeclarationStateCode().equals("5")) {
                     saveTaxDeclaration(context, param);
                 }
+                logInfo.setStatus("成功");
             }
+            LogInfoFactory.getLocalInstance(context).addnew(logInfo);
             return MessageResult.SUCCESS(mapper.writeValueAsString(body));
         } catch (IOException e) {
             e.printStackTrace();
             logInfo.setErrorInfo(e.getMessage());//错误信息
+            logInfo.setStatus("失败");
             LogInfoFactory.getLocalInstance(context).save(logInfo);
             //throw new BOSException(e);
             return MessageResult.ERROR(e.getMessage());

+ 26 - 9
websrc/com/kingdee/eas/custom/compensation/service/SynIndividualIncomeTaxService.java

@@ -9,6 +9,7 @@ import cn.com.servyou.rmi.client.ClientProxyFactory;
 import cn.com.servyou.service.TaxRequest;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.kingdee.bos.BOSException;
 import com.kingdee.bos.Context;
@@ -67,20 +68,22 @@ public class SynIndividualIncomeTaxService implements IHRMsfService {
         logger.error("requestId--------" + requestId);
         logger.error("param--------" + param);
         try {
+            ObjectMapper mapper = new ObjectMapper();
             //客户端代理工厂
             ClientProxyFactory clientProxyFactory = ClientProxyFactoryUtils.getClientProxyFactory();
             //算税请求接口
             TaxRequest taxRequest = clientProxyFactory.getTaxRequest();
             ApiResponse<CalculateTaxResultRequest> aSynIndividualIncomeTaxFeedback = taxRequest.getReverseASynIndividualIncomeTaxFeedback(requestId);
+            logger.error("aSynIndividualIncomeTaxFeedback--------" + mapper.writeValueAsString(aSynIndividualIncomeTaxFeedback));
             String status = aSynIndividualIncomeTaxFeedback.getHead().getStatus();
             logInfo.setInterfaceAddress("/gateway/iit/reverseCalculateTax/getASynIndividualIncomeTaxFeedback");//接口地址
             logInfo.setInterfaceName("getASynIndividualIncomeTaxFeedback");//接口名
-            ObjectMapper mapper = new ObjectMapper();
             logInfo.setInParameter(mapper.writeValueAsString(aSynIndividualIncomeTaxFeedback));//入参
             CalculateTaxResultRequest body = null;
             if ("N".equals(status)) {
                 //请求失败响应
                 String msg = aSynIndividualIncomeTaxFeedback.getHead().getMsg();
+                logInfo.setStatus("处理中");
                 //throw new BOSException(msg);
                 return MessageResult.FAILED(msg);
             } else {
@@ -89,16 +92,22 @@ public class SynIndividualIncomeTaxService implements IHRMsfService {
                 body = aSynIndividualIncomeTaxFeedback.getBody();
                 logger.error("SynIndividualIncomeTaxService----------body---" + mapper.writeValueAsString(body));
                 logInfo.setOutParameter(mapper.writeValueAsString(body));//回参
-                LogInfoFactory.getLocalInstance(context).addnew(logInfo);
+                //if (body.getEmployeeDeclareFeedbackList() != null) {
+                logInfo.setStatus("成功");
                 disposeTaxPaymentBackCalculate(context, body, param);
-
+                //} else {
+                //    logInfo.setStatus("人员报错");
+                //}
             }
-            logger.error("SynIndividualIncomeTaxService----------OSF----end");
+            LogInfoFactory.getLocalInstance(context).addnew(logInfo);
             return MessageResult.SUCCESS(mapper.writeValueAsString(body));
         } catch (IOException e) {
             e.printStackTrace();
             logInfo.setErrorInfo(e.getMessage());//错误信息
+            logInfo.setStatus("失败");
             LogInfoFactory.getLocalInstance(context).save(logInfo);
+            logger.error("SynIndividualIncomeTaxService----------error---" + e.getMessage());
+
             //throw new BOSException(e);
             return MessageResult.ERROR(e.getMessage());
         }
@@ -111,30 +120,37 @@ public class SynIndividualIncomeTaxService implements IHRMsfService {
      * @param param   员工ID
      * @return
      */
-    public void disposeTaxPaymentBackCalculate(Context ctx, CalculateTaxResultRequest resBody, com.alibaba.fastjson.JSONObject param) throws BOSException, EASBizException {
+    public void disposeTaxPaymentBackCalculate(Context ctx, CalculateTaxResultRequest
+            resBody, com.alibaba.fastjson.JSONObject param) throws BOSException, EASBizException, JsonProcessingException {
         logger.error("addTaxPaymentBackCalculate============Start===============");
+        ObjectMapper mapper = new ObjectMapper();
+
         ITaxPaymentBackCalculate iTaxPaymentBackCalculate = TaxPaymentBackCalculateFactory.getLocalInstance(ctx);
 
         String taxItemPlanNumber = param.getString("taxItemPlanNumber");//个税项目方案
+        logger.error("taxItemPlanNumber============" + taxItemPlanNumber);
 
         ComplexTaxCalculateResult complexTaxCalculateResult = null;
         //zhsd   综合所得
         ComplexIncomeResultRequest complexIncomeResultRequest = resBody.getComplexIncomeResultRequest();
+        logger.error("complexIncomeResultRequest============" + mapper.writeValueAsString(complexIncomeResultRequest));
         //全年一次性奖金
-        if ("2024083001".equals(taxItemPlanNumber)) {
+        //if ("2024083001".equals(taxItemPlanNumber)) {
+        if ("GS003".equals(taxItemPlanNumber)) {
             //qnycxjjsslb  全年一次性奖金
             complexTaxCalculateResult = complexIncomeResultRequest.getAnnualOneTimeBonusIncome();
         }
         //一般劳务报酬所得列表
-        if ("2024083003".equals(taxItemPlanNumber)) {
+        if ("GS002".equals(taxItemPlanNumber)) {
             //lwbclb  一般劳务报酬所得列表
             complexTaxCalculateResult = complexIncomeResultRequest.getLaborRemunerationIncome();
         }
         //正常工资薪金对象
-        if ("2024083004".equals(taxItemPlanNumber)) {
+        if ("GS001".equals(taxItemPlanNumber)) {
             //zcgzxj  正常工资薪金对象
             complexTaxCalculateResult = complexIncomeResultRequest.getNormalSalarySpecIncome();
         }
+
         IPerson iPerson = PersonFactory.getLocalInstance(ctx);
         List<ComplexIncome> successComplexIncomes = complexTaxCalculateResult.getSuccessComplexIncomes();
         for (ComplexIncome complexIncome : successComplexIncomes) {
@@ -168,7 +184,8 @@ public class SynIndividualIncomeTaxService implements IHRMsfService {
         return "select CFParamContent as paramContent  from CT_TK_TaskRequestParam where CFTaskID in (select FID from CT_TK_Task where CFRequestId = '" + requestId + "')";
     }
 
-    public TaxPaymentBackCalculateCollection saveTaxPaymentBackCalculateCollection(Context ctx, JSONObject param, ComplexIncome complexIncome) throws BOSException, EASBizException {
+    public TaxPaymentBackCalculateCollection saveTaxPaymentBackCalculateCollection(Context ctx, JSONObject
+            param, ComplexIncome complexIncome) throws BOSException, EASBizException {
         TaxPaymentBackCalculateInfo taxPaymentBackCalculateInfo = new TaxPaymentBackCalculateInfo();
         String personId = param.getString("personId");//员工ID
         String periodYear = param.getString("periodYear");//统计年

+ 74 - 41
websrc/com/kingdee/eas/custom/individualback/TaxPersonRecordListHandlerExEx.java

@@ -128,7 +128,7 @@ public class TaxPersonRecordListHandlerExEx extends TaxPersonRecordListHandlerEx
         //TaxPersonRecordEntryCollection taxPersonRecordEntryCollUp = iTaxPersonRecordEntry.getTaxPersonRecordEntryCollection("select * ,person.* where  taxUnit = '" + taxUnitId + "' and lastReportMonth = '" + previousMonth + "' ");
         //人员报税信息数据
         TaxPersonRecordEntryCollection taxPersonRecordEntryCollDn = iTaxPersonRecordEntry.getTaxPersonRecordEntryCollection("select * ,person.*  where  taxUnit = '" + taxUnitId + "' and  personStatus = '1' ");
-        //TaxPersonRecordEntryCollection taxPersonRecordEntryCollDn = iTaxPersonRecordEntry.getTaxPersonRecordEntryCollection("select * ,person.*  where personStatus = '1' ");
+        TaxPersonRecordEntryCollection taxPersonRecordEntryCollAll = iTaxPersonRecordEntry.getTaxPersonRecordEntryCollection("select * ,person.*  where personStatus = '1' ");
         //保存上个月的核算人员
         //List<String> listUp = new ArrayList<>();
         //for (int i = 0; i < personIds.size(); i++) {
@@ -145,6 +145,15 @@ public class TaxPersonRecordListHandlerExEx extends TaxPersonRecordListHandlerEx
             if (taxPersonRecordCollection.size() > 0) {
                 logger.error("comparison--personId--------------" + personId);
                 list.add(personId);
+            }
+        }
+        //获取人员纳税信息所有人员的纳税单位
+        for (int i = 0; i < taxPersonRecordEntryCollAll.size(); i++) {
+            String personId = taxPersonRecordEntryCollAll.get(i).getPerson().getId().toString();
+            String taxPersonTaxUnitId = taxPersonRecordEntryCollAll.get(i).getTaxUnit().getId().toString();
+            TaxPersonRecordCollection taxPersonRecordCollection = iTaxPersonRecord.getTaxPersonRecordCollection("where person = '" + personId + "'");
+            if (taxPersonRecordCollection.size() > 0) {
+                logger.error("comparisonAll--personId--------------" + personId);
                 taxUnitMap.put(personId, taxPersonTaxUnitId);
             }
         }
@@ -199,58 +208,79 @@ public class TaxPersonRecordListHandlerExEx extends TaxPersonRecordListHandlerEx
 
         //对比人员纳税单位是否一致 获取薪酬核算和人员纳税信息相同人员
         Set<String> sameData = new HashSet<>();
-        for (String item : setUp) {
-            if (set.contains(item)) {
-                sameData.add(item);
+        TaxPersonRecordEntryCollection taxPersonRecordEntryColl = iTaxPersonRecordEntry.getTaxPersonRecordEntryCollection("select * ,person.* ");
+        for (int i = 0; i < taxPersonRecordEntryColl.size(); i++) {
+            TaxPersonRecordEntryInfo taxPersonRecordEntryInfo = taxPersonRecordEntryColl.get(i);
+            PersonInfo person = taxPersonRecordEntryInfo.getPerson();
+            logger.error("person------" + person.getId().toString());
+            if (set.contains(person.getId().toString())) {
+                sameData.add(person.getId().toString());
             }
         }
+        //Set<String> sameData = new HashSet<>();
+        //for (String item : setUp) {
+        //    if (set.contains(item)) {
+        //        sameData.add(item);
+        //    }
+        //}
+        logger.error("sameData------" + sameData);
         //判断同步的纳税单位是否与人员纳税信息的纳税单位一致
         for (String personId : sameData) {
+            logger.error("sameData---personId------" + personId);
             String taxPersonTaxUnitId = taxUnitMap.get(personId);
+            logger.error("taxPersonTaxUnitId------" + taxPersonTaxUnitId);
+            logger.error("taxUnitId------" + taxUnitId);
+            logger.error("taxUnitMap-------" + taxUnitMap);
             //不一致 需要更新任职受雇从业信息 把之前的改为非正常
-            if (!taxPersonTaxUnitId.equals(taxUnitId)) {
+            if (!taxUnitId.equals(taxPersonTaxUnitId) && taxPersonTaxUnitId != null) {
                 //departureDate 离职日期 获取离职日期为空的那个条数据
                 //TaxPersonRecordEntryInfo taxPersonRecordEntryInfo = iTaxPersonRecordEntry.getTaxPersonRecordEntryCollection("select * ,person.*  where departureDate is null ").get(0);
-                TaxPersonRecordEntryInfo taxPersonRecordEntryInfo = iTaxPersonRecordEntry.getTaxPersonRecordEntryCollection("select * ,person.*  where personStatus = '1' and  taxUnit = '" + taxPersonTaxUnitId + "'").get(0);
-                logger.error("taxPersonRecordEntryInfo------" + taxPersonRecordEntryInfo);
-                //人员状态
-                taxPersonRecordEntryInfo.setPersonStatus(PersonStatusEnum.NotNormal);
-                //离职日期为当前月最后一天   LocalDate.of(periodYear, periodMonth, 1)
-                LocalDate dateTime = LocalDate.of(periodYear, periodMonth - 1, 1);
-                taxPersonRecordEntryInfo.setDepartureDate(Date.from(dateTime.withDayOfMonth(dateTime.lengthOfMonth()).atStartOfDay(ZoneId.systemDefault()).toInstant()));
-                iTaxPersonRecordEntry.updatePartial(taxPersonRecordEntryInfo, updateSic);
+                TaxPersonRecordEntryCollection taxPersonRecordEntryCollection = iTaxPersonRecordEntry.getTaxPersonRecordEntryCollection("select * ,person.*  where personStatus = '1' and  taxUnit = '" + taxPersonTaxUnitId + "'");
+                if (taxPersonRecordEntryCollection.size() > 0) {
+                    TaxPersonRecordEntryInfo taxPersonRecordEntryInfo = taxPersonRecordEntryCollection.get(0);
+                    logger.error("taxPersonRecordEntryInfo------" + taxPersonRecordEntryInfo);
+                    //人员状态
+                    taxPersonRecordEntryInfo.setPersonStatus(PersonStatusEnum.NotNormal);
+                    //离职日期为当前月最后一天   LocalDate.of(periodYear, periodMonth, 1)
+                    LocalDate dateTime = LocalDate.of(periodYear, periodMonth - 1, 1);
+                    Date lengthOfMonthDate = Date.from(dateTime.withDayOfMonth(dateTime.lengthOfMonth()).atStartOfDay(ZoneId.systemDefault()).toInstant());
+                    if (taxPersonRecordEntryInfo.getEmployedDate().compareTo(lengthOfMonthDate) >= 0) {
+                        taxPersonRecordEntryInfo.setDepartureDate(taxPersonRecordEntryInfo.getEmployedDate());
+                    } else {
+                        taxPersonRecordEntryInfo.setDepartureDate(lengthOfMonthDate);
+                    }
+                    iTaxPersonRecordEntry.updatePartial(taxPersonRecordEntryInfo, updateSic);
 
 
-                //新增一条新的数据
-                TaxPersonRecordEntryInfo taxPersonRecordEntryInfoNew = new TaxPersonRecordEntryInfo();
-                taxPersonRecordEntryInfoNew.setPerson(taxPersonRecordEntryInfo.getPerson());
-                TaxPersonRecordInfo taxPersonRecordInfo = iTaxPersonRecord.getTaxPersonRecordCollection("where person = '" + personId + "'").get(0);
-                logger.error("taxPersonRecordInfo--------" + taxPersonRecordInfo);
+                    //新增一条新的数据
+                    TaxPersonRecordEntryInfo taxPersonRecordEntryInfoNew = new TaxPersonRecordEntryInfo();
+                    taxPersonRecordEntryInfoNew.setPerson(taxPersonRecordEntryInfo.getPerson());
+                    TaxPersonRecordInfo taxPersonRecordInfo = iTaxPersonRecord.getTaxPersonRecordCollection("where person = '" + personId + "'").get(0);
+                    logger.error("taxPersonRecordInfo--------" + taxPersonRecordInfo);
 
-                taxPersonRecordEntryInfoNew.setBill(taxPersonRecordInfo);
-                //获取纳税单位
-                ITaxUnit iTaxUnit = TaxUnitFactory.getLocalInstance(ctx);
-                TaxUnitInfo taxUnitInfo = iTaxUnit.getTaxUnitInfo("where id = '" + taxUnitId + "'");
-                logger.error("taxUnitInfo--------" + taxUnitInfo);
-                taxPersonRecordEntryInfoNew.setTaxUnit(taxUnitInfo);
-                //人员状态
-                taxPersonRecordEntryInfoNew.setPersonStatus(PersonStatusEnum.Normal);
-                //获取当前月的最后一天转成Date类型 //任职受雇从业日期为当前月第一天
-                taxPersonRecordEntryInfoNew.setEmployedDate(oneDay);
-                taxPersonRecordEntryInfoNew.setPayerType(taxPersonRecordEntryInfo.getPayerType());
-                //报送状态
-                taxPersonRecordEntryInfoNew.setSubmitStatus(SubmitStatusEnum.NotSubmit);
-                taxPersonRecordEntryInfoNew.setLastReportMonth(yearMonth);
-                //任职受雇从业类型  默认雇员
-                taxPersonRecordEntryInfoNew.setEmployedType(EmployedTypeEnum.Employee);
-                //是否扣除减除费用 默认是
-                taxPersonRecordEntryInfoNew.setDeductFees(DeductFeesEnum.Deduct);
-                IObjectPK saveEntry = iTaxPersonRecordEntry.save(taxPersonRecordEntryInfoNew);
-                logger.error("saveEntry--------分录新增返回ID" + saveEntry);
+                    taxPersonRecordEntryInfoNew.setBill(taxPersonRecordInfo);
+                    //获取纳税单位
+                    ITaxUnit iTaxUnit = TaxUnitFactory.getLocalInstance(ctx);
+                    TaxUnitInfo taxUnitInfo = iTaxUnit.getTaxUnitInfo("where id = '" + taxUnitId + "'");
+                    logger.error("taxUnitInfo--------" + taxUnitInfo);
+                    taxPersonRecordEntryInfoNew.setTaxUnit(taxUnitInfo);
+                    //人员状态
+                    taxPersonRecordEntryInfoNew.setPersonStatus(PersonStatusEnum.Normal);
+                    //获取当前月的最后一天转成Date类型 //任职受雇从业日期为当前月第一天
+                    taxPersonRecordEntryInfoNew.setEmployedDate(oneDay);
+                    taxPersonRecordEntryInfoNew.setPayerType(taxPersonRecordEntryInfo.getPayerType());
+                    //报送状态
+                    taxPersonRecordEntryInfoNew.setSubmitStatus(SubmitStatusEnum.NotSubmit);
+                    taxPersonRecordEntryInfoNew.setLastReportMonth(yearMonth);
+                    //任职受雇从业类型  默认雇员
+                    taxPersonRecordEntryInfoNew.setEmployedType(EmployedTypeEnum.Employee);
+                    //是否扣除减除费用 默认是
+                    taxPersonRecordEntryInfoNew.setDeductFees(DeductFeesEnum.Deduct);
+                    IObjectPK saveEntry = iTaxPersonRecordEntry.save(taxPersonRecordEntryInfoNew);
+                    logger.error("saveEntry--------分录新增返回ID" + saveEntry);
+                }
             }
         }
-
-
     }
 
     /**
@@ -296,7 +326,10 @@ public class TaxPersonRecordListHandlerExEx extends TaxPersonRecordListHandlerEx
             for (int i = 0; i < personCollection.size(); i++) {
                 PersonInfo personInfo = personCollection.get(i);
                 boolean exists = iTaxPersonRecordEntry.exists("where person = '" + personInfo.getId().toString() + "' and taxUnit = '" + taxUnitId + "' and lastReportMonth = '" + yearMonth + "' ");
-                if (!exists) {
+                boolean exists2 = iTaxPersonRecord.exists("where person = '" + personInfo.getId().toString() + "'");
+                logger.error("exists--------" + exists2);
+                logger.error("exists2--------" + exists2);
+                if (!exists && !exists2) {
                     TaxPersonRecordInfo taxPersonRecordInfo = new TaxPersonRecordInfo();
                     //人员纳税分录对象
                     TaxPersonRecordEntryInfo taxPersonRecordEntryInfo = new TaxPersonRecordEntryInfo();