Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r31946 -r31947 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 31946) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 31947) @@ -136,6 +136,8 @@ import com.forgon.exception.SystemException; import com.forgon.log.model.Log; import com.forgon.log.service.LogManager; +import com.forgon.runwithtrans.model.RunWithTransNewTask; +import com.forgon.runwithtrans.service.RunWithTransNewManager; import com.forgon.security.model.User; import com.forgon.serialnumber.model.SerialNum; import com.forgon.serialnumber.service.SerialNumManager; @@ -226,7 +228,14 @@ private UseRecordPushDao useRecordPushDao; - public void setUseRecordPushDao(UseRecordPushDao useRecordPushDao) { + private RunWithTransNewManager runWithTransNewManager; + + public void setRunWithTransNewManager( + RunWithTransNewManager runWithTransNewManager) { + this.runWithTransNewManager = runWithTransNewManager; + } + + public void setUseRecordPushDao(UseRecordPushDao useRecordPushDao) { this.useRecordPushDao = useRecordPushDao; } @@ -10005,31 +10014,55 @@ } @Override - public void pushUseRecord(UseRecord modified) { - if(useRecordPushDao != null){ - boolean enableUseRecordTransportToThirdPartySystem = - ConfigUtils.getSystemSetConfigByNameBool("enableUseRecordTransportToThirdPartySystem"); - if(!enableUseRecordTransportToThirdPartySystem){ - return; - } - boolean success = false; - try { - success = useRecordPushDao.pushUseRecord(modified); - } catch (Exception e) { - e.printStackTrace(); - success = false; - } - if(success){ - // 推送成功,则【是否推送成功】改为【是】 - modified.setFinishPush(Constants.STR_YES); - }else{ - // 推送失败,则【是否推送成功】改为【否】 - modified.setFinishPush(Constants.STR_NO); - } - // 【最后推送时间】,无论推送成功,或者推送失败,都记最后的推送时间 - modified.setLastPushDateTime(new Date()); - objectDao.saveOrUpdate(modified); + public void pushUseRecord(UseRecord useRecord) { + + if(useRecordPushDao == null){ + return; } + // 没开配置项,不需要推送 + boolean enableUseRecordTransportToThirdPartySystem = + ConfigUtils.getSystemSetConfigByNameBool("enableUseRecordTransportToThirdPartySystem"); + if(!enableUseRecordTransportToThirdPartySystem){ + return; + } + + if(useRecord == null || !DatabaseUtil.isPoIdValid(useRecord.getId())){ + return; + } + + Thread thread = new Thread(){ + @Override + public void run() { + runWithTransNewManager.runWith_TRANS_NEW(new RunWithTransNewTask() { + @Override + public void runTask() { + UseRecord modified = null; + modified = (UseRecord) objectDao.getById(UseRecord.class.getSimpleName(), useRecord.getId()); + if(modified == null){ + return; + } + boolean success = false; + try { + success = useRecordPushDao.pushUseRecord(modified); + } catch (Exception e) { + e.printStackTrace(); + success = false; + } + if(success){ + // 推送成功,则【是否已推送】改为【是】 + modified.setFinishPush(Constants.STR_YES); + }else{ + // 推送失败,则【是否已推送】改为【否】 + modified.setFinishPush(Constants.STR_NO); + } + // 【最后推送时间】,无论推送成功,或者推送失败,都记最后的推送时间 + modified.setLastPushDateTime(new Date()); + objectDao.saveOrUpdate(modified); + } + }); + } + }; + thread.start(); } @Override