Просмотр исходного кода

Merge remote-tracking branch 'origin/mes_malata_prod' into mes_malata_prod

caosy 5 лет назад
Родитель
Сommit
e9e2b01844

+ 2 - 1
WebContent/WEB-INF/spring/config.xml

@@ -20,6 +20,7 @@
 	<bean id="baseUtil" class="com.uas.mes.common.util.BaseUtil"></bean>
 	<util:properties id="about">
 		<prop key="defaultSob">UAS_MES</prop>
+		<!--<prop key="filepath">/usr/local/uas/mes/webapps/postattach/</prop>-->
 	</util:properties>
 	<mvc:default-servlet-handler />
 	<!-- 自动扫描 ,把作了注解的类转换为bean -->
@@ -214,4 +215,4 @@
 
 	<import resource="db-config.xml" />
 	<import resource="cache-default.xml" />
-</beans>
+</beans>

+ 28 - 12
WebContent/WEB-INF/spring/db-config.xml

@@ -4,18 +4,34 @@
 	xsi:schemaLocation="
 		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 	<!-- 数据源 -->
-	<bean id="UAS_MES" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
-		<property name="driverClassName">
-			<value>oracle.jdbc.driver.OracleDriver</value>
-		</property>
-		<property name="url">
-			<value>jdbc:oracle:thin:@192.168.230.200:1521:orcl</value>
-		</property>
-		<property name="username">
-			<value>MES_ZZ</value>
-		</property>
-		<property name="password" value="select!#%*(" />
-	</bean>
+        <bean id="UAS_MES" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
+                <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
+                <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
+                <property name="username" value="MES_ZZ" />
+                <property name="password" value="select!#%*(" />
+                <property name="initialSize" value="2" />
+                <property name="maxActive" value="100" />
+                <property name="minIdle" value="2" />
+
+                <!-- 配置获取连接等待超时的时间 -->
+                <property name="maxWait" value="30000" />
+
+                <property name="testOnBorrow" value="false" />
+                <property name="testOnReturn" value="false" />
+                <property name="testWhileIdle" value="true" />
+                <property name="validationQuery" value="SELECT 1 FROM SYS.DUAL" />
+                <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接 -->
+                <property name="timeBetweenEvictionRunsMillis" value="60000" />
+                <property name="removeAbandoned" value="true" />
+                <property name="removeAbandonedTimeout" value="180" />
+                <!-- 配置一个连接在池中最小生存的时间 -->
+                <property name="minEvictableIdleTimeMillis" value="300000" />
+                <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
+                <property name="poolPreparedStatements" value="true" />
+                <property name="maxPoolPreparedStatementPerConnectionSize" value="50" />
+                <!-- 配置监控统计拦截的filters -->
+                <property name="filters" value="stat" />
+        </bean>
 	<!-- 将需要用到的多个帐套的dataSource定义在此,再通过multiDataSource切换 -->
 	<bean id="dataSource" class="com.uas.mes.core.data.MultiDataSource">
 		<property name="dataSource">

+ 28 - 1
WebContent/WEB-INF/web.xml

@@ -36,6 +36,33 @@
 		<servlet-name>mes-servlet</servlet-name>
 		<url-pattern>/</url-pattern>
 	</servlet-mapping>
+
+ 	<!-- 配置 Druid 监控信息显示页面 -->
+  	<servlet>
+    		<servlet-name>DruidStatView</servlet-name>
+    		<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
+    		<init-param>
+      			<!-- 允许清空统计数据 -->
+      			<param-name>resetEnable</param-name>
+      			<param-value>true</param-value>
+    		</init-param>
+    		<async-supported>true</async-supported>
+    		<!-- <init-param>
+               		用户名
+      			<param-name>loginUsername</param-name>
+      			<param-value>admin</param-value>
+    		</init-param>
+    		<init-param>
+      			密码
+      			<param-name>loginPassword</param-name>
+      			<param-value>select123***</param-value>
+    		</init-param> -->
+  	</servlet>
+  	<servlet-mapping>
+    		<servlet-name>DruidStatView</servlet-name>
+    		<url-pattern>/druid/*</url-pattern>
+  	</servlet-mapping>
+
 	<error-page>
 		<error-code>404</error-code>
 		<location>/jsps/error/e-404.jsp</location>
@@ -112,4 +139,4 @@
 		<filter-name>CacheForWeek</filter-name>
 		<url-pattern>/style/*</url-pattern>
 	</filter-mapping>
-</web-app>
+</web-app>

+ 15 - 1
src/com/uas/mes/pda/service/impl/PdaSMTServiceImpl.java

@@ -927,7 +927,21 @@ public class PdaSMTServiceImpl implements PdaSMTService {
         List<String> sqls = new ArrayList<String>();
         if(dl_actmadeqty == null || ("").equals(dl_actmadeqty)){
     	   dl_actmadeqty=0;
-       }   
+       }
+        //执行切换之前,先锁deviceline 表和devicesmtlocation
+		try {
+			baseDao.execute("select dl_id from deviceline where dl_linecode=? for update wait 3", dl_linecode);
+		} catch (Exception e) {
+			System.out.println(e.getMessage());
+			throw new APIErrorException(APIErrorCode.BUSINESS_FAILED,"请等待其它操作执行之后再进行切换操作");
+		}
+		try {
+			baseDao.execute("select dsl_id from devsmtlocation where dsl_linecode=? for update wait 3", dl_linecode);
+		} catch (Exception e) {
+			System.out.println(e.getMessage());
+			throw new APIErrorException(APIErrorCode.BUSINESS_FAILED,"请等待其它操作执行之后再进行切换操作");
+		}
+
        //先判断传过来的值dl_madeqty,必须大于0,并且介于dl_madeqty和ma_qty之间
   		if(dl_actmadeqty<0){
   			throw new APIErrorException(APIErrorCode.BUSINESS_FAILED,"产出数不允许小于0");