public void saveUses(DTOSet lineSet) throws DataHandleException, QueryException { AmsHouseInfoDTO houseDTO = (AmsHouseInfoDTO) dtoParameter; if (lineSet != null && !lineSet.isEmpty()) { for (int i = 0; i < lineSet.getSize(); i++) { AmsHouseUsesDTO lineData = (AmsHouseUsesDTO) lineSet.getDTO(i); lineData.setBarcode(houseDTO.getBarcode()); if (!(lineData.getArea().equals("") || lineData.getUsage().equals(""))) { GetMisHousInfoModel model = new GetMisHousInfoModel(userAccount, houseDTO); SQLModel sqlModel = model.insertUsesInfo(lineData); DBOperator.updateRecord(sqlModel, conn); } } } }
private DTOSet filterDtoSet(DTOSet ds) { DTOSet returnds = new DTOSet(); for (int i = 0; i < ds.getSize(); i++) { SBHRHRInquiryOrgStructureDTO dto = (SBHRHRInquiryOrgStructureDTO) ds.getDTO(i); if (dto.getOrganizationName().indexOf("OU_") < 0 && dto.getOrganizationName().indexOf("IO_") < 0 && dto.getOrganizationName().indexOf("IA_") < 0 && dto.getOrganizationName().indexOf("LA_") < 0) { try { returnds.addDTO(dto); } catch (DTOException e) { e.printLog(); } } } return returnds; }
/** * 功能:记录设备最新一次交易情况:例如报废,其他的视具体需要而定 需要同步到MIS的时候调用该方法。 * * @param orderType String * @param isExist String * @throws DataHandleException */ private void recordChkLog(String orderType, String isExist) throws DataHandleException { try { FreeFlowDTO dto = (FreeFlowDTO) dtoParameter; AmsAssetsTransLineDTO line = new AmsAssetsTransLineDTO(); line.setTransId(dto.getTransId()); AmsAssetsTransLineDAO lineDAO = new AmsAssetsTransLineDAO(userAccount, line, conn); lineDAO.setDTOClassName(AmsAssetsTransLineDTO.class.getName()); DTOSet dtos = (DTOSet) lineDAO.getDataByForeignKey("transId"); if (dtos != null && !dtos.isEmpty()) { int lineCount = dtos.getSize(); String orderUrl = ""; AmsAssetsChkLogDTO chkLogDTO = null; AmsAssetsChkLogDAO chkLogDAO = new AmsAssetsChkLogDAO(userAccount, null, conn); for (int i = 0; i < lineCount; i++) { line = (AmsAssetsTransLineDTO) dtos.getDTO(i); chkLogDTO = new AmsAssetsChkLogDTO(); chkLogDTO.setBarcode(line.getBarcode()); chkLogDTO.setLastChkNo(line.getTransNo()); chkLogDTO.setHeaderId(line.getTransId()); chkLogDTO.setResponsibilityUser(line.getResponsibilityUser()); chkLogDTO.setResponsibilityDept(line.getDeptCode()); chkLogDTO.setAddressId(line.getAddressId()); chkLogDTO.setOrganizationId(userAccount.getOrganizationId()); chkLogDTO.setCreatedBy(userAccount.getUserId()); chkLogDTO.setOrderType(orderType); chkLogDTO.setIsExist(isExist); orderUrl = URLDefineList.FREE_FLOW_SERVLET; orderUrl += "?act=" + AssetsActionConstant.DETAIL_ACTION; orderUrl += "&transId=" + line.getTransId(); chkLogDTO.setOrderDtlUrl(orderUrl); chkLogDAO.setDTOParameter(chkLogDTO); chkLogDAO.saveCheckLogData(); } } } catch (QueryException ex) { ex.printLog(); throw new DataHandleException(ex); } }
/** 查询项目信息 */ public void synProjectInfo(Connection conn, SfUserDTO user) { int totalCount = 0; int errorCount = 0; long resumeTime = 0; SynLogDTO logDTO = null; SynLogUtil logUtil = new SynLogUtil(); long start = System.currentTimeMillis(); try { logDTO = new SynLogDTO(); logDTO.setSynType(SrvType.SRV_PA_PROJECT); logDTO.setCreatedBy(user.getUserId()); logDTO.setSynMsg("同步MIS项目信息开始"); logUtil.synLog(logDTO, conn); InquiryProjectInfoSrv projectInfoSrv = new InquiryProjectInfoSrv(); projectInfoSrv.execute(); SrvReturnMessage srvMessage = projectInfoSrv.getReturnMessage(); if (srvMessage.getErrorFlag().equalsIgnoreCase("Y")) { DTOSet ds = projectInfoSrv.getDs(); SrvProjectInfoDAO srvProjectInfoDAO = new SrvProjectInfoDAO(user, null, conn); for (int i = 0; i < ds.getSize(); i++) { SrvProjectInfoDTO dto = (SrvProjectInfoDTO) ds.getDTO(i); srvProjectInfoDAO.setDTOParameter(dto); try { if (SynUpdateDateUtils.getBetweenDays( SynUpdateDateUtils.getLastUpdateDate(SrvType.SRV_PA_PROJECT, conn), (dto.getLastUpdateDate().toString())) > 0) { if (srvProjectInfoDAO.isProjecdtExists(dto.getSegment1())) { srvProjectInfoDAO.updateData(); } else { srvProjectInfoDAO.createData(); } totalCount++; } } catch (Throwable e) { Logger.logError(e); logDTO = new SynLogDTO(); logDTO.setSynType(SrvType.SRV_PA_PROJECT); logDTO.setCreatedBy(user.getUserId()); logDTO.setSynMsg(e.toString()); logUtil.synLog(logDTO, conn); errorCount++; } } if (errorCount == 0) { // 错误数为0时才能更新同步类型日志记录,否则可能造成数据遗漏 SynUpdateDateUtils.createLastUpdateDate(SrvType.SRV_PA_PROJECT, conn); SynUpdateDateUtils.updateLastUpdateDate(SrvType.SRV_PA_PROJECT, conn); } } resumeTime = System.currentTimeMillis() - start; logDTO = new SynLogDTO(); logDTO.setSynType(SrvType.SRV_PA_PROJECT); logDTO.setCreatedBy(user.getUserId()); logDTO.setSynMsg( "同步MIS项目信息结束!成功" + totalCount + ",失败" + errorCount + ",耗时" + resumeTime + "毫秒"); logUtil.synLog(logDTO, conn); } catch (Throwable e) { Logger.logError(e); } }
/** 查询值集信息 */ public void synSetValue(Connection conn, SfUserDTO user, String source) { int totalCount = 0; long resumeTime = 0; int errorCount = 0; long start = System.currentTimeMillis(); SynLogDTO logDTO = null; SynLogUtil logUtil = new SynLogUtil(); try { logDTO = new SynLogDTO(); logDTO.setSynType(SrvType.SRV_SET_VALUESET); logDTO.setCreatedBy(user.getUserId()); logDTO.setSynMsg("同步MIS值集值信息服务开始"); logUtil.synLog(logDTO, conn); SBSYSYInquiryVSetValueInfoDAO mFndFlexValuesDAO = new SBSYSYInquiryVSetValueInfoDAO(user, null, conn); List valuesList = mFndFlexValuesDAO.getAllFlexValues(source); if (valuesList != null && valuesList.size() > 0) { SBSYSYInquiryVSetValueInfoSrv setValueInfoSrv = new SBSYSYInquiryVSetValueInfoSrv(); setValueInfoSrv.setStartLastUpdateDate( SynUpdateDateUtils.getLastUpdateDate(SrvType.SRV_SET_VALUESET, conn)); for (int i = 0; i < valuesList.size(); i++) { String flexValueName = (String) valuesList.get(i); setValueInfoSrv.setFlexValueName(flexValueName); setValueInfoSrv.execute(); SrvReturnMessage srvMessage = setValueInfoSrv.getReturnMessage(); if (srvMessage.getErrorFlag().equalsIgnoreCase("Y")) { DTOSet ds = setValueInfoSrv.getDs(); for (int j = 0; j < ds.getSize(); j++) { SBSYSYInquiryVSetValueInfoDTO valueSetDTO = (SBSYSYInquiryVSetValueInfoDTO) ds.getDTO(j); mFndFlexValuesDAO.setDTOParameter(valueSetDTO); try { if (mFndFlexValuesDAO.isexistsSetValueModel( valueSetDTO.getFlexValue(), valueSetDTO.getFlexValueSetId())) { mFndFlexValuesDAO.updateData(); } else { mFndFlexValuesDAO.createData(); } totalCount++; } catch (Throwable e) { Logger.logError(e); logDTO = new SynLogDTO(); logDTO.setSynType(SrvType.SRV_SET_VALUESET); logDTO.setCreatedBy(user.getUserId()); logDTO.setSynMsg(e.toString()); logUtil.synLog(logDTO, conn); errorCount++; } } } } if (errorCount == 0) { SynUpdateDateUtils.createLastUpdateDate(SrvType.SRV_SET_VALUESET, conn); SynUpdateDateUtils.updateLastUpdateDate(SrvType.SRV_SET_VALUESET, conn); } } resumeTime = System.currentTimeMillis() - start; logDTO = new SynLogDTO(); logDTO.setSynType(SrvType.SRV_SET_VALUESET); logDTO.setCreatedBy(user.getUserId()); logDTO.setSynMsg( "同步MIS值集值信息服务结束。成功" + totalCount + ",失败" + errorCount + ",耗时" + resumeTime + "毫秒"); logUtil.synLog(logDTO, conn); } catch (Throwable e) { Logger.logError(e); } }
/** 查询员工信息 */ public void synEmployeeInfo(Connection conn, SfUserDTO user) { long resumeTime = 0; int baseErrorCount = 0; int baseTotalCount = 0; int assignErrorCount = 0; int assignTotalCount = 0; long start = System.currentTimeMillis(); SBHRHRInquiryEmpBaseInfoSrv employeeInfoSrv = new SBHRHRInquiryEmpBaseInfoSrv(); SynLogDTO logDTO = null; SynLogUtil logUtil = new SynLogUtil(); try { logDTO = new SynLogDTO(); logDTO.setSynType(SrvType.SRV_EMPLOYEE); logDTO.setCreatedBy(user.getUserId()); logDTO.setSynMsg("同步MIS员工信息开始"); logUtil.synLog(logDTO, conn); employeeInfoSrv.setStartLastUpdateDate( SynUpdateDateUtils.getLastUpdateDate(SrvType.SRV_EMPLOYEE, conn)); employeeInfoSrv.excute(); SrvReturnMessage srvMessage = employeeInfoSrv.getReturnMessage(); if (srvMessage.getErrorFlag().equalsIgnoreCase("Y")) { DTOSet ds = employeeInfoSrv.getDs(); SBHRHRSrvEmpInfoDAO srvEmployeeInfoDAO = new SBHRHRSrvEmpInfoDAO(user, null, conn); for (int i = 0; i < ds.getSize(); i++) { SBHRHRSrvEmployeeInfoDTO dto = (SBHRHRSrvEmployeeInfoDTO) ds.getDTO(i); srvEmployeeInfoDAO.setDTOParameter(dto); try { if (srvEmployeeInfoDAO.isServiceTypeExists(dto.getEmployeeNumber())) { srvEmployeeInfoDAO.updateData(); } else { srvEmployeeInfoDAO.createData(); } baseTotalCount++; } catch (Throwable e) { Logger.logError(e); logDTO = new SynLogDTO(); logDTO.setSynType(SrvType.SRV_EMPLOYEE); logDTO.setCreatedBy(user.getUserId()); logDTO.setSynMsg(e.toString()); logUtil.synLog(logDTO, conn); baseErrorCount++; } } SBHRHRInquiryEmpAssignInfoSrv empAssignInfoSrv = new SBHRHRInquiryEmpAssignInfoSrv(); empAssignInfoSrv.setStartLastUpdateDate( SynUpdateDateUtils.getLastUpdateDate(SrvType.SRV_EMPLOYEE, conn)); empAssignInfoSrv.execute(); SrvReturnMessage empMessage = empAssignInfoSrv.getReturnMessage(); if (empMessage.getErrorFlag().equalsIgnoreCase("Y")) { DTOSet dtos = empAssignInfoSrv.getDs(); SBHRHRSrvEmpAssignDAO srvEmpAssignInfoDAO = new SBHRHRSrvEmpAssignDAO(user, null, conn); for (int i = 0; i < dtos.getSize(); i++) { SBHRHRSrvEmployeeInfoDTO dto = (SBHRHRSrvEmployeeInfoDTO) dtos.getDTO(i); srvEmpAssignInfoDAO.setDTOParameter(dto); try { if (srvEmpAssignInfoDAO.isEmployeeExists(dto.getEmployeeNumber())) { srvEmpAssignInfoDAO.updateData(); assignTotalCount++; } } catch (Throwable e) { Logger.logError(e); logDTO = new SynLogDTO(); logDTO.setSynType(SrvType.SRV_EMPLOYEE); logDTO.setCreatedBy(user.getUserId()); logDTO.setSynMsg(e.toString()); logUtil.synLog(logDTO, conn); assignErrorCount++; } } } if (baseErrorCount + assignErrorCount == 0) { SynUpdateDateUtils.createLastUpdateDate(SrvType.SRV_EMPLOYEE, conn); SynUpdateDateUtils.updateLastUpdateDate(SrvType.SRV_EMPLOYEE, conn); } } resumeTime = System.currentTimeMillis() - start; logDTO = new SynLogDTO(); logDTO.setSynType(SrvType.SRV_EMPLOYEE); logDTO.setCreatedBy(user.getUserId()); logDTO.setSynMsg( "同步MIS员工信息结束。共同步" + (baseTotalCount + baseErrorCount + assignTotalCount + assignErrorCount) + "条记录," + "员工基本信息同步成功" + baseTotalCount + ",失败" + baseErrorCount + "," + "员工分配信息同步成功" + assignTotalCount + ",失败" + assignErrorCount + "," + "耗时" + resumeTime + "毫秒"); logUtil.synLog(logDTO, conn); } catch (Throwable e) { Logger.logError(e); } }
/** * 功能:保存工单 * * @param orders DTOSet * @return boolean */ public boolean saveOrders(DTOSet orders) { boolean operateResult = false; boolean autoCommit = true; EamDhCheckBatchDTO dto = (EamDhCheckBatchDTO) dtoParameter; boolean isNewBatch = dto.getBatchId().equals(""); String act = dto.getAct(); try { autoCommit = conn.getAutoCommit(); conn.setAutoCommit(false); if (isNewBatch) { SeqProducer seqPrd = new SeqProducer(conn); // TODO dto.setBatchId(seqPrd.getStrNextSeq("EAM_DH_CHECK_BATCH") + ""); String companyCode = userAccount.getCompanyCode(); String orderType = LvecDicts.CHECK_BATCH; OrderNumGenerator numPrd = new OrderNumGenerator(conn, companyCode, orderType); numPrd.setOrderLength(3); dto.setBatchNo(numPrd.getOrderNum()); setDTOParameter(dto); createData(); } else { updateData(); } EamDhCheckLineDAO lineDAO = new EamDhCheckLineDAO(userAccount, null, conn); EamDhCheckLineDTO orderLine = new EamDhCheckLineDTO(); if (!dto.getOrderType().equals(LvecDicts.ORD_TYPE1_DHBS)) { orderLine.setBatchId(dto.getBatchId()); lineDAO.setDTOParameter(orderLine); lineDAO.DeleteByForeignKey("batchId"); } EamDhCheckHeaderDTO orderHeader = new EamDhCheckHeaderDTO(); orderHeader.setBatchId(dto.getBatchId()); EamDhCheckHeaderDAO headerDAO = new EamDhCheckHeaderDAO(userAccount, orderHeader, conn); headerDAO.DeleteByForeignKey("batchId"); int orderCount = orders.getSize(); for (int i = 0; i < orderCount; i++) { orderHeader = (EamDhCheckHeaderDTO) orders.getDTO(i); if (orderHeader.getCheckLocation() == 0) { continue; } orderHeader.setBatchId(dto.getBatchId()); orderHeader.setCheckTaskId(dto.getCheckTaskId()); orderHeader.setAct(act); headerDAO.setDTOParameter(orderHeader); headerDAO.saveOrder(); if (!orderHeader.getOrderType().equals(LvecDicts.ORD_TYPE1_DHBS)) { // 非补扫工单才需要创建行信息 orderHeader = (EamDhCheckHeaderDTO) headerDAO.getDTOParameter(); orderLine.setHeaderId(orderHeader.getHeaderId()); orderLine.setOrderType(orderHeader.getOrderType()); orderLine.setBatchId(dto.getBatchId()); lineDAO.setDTOParameter(orderLine); lineDAO.createData(); } } operateResult = true; } catch (Exception ex) { Logger.logError(ex); } finally { try { if (operateResult) { conn.commit(); if (act.equals(DzyhActionConstant.SAVE_ACTION)) { // 暂存工单 prodMessage(LvecMessageKeys.ORDER_SAVE_SUCCESS); } else if (act.equals(DzyhActionConstant.DISTRI_ORDER)) { // 下发工单 prodMessage(LvecMessageKeys.ORDER_DISTRI_SUCCESS); } } else { conn.rollback(); if (isNewBatch) { dto.setBatchId(""); dto.setBatchNo(LvecWebAttributes.ORDER_NO_AUTO_PRODUCE); } if (act.equals(DzyhActionConstant.SAVE_ACTION)) { // 暂存工单 prodMessage(LvecMessageKeys.ORDER_SAVE_FAILURE); } else if (act.equals(DzyhActionConstant.DISTRI_ORDER)) { // 下发工单 prodMessage(LvecMessageKeys.ORDER_DISTRI_FAILURE); } message.setIsError(true); } conn.setAutoCommit(autoCommit); setDTOParameter(dto); } catch (SQLException ex) { Logger.logError(ex); } } return operateResult; }
/** * 提交工单 * * @param dtoSet * @return * @throws QueryException * @throws DataHandleException */ private boolean importEAMhouse(DTOSet dtoSet) throws DataHandleException { boolean operatorResult = false; try { if (dtoSet != null && dtoSet.getSize() > 0) { EtsFaAssetsDTO faDTO = null; EtsItemInfoDTO itemDTO = null; AmsHouseInfoDTO houseDTO = null; SystemItemHouse systemItemUtil = new SystemItemHouse(); for (int i = 0; i < dtoSet.getSize(); i++) { faDTO = (EtsFaAssetsDTO) dtoSet.getDTO(i); itemDTO = new EtsItemInfoDTO(); itemDTO.setBarcode(faDTO.getTagNumber()); itemDTO.setItemName(faDTO.getAssetsDescription()); itemDTO.setItemSpec(faDTO.getModelNumber()); itemDTO.setItemQty(StrUtil.nullToString(faDTO.getCurrentUnits())); itemDTO.setStartDate(faDTO.getDatePlacedInService().toString()); itemDTO.setItemCategory("HOUSE"); itemDTO.setAssetId(faDTO.getAssetId()); itemDTO.setOrganizationId(faDTO.getOrganizationId()); itemDTO.setFinanceProp("ASSETS"); itemDTO = systemItemUtil.checkSysItem(conn, itemDTO); appendProjIdData(itemDTO, faDTO); appendUserData(itemDTO, faDTO); appendAddressData(itemDTO, faDTO); if (StrUtil.isEmpty(itemDTO.getAddressId())) { addAddressData(faDTO); appendAddressData(itemDTO, faDTO); } if (StrUtil.isEmpty(itemDTO.getAddressId())) { continue; } houseDTO = new AmsHouseInfoDTO(); houseDTO.setBarcode(faDTO.getTagNumber()); houseDTO.setHouseAddress(faDTO.getAssetsLocation()); houseDTO.setHremark("house信息导入"); itemDTO.setSystemId(getNextSystemId()); itemDTO.setRemark("house信息导入"); if (!isExist(faDTO)) { insertEtsItemInfo(itemDTO); // IN ams_item_info } insertHouesInfo(houseDTO); // IN ams_house_info matchData(itemDTO, faDTO); // 进行匹配操作 } } operatorResult = true; } catch (DataHandleException ex) { ex.printLog(); throw new DataHandleException(ex); } catch (SQLException ex) { Logger.logError(ex); throw new DataHandleException(ex); } catch (ContainerException ex) { ex.printLog(); throw new DataHandleException(ex); } catch (QueryException ex) { ex.printLog(); throw new DataHandleException(ex); } catch (CalendarException ex) { ex.printLog(); throw new DataHandleException(ex); } return operatorResult; }
public void run() { Connection conn = null; DTOSet messages = null; SfMsgDefineDTO message = null; int msgCount = 0; DTOSet sendInfos = null; SfMsgSendInfoDTO sendDTO = null; String cellPhone = ""; boolean needSend = false; System.out.println("启动消息服务..."); while (true) { try { sleep(300000); AmsEmailSend send = new AmsEmailSend(); send.sendEmail(); conn = DBManager.getDBConnection(); msgProcessService.finishMessages(conn); // 更新已经处理过的消息的状态。 messages = msgProcessService.getNeedSendMessages(conn); if (messages == null || messages.isEmpty()) { continue; } msgCount = messages.getSize(); for (int i = 0; i < msgCount; i++) { message = (SfMsgDefineDTO) messages.getDTO(i); sendInfos = msgProcessService.getMsgSendInfos(conn, message); if (sendInfos == null || sendInfos.isEmpty()) { continue; } sendService.setMessage(message.getMsgContent()); for (int j = 0; j < sendInfos.getSize(); j++) { sendDTO = (SfMsgSendInfoDTO) sendInfos.getDTO(j); cellPhone = sendDTO.getMsgCellPhone(); needSend = msgProcessService.needSend(conn, sendDTO); if (needSend) { // 需要发送 sendService.addPhoneNum(cellPhone); if (sendService.getPhoneCount() >= sendService.getMaxPhoneNum()) { sendService.sendMessage(); sendService.clearPhoneList(); } } if (needSend) { msgProcessService.processSendLog(conn, sendDTO, cellPhone); } } if (sendService.getPhoneCount() > 0) { sendService.sendMessage(); sendService.clearPhoneList(); } } } catch (PoolException ex) { ex.printLog(); } catch (InterruptedException ex) { Logger.logError(ex); } catch (QueryException ex) { ex.printLog(); } catch (DataHandleException ex) { ex.printLog(); } catch (OutOfBoundsException ex) { Logger.logError(ex); } catch (NoSuchProviderException e) { Logger.logError(e); } finally { DBManager.closeDBConnection(conn); } } }