<description>Quartz Local Cron Job Configuration</description>
<bean id="localQuartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
<property name="triggers">
<list>
<ref bean="sendUnCrtWoOrderToTAMTrigger"/>
<ref bean="modifyStatusOfClaimWoTrigger"/>
<ref bean="modifyStatusOfAssignedWoTrigger"/>
<ref bean="generateAssignedWoToSapTrigger"/>
<ref bean="generateClaimedWoToSapTrigger"/>
<ref bean="syncAssignedWoToSapTrigger"/>
<!-- <ref bean="createProductOrderTrigger"/>-->
<ref bean="sendWorkOrderSupplyMailTrigger"/>
<ref bean="syncClaimedWoToSapTrigger"/>
<ref bean="qvEvaluateTrigger"/>
<ref bean="usQvEvaluateTrigger"/>
<ref bean="geneUploadFileTrigger"/>
<ref bean="sendClosedNSHGSTrigger"/>
<ref bean="peptideDelayItemNoticeTrigger"/>
<ref bean="OilgoGroupTrigger"/>
<ref bean="getInvoicePaymentListTrigger"/>
<!-- <ref bean="OverdueEmailJobTrigger"/> -->
<ref bean="grnaStockUpdateTrigger"/>
<ref bean="scanZatoErrLogCallAgainTrigger"/><!-- 扫描zato错误日志进行重传 -->
<ref bean="productionUploadFileTrigger"/><!-- 扫描用户批量上传的生产文件进入系统 -->
<ref bean="synWoStatusToOrderTrigger"/><!-- 同步工单的分组和QC Passed 到订单系统 vc和pc -->
<ref bean="mobileOligoQCPassTrigger"/><!-- mes mobile QCPass 定时任务 -->
<ref bean="qcResultCheckTrigger"/><!-- 查找未做product qc 和没有上传文件的 基因订单给生产部门提醒 -->
<ref bean="peptideAutoAssignGroupTrigger"/>
<ref bean="autoOligoDesignSaveGeneItemJobTrigger"/> <!-- 小gene订单自动设计引物和下单,定时任务扫描保存到geneItem表 -->
<ref bean="updateOligoGroupTrigger"/><!-- 更新oligo order的target user group -->
<ref bean="cleanUpMsPlateTrigger"/><!-- 清理过期的MS Plate以便重复利用 -->
</list>
</property>
<property name="quartzProperties">
<props>
<prop key="org.quartz.threadPool.threadCount">16</prop>
</props>
</property>
<property name="startupDelay" value="3" />
</bean>
<bean id="cleanUpMsPlateTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="cleanUpMsPlateJobDetail" />
<property name="cronExpression" value="0 0 07 * * ?" />
</bean>
<bean id="cleanUpMsPlateJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="cleanUpMsPlateJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="cleanUpMsPlateJob" class = "com.genscript.gsscm.common.jobs.CleanUpMsPlateJob"/>
<bean id="updateOligoGroupTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="updateOligoGroupJobDetail" />
<property name="cronExpression" value="0 0 00 * * ?" />
</bean>
<bean id="updateOligoGroupJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="updateOligoGroupJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="updateOligoGroupJob" class = "com.genscript.gsscm.common.jobs.UpdateOligoGroupJob"/>
<bean id="qvEvaluateTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="qvEvaluateJobDetail" />
<property name="cronExpression" value="0 0/20 * * * ?" />
</bean>
<bean id="qvEvaluateJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="qvEvaluateJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="qvEvaluateJob" class = "com.genscript.gsscm.common.jobs.QvEvaluateJob"/>
<bean id="usQvEvaluateTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="usQvEvaluateJobDetail" />
<property name="cronExpression" value="0 0/30 * * * ?" />
</bean>
<bean id="usQvEvaluateJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="usQvEvaluateJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="usQvEvaluateJob" class = "com.genscript.gsscm.common.jobs.UsQvEvaluateJob"/>
<bean id="geneUploadFileTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="geneUploadFileTriggerJobDetail" />
<property name="cronExpression" value="0 40 * * * ?" />
</bean>
<!--add by zhanghuibin-->
<bean id="geneUploadFileTriggerJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="geneUploadFileJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="geneUploadFileJob" class = "com.genscript.gsscm.common.jobs.GeneUploadFileJob"/>
<!-- Grna Stock Update -->
<bean id="grnaStockUpdateTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="grnaStockUpdateJobDetail" />
<property name="cronExpression" value="0 0 0 * * ?" />
</bean>
<bean id="grnaStockUpdateJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="grnaStockUpdateJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="true" />
</bean>
<bean id="grnaStockUpdateJob" class = "com.genscript.gsscm.common.jobs.GrnaStockUpdateJob"/>
<bean id="sendClosedNSHGSTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="sendClosedNSHGSJobDetail" />
<property name="cronExpression" value="0 0 16 * * ?" />
</bean>
<bean id="sendClosedNSHGSJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="sendClosedNSHGSToProdJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="true" />
</bean>
<bean id="sendClosedNSHGSToProdJob" class="com.genscript.gsscm.common.jobs.SendClosedNSHGSToProdJob" />
<bean id="peptideDelayItemNoticeTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="peptideDelayItemNoticeJobDetail" />
<property name="cronExpression" value="0 0 18 * * ?" />
</bean>
<bean id="peptideDelayItemNoticeJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="peptideDelayItemNoticeJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="true" />
</bean>
<bean id="peptideDelayItemNoticeJob" class="com.genscript.gsscm.common.jobs.PeptideDelayItemNoticeJob" />
<bean id="sendWorkOrderSupplyMailTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="sendWorkOrderSupplyMailJobDetail" />
<property name="cronExpression" value="0 0 6,12,16 * * ?" />
</bean>
<bean id="sendWorkOrderSupplyMailJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="sendWorkOrderSupplyMailJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="sendWorkOrderSupplyMailJob" class="com.genscript.gsscm.common.jobs.WorkOrderSupplyMailSendingJob" />
<bean id="testSendWorkOrderSupplyMailTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="testSendWorkOrderSupplyMailJobDetail" />
<property name="cronExpression" value="0 0 6,10,12,16 * * ?" />
</bean>
<bean id="testSendWorkOrderSupplyMailJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="testSendWorkOrderSupplyMailJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="testSendWorkOrderSupplyMailJob" class="com.genscript.gsscm.common.jobs.TestWorkOrderSupplyMailSendingJob" />
<bean id="sendUnCrtWoOrderToTAMTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="sendUnCrtWoOrderToTAMJobDetail" />
<property name="cronExpression" value="0 0/10 * * * ?" />
</bean>
<bean id="sendUnCrtWoOrderToTAMJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="sendUnCrtWoOrderToTAMJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="sendUnCrtWoOrderToTAMJob" class = "com.genscript.gsscm.common.jobs.SendUnCrtWoOrderToTAMJob"/>
<bean id="generateAssignedWoToSapTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="generateAssignedWoToSapJobDetail" />
<property name="cronExpression" value="0 0/10 * * * ?" />
</bean>
<bean id="generateClaimedWoToSapTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="generateClaimedWoToSapJobDetail" />
<property name="cronExpression" value="0 0/17 * * * ?" />
</bean>
<bean id="generateAssignedWoToSapJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="sapService" />
<property name="targetMethod" value="generateAssignedWoToSap" />
<property name="concurrent" value="false" />
</bean>
<bean id="generateClaimedWoToSapJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="generateClaimedWoToSapJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="syncAssignedWoToSapTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="syncAssignedWoToSapJobDetail" />
<property name="cronExpression" value="0 0/5 * * * ?" />
</bean>
<bean id="syncAssignedWoToSapJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="syncAssignedWoToSAPJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="createProductOrderTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="createProductOrderjobDetail" />
<property name="cronExpression" value="0 0/10 * * * ?" />
</bean>
<bean id="createProductOrderjobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="createProductOrderJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="true" />
</bean>
<bean id="syncAssignedWoToSAPJob" class = "com.genscript.gsscm.common.jobs.SyncAssignedWoToSAPJob"/>
<bean id="createProductOrderJob" class = "com.genscript.gsscm.common.jobs.CreateProductOrderJob"/>
<bean id="OilgoGroupTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="OilgoGroupJobDetail" />
<property name="cronExpression" value="0 */15 * * * ?" />
</bean>
<bean id="OilgoGroupJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="OilgoGroupJob" />
<property name="targetMethod" value="execute"/>
<property name="concurrent" value="false" />
</bean>
<bean id="OilgoGroupJob" class="com.genscript.gsscm.common.jobs.OilgoGroupJob">
</bean>
<bean id="syncClaimedWoToSapTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="syncClaimedWoToSapJobDetail" />
<property name="cronExpression" value="0 0/5 * * * ?" />
</bean>
<bean id="syncClaimedWoToSapJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="syncSapWoClaimWoToSapJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="syncSapWoClaimWoToSapJob" class="com.genscript.gsscm.common.jobs.SyncSapWoClaimWoToSapJob">
</bean>
<bean id="generateClaimedWoToSapJob" class="com.genscript.gsscm.common.jobs.GenerateClaimedWoToSapJob">
</bean>
<bean id="scanZatoErrLogCallAgainTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="scanZatoErrLogCallAgainJobDetail" />
<property name="cronExpression" value="0 0 18 * * ?" />
</bean>
<bean id="scanZatoErrLogCallAgainJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="scanZatoErrLogCallAgainJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="scanZatoErrLogCallAgainJob" class = "com.genscript.gsscm.common.jobs.ScanZatoErrLogCallAgainJob"/>
<bean id="productionUploadFileTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="productionUploadFileJobDetail" />
<property name="cronExpression" value="0 0/17 * * * ?" />
</bean>
<bean id="productionUploadFileJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="productionUploadFileJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="productionUploadFileJob" class = "com.genscript.gsscm.common.jobs.ProductionUploadFileJob"/>
<bean id="synWoStatusToOrderJob" class = "com.genscript.gsscm.common.jobs.SynWoStatusToOrderJob"/>
<bean id="synWoStatusToOrderTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="synWoStatusToOrderJobDetail" />
<property name="cronExpression" value="0 0 07,11,17 * * ?" />
</bean>
<bean id="synWoStatusToOrderJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="synWoStatusToOrderJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="getInvoicePaymentListTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="getInvoicePaymentListJobDetail" />
<property name="cronExpression" value="0 30 22 * * ?" />
</bean>
<bean id="getInvoicePaymentListJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="getInvoicePaymentListJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="true" />
</bean>
<bean id="getInvoicePaymentListJob" class="com.genscript.gsscm.common.jobs.GetInvoicePaymentListJob" />
<bean id="OverdueEmailJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="OverdueEmailJobDetail" />
<property name="cronExpression" value="0 0/5 * * * ?" />
</bean>
<bean id="OverdueEmailJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="OverdueEmailJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="true" />
</bean>
<bean id="OverdueEmailJob" class="com.genscript.gsscm.common.jobs.OverdueEmailJob" />
<!-- mes mobile QCPass 定时任务 -->
<bean id="mobileOligoQCPassTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="mobileOligoQCPassJobDetail" />
<property name="cronExpression" value="0 0/5 * * * ?" />
</bean>
<bean id="mobileOligoQCPassJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="mobileOligoQCPassJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="true" />
</bean>
<bean id="mobileOligoQCPassJob" class = "com.genscript.gsscm.common.jobs.MobileOligoQCPassJob"/>
<bean id="qcResultCheckTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="qcResultCheckJobDetail" />
<property name="cronExpression" value="0 0 08 * * ?" />
</bean>
<bean id="qcResultCheckJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="qcResultCheckJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="true" />
</bean>
<bean id="qcResultCheckJob" class="com.genscript.gsscm.common.jobs.QcResultCheckJob" />
<bean id="peptideAutoAssignGroupTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="peptideAutoAssignGroupJobDetail" />
<property name="cronExpression" value="0 0 8,12 * * ?" />
</bean>
<bean id="peptideAutoAssignGroupJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="peptideAutoAssignGroupJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="peptideAutoAssignGroupJob" class="com.genscript.gsscm.common.jobs.PeptideAutoAssignGroupJob" />
<!-- 小gene订单自动设计引物和下单,定时任务扫描保存到geneItem表 -->
<bean id="autoOligoDesignSaveGeneItemJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="autoOligoDesignSaveGeneItemJobDetail" />
<property name="cronExpression" value="0 0 01 * * ?" />
</bean>
<bean id="autoOligoDesignSaveGeneItemJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="autoOligoDesignSaveGeneItemJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="true" />
</bean>
<bean id="autoOligoDesignSaveGeneItemJob" class = "com.genscript.gsscm.common.jobs.AutoOligoDesignSaveGeneItemJob"/>
<!-- 分组和报工 -->
<bean id="modifyStatusOfAssignedWoTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="modifyStatusOfAssignedWoJobDetail" />
<property name="cronExpression" value="0 0 01 * * ?" />
</bean>
<bean id="modifyStatusOfAssignedWoJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="modifyStatusOfAssignedWoJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="modifyStatusOfAssignedWoJob" class="com.genscript.gsscm.common.jobs.ModifyStatusOfAssignedWoJob"/>
<bean id="modifyStatusOfClaimWoTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="modifyStatusOfClaimWoJobDetail" />
<property name="cronExpression" value="0 0 05 * * ?" />
</bean>
<bean id="modifyStatusOfClaimWoJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="modifyStatusOfClaimWoJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="modifyStatusOfClaimWoJob" class="com.genscript.gsscm.common.jobs.ModifyStatusOfClaimWoJob"/>