hr_clean.sql 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. --EASHR账套分离脚本
  2. --接口信息
  3. --executeClearSpeciallyData (Connection conn, String org_ID, String period_ID, Date starttime, Date endtime ,int clearType)
  4. --1.conn数据连接信息
  5. --2.$ORGID删除财务组织的FID
  6. --3.$FPERIOD_ID会计期间
  7. --4.$starttime开始时间
  8. --5.$endtime结束时间
  9. --6.clearType用以标志帐套清理类型,1。按组织删除,2。按组织+期间删除,3。按期间删除;
  10. --
  11. --遗留问题:
  12. --1.调薪单如何按照日期?
  13. --2.薪酬方案如何删除?动态表如何删除?
  14. --3.薪点方案如何删除?动态表如何删除?
  15. --删除费用分配单对应的botp关系分录
  16. delete from T_BOT_RelationEntry where fkeyid in(
  17. select fid from T_BOT_Relation where FSrcObjectID in(
  18. select fid from t_hr_grant where FCmpPeriod IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  19. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  20. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  21. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  22. ))
  23. AND FHROrgUnitID in(
  24. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  25. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  26. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  27. )));
  28. --删除费用分配单对应的botp关系
  29. delete from T_BOT_Relation where FSrcObjectID in(
  30. select fid from t_hr_grant where FCmpPeriod IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  31. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  32. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  33. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  34. ))
  35. AND FHROrgUnitID in(
  36. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  37. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  38. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  39. )
  40. );
  41. --删除费用分配单分录
  42. delete from T_HR_GRANTENTRY where FGrantID in (
  43. select fid from t_hr_grant where FCmpPeriod IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  44. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  45. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  46. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  47. ))
  48. AND FHROrgUnitID in(
  49. SELECT "FROMUNIT".FID
  50. FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  51. INNER JOIN T_ORG_BaseUnit AS "FROMUNIT" ON "ORGUNITRELATION".FFromUnitID = "FROMUNIT".FID
  52. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  53. INNER JOIN T_ORG_BaseUnit AS "TOUNIT" ON "ORGUNITRELATION".FToUnitID = "TOUNIT".FID
  54. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "TOUNIT".FID IN ($ORGID)
  55. )
  56. );
  57. --删除费用分配单
  58. delete from t_hr_grant where FCmpPeriod IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  59. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  60. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  61. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  62. ))
  63. AND FHROrgUnitID in(
  64. SELECT "FROMUNIT".FID
  65. FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  66. INNER JOIN T_ORG_BaseUnit AS "FROMUNIT" ON "ORGUNITRELATION".FFromUnitID = "FROMUNIT".FID
  67. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  68. INNER JOIN T_ORG_BaseUnit AS "TOUNIT" ON "ORGUNITRELATION".FToUnitID = "TOUNIT".FID
  69. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "TOUNIT".FID IN ($ORGID)
  70. );
  71. --删除补扣补发所得税
  72. delete from T_HR_FillFillTax where FCmpSchemeID in(
  73. select fid from T_HR_CMPSCHEME where FHROrgUnitID in(
  74. SELECT
  75. "FROMUNIT".FID
  76. FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  77. INNER JOIN T_ORG_BaseUnit AS "FROMUNIT"
  78. ON "ORGUNITRELATION".FFromUnitID = "FROMUNIT".FID
  79. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION"
  80. ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  81. INNER JOIN T_ORG_BaseUnit AS "TOUNIT"
  82. ON "ORGUNITRELATION".FToUnitID = "TOUNIT".FID
  83. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "TOUNIT".FID
  84. IN ($ORGID) AND FCmpPeriod IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  85. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  86. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  87. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  88. ))
  89. )
  90. );
  91. --删除补扣补发明细
  92. delete from T_HR_FillFillDetail where FFillFillID in(
  93. select fid from T_HR_FillFill where FPeriodEndInputID in(
  94. select fid from T_HR_PeriodEndInput where FCmpPeriodID IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  95. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  96. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  97. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  98. ))
  99. AND FHROrgUnitID in(
  100. SELECT
  101. "FROMUNIT".FID
  102. FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  103. INNER JOIN T_ORG_BaseUnit AS "FROMUNIT"
  104. ON "ORGUNITRELATION".FFromUnitID = "FROMUNIT".FID
  105. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION"
  106. ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  107. INNER JOIN T_ORG_BaseUnit AS "TOUNIT"
  108. ON "ORGUNITRELATION".FToUnitID = "TOUNIT".FID
  109. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "TOUNIT".FID
  110. IN ($ORGID)
  111. )
  112. )
  113. );
  114. --删除补扣补发
  115. delete from T_HR_FillFill where FPeriodEndInputID in(
  116. select fid from T_HR_PeriodEndInput where FCmpPeriodID IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  117. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  118. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  119. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  120. ))
  121. AND FHROrgUnitID in(
  122. SELECT
  123. "FROMUNIT".FID
  124. FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  125. INNER JOIN T_ORG_BaseUnit AS "FROMUNIT"
  126. ON "ORGUNITRELATION".FFromUnitID = "FROMUNIT".FID
  127. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION"
  128. ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  129. INNER JOIN T_ORG_BaseUnit AS "TOUNIT"
  130. ON "ORGUNITRELATION".FToUnitID = "TOUNIT".FID
  131. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "TOUNIT".FID
  132. IN ($ORGID)
  133. )
  134. );
  135. --删除期未输入
  136. delete from T_HR_PeriodEndInput where FCmpPeriodID IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  137. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  138. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  139. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  140. ))
  141. AND FHROrgUnitID in(
  142. SELECT
  143. "FROMUNIT".FID
  144. FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  145. INNER JOIN T_ORG_BaseUnit AS "FROMUNIT"
  146. ON "ORGUNITRELATION".FFromUnitID = "FROMUNIT".FID
  147. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION"
  148. ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  149. INNER JOIN T_ORG_BaseUnit AS "TOUNIT"
  150. ON "ORGUNITRELATION".FToUnitID = "TOUNIT".FID
  151. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "TOUNIT".FID
  152. IN ($ORGID)
  153. );
  154. --删除部门内分配方案明细
  155. delete from T_HR_DeptInnerSchemeEntry where FDeptInnerSchemeID in(
  156. select fid from T_HR_DeptInnerScheme where fid in(
  157. select FDeptInnerSchemeID from T_HR_DeptSchemeEntry where FCmpPeriodID IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  158. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  159. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  160. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  161. ))
  162. AND FDeptSchemeID in(
  163. select fid from T_HR_DeptScheme where FHROrgUnitID in(
  164. SELECT
  165. "FROMUNIT".FID
  166. FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  167. INNER JOIN T_ORG_BaseUnit AS "FROMUNIT"
  168. ON "ORGUNITRELATION".FFromUnitID = "FROMUNIT".FID
  169. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION"
  170. ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  171. INNER JOIN T_ORG_BaseUnit AS "TOUNIT"
  172. ON "ORGUNITRELATION".FToUnitID = "TOUNIT".FID
  173. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "TOUNIT".FID
  174. IN ($ORGID)
  175. )
  176. )
  177. ));
  178. --删除部门内分配方案
  179. delete from T_HR_DeptInnerScheme where fid in(
  180. select FDeptInnerSchemeID from T_HR_DeptSchemeEntry where FCmpPeriodID IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  181. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  182. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  183. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  184. ))
  185. AND FDeptSchemeID in(
  186. select fid from T_HR_DeptScheme where FHROrgUnitID in(
  187. SELECT
  188. "FROMUNIT".FID
  189. FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  190. INNER JOIN T_ORG_BaseUnit AS "FROMUNIT"
  191. ON "ORGUNITRELATION".FFromUnitID = "FROMUNIT".FID
  192. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION"
  193. ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  194. INNER JOIN T_ORG_BaseUnit AS "TOUNIT"
  195. ON "ORGUNITRELATION".FToUnitID = "TOUNIT".FID
  196. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "TOUNIT".FID
  197. IN ($ORGID)
  198. )
  199. )
  200. );
  201. --按财务组织删除费用分配单
  202. delete from T_BOT_RelationEntry where fkeyid in(
  203. select fid from T_BOT_Relation where FSrcObjectID in(
  204. select fid from t_hr_grant where FCompanyID IN ($ORGID)
  205. AND FCmpPeriod IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  206. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  207. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  208. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  209. ))
  210. ));
  211. delete from T_BOT_Relation where FSrcObjectID in(
  212. select fid from t_hr_grant where FCompanyID IN ($ORGID)
  213. AND FCmpPeriod IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  214. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  215. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  216. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  217. ))
  218. );
  219. delete from T_HR_GRANTENTRY where FGrantID in (
  220. select fid from t_hr_grant where FCompanyID IN ($ORGID)
  221. AND FCmpPeriod IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  222. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  223. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  224. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  225. ))
  226. );
  227. delete from t_hr_grant where FCompanyID IN ($ORGID)
  228. AND FCmpPeriod IN (SELECT FID FROM T_HR_CMPPERIOD WHERE FFiscalPeriod IN ($FPERIOD_ID) AND FHROrgUnitID IN (
  229. SELECT "ORGUNITRELATION".FFromUnitID FROM T_ORG_UnitRelation AS "ORGUNITRELATION"
  230. INNER JOIN T_ORG_TypeRelation AS "TYPERELATION" ON "ORGUNITRELATION".FTypeRelationID = "TYPERELATION".FID
  231. WHERE "TYPERELATION".FFromType = 16 AND "TYPERELATION".FToType = 1 and "ORGUNITRELATION".FToUnitID IN ($ORGID)
  232. ));