c5bee38567c1a641bee6821971f3a97523650d33.svn-base 63 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432
  1. package com.kingdee.shr.compensation.util.integrate;
  2. import java.sql.SQLException;
  3. import java.util.ArrayList;
  4. import java.util.Date;
  5. import java.util.HashMap;
  6. import java.util.HashSet;
  7. import java.util.List;
  8. import java.util.Map;
  9. import java.util.Set;
  10. import org.apache.commons.lang3.StringUtils;
  11. import org.apache.log4j.Logger;
  12. import com.alibaba.fastjson.JSONObject;
  13. import com.kingdee.bos.BOSException;
  14. import com.kingdee.bos.Context;
  15. import com.kingdee.bos.util.EASResource;
  16. import com.kingdee.eas.common.EASBizException;
  17. import com.kingdee.eas.hr.base.HRBillStateEnum;
  18. import com.kingdee.eas.util.app.DbUtil;
  19. import com.kingdee.jdbc.rowset.IRowSet;
  20. import com.kingdee.shr.base.syssetting.app.filter.HRFilterUtils;
  21. import com.kingdee.shr.compensation.app.integrate.BatchSubmitSchemeBillDataSource;
  22. import com.kingdee.shr.compensation.app.integrate.BatchSubmitShemeBillFactory;
  23. import com.kingdee.shr.compensation.app.integrate.BatchSubmitShemeBillInfo;
  24. import com.kingdee.shr.compensation.app.integrate.CalSubmitItemDataType;
  25. import com.kingdee.shr.compensation.app.integrate.DateTypeEnum;
  26. import com.kingdee.shr.compensation.integrate.dto.CalShemeSubmitItemDTO;
  27. import com.kingdee.shr.compensation.resource.ResourceConstant;
  28. import com.kingdee.shr.compensation.util.CmpDateUtil;
  29. import com.kingdee.shr.compensation.util.CmpStrUtil;
  30. public class CmpIntegrateUtilsNew {
  31. private static Logger logger = Logger.getLogger(CmpIntegrateUtilsNew.class);
  32. /**
  33. * 重载更新分录审批状态
  34. *
  35. * @param ctx
  36. * @param billId
  37. * @param stateEnum
  38. * @throws BOSException
  39. * @throws EASBizException
  40. */
  41. public static void updateEntryBillState(Context ctx, String billId, HRBillStateEnum stateEnum,
  42. String billEntryTable) throws BOSException, EASBizException {
  43. BatchSubmitShemeBillInfo info = BatchSubmitShemeBillFactory.getLocalInstance(ctx)
  44. .getBatchSubmitShemeBillInfo("where id = '" + billId + "'");
  45. String billEntryTableName = billEntryTable;
  46. if (StringUtils.isEmpty(billEntryTableName)) {
  47. Map<String, Object> map = CmpIntegrateUtilsNew.getBillColumnListAndBillEntryTableName(ctx,
  48. info.getSubmitScheme().getId().toString());
  49. billEntryTableName = map.get("fBillEntryTableName").toString(); // 方案对应的动态表名
  50. }
  51. // 更新分录状态
  52. String sqlTemplate = "UPDATE %s SET FBillState = ? WHERE FBILLID = ?";
  53. String sql = String.format(sqlTemplate, billEntryTableName);
  54. DbUtil.execute(ctx, sql, new Object[] {stateEnum.getValue(), info.getId().toString()});
  55. }
  56. /**
  57. * 指定业务组织下,当前用户可使用且数据权限分配的薪酬项目
  58. * @throws EASBizException
  59. */
  60. public static String getUsableItemByHro(Context ctx, String hrOrgUnit,boolean isDisatribute) {
  61. StringBuffer personCmpItemPerm = new StringBuffer();
  62. personCmpItemPerm.append("select FBaseInfoId from T_HR_SCalSubmitItemRelHR where T_HR_SCalSubmitItemRelHR.FHrOrgUseId ='");
  63. personCmpItemPerm.append(hrOrgUnit).append("'");//可使用
  64. if(isDisatribute){
  65. personCmpItemPerm.append(" and FState=100 ");
  66. }
  67. return personCmpItemPerm.toString();
  68. }
  69. /**
  70. * 判断提报方案是否存在 未提交 审批中 未审批 已审批
  71. * @param schemeId
  72. * @return
  73. */
  74. public static boolean checkSubmitSchemeIsUsingBill( Context ctx,String schemeId){
  75. boolean flag = false ;
  76. if (StringUtils.isEmpty(schemeId)) {
  77. return flag ;
  78. }
  79. String sql = "Select top 1 fid from T_HR_SBatchSubmitShemeBill where fbillstate in (0,1,2) and FSubmitSchemeID = ? " ;
  80. try {
  81. IRowSet rs = DbUtil.executeQuery(ctx, sql, new Object[]{schemeId});
  82. if (rs.size()>0) {
  83. flag = true;
  84. }
  85. } catch (BOSException e) {
  86. logger.error(e);
  87. }
  88. return flag ;
  89. }
  90. /**
  91. * 判断提报方案是否存在 未提交 审批中 未审批 已审批
  92. * @param schemeId
  93. * @return
  94. */
  95. public static boolean checkSubmitBillEntryIsExists( Context ctx,String billEntryTableName ,String billId){
  96. boolean flag = false ;
  97. if (StringUtils.isEmpty(billId)) {
  98. return flag ;
  99. }
  100. String sql = "Select top 1 fid from "+billEntryTableName+" where fbillId = ? " ;
  101. try {
  102. IRowSet rs = DbUtil.executeQuery(ctx, sql, new Object[]{billId});
  103. if (rs.size()>0) {
  104. flag = true;
  105. }
  106. } catch (BOSException e) {
  107. logger.error(e);
  108. }
  109. return flag ;
  110. }
  111. /**
  112. * 判断提报方案是否存在 审批中 未审批
  113. * @param schemeId
  114. * @return
  115. */
  116. public static boolean checkSubmitSchemeIsUsedBill(Context ctx,String schemeId){
  117. boolean flag = false ;
  118. if (StringUtils.isEmpty(schemeId)) {
  119. return flag ;
  120. }
  121. String sql = "Select top 1 fid from T_HR_SBatchSubmitShemeBill where fbillstate in (1,2) and FSubmitSchemeID = ? " ;
  122. try {
  123. IRowSet rs = DbUtil.executeQuery(ctx, sql, new Object[]{schemeId});
  124. if (rs.size()>0) {
  125. flag = true;
  126. }
  127. } catch (BOSException e) {
  128. logger.error(e);
  129. }
  130. return flag ;
  131. }
  132. /**
  133. * 判断提报方案是否存在 未提交 审批中 未审批
  134. * @param schemeId
  135. * @return
  136. */
  137. @SuppressWarnings("rawtypes")
  138. public static Map checkSubmitSchemesIsUsingBill(Context ctx,List<String> list){
  139. Map<String ,Boolean > map = new HashMap<String ,Boolean>();
  140. String sql = "Select distinct FSubmitSchemeID from T_HR_SBatchSubmitShemeBill where fbillstate in (0,1,2) "
  141. + " and FSubmitSchemeID in( "+CmpStrUtil.convertListToString(list)+") " ;
  142. Set<String> snSet = new HashSet<String>();
  143. try {
  144. IRowSet rs = DbUtil.executeQuery(ctx, sql);
  145. while (rs.next()) {
  146. String submitSchemeID = rs.getString("FSubmitSchemeID");
  147. snSet.add(submitSchemeID);
  148. }
  149. for( String submitSchemeID: list){
  150. map.put(submitSchemeID, snSet.contains(submitSchemeID));
  151. }
  152. } catch (Exception e) {
  153. logger.error(e);
  154. }
  155. return map ;
  156. }
  157. /**
  158. *
  159. * 根据方案id 获取方案提报单分录的提报项目列
  160. * @param schemeId
  161. * @return
  162. * @throws BOSException
  163. *
  164. */
  165. @SuppressWarnings("rawtypes")
  166. public static Map<String,List> assembleSubmitSchemeColModel(Context ctx,String schemeId, Integer dataSource) throws BOSException{
  167. Map<String,List> map = new HashMap<String,List>();
  168. List<String> colNames = new ArrayList<String>();
  169. List<Map<String, Object>> colModel = new ArrayList<Map<String, Object>>();
  170. if (StringUtils.isEmpty(schemeId)) {
  171. return map ;
  172. }
  173. String language = ctx.getLocale().getLanguage();
  174. String sql = "Select e.FSubmitTarget, e.FIsEnableSubmitElement,e.FEFFECTDATEDISPLAY , m.fieldSn,m.fdataType,m.fname_"+ language +" MNAME,t.FIsRequired ,m.FDataDot,m.FDataLength, "
  175. + " M.FDATETYPE,M.FFILTERFIELD,B.FENTITYNAME,B.FNAME_"+ language +" BNAME,B.FUSEUIPK, B.FMAINTAINUIPK "
  176. + " from T_HR_SCalSubmitScheme e "
  177. + " inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid "
  178. + " inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID "
  179. + " left join T_BS_SHRBasicItem b on m.FFilterField = b.fid "
  180. + " where e.fid = '"+schemeId+"' order by FSortSn";
  181. // String sql = "Select m.FNumber,e.FSubmitTarget,e.FIsEnableSubmitElement,e.FEFFECTDATEDISPLAY , m.fieldSn,m.fdataType,m.fname_"+ language +" MNAME,t.FIsRequired ,m.FDataDot,m.FDataLength, "
  182. // + " M.FDATETYPE,M.FFILTERFIELD,B.FNAME_"+ language +" BNAME, B.FUipk FMAINTAINUIPK,b.FISBASIC "
  183. // + " from T_HR_SCalSubmitScheme e "
  184. // + " inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid "
  185. // + " inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID "
  186. // + " left join T_HR_SCalSchemeItemForF7 b on m.FFilterField = b.fid "
  187. //// + " where e.fid = '"+schemeId+"' and m.FNumber != 'AwardName' and t.FIsShow = 1 order by FSortSn";
  188. // + " where e.fid = '"+schemeId+"' order by t.FSortSn asc ";
  189. try {
  190. String submitTarget = "" ,dataType = ""; //提报对象 01 person 02 org
  191. int dateType = 0;// 日期类型
  192. int effectDateDisplay = 0;
  193. IRowSet rs = DbUtil.executeQuery(ctx, sql);
  194. boolean f7Flag = true,isEnableSubmitElement = false;
  195. while (rs.next()) {
  196. //=====组装提报对象
  197. submitTarget = rs.getString("FSubmitTarget");
  198. effectDateDisplay = rs.getInt("FEFFECTDATEDISPLAY");
  199. isEnableSubmitElement = rs.getBoolean("FIsEnableSubmitElement");
  200. dataType = rs.getString("fdataType");// 0 数值 1 字符串
  201. //提报对象列
  202. if (f7Flag) {
  203. f7Flag = false;
  204. Map<String, Object> gridMainKeyIdMap = new HashMap<String, Object>();
  205. Map<String, Object> adminOrgUnitGridMainKeyIdMap = new HashMap<String, Object>();
  206. Map<String, Object> positionGridMainKeyIdMap = new HashMap<String, Object>();
  207. Map<String, Object> cmpEmpORGridMainKeyIdMap = new HashMap<String, Object>();
  208. Map<String, Object> gridIdMap = new HashMap<String, Object>();
  209. // 组装ID前端基础属性
  210. assembleColModelId(gridIdMap);
  211. colNames.add("id");
  212. colModel.add(gridIdMap);
  213. //==== 组装F7
  214. if ("02".equals(submitTarget)) {
  215. assembleColModelF7(gridMainKeyIdMap, "orgUnit", "提报组织", true);
  216. gridMainKeyIdMap.put(ColModelAttributeConstants.editoptions, assembleColModelF7("提报组织", "com.kingdee.eas.basedata.org.app.AdminOrgUnit.F7", true));
  217. gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, true);
  218. colNames.add("提报组织"); //colNames.add("提报组织");
  219. colModel.add(gridMainKeyIdMap);
  220. }else{
  221. Map<String, Object> gridPersonNumberMap = new HashMap<String, Object>();
  222. gridPersonNumberMap.put(ColModelAttributeConstants.name, "number");
  223. gridPersonNumberMap.put(ColModelAttributeConstants.label, "员工编码");
  224. gridPersonNumberMap.put(ColModelAttributeConstants.frozen, false);
  225. gridPersonNumberMap.put(ColModelAttributeConstants.width, 90);
  226. gridPersonNumberMap.put(ColModelAttributeConstants.align, "left");
  227. gridPersonNumberMap.put(ColModelAttributeConstants.key, true);
  228. gridPersonNumberMap.put(ColModelAttributeConstants.hidden, false);
  229. gridPersonNumberMap.put(ColModelAttributeConstants.editable, false);
  230. gridPersonNumberMap.put(ColModelAttributeConstants.sorttype, "string");
  231. gridPersonNumberMap.put(ColModelAttributeConstants.classes, "disabled");
  232. gridPersonNumberMap.put(ColModelAttributeConstants.edittype, "shrtext");
  233. gridPersonNumberMap.put(ColModelAttributeConstants.sortable, true);
  234. colNames.add("员工编码"); // colNames.add("员工编码");
  235. colModel.add(gridPersonNumberMap);
  236. String CmpEmpORelF7Uipk = "com.kingdee.shr.compensation.app.integrate.CmpEmpORelation.F7";
  237. // 3表示来源为团队提报的
  238. if (BatchSubmitSchemeBillDataSource.TEAM_SUBMIT_VALUE == dataSource) {
  239. CmpEmpORelF7Uipk = "com.kingdee.shr.compensation.app.integrate.stores.CmpEmpORelation.F7";
  240. }
  241. assembleColModelF7(gridMainKeyIdMap, "person", "员工姓名", true);
  242. gridMainKeyIdMap.put(ColModelAttributeConstants.editoptions, assembleColModelF7("员工姓名", CmpEmpORelF7Uipk,true));
  243. colNames.add("员工姓名"); // colNames.add("员工姓名");
  244. colModel.add(gridMainKeyIdMap);
  245. //行政组织
  246. assembleColModelF7NotEdit(adminOrgUnitGridMainKeyIdMap, "adminOrgUnit", "所属行政组织");
  247. adminOrgUnitGridMainKeyIdMap.put(ColModelAttributeConstants.sortable, true);
  248. // gridMainKeyIdMap.put(ColModelAttributeConstants.editoptions, assembleColModelF7("姓名", "shr.person.HRAndAdminOrg.F7"));
  249. colNames.add("所属行政组织"); //colNames.add("所属行政组织");
  250. colModel.add(adminOrgUnitGridMainKeyIdMap);
  251. //职位
  252. assembleColModelF7NotEdit(positionGridMainKeyIdMap, "position", "职位");
  253. positionGridMainKeyIdMap.put(ColModelAttributeConstants.sortable, true);
  254. colNames.add("职位"); //colNames.add("职位");
  255. colModel.add(positionGridMainKeyIdMap);
  256. //发薪任职id
  257. assembleColModelF7Hidden(cmpEmpORGridMainKeyIdMap, "cmpEmpORelation", "发薪任职");
  258. colNames.add("发薪任职"); // colNames.add("发薪任职");
  259. colModel.add(cmpEmpORGridMainKeyIdMap);
  260. //=====虚拟id 用于编辑保存
  261. Map<String, Object> gridPersonIdMap = new HashMap<String, Object>();
  262. gridPersonIdMap.put(ColModelAttributeConstants.name, "tempId");
  263. gridPersonIdMap.put(ColModelAttributeConstants.label, "员工或者组织临时id");
  264. gridPersonIdMap.put(ColModelAttributeConstants.frozen, false);
  265. gridPersonIdMap.put(ColModelAttributeConstants.width, 90);
  266. gridPersonIdMap.put(ColModelAttributeConstants.align, "left");
  267. gridPersonIdMap.put(ColModelAttributeConstants.key, true);
  268. gridPersonIdMap.put(ColModelAttributeConstants.hidden, true);
  269. gridPersonIdMap.put(ColModelAttributeConstants.editable, false);
  270. gridPersonIdMap.put(ColModelAttributeConstants.sorttype, "string");
  271. gridPersonIdMap.put(ColModelAttributeConstants.classes, "disabled");
  272. gridPersonIdMap.put(ColModelAttributeConstants.edittype, "shrtext");
  273. colNames.add("tempId");
  274. colModel.add(gridPersonIdMap);
  275. }
  276. // 申报要素,如果提报方案上选了启用申报要素,则申报要素必填
  277. if(isEnableSubmitElement){
  278. Map<String, Object> gridSubmitElementMap = new HashMap<String, Object>();
  279. assembleColModelF7(gridSubmitElementMap, "submitElement", "申报要素", true);
  280. gridSubmitElementMap.put(ColModelAttributeConstants.editoptions, assembleColModelF7("申报要素", "com.kingdee.shr.compensation.app.integrate.SubmitElement.SubmitBillEntry.F7",true));
  281. colNames.add("申报要素"); // colNames.add("申报要素");
  282. colModel.add(gridSubmitElementMap);
  283. }
  284. // 币别
  285. Map<String, Object> gridCurrencyMap = new HashMap<String, Object>();
  286. assembleColModelF7(gridCurrencyMap, "currency", "币别", true);
  287. gridCurrencyMap.put(ColModelAttributeConstants.editoptions, assembleColModelF7("币别", "com.kingdee.eas.basedata.assistant.app.Currency.CMP.F7",true));
  288. colNames.add("币别"); // colNames.add("币别");
  289. colModel.add(gridCurrencyMap);
  290. //日期控件
  291. //8.6sp1日期控件
  292. Map<String, Object> gridPersonNumberMap = new HashMap<String, Object>();
  293. gridPersonNumberMap.put(ColModelAttributeConstants.name, "effectDay");
  294. gridPersonNumberMap.put(ColModelAttributeConstants.label, "发生日期");
  295. gridPersonNumberMap.put(ColModelAttributeConstants.frozen, false);
  296. gridPersonNumberMap.put(ColModelAttributeConstants.width, 100);
  297. gridPersonNumberMap.put(ColModelAttributeConstants.align, "left");
  298. gridPersonNumberMap.put(ColModelAttributeConstants.key, true);
  299. gridPersonNumberMap.put(ColModelAttributeConstants.hidden, false);
  300. gridPersonNumberMap.put(ColModelAttributeConstants.editable, true);
  301. gridPersonNumberMap.put(ColModelAttributeConstants.sorttype, "date");
  302. gridPersonNumberMap.put(ColModelAttributeConstants.sortable, false);
  303. // gridPersonNumberMap.put(ColModelAttributeConstants.formatter, "datepicker"); 8.5sp1
  304. // gridPersonNumberMap.put(ColModelAttributeConstants.edittype, "shrdatepicker");
  305. gridPersonNumberMap.put(ColModelAttributeConstants.formatter, "shrDateTimePicker");
  306. gridPersonNumberMap.put(ColModelAttributeConstants.edittype, "shrDateTimePicker");
  307. gridPersonNumberMap.put(ColModelAttributeConstants.classes, "required");
  308. StringBuffer datapickerjsonBuffer = new StringBuffer();
  309. datapickerjsonBuffer.append("{");
  310. datapickerjsonBuffer.append("\"datepickerjson\":");
  311. datapickerjsonBuffer.append("{");
  312. datapickerjsonBuffer.append("\"id\":\"dp_autoSize\",");
  313. datapickerjsonBuffer.append("\"name\":\"dp_autoSize\",");
  314. datapickerjsonBuffer.append("\"minuteStep\":\"\",");
  315. datapickerjsonBuffer.append("\"showTimeZoneForCtrl\":false,");
  316. datapickerjsonBuffer.append("\"isAutoTimeZoneTrans\":false,");
  317. datapickerjsonBuffer.append("\"isShowUTC\":false,");
  318. datapickerjsonBuffer.append("\"isReadonlyUTC\":true,");
  319. datapickerjsonBuffer.append("\"isRemoveSeconds\":true,");
  320. if(DateTypeEnum.YYYYMM_VALUE == effectDateDisplay){
  321. datapickerjsonBuffer.append("\"isRemoveDay\":true,");
  322. }else if(DateTypeEnum.YYYYMMDD_VALUE == effectDateDisplay){
  323. datapickerjsonBuffer.append("\"isRemoveDay\":false,");
  324. }else{
  325. datapickerjsonBuffer.append("\"isRemoveDay\":true,");
  326. }
  327. datapickerjsonBuffer.append("\"ctrlType\":\"Date\"");
  328. datapickerjsonBuffer.append("},");
  329. datapickerjsonBuffer.append("\"validateJson\":");
  330. datapickerjsonBuffer.append("{");
  331. datapickerjsonBuffer.append("\"errMsg\":\"\",");
  332. datapickerjsonBuffer.append("\"rules\":\"required:true\",");
  333. datapickerjsonBuffer.append("\"validatetrigger\":\"focus keyup datachange\"");
  334. datapickerjsonBuffer.append("}");
  335. datapickerjsonBuffer.append("}");
  336. gridPersonNumberMap.put(ColModelAttributeConstants.editoptions, JSONObject.parseObject(datapickerjsonBuffer.toString()));
  337. colNames.add("发生日期"); // colNames.add("发生日期");
  338. colModel.add(gridPersonNumberMap);
  339. }
  340. //=====组装提报项目
  341. dataType = rs.getString("fdataType");// 0 数值 1 字符串2日期类型3F7过滤
  342. int isRequired = rs.getInt("FIsRequired"); // 1 必填
  343. int fDataDot = rs.getInt("FDataDot"); // 1 精度
  344. int fDataLength = rs.getInt("FDataLength"); // 1 字符长度
  345. if ("0".equals(dataType)) {
  346. // 0 数值
  347. Map<String, Object> schemeMap = new HashMap<String, Object>();
  348. schemeMap.put(ColModelAttributeConstants.name, "S"+rs.getString("fieldSn"));
  349. schemeMap.put(ColModelAttributeConstants.label, rs.getString("MNAME"));
  350. schemeMap.put(ColModelAttributeConstants.frozen, false);
  351. schemeMap.put(ColModelAttributeConstants.width, 90);
  352. schemeMap.put(ColModelAttributeConstants.align, "left");
  353. schemeMap.put(ColModelAttributeConstants.key, false);
  354. schemeMap.put(ColModelAttributeConstants.editable, true);
  355. schemeMap.put(ColModelAttributeConstants.sorttype, "bigdecimal");
  356. // schemeMap.put(ColModelAttributeConstants.sortable, true);
  357. //先不排序
  358. schemeMap.put(ColModelAttributeConstants.sortable, false);
  359. schemeMap.put(ColModelAttributeConstants.formatter, "numberfield");
  360. schemeMap.put(ColModelAttributeConstants.edittype, "numberfield");
  361. JSONObject editoptions = JSONObject.parseObject("{ \"inputJson\": { \"id\": \"txt_money\", \"name\": \"money\", \"<formatTy></formatTy>pe\": \"number\" }}");
  362. //添加必填校验
  363. if(isRequired == 1) {
  364. schemeMap.put(ColModelAttributeConstants.classes, "required");
  365. editoptions.put("validateJson", JSONObject.parseObject("{ \"errMsg\": \"\", \"rules\": \"required:true\", \"validatetrigger\": \"focus keyup datachange\" }"));
  366. }
  367. //添加精度
  368. JSONObject inputJson = editoptions.getJSONObject("inputJson");
  369. inputJson.put("decimalPrecision", fDataDot);
  370. //添加长度
  371. inputJson.put("maxlength", fDataLength);
  372. schemeMap.put(ColModelAttributeConstants.editoptions,editoptions);
  373. colModel.add(schemeMap);
  374. colNames.add(rs.getString("MNAME"));
  375. }else if(CalSubmitItemDataType.STRING_VALUE.equals(dataType)) {
  376. Map<String, Object> schemeMap = new HashMap<String, Object>();
  377. schemeMap.put(ColModelAttributeConstants.name, "S"+rs.getString("fieldSn"));
  378. schemeMap.put(ColModelAttributeConstants.label, rs.getString("MNAME"));
  379. schemeMap.put(ColModelAttributeConstants.frozen, false);
  380. schemeMap.put(ColModelAttributeConstants.width, 90);
  381. schemeMap.put(ColModelAttributeConstants.align, "left");
  382. schemeMap.put(ColModelAttributeConstants.key, false);
  383. schemeMap.put(ColModelAttributeConstants.editable, true);
  384. schemeMap.put(ColModelAttributeConstants.sorttype, "string");
  385. // schemeMap.put(ColModelAttributeConstants.sortable, true);
  386. schemeMap.put(ColModelAttributeConstants.sortable, false);
  387. JSONObject editoptions = JSONObject.parseObject("{ \"inputJson\": { } }");
  388. if(isRequired == 1) {
  389. schemeMap.put(ColModelAttributeConstants.classes, "required");
  390. editoptions.put("validateJson", JSONObject.parseObject("{ \"errMsg\": \"\", \"rules\": \"required:true\", \"validatetrigger\": \"focus keyup datachange\" }"));
  391. }else{
  392. editoptions.put("validateJson", JSONObject.parseObject("{ \"errMsg\": \"\", \"rules\": \"required:false\", \"validatetrigger\": \"focus keyup datachange\" }"));
  393. }
  394. //添加精度
  395. JSONObject inputJson = editoptions.getJSONObject("inputJson");
  396. inputJson.put("decimalPrecision", fDataDot);
  397. //添加长度
  398. inputJson.put("maxlength", fDataLength);
  399. schemeMap.put(ColModelAttributeConstants.editoptions, editoptions);
  400. schemeMap.put(ColModelAttributeConstants.edittype, "shrtext");
  401. colModel.add(schemeMap);
  402. colNames.add(rs.getString("MNAME"));
  403. }else if(CalSubmitItemDataType.DATE_VALUE.equals(dataType)){//日期类型
  404. dateType = rs.getInt("FDATETYPE");
  405. Map<String, Object> schemeMap = new HashMap<String, Object>();
  406. schemeMap.put(ColModelAttributeConstants.name, "S"+rs.getString("fieldSn"));
  407. schemeMap.put(ColModelAttributeConstants.label, rs.getString("MNAME"));
  408. schemeMap.put(ColModelAttributeConstants.frozen, false);
  409. schemeMap.put(ColModelAttributeConstants.width, 100);
  410. schemeMap.put(ColModelAttributeConstants.align, "left");
  411. schemeMap.put(ColModelAttributeConstants.key, true);
  412. schemeMap.put(ColModelAttributeConstants.hidden, false);
  413. schemeMap.put(ColModelAttributeConstants.editable, true);
  414. schemeMap.put(ColModelAttributeConstants.sorttype, "date");
  415. schemeMap.put(ColModelAttributeConstants.sortable, false);
  416. // gridPersonNumberMap.put(ColModelAttributeConstants.formatter, "datepicker"); 8.5sp1
  417. // gridPersonNumberMap.put(ColModelAttributeConstants.edittype, "shrdatepicker");
  418. schemeMap.put(ColModelAttributeConstants.formatter, "shrDateTimePicker");
  419. schemeMap.put(ColModelAttributeConstants.edittype, "shrDateTimePicker");
  420. if(isRequired == 1) {
  421. schemeMap.put(ColModelAttributeConstants.classes, "required");
  422. }
  423. StringBuffer datapickerjsonBuffer = new StringBuffer();
  424. datapickerjsonBuffer.append("{");
  425. datapickerjsonBuffer.append("\"datepickerjson\":");
  426. datapickerjsonBuffer.append("{");
  427. datapickerjsonBuffer.append("\"id\":\"dp_autoSize\",");
  428. datapickerjsonBuffer.append("\"name\":\"dp_autoSize\",");
  429. datapickerjsonBuffer.append("\"minuteStep\":\"\",");
  430. datapickerjsonBuffer.append("\"showTimeZoneForCtrl\":false,");
  431. datapickerjsonBuffer.append("\"isAutoTimeZoneTrans\":false,");
  432. datapickerjsonBuffer.append("\"isShowUTC\":false,");
  433. datapickerjsonBuffer.append("\"isReadonlyUTC\":true,");
  434. datapickerjsonBuffer.append("\"isRemoveSeconds\":true,");
  435. if(DateTypeEnum.YYYYMM_VALUE == dateType){
  436. datapickerjsonBuffer.append("\"isRemoveDay\":true,");
  437. }else if(DateTypeEnum.YYYYMMDD_VALUE == dateType){
  438. datapickerjsonBuffer.append("\"isRemoveDay\":false,");
  439. }else{
  440. datapickerjsonBuffer.append("\"isRemoveDay\":false,");
  441. }
  442. datapickerjsonBuffer.append("\"ctrlType\":\"Date\"");
  443. datapickerjsonBuffer.append("},");
  444. datapickerjsonBuffer.append("\"validateJson\":");
  445. datapickerjsonBuffer.append("{");
  446. datapickerjsonBuffer.append("\"errMsg\":\"\",");
  447. if(isRequired == 1){
  448. datapickerjsonBuffer.append("\"rules\":\"required:true\",");
  449. }else{
  450. datapickerjsonBuffer.append("\"rules\":\"required:false\",");
  451. }
  452. datapickerjsonBuffer.append("\"validatetrigger\":\"focus keyup datachange\"");
  453. datapickerjsonBuffer.append("}");
  454. datapickerjsonBuffer.append("}");
  455. schemeMap.put(ColModelAttributeConstants.editoptions, JSONObject.parseObject(datapickerjsonBuffer.toString()));
  456. colNames.add(rs.getString("MNAME"));
  457. colModel.add(schemeMap);
  458. }else if(CalSubmitItemDataType.F7_VALUE.equals(dataType)){
  459. Map<String, Object> schemeMap = new HashMap<String, Object>();
  460. assembleColModelF7(schemeMap, "S"+rs.getString("fieldSn"), rs.getString("MNAME"), isRequired == 1);
  461. Map<String, Object> editoptions = assembleColModelF7(rs.getString("BNAME"), rs.getString("FMAINTAINUIPK"), isRequired == 1,"");
  462. // Map<String, Object> f7Json = (Map<String, Object>) editoptions.get("f7Json"); //F7的过滤使用可维护,由于可使用查询可能会很慢,如果需要调整为可使用,则调整uipk获取可使用的即可,并且调整displayFormat和submitFormat
  463. // f7Json.put("displayFormat", "{BaseInfo.name}");
  464. // f7Json.put("submitFormat", "{BaseInfo.id}");
  465. schemeMap.put(ColModelAttributeConstants.editoptions, editoptions);
  466. colNames.add(rs.getString("MNAME"));
  467. colModel.add(schemeMap);
  468. }
  469. }
  470. // 描述
  471. Map<String, Object> gridDescriptionMap = new HashMap<String, Object>();
  472. gridDescriptionMap.put(ColModelAttributeConstants.name, "description");
  473. gridDescriptionMap.put(ColModelAttributeConstants.label, "备注");
  474. gridDescriptionMap.put(ColModelAttributeConstants.frozen, false);
  475. gridDescriptionMap.put(ColModelAttributeConstants.width, 90);
  476. gridDescriptionMap.put(ColModelAttributeConstants.align, "left");
  477. gridDescriptionMap.put(ColModelAttributeConstants.key, false);
  478. gridDescriptionMap.put(ColModelAttributeConstants.editable, true);
  479. gridDescriptionMap.put(ColModelAttributeConstants.sortable, false);
  480. gridDescriptionMap.put(ColModelAttributeConstants.formatter, "shrMultiLangBox");
  481. gridDescriptionMap.put(ColModelAttributeConstants.edittype, "shrMultiLangBox");
  482. JSONObject editoptions = JSONObject.parseObject("{ \"inputJson\": { } }");
  483. //添加精度
  484. JSONObject inputJson = editoptions.getJSONObject("inputJson");
  485. //添加长度
  486. inputJson.put("maxlength", 255);
  487. gridDescriptionMap.put(ColModelAttributeConstants.editoptions, editoptions);
  488. colNames.add("备注"); // colNames.add("备注");
  489. colModel.add(gridDescriptionMap);
  490. } catch (Exception e) {
  491. throw new BOSException("获取提报方案的提报项目列出错!"); // "获取提报方案的提报项目列出错!"
  492. }
  493. map.put("colNames", colNames);
  494. map.put("colModel", colModel);
  495. return map ;
  496. }
  497. /**
  498. * 组装ID前端基础属性
  499. * @param gridIdMap
  500. * @param name
  501. * @param label
  502. * @return
  503. * @throws BOSException
  504. */
  505. public static Map<String, Object> assembleColModelId(Map<String, Object> gridIdMap){
  506. gridIdMap.put(ColModelAttributeConstants.name, "id");
  507. gridIdMap.put(ColModelAttributeConstants.label, "id");
  508. gridIdMap.put(ColModelAttributeConstants.frozen, false);
  509. gridIdMap.put(ColModelAttributeConstants.width, 90);
  510. gridIdMap.put(ColModelAttributeConstants.align, "left");
  511. gridIdMap.put(ColModelAttributeConstants.key, true);
  512. gridIdMap.put(ColModelAttributeConstants.hidden, true);
  513. gridIdMap.put(ColModelAttributeConstants.editable, false);
  514. gridIdMap.put(ColModelAttributeConstants.sorttype, "");
  515. gridIdMap.put(ColModelAttributeConstants.sortable, false);
  516. gridIdMap.put(ColModelAttributeConstants.classes, "disabled");
  517. return gridIdMap;
  518. }
  519. /**
  520. * 组装F7前端editoptions属性
  521. * @param name
  522. * @param uipk
  523. * @param isRequired
  524. * @return
  525. */
  526. public static Map<String, Object> assembleColModelF7(String name , String uipk, boolean isRequired){
  527. //=====组装F7
  528. Map<String, Object> resultMap = new HashMap<String, Object>();
  529. Map<String, Object> f7JsonMap = new HashMap<String, Object>();
  530. Map<String, Object> validateJsonMap = new HashMap<String, Object>();
  531. // ======subWidgetOptions属性
  532. Map<String, Object> uipkMap = new HashMap<String, Object>();
  533. uipkMap.put(ColModelAttributeConstants.title, name);
  534. uipkMap.put(ColModelAttributeConstants.uipk, uipk);
  535. uipkMap.put(ColModelAttributeConstants.query, "");
  536. uipkMap.put(ColModelAttributeConstants.filter, "");
  537. uipkMap.put(ColModelAttributeConstants.multiselect, false);
  538. uipkMap.put(ColModelAttributeConstants.isTree, false);
  539. uipkMap.put(ColModelAttributeConstants.treeUrl, "");
  540. uipkMap.put(ColModelAttributeConstants.isContainLowerOrg, false);
  541. uipkMap.put(ColModelAttributeConstants.isAdminOrg, false);
  542. // uipkMap.put(ColModelAttributeConstants.isEnableExpFilter, true);
  543. f7JsonMap.put("subWidgetOptions", uipkMap);
  544. // =====其他属性
  545. f7JsonMap.put(ColModelAttributeConstants.subWidgetName, "shrPromptGrid");
  546. f7JsonMap.put(ColModelAttributeConstants.searchFields, "");
  547. f7JsonMap.put(ColModelAttributeConstants.isHROrg, false);
  548. f7JsonMap.put(ColModelAttributeConstants.isAdminOrg, false);
  549. f7JsonMap.put(ColModelAttributeConstants.searchLikePattern, "any");
  550. resultMap.put("f7Json", f7JsonMap);
  551. //======validateJsonMap
  552. validateJsonMap.put(ColModelAttributeConstants.errMsg, "");
  553. if(isRequired){
  554. validateJsonMap.put(ColModelAttributeConstants.rules, "required:true");
  555. }
  556. validateJsonMap.put(ColModelAttributeConstants.validatetrigger, "focus keyup datachange");
  557. resultMap.put("validateJson", validateJsonMap);
  558. return resultMap;
  559. }
  560. /**
  561. * 组装F7前端editoptions属性
  562. * @param name
  563. * @param uipk
  564. * @param isRequired
  565. * @return
  566. */
  567. public static Map<String, Object> assembleColModelF7(String name , String uipk, boolean isRequired, String filter){
  568. //=====组装F7
  569. Map<String, Object> resultMap = new HashMap<String, Object>();
  570. Map<String, Object> f7JsonMap = new HashMap<String, Object>();
  571. Map<String, Object> validateJsonMap = new HashMap<String, Object>();
  572. // ======subWidgetOptions属性
  573. Map<String, Object> uipkMap = new HashMap<String, Object>();
  574. uipkMap.put(ColModelAttributeConstants.title, name);
  575. uipkMap.put(ColModelAttributeConstants.uipk, uipk);
  576. uipkMap.put(ColModelAttributeConstants.query, "");
  577. uipkMap.put(ColModelAttributeConstants.filter, filter);
  578. uipkMap.put(ColModelAttributeConstants.multiselect, false);
  579. uipkMap.put(ColModelAttributeConstants.isTree, false);
  580. uipkMap.put(ColModelAttributeConstants.treeUrl, "");
  581. uipkMap.put(ColModelAttributeConstants.isContainLowerOrg, false);
  582. uipkMap.put(ColModelAttributeConstants.isAdminOrg, false);
  583. f7JsonMap.put("subWidgetOptions", uipkMap);
  584. // =====其他属性
  585. f7JsonMap.put(ColModelAttributeConstants.subWidgetName, "shrPromptGrid");
  586. f7JsonMap.put(ColModelAttributeConstants.searchFields, "");
  587. f7JsonMap.put(ColModelAttributeConstants.isHROrg, false);
  588. f7JsonMap.put(ColModelAttributeConstants.isAdminOrg, false);
  589. f7JsonMap.put(ColModelAttributeConstants.searchLikePattern, "any");
  590. resultMap.put("f7Json", f7JsonMap);
  591. //======validateJsonMap
  592. validateJsonMap.put(ColModelAttributeConstants.errMsg, "");
  593. if(isRequired){
  594. validateJsonMap.put(ColModelAttributeConstants.rules, "required:true");
  595. }
  596. validateJsonMap.put(ColModelAttributeConstants.validatetrigger, "focus keyup datachange");
  597. resultMap.put("validateJson", validateJsonMap);
  598. return resultMap;
  599. }
  600. /**
  601. * 组装F7前端基础属性
  602. * @param gridMainKeyIdMap
  603. * @param name
  604. * @param label
  605. * @return
  606. * @throws BOSException
  607. */
  608. public static Map<String, Object> assembleColModelF7(Map<String, Object> gridMainKeyIdMap,String name ,String label, boolean isRequired){
  609. gridMainKeyIdMap.put(ColModelAttributeConstants.name, name);
  610. gridMainKeyIdMap.put(ColModelAttributeConstants.label, label);
  611. gridMainKeyIdMap.put(ColModelAttributeConstants.frozen, false);
  612. gridMainKeyIdMap.put(ColModelAttributeConstants.width, 120);
  613. gridMainKeyIdMap.put(ColModelAttributeConstants.align, "left");
  614. gridMainKeyIdMap.put(ColModelAttributeConstants.key, false);
  615. gridMainKeyIdMap.put(ColModelAttributeConstants.edittype, "promptBox");
  616. gridMainKeyIdMap.put(ColModelAttributeConstants.editable, true);
  617. gridMainKeyIdMap.put(ColModelAttributeConstants.sorttype, "objectvalue");
  618. // gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, true);
  619. gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, false);
  620. gridMainKeyIdMap.put(ColModelAttributeConstants.formatter, "promptBox");
  621. if(isRequired){
  622. gridMainKeyIdMap.put(ColModelAttributeConstants.classes, "required");
  623. }
  624. return gridMainKeyIdMap;
  625. }
  626. /**
  627. * 组装F7前端基础属性不可编辑
  628. * @param gridMainKeyIdMap
  629. * @param name
  630. * @param label
  631. * @return
  632. * @throws BOSException
  633. */
  634. public static Map<String, Object> assembleColModelF7NotEdit(Map<String, Object> gridMainKeyIdMap,String name ,String label){
  635. gridMainKeyIdMap.put(ColModelAttributeConstants.name, name);
  636. gridMainKeyIdMap.put(ColModelAttributeConstants.label, label);
  637. gridMainKeyIdMap.put(ColModelAttributeConstants.frozen, false);
  638. gridMainKeyIdMap.put(ColModelAttributeConstants.width, 120);
  639. gridMainKeyIdMap.put(ColModelAttributeConstants.align, "left");
  640. gridMainKeyIdMap.put(ColModelAttributeConstants.key, false);
  641. gridMainKeyIdMap.put(ColModelAttributeConstants.edittype, "promptBox");
  642. gridMainKeyIdMap.put(ColModelAttributeConstants.editable, false);
  643. gridMainKeyIdMap.put(ColModelAttributeConstants.sorttype, "objectvalue");
  644. // gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, true);
  645. gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, false);
  646. gridMainKeyIdMap.put(ColModelAttributeConstants.formatter, "promptBox");
  647. gridMainKeyIdMap.put(ColModelAttributeConstants.classes, "disabled");
  648. return gridMainKeyIdMap;
  649. }
  650. /**
  651. * 组装F7前端基础属性隐藏
  652. * @param gridMainKeyIdMap
  653. * @param name
  654. * @param label
  655. * @return
  656. * @throws BOSException
  657. */
  658. public static Map<String, Object> assembleColModelF7Hidden(Map<String, Object> gridMainKeyIdMap,String name ,String label){
  659. gridMainKeyIdMap.put(ColModelAttributeConstants.name, name);
  660. gridMainKeyIdMap.put(ColModelAttributeConstants.label, label);
  661. gridMainKeyIdMap.put(ColModelAttributeConstants.frozen, false);
  662. gridMainKeyIdMap.put(ColModelAttributeConstants.width, 120);
  663. gridMainKeyIdMap.put(ColModelAttributeConstants.hidden, true);
  664. gridMainKeyIdMap.put(ColModelAttributeConstants.align, "left");
  665. gridMainKeyIdMap.put(ColModelAttributeConstants.key, false);
  666. gridMainKeyIdMap.put(ColModelAttributeConstants.edittype, "promptBox");
  667. gridMainKeyIdMap.put(ColModelAttributeConstants.editable, false);
  668. gridMainKeyIdMap.put(ColModelAttributeConstants.sorttype, "objectvalue");
  669. // gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, true);
  670. gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, false);
  671. gridMainKeyIdMap.put(ColModelAttributeConstants.formatter, "promptBox");
  672. gridMainKeyIdMap.put(ColModelAttributeConstants.classes, "disabled");
  673. return gridMainKeyIdMap;
  674. }
  675. public static Map<String, Object> getBillColumnListAndQuerySql(Context ctx, String submitSchemeId, String billID)
  676. /* */ throws BOSException
  677. /* */ {
  678. /* 727 */ Map map = new HashMap();
  679. /* 728 */ List colNames = new ArrayList();
  680. /* 729 */ Map columnMap = new HashMap();
  681. /* 730 */ if (StringUtils.isEmpty(submitSchemeId)) {
  682. /* 731 */ return map;
  683. /* */ }
  684. /* */
  685. /* 734 */ String language = ctx.getLocale().getLanguage();
  686. /* */
  687. /* 736 */ String sql = new StringBuilder().append("Select e.FSubmitTarget,e.FIsEnableSubmitElement , m.fieldSn,m.FDataDot,m.fdataType,m.fname_").append(language).append(" ,n.FBillEntryTableName from T_HR_SCalSubmitScheme e ").append(" inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid ").append(" inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID ").append(" inner join T_HR_SCalShemeTableRelation n on n.FSubmitSchemeID =e.fid ").append(" where e.fid = '").append(submitSchemeId).append("' order by FSortSn ").toString();
  688. /* */
  689. /* 742 */ StringBuilder sd = new StringBuilder(" select t.fid id , t.FEffectDate effectDay , t.FCmpEmpORelationID cmpEmpORelation,");
  690. /* 743 */ colNames.add("id");
  691. /* 744 */ colNames.add("effectDay");
  692. /* */ try {
  693. /* 746 */ String submitTarget = ""; String fBillEntryTableName = "";
  694. /* 747 */ IRowSet rs = DbUtil.executeQuery(ctx, sql);
  695. /* 748 */ boolean f7Flag = true; boolean personFlag = true; boolean isEnableSubmitElement = false;
  696. /* 749 */ while (rs.next())
  697. /* */ {
  698. /* 751 */ submitTarget = rs.getString("FSubmitTarget");
  699. /* 752 */ isEnableSubmitElement = rs.getBoolean("FIsEnableSubmitElement");
  700. /* */
  701. /* 754 */ if (f7Flag) {
  702. /* 755 */ f7Flag = false;
  703. /* */
  704. /* 757 */ fBillEntryTableName = rs.getString("FBillEntryTableName");
  705. /* */
  706. /* 759 */ if ("02".equals(submitTarget)) {
  707. /* 760 */ personFlag = false;
  708. /* 761 */ colNames.add("orgId");
  709. /* 762 */ colNames.add("name");
  710. /* 763 */ colNames.add("number");
  711. /* 764 */ sd.append("n.fid orgId , n.fname_").append(language).append(" name , n.fnumber number ");
  712. /* */ } else {
  713. /* 766 */ colNames.add("personId");
  714. /* 767 */ colNames.add("name");
  715. /* 768 */ colNames.add("number");
  716. /* 769 */ colNames.add("admOrgId");
  717. /* 770 */ colNames.add("admOrgName");
  718. /* */
  719. /* 772 */ colNames.add("positionId");
  720. /* 773 */ colNames.add("positionName");
  721. /* 774 */ colNames.add("cmpEmpORelation");
  722. /* */
  723. /* 777 */ sd.append(" n.fid personId , n.fname_").append(language).append(" name, n.fnumber number, a.fid admOrgId, a.fname_").append(language).append(" admOrgName, p.fid positionId, p.fname_").append(language).append(" positionName ");
  724. /* */ }
  725. /* */ }
  726. /* 780 */ sd.append(new StringBuilder().append(",S").append(rs.getString("fieldSn")).toString());
  727. /* */
  728. /* 782 */ colNames.add(new StringBuilder().append("S").append(rs.getString("fieldSn")).toString());
  729. /* */
  730. /* 785 */ if ("0".equals(rs.getString("fdataType")));
  731. /* 786 */ columnMap.put(new StringBuilder().append("S").append(rs.getString("fieldSn")).toString(), Integer.valueOf(rs.getInt("FDataDot")));
  732. /* */ }
  733. /* */
  734. /* 789 */ colNames.add("description");
  735. /* 790 */ if (isEnableSubmitElement) {
  736. /* 791 */ colNames.add("submitElement");
  737. /* 792 */ sd.append(", t.FSubmitElementID submitElement,subele.Fname_").append(language).append(" submitElementName ");
  738. /* */ }
  739. /* 794 */ colNames.add("currency");
  740. /* 795 */ sd.append(",c.fid currency,c.fname_").append(language).append(" currencyName,t.fdescription_l1 description_l1,t.fdescription_l2 description_l2,t.fdescription_l3 description_l3");
  741. /* */
  742. /* 797 */ sd.append(new StringBuilder().append(" from ").append(fBillEntryTableName).append(" ").toString());
  743. /* 798 */ if (personFlag) {
  744. /* 799 */ sd.append(" t inner join t_bd_person n on t.fpersonId = n.fid ");
  745. /* 800 */ sd.append(" LEFT join T_ORG_Admin a on t.FAdminOrgUnitID = a.fid ");
  746. /* 801 */ sd.append(" LEFT join T_ORG_Position p on t.FPositionID = p.fid ");
  747. /* */ } else {
  748. /* 803 */ sd.append(" t on b.fid = t.fbillid inner join T_ORG_Admin n on t.FOrgUnitID = n.fid ");
  749. /* */ }
  750. /* 805 */ sd.append(" LEFT join T_BD_Currency c on t.fCurrencyID = c.fid ");
  751. /* 806 */ if (isEnableSubmitElement) {
  752. /* 807 */ sd.append(" LEFT join T_HR_SSubmitElement subele on t.FSubmitElementID = subele.fid ");
  753. /* */ }
  754. /* */
  755. /* 810 */ sd.append(new StringBuilder().append(" where t.fbillid = '").append(billID).append("'").toString());
  756. ///* 811 */ sd.append(new StringBuilder().append(" and b.FSubmitSchemeID = '").append(submitSchemeId).append("' ").toString());
  757. /* */
  758. /* 813 */ map.put("querySql", sd.toString());
  759. /* 814 */ map.put("colNames", colNames);
  760. /* 815 */ map.put("columnMap", columnMap);
  761. /* */ }
  762. /* */ catch (Exception e) {
  763. /* 818 */ throw new BOSException("获取提报方案的提报项目列出错!");
  764. /* */ }
  765. /* 820 */ return map;
  766. /* */ }
  767. /**
  768. *
  769. * 根据方案id 获取方案提报单分录的提报项目列及对应的分录表名
  770. * @param schemeId
  771. * @return List
  772. * @throws BOSException
  773. */
  774. public static Map<String, Object> getBillColumnListAndBillEntryTableName(Context ctx,String submitSchemeId) throws BOSException{
  775. Map<String, Object> map = new HashMap<String, Object>();
  776. List<String> colNames = new ArrayList<String>();
  777. List<String> colTypes = new ArrayList<String>();
  778. if (StringUtils.isEmpty(submitSchemeId)) {
  779. return map ;
  780. }
  781. String language = ctx.getLocale().getLanguage();
  782. String sql = "Select e.FSubmitTarget , m.fieldSn,m.fdataType,m.fname_" + language + " ,n.FBillEntryTableName ,n.FCalShemeTableName ,t.FIsRequired from T_HR_SCalSubmitScheme e "
  783. + " inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid "
  784. + " inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID "
  785. + " inner join T_HR_SCalShemeTableRelation n on n.FSubmitSchemeID =e.fid "
  786. + " where e.fid = '"+submitSchemeId+"' order by FSortSn ";
  787. try {
  788. String fBillEntryTableName = ""; //提报对象 01 person 02 org
  789. logger.error("CmpIntegrateUtilsNew.getBillColumnListAndBillEntryTableName.sql:"+sql);
  790. IRowSet rs = DbUtil.executeQuery(ctx, sql);
  791. while (rs.next()) {
  792. //=====组装提报项目
  793. if (StringUtils.isEmpty(fBillEntryTableName)) {
  794. fBillEntryTableName = rs.getString("FBillEntryTableName");
  795. // fCalShemeTableName = rs.getString("FCalShemeTableName");
  796. }
  797. colNames.add("S"+rs.getString("fieldSn"));
  798. colTypes.add(rs.getString("fdataType"));
  799. }
  800. map.put("fBillEntryTableName", fBillEntryTableName);
  801. // map.put("fCalShemeTableName", fCalShemeTableName);
  802. map.put("colNames", colNames);
  803. map.put("colTypes", colTypes);
  804. } catch (Exception e) {
  805. throw new BOSException("获取提报方案的提报项目列出错!"); //"获取提报方案的提报项目列出错!"
  806. }
  807. return map ;
  808. }
  809. /**
  810. * 获取插入的列1
  811. * @param ctx
  812. * @param billEntryTable
  813. * @param colNames
  814. * @param billId
  815. * @return
  816. */
  817. public static String getAssembleField1Sql(Context ctx, String billEntryTable,
  818. List<String> colNames, String billId) {
  819. StringBuilder insertCol = new StringBuilder(" insert into ");
  820. String userId = HRFilterUtils.getCurrentUserId(ctx);
  821. Date date = new Date();
  822. insertCol.append(billEntryTable);
  823. insertCol.append(" (FID ,fparentid ");
  824. /*StringBuilder insertval = new StringBuilder(new StringBuilder().append(
  825. " values ( ?,'").append(billId).append("', '").append(userId)
  826. .append("', ").append(CmpDateUtil.toKSqlDate(date)).toString());
  827. insertval.append(", ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ");*/
  828. for (String schemeItem : colNames) {
  829. insertCol.append(new StringBuilder().append(",").append(schemeItem)
  830. .toString());
  831. //insertval.append(", ? ");
  832. }
  833. insertCol.append(" )");
  834. //insertval.append(" ,?,?,?,?)");
  835. //insertCol.append(insertval);
  836. return insertCol.toString();
  837. }
  838. /**
  839. * 获取插入的列1
  840. * @param ctx
  841. * @param billEntryTable
  842. * @param colNames
  843. * @param billId
  844. * @return
  845. */
  846. public static String getAssembleField2Sql(Context ctx, String billEntryTable,
  847. List<String> colNames, String billId) {
  848. StringBuilder insertCol = new StringBuilder(" insert into ");
  849. String userId = HRFilterUtils.getCurrentUserId(ctx);
  850. Date date = new Date();
  851. insertCol.append(billEntryTable);
  852. insertCol.append(" (FID ,fbillid ");
  853. /*StringBuilder insertval = new StringBuilder(new StringBuilder().append(
  854. " values ( ?,'").append(billId).append("', '").append(userId)
  855. .append("', ").append(CmpDateUtil.toKSqlDate(date)).toString());
  856. insertval.append(", ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ");*/
  857. for (String schemeItem : colNames) {
  858. insertCol.append(new StringBuilder().append(",").append(schemeItem)
  859. .toString());
  860. //insertval.append(", ? ");
  861. }
  862. insertCol.append(" )");
  863. //insertval.append(" ,?,?,?,?)");
  864. //insertCol.append(insertval);
  865. return insertCol.toString();
  866. }
  867. /**
  868. * 获取临时表的fid,billId所有动态字段
  869. * @param ctx
  870. * @param billEntryTable
  871. * @param colNames
  872. * @param billId
  873. * @return
  874. * @throws BOSException
  875. */
  876. public static List<Map<String,Object>> getAssembleListByCmp(Context ctx, String billEntryTable,
  877. List<String> colNames, String billId) throws BOSException {
  878. List<Map<String,Object>> sValuelist= new ArrayList<Map<String,Object>>();
  879. StringBuilder sql = new StringBuilder(" SELECT ");
  880. String userId = HRFilterUtils.getCurrentUserId(ctx);
  881. sql.append(" FID ,fbillid ");
  882. /*StringBuilder insertval = new StringBuilder(new StringBuilder().append(
  883. " values ( ?,'").append(billId).append("', '").append(userId)
  884. .append("', ").append(CmpDateUtil.toKSqlDate(date)).toString());
  885. insertval.append(", ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ");*/
  886. for (String schemeItem : colNames) {
  887. sql.append(new StringBuilder().append(",").append(schemeItem)
  888. .toString());
  889. //insertval.append(", ? ");
  890. }
  891. sql.append(" from ");
  892. sql.append(billEntryTable);
  893. sql.append(" where fbillid = '"+billId+"'");
  894. logger.error("BatchSubmitSchemeBillControllerBeanExt.getAssembleListByCmp.sql:"+sql.toString());
  895. //insertval.append(" ,?,?,?,?)");
  896. //insertCol.append(insertval);
  897. try{
  898. IRowSet rs = DbUtil.executeQuery(ctx, sql.toString());
  899. String fid = "";
  900. String fbillid = "";
  901. while (rs.next()) {
  902. Map<String,Object> sValueMap = new HashMap<String,Object>();
  903. //=====组装提报项目
  904. fid = rs.getString("FID");
  905. fbillid = rs.getString("fbillid");
  906. sValueMap.put("fid", fid);
  907. sValueMap.put("fbillid", fbillid);
  908. for (String schemeItem : colNames) {
  909. sValueMap.put(""+schemeItem, rs.getObject(""+schemeItem));
  910. }
  911. sValuelist.add(sValueMap);
  912. }
  913. } catch (Exception e) {
  914. throw new BOSException("获取提报方案的提报项目列出错!"); //"获取提报方案的提报项目列出错!"
  915. }
  916. return sValuelist;
  917. }
  918. /**
  919. * 更新提报分录的s字段
  920. * @param ctx
  921. * @param colNames
  922. * @param sValue
  923. * @throws BOSException
  924. */
  925. public static void updateSchemeBillEntryByCmpS(Context ctx,List<String> colNames,Map<String,Object> sValue) throws BOSException{
  926. logger.error("into updateSchemeBillEntryByCmpS method.colNames.size:"+colNames.size());
  927. StringBuilder sqlSb = new StringBuilder(" update T_HR_SchemeBillEntry set ");
  928. Object cmpObje = null;
  929. //是否免税字符串
  930. String s81ValueId = "";
  931. for (String schemeItem : colNames) {
  932. cmpObje = sValue.get(""+schemeItem);
  933. if(cmpObje instanceof String){
  934. sqlSb.append(" CF"+schemeItem).append("='").append(cmpObje).append("',");
  935. //是否免税特殊处理
  936. if("S81".equals(schemeItem)){
  937. if(cmpObje!=null){
  938. s81ValueId = (String)cmpObje;
  939. }
  940. }
  941. }else{
  942. sqlSb.append(" CF"+schemeItem).append("=").append(cmpObje).append(",");
  943. }
  944. }
  945. String sqlSbStr = sqlSb.toString();
  946. if(sqlSbStr.endsWith(",")) {
  947. sqlSbStr = sqlSbStr.substring(0, sqlSbStr.length() - 1);
  948. }
  949. Object fidObj = sValue.get("fid");
  950. if(fidObj == null){
  951. logger.error("BatchSubmitSchemeBillControllerBeanExt.updateSchemeBillEntryByCmpS:fidObj为空");
  952. return;
  953. }
  954. String fid= (String)fidObj;
  955. sqlSbStr = sqlSbStr + " where fid = '"+fid+"'";
  956. logger.error("BatchSubmitSchemeBillControllerBeanExt.updateSchemeBillEntryByCmpS:sqlSbStr:"+sqlSbStr);
  957. DbUtil.execute(ctx,sqlSbStr);
  958. //更新分录的是否免税字符串
  959. updateSchemeBillEntryCFTaxExemptionStrByEntryFid(ctx,s81ValueId,fid);
  960. }
  961. /**
  962. * 更新分录的是否免税字符串
  963. * @param ctx
  964. * @param s81ValueId
  965. * @param fid
  966. * @throws BOSException
  967. */
  968. private static void updateSchemeBillEntryCFTaxExemptionStrByEntryFid(Context ctx,String s81ValueId , String fid) throws BOSException{
  969. String sql = "update T_HR_SchemeBillEntry set cftaxexemptionstr = (select fname_l1 from CT_CUS_TaxExemption where fid ='"+s81ValueId+"' ) where fid ='"+fid+"'";
  970. logger.error("BatchSubmitSchemeBillControllerBeanExt.updateSchemeBillEntryCFTaxExemptionStrByEntryFid:sql:"+sql);
  971. DbUtil.execute(ctx,sql);
  972. }
  973. /**
  974. *
  975. * 根据方案id,dataType获取方案提报单分录在提报项目列及对应的分录表名
  976. * @param schemeId
  977. * @return List
  978. * @throws BOSException
  979. */
  980. public static Map<String, Object> getBillColumnListAndBillEntryTableNameByDataType(Context ctx,String submitSchemeId, String dataType) throws BOSException{
  981. Map<String, Object> map = new HashMap<String, Object>();
  982. List<String> colNames = new ArrayList<String>();
  983. if (StringUtils.isEmpty(submitSchemeId)) {
  984. return map ;
  985. }
  986. String language = ctx.getLocale().getLanguage();
  987. String sql = "Select e.FSubmitTarget , m.fieldSn,m.fdataType,m.fname_"+language+" ,n.FBillEntryTableName ,n.FCalShemeTableName ,t.FIsRequired from T_HR_SCalSubmitScheme e "
  988. + " inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid "
  989. + " inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID "
  990. + " inner join T_HR_SCalShemeTableRelation n on n.FSubmitSchemeID =e.fid "
  991. + " where e.fid = '"+submitSchemeId+"' and m.fdataType = '"+dataType+"' order by FSortSn ";
  992. try {
  993. String fBillEntryTableName = "" ,fCalShemeTableName = ""; //提报对象 01 person 02 org
  994. IRowSet rs = DbUtil.executeQuery(ctx, sql);
  995. while (rs.next()) {
  996. //=====组装提报项目
  997. if (StringUtils.isEmpty(fBillEntryTableName)) {
  998. fBillEntryTableName = rs.getString("FBillEntryTableName");
  999. fCalShemeTableName = rs.getString("FCalShemeTableName");
  1000. }
  1001. colNames.add("S"+rs.getString("fieldSn"));
  1002. }
  1003. map.put("fBillEntryTableName", fBillEntryTableName);
  1004. map.put("fCalShemeTableName", fCalShemeTableName);
  1005. map.put("colNames", colNames);
  1006. } catch (Exception e) {
  1007. throw new BOSException("获取提报方案的提报项目列出错!"); //"获取提报方案的提报项目列出错!"
  1008. }
  1009. return map ;
  1010. }
  1011. /**
  1012. *
  1013. * 根据方案id 获取方案提报单分录的对应的分录表名
  1014. * @param schemeId
  1015. * @return List
  1016. * @throws BOSException
  1017. */
  1018. public static String getSchemeEntryTableName(Context ctx,String submitSchemeId) {
  1019. String fBillEntryTableName = "" ;
  1020. String sql = "Select n.FBillEntryTableName from T_HR_SCalSubmitScheme e "
  1021. + " inner join T_HR_SCalShemeTableRelation n on n.FSubmitSchemeID =e.fid "
  1022. + " where e.fid = '"+submitSchemeId+"' ";
  1023. try {
  1024. //提报对象 01 person 02 org
  1025. IRowSet rs = DbUtil.executeQuery(ctx, sql);
  1026. while (rs.next()) {
  1027. //=====组装提报项目
  1028. fBillEntryTableName = rs.getString("FBillEntryTableName");
  1029. }
  1030. } catch (Exception e) {
  1031. logger.info(e);
  1032. }
  1033. return fBillEntryTableName ;
  1034. }
  1035. /**
  1036. *
  1037. * 根据方案id 获取方案提报单分录的对应的分录表名
  1038. * @param schemeId
  1039. * @return List
  1040. * @throws BOSException
  1041. */
  1042. public static String getCalShemeTableName(Context ctx,String submitSchemeId) {
  1043. String calShemeTableName = "" ;
  1044. String sql = "Select n.FBillEntryTableName from T_HR_SCalSubmitScheme e "
  1045. + " inner join T_HR_SCalShemeTableRelation n on n.FSubmitSchemeID =e.fid "
  1046. + " where e.fid = '"+submitSchemeId+"' ";
  1047. try {
  1048. //提报对象 01 person 02 org
  1049. IRowSet rs = DbUtil.executeQuery(ctx, sql);
  1050. while (rs.next()) {
  1051. //=====组装提报项目
  1052. calShemeTableName = rs.getString("FBillEntryTableName");
  1053. }
  1054. } catch (Exception e) {
  1055. logger.info(e);
  1056. }
  1057. return calShemeTableName ;
  1058. }
  1059. /**
  1060. * 删除提报方案关联的动态表及数据
  1061. * @param schemeId
  1062. * @return
  1063. * @throws BOSException
  1064. * @throws SQLException
  1065. */
  1066. public static boolean deleteSubmitSchemeRelationDate(Context ctx,String schemeId) throws BOSException, SQLException {
  1067. boolean flag = false ;
  1068. if (StringUtils.isEmpty(schemeId)) {
  1069. return flag ;
  1070. }
  1071. String sql = "select FBillEntryTableName , FCalShemeTableName from T_HR_SCalShemeTableRelation where FSubmitSchemeID = '"+schemeId+"'";
  1072. String calShemeTableName = "" ,billEntryTableName ="";
  1073. IRowSet list = DbUtil.executeQuery(ctx, sql);
  1074. while (list.next()) {
  1075. billEntryTableName = list.getString("FBillEntryTableName");
  1076. calShemeTableName = list.getString("FCalShemeTableName");
  1077. }
  1078. if (!CmpStrUtil.isEmpty(calShemeTableName)) {
  1079. DbUtil.execute(ctx, "If exists (select * from KSQL_USERTABLES where KSQL_TABNAME ='" + calShemeTableName + "') drop table " + calShemeTableName + "");
  1080. DbUtil.execute(ctx, "If exists (select * from KSQL_USERTABLES where KSQL_TABNAME ='" + billEntryTableName + "') drop table " + billEntryTableName + "");
  1081. }
  1082. DbUtil.execute(ctx, "delete from T_HR_SCalShemeTableRelation where FSubmitSchemeID = '"+schemeId+"'");
  1083. return flag ;
  1084. }
  1085. /**
  1086. * 删除提报方案关联的动态表列
  1087. * @param schemeId
  1088. * @return
  1089. * @throws BOSException
  1090. * @throws SQLException
  1091. */
  1092. public static boolean dropSubmitSchemeEntryTableCol(Context ctx,String schemeId,String itemId) throws BOSException, SQLException {
  1093. boolean flag = false ;
  1094. if (StringUtils.isEmpty(schemeId)) {
  1095. return flag ;
  1096. }
  1097. String sql = "select FBillEntryTableName , FCalShemeTableName from T_HR_SCalShemeTableRelation where FSubmitSchemeID = '"+schemeId+"'";
  1098. String sqlItem = "select fieldSn from T_HR_SCalSubmitItem m "
  1099. + " inner join T_HR_SCalSubmitSchemeItem t on m.fid = t.FCalSubmitItemID where t.fid = '"+itemId+"'" ;
  1100. String calShemeTableName = "" ,billEntryTableName ="",col="";
  1101. IRowSet rs = DbUtil.executeQuery(ctx, sql);
  1102. while (rs.next()) {
  1103. billEntryTableName = rs.getString("FBillEntryTableName");
  1104. calShemeTableName = rs.getString("FCalShemeTableName");
  1105. }
  1106. rs = DbUtil.executeQuery(ctx, sqlItem);
  1107. while (rs.next()) {
  1108. col = "S"+rs.getString("fieldSn");
  1109. }
  1110. StringBuilder calShemeTable = new StringBuilder("If exists (select * from KSQL_USERCOLUMNS where KSQL_COL_NAME ='"+col+"' "
  1111. + " and KSQL_COL_TABNAME='"+calShemeTableName+"')");
  1112. calShemeTable.append("ALTER TABLE "+calShemeTableName+" drop column "+col+" ");
  1113. StringBuilder billEntryTable = new StringBuilder("If exists (select * from KSQL_USERCOLUMNS where KSQL_COL_NAME ='"+col+"' "
  1114. + " and KSQL_COL_TABNAME='"+billEntryTableName+"')");
  1115. billEntryTable.append("ALTER TABLE "+billEntryTableName+" drop column "+col+" ");
  1116. if (!CmpStrUtil.isEmpty(calShemeTableName)) {
  1117. DbUtil.execute(ctx,calShemeTable.toString());
  1118. DbUtil.execute(ctx,billEntryTable.toString());
  1119. }
  1120. return flag ;
  1121. }
  1122. /**
  1123. *
  1124. * 根据方案id 获取方案提报单分录的提报项目列及对应的分录表名
  1125. * @param schemeId
  1126. * @return List
  1127. * @throws BOSException
  1128. */
  1129. public static Map<String ,Object> getRequiredColumns(Context ctx,String submitSchemeId) throws BOSException{
  1130. Map<String ,Object> map = new HashMap<String ,Object>();
  1131. //Set集合保存提报项目信息导致提报项目无法排序,只能改成list
  1132. List<Map<String, Object>> colNames = new ArrayList<Map<String, Object>>();
  1133. if (StringUtils.isEmpty(submitSchemeId)) {
  1134. return map ;
  1135. }
  1136. String language = ctx.getLocale().getLanguage();
  1137. String sql = "Select e.FSubmitTarget , m.fieldSn,m.fdataType,m.fname_"+language+" MNAME,n.FBillEntryTableName ,n.FCalShemeTableName ,t.FIsRequired"
  1138. + " from T_HR_SCalSubmitScheme e "
  1139. + " inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid "
  1140. + " inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID "
  1141. + " inner join T_HR_SCalShemeTableRelation n on n.FSubmitSchemeID =e.fid "
  1142. + " where e.fid = '"+submitSchemeId+"' order by fieldSn ";
  1143. String submitTarget =null;
  1144. try {
  1145. IRowSet rs = DbUtil.executeQuery(ctx, sql);
  1146. while (rs.next()) {
  1147. Map<String, Object> gridIdMap = new HashMap<String, Object>();
  1148. gridIdMap.put("rename", rs.getString("MNAME"));
  1149. gridIdMap.put("name", "CMP_SMT002."+"S"+rs.getString("fieldSn"));
  1150. gridIdMap.put("label", rs.getString("MNAME"));
  1151. gridIdMap.put("type", "String");
  1152. submitTarget = rs.getString("FSubmitTarget");
  1153. //=====组装提报项目
  1154. colNames.add(gridIdMap);
  1155. }
  1156. map.put("colNames", colNames);
  1157. map.put("submitTarget", submitTarget);
  1158. } catch (Exception e) {
  1159. throw new BOSException("获取提报方案的提报项目列出错!"); // "获取提报方案的提报项目列出错!"
  1160. }
  1161. return map ;
  1162. }
  1163. /**
  1164. * 获取指定提报方案的动态项目
  1165. * @param ctx
  1166. * @param schemeId
  1167. * @return
  1168. */
  1169. public static List<CalShemeSubmitItemDTO> getDynamicSubmitItemBySchemeId(Context ctx, String schemeId){
  1170. List<CalShemeSubmitItemDTO> calShemeSubmitItemDTOS=new ArrayList<CalShemeSubmitItemDTO>();
  1171. StringBuffer sqlBuffer=new StringBuffer();
  1172. String language = ctx.getLocale().getLanguage();
  1173. sqlBuffer.append(" SELECT E.FID AS SCHEMEID, M.FID as ITEMID, M.FIELDSN,M.FDATATYPE,M.FNAME_"+language+" AS ITEMNAME,T.FISREQUIRED ,M.FDATADOT,M.FDATALENGTH ");
  1174. sqlBuffer.append(" FROM T_HR_SCALSUBMITSCHEME E ");
  1175. sqlBuffer.append(" INNER JOIN T_HR_SCALSUBMITSCHEMEITEM T ON T.FCALSUBMITSCHEMEID = E.FID ");
  1176. sqlBuffer.append(" INNER JOIN T_HR_SCALSUBMITITEM M ON M.FID = T.FCALSUBMITITEMID WHERE E.FID = '");
  1177. sqlBuffer.append(schemeId);
  1178. sqlBuffer.append("' ORDER BY T.FSORTSN");
  1179. try {
  1180. IRowSet rs = DbUtil.executeQuery(ctx, sqlBuffer.toString());
  1181. CalShemeSubmitItemDTO calShemeSubmitItemDTO=null;
  1182. while (rs.next()){
  1183. calShemeSubmitItemDTO=new CalShemeSubmitItemDTO();
  1184. calShemeSubmitItemDTO.setSubmitSchemeId(rs.getString("SCHEMEID"));
  1185. calShemeSubmitItemDTO.setItemId(rs.getString("ITEMID"));
  1186. calShemeSubmitItemDTO.setFieldSn(rs.getInt("FIELDSN"));
  1187. calShemeSubmitItemDTO.setDataType(rs.getString("FDATATYPE"));
  1188. calShemeSubmitItemDTO.setSubmitItemName(rs.getString("ITEMNAME"));
  1189. calShemeSubmitItemDTO.setIsRequired(rs.getInt("FISREQUIRED"));
  1190. calShemeSubmitItemDTO.setDataDot(rs.getInt("FDATADOT"));
  1191. calShemeSubmitItemDTO.setDataLength(rs.getInt("FDATALENGTH"));
  1192. calShemeSubmitItemDTOS.add(calShemeSubmitItemDTO);
  1193. }
  1194. } catch (BOSException e) {
  1195. e.printStackTrace();
  1196. logger.error(e.getMessage(),e);
  1197. } catch (SQLException e) {
  1198. logger.error(e.getMessage(),e);
  1199. e.printStackTrace();
  1200. }
  1201. return calShemeSubmitItemDTOS;
  1202. }
  1203. /**
  1204. * 获取指定提报方案的动态项目
  1205. * @param ctx
  1206. * @param schemeId
  1207. * @return
  1208. */
  1209. public static List<CalShemeSubmitItemDTO> getDynamicSubmitItemBySchemeIdNotCenter(Context ctx, String schemeId){
  1210. List<CalShemeSubmitItemDTO> calShemeSubmitItemDTOS=new ArrayList<CalShemeSubmitItemDTO>();
  1211. StringBuffer sqlBuffer=new StringBuffer();
  1212. String language = ctx.getLocale().getLanguage();
  1213. sqlBuffer.append(" SELECT E.FID AS SCHEMEID, M.FID as ITEMID, M.FIELDSN,M.FDATATYPE,M.FNAME_"+language+" AS ITEMNAME,"
  1214. + "T.FISREQUIRED ,M.FDATADOT,M.FDATALENGTH ");
  1215. sqlBuffer.append(" FROM T_HR_SCALSUBMITSCHEME E ");
  1216. sqlBuffer.append(" INNER JOIN T_HR_SCALSUBMITSCHEMEITEM T ON T.FCALSUBMITSCHEMEID = E.FID ");
  1217. sqlBuffer.append(" INNER JOIN T_HR_SCALSUBMITITEM M ON M.FID = T.FCALSUBMITITEMID WHERE E.FID = '");
  1218. sqlBuffer.append(schemeId);
  1219. sqlBuffer.append("' and M.Fnumber not in('DormFee027','DormFee026')");
  1220. sqlBuffer.append(" AND T.FState=1 ORDER BY T.FSORTSN");
  1221. try {
  1222. IRowSet rs = DbUtil.executeQuery(ctx, sqlBuffer.toString());
  1223. CalShemeSubmitItemDTO calShemeSubmitItemDTO=null;
  1224. while (rs.next()){
  1225. calShemeSubmitItemDTO=new CalShemeSubmitItemDTO();
  1226. calShemeSubmitItemDTO.setSubmitSchemeId(rs.getString("SCHEMEID"));
  1227. calShemeSubmitItemDTO.setItemId(rs.getString("ITEMID"));
  1228. calShemeSubmitItemDTO.setFieldSn(rs.getInt("FIELDSN"));
  1229. calShemeSubmitItemDTO.setDataType(rs.getString("FDATATYPE"));
  1230. calShemeSubmitItemDTO.setSubmitItemName(rs.getString("ITEMNAME"));
  1231. calShemeSubmitItemDTO.setIsRequired(rs.getInt("FISREQUIRED"));
  1232. calShemeSubmitItemDTO.setDataDot(rs.getInt("FDATADOT"));
  1233. calShemeSubmitItemDTO.setDataLength(rs.getInt("FDATALENGTH"));
  1234. calShemeSubmitItemDTOS.add(calShemeSubmitItemDTO);
  1235. }
  1236. } catch (BOSException e) {
  1237. e.printStackTrace();
  1238. logger.error(e.getMessage(),e);
  1239. } catch (SQLException e) {
  1240. logger.error(e.getMessage(),e);
  1241. e.printStackTrace();
  1242. }
  1243. return calShemeSubmitItemDTOS;
  1244. }
  1245. /**
  1246. * 获取指定提报方案的动态项目排除实缴
  1247. * @param ctx
  1248. * @param schemeId
  1249. * @return
  1250. */
  1251. public static List<CalShemeSubmitItemDTO> getDynamicSubmitItemBySchemeIdExcludePaid (Context ctx, String schemeId){
  1252. List<CalShemeSubmitItemDTO> calShemeSubmitItemDTOS=new ArrayList<CalShemeSubmitItemDTO>();
  1253. StringBuffer sqlBuffer=new StringBuffer();
  1254. String language = ctx.getLocale().getLanguage();
  1255. sqlBuffer.append(" SELECT E.FID AS SCHEMEID, M.FID as ITEMID, M.FIELDSN,M.FDATATYPE,M.FNAME_"+language+" AS ITEMNAME,T.FISREQUIRED ,M.FDATADOT,M.FDATALENGTH ");
  1256. sqlBuffer.append(" FROM T_HR_SCALSUBMITSCHEME E ");
  1257. sqlBuffer.append(" INNER JOIN T_HR_SCALSUBMITSCHEMEITEM T ON T.FCALSUBMITSCHEMEID = E.FID ");
  1258. sqlBuffer.append(" INNER JOIN T_HR_SCALSUBMITITEM M ON M.FID = T.FCALSUBMITITEMID WHERE E.FID = '");
  1259. sqlBuffer.append(schemeId);
  1260. sqlBuffer.append("' and M.fnumber not in('DormFee026','DormFee027') ORDER BY T.FSORTSN");
  1261. try {
  1262. IRowSet rs = DbUtil.executeQuery(ctx, sqlBuffer.toString());
  1263. CalShemeSubmitItemDTO calShemeSubmitItemDTO=null;
  1264. while (rs.next()){
  1265. calShemeSubmitItemDTO=new CalShemeSubmitItemDTO();
  1266. calShemeSubmitItemDTO.setSubmitSchemeId(rs.getString("SCHEMEID"));
  1267. calShemeSubmitItemDTO.setItemId(rs.getString("ITEMID"));
  1268. calShemeSubmitItemDTO.setFieldSn(rs.getInt("FIELDSN"));
  1269. calShemeSubmitItemDTO.setDataType(rs.getString("FDATATYPE"));
  1270. calShemeSubmitItemDTO.setSubmitItemName(rs.getString("ITEMNAME"));
  1271. calShemeSubmitItemDTO.setIsRequired(rs.getInt("FISREQUIRED"));
  1272. calShemeSubmitItemDTO.setDataDot(rs.getInt("FDATADOT"));
  1273. calShemeSubmitItemDTO.setDataLength(rs.getInt("FDATALENGTH"));
  1274. calShemeSubmitItemDTOS.add(calShemeSubmitItemDTO);
  1275. }
  1276. } catch (BOSException e) {
  1277. e.printStackTrace();
  1278. logger.error(e.getMessage(),e);
  1279. } catch (SQLException e) {
  1280. logger.error(e.getMessage(),e);
  1281. e.printStackTrace();
  1282. }
  1283. return calShemeSubmitItemDTOS;
  1284. }
  1285. public static Map<String, Integer> getCellLength(Context ctx, String schemeId){
  1286. Map<String, Integer> map = new HashMap<String, Integer>();
  1287. String sql = "Select m.fieldSn,m.FDataLength"
  1288. + " from T_HR_SCalSubmitScheme e "
  1289. + " inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid "
  1290. + " inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID "
  1291. + " where e.fid = '"+schemeId+"' and FDataType = '1' order by FSortSn";
  1292. try {
  1293. IRowSet rs = DbUtil.executeQuery(ctx, sql);
  1294. while (rs.next()) {
  1295. String fieldSn = String.valueOf(rs.getInt(1));
  1296. Integer dataLength = rs.getInt(2);
  1297. map.put(fieldSn, dataLength);
  1298. }
  1299. }catch(Exception e){
  1300. e.printStackTrace();
  1301. }
  1302. return map;
  1303. }
  1304. }