Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/dwr/table/DiposableGoodsTableManager.java
===================================================================
diff -u -r12914 -r13006
--- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/dwr/table/DiposableGoodsTableManager.java (.../DiposableGoodsTableManager.java) (revision 12914)
+++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/dwr/table/DiposableGoodsTableManager.java (.../DiposableGoodsTableManager.java) (revision 13006)
@@ -28,6 +28,7 @@
import com.forgon.tools.SpringBeanManger;
import com.forgon.tools.hibernate.ObjectDao;
import com.forgon.tools.json.JSONUtil;
+import com.forgon.tools.util.ForgonStringUtils;
import com.forgon.tools.util.SqlUtils;
public class DiposableGoodsTableManager {
@@ -44,6 +45,8 @@
private WareHouseManager wareHouseManager;
+ private ObjectDao objectDao;
+
public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) {
this.dateQueryAdapter = dateQueryAdapter;
}
@@ -69,6 +72,11 @@
public void setWareHouseManager(WareHouseManager wareHouseManager) {
this.wareHouseManager = wareHouseManager;
}
+
+ public void setObjectDao(ObjectDao objectDao) {
+ this.objectDao = objectDao;
+ }
+
/**
* 查找物品库存
* @param parameterMap
@@ -503,4 +511,19 @@
}
return "";
}
+ // 找出下一个外部编码
+ public String getNextExternalCodeOfDisposableGoods(String type) {
+ String code = "";
+ String sql = String
+ .format(" where po.externalCode=(select max(d.externalCode) from %s d where %s)",
+ DisposableGoods.class.getSimpleName(),
+ SqlUtils.getStringFieldPredicate("d.type", type));
+ DisposableGoods disposableGoods = (DisposableGoods) objectDao.getBySql(
+ DisposableGoods.class.getSimpleName(), sql);
+ if (disposableGoods != null) {
+ code = ForgonStringUtils.increaseNumericalSuffix(
+ disposableGoods.getExternalCode(), 1);
+ }
+ return code;
+ }
}
Index: ssts-web/src/main/webapp/disinfectsystem/config/gzfdzl/config.js
===================================================================
diff -u -r12799 -r13006
--- ssts-web/src/main/webapp/disinfectsystem/config/gzfdzl/config.js (.../config.js) (revision 12799)
+++ ssts-web/src/main/webapp/disinfectsystem/config/gzfdzl/config.js (.../config.js) (revision 13006)
@@ -44,6 +44,6 @@
// 隐藏申请单搜索出来的一次性物品的参考价
hideDiposableGoodsPrice : true,
// 显示一次性物品的外部编码,申请时
- showExternalCodeOfDisposableGoods : true
-
+ showExternalCodeOfDisposableGoods : true,
+ autoFillExternalCodeOfDisposableGoods: true // 自动填写一次性物品的外部编码
}
\ No newline at end of file
Index: forgon-tools/src/main/java/com/forgon/tools/util/ForgonStringUtils.java
===================================================================
diff -u -r12703 -r13006
--- forgon-tools/src/main/java/com/forgon/tools/util/ForgonStringUtils.java (.../ForgonStringUtils.java) (revision 12703)
+++ forgon-tools/src/main/java/com/forgon/tools/util/ForgonStringUtils.java (.../ForgonStringUtils.java) (revision 13006)
@@ -4,6 +4,8 @@
*/
package com.forgon.tools.util;
+import org.apache.commons.lang3.StringUtils;
+
/**
* @author jeffli
*
@@ -153,4 +155,37 @@
}
return digit;
}
+
+ public static boolean isDigital(char c){
+ if(c <= '9' && c >='0'){
+ return true;
+ }
+ return false;
+ }
+ /**
+ * 将字符串后的数字+1
+ */
+ public static String increaseNumericalSuffix(String str,int increment){
+ if(StringUtils.isBlank(str)){
+ return str;
+ }
+ int len = str.length();
+ StringBuilder digitalStr = new StringBuilder(len);
+ String nonDigitalStr = str;
+ int lastDigitalCharIndex = -1;
+ for(int i=len-1;i>=0;--i){
+ char c = str.charAt(i);
+ if(isDigital(c)){
+ lastDigitalCharIndex = i;
+ digitalStr.insert(0, c);
+ }else{
+ break;
+ }
+ }
+ if(lastDigitalCharIndex >= 0){
+ nonDigitalStr = str.substring(0, lastDigitalCharIndex);
+ return nonDigitalStr + (Integer.parseInt(digitalStr.toString())+increment);
+ }
+ return str;
+ }
}
Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/diposableGoods/diposableGoodsView.jsp
===================================================================
diff -u -r12738 -r13006
--- ssts-web/src/main/webapp/disinfectsystem/assestManagement/diposableGoods/diposableGoodsView.jsp (.../diposableGoodsView.jsp) (revision 12738)
+++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/diposableGoods/diposableGoodsView.jsp (.../diposableGoodsView.jsp) (revision 13006)
@@ -34,6 +34,7 @@
+
Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/diposableGoods/diposableGoodsView.js
===================================================================
diff -u -r13004 -r13006
--- ssts-web/src/main/webapp/disinfectsystem/assestManagement/diposableGoods/diposableGoodsView.js (.../diposableGoodsView.js) (revision 13004)
+++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/diposableGoods/diposableGoodsView.js (.../diposableGoodsView.js) (revision 13006)
@@ -3,8 +3,9 @@
var root;
var formObj;
var formWindow;
-
+var autoFillExternalCodeOfDisposableGoods = false;
function addDiposableGoods(id) {
+ autoFillExternalCodeOfDisposableGoods = getBoolValueFromJs('sstsConfig.autoFillExternalCodeOfDisposableGoods',autoFillExternalCodeOfDisposableGoods);
var dType = document.getElementById("parm_s_type").value;
var diposableGooodsStore = new Ext.data.SimpleStore({
fields : [ 'typeName' ],
@@ -423,6 +424,14 @@
});
formWindow.show();
diposableGooodsStore.load();
+ // 如果类型不为空,并且配置为自动增加外部编码,那么获取下一个编码,并且填上
+ if(!isUndefinedOrNullOrEmpty(dType) && autoFillExternalCodeOfDisposableGoods){
+ DiposableGoodsTableManager.getNextExternalCodeOfDisposableGoods(dType,function(externalCode){
+ if(!isUndefinedOrNullOrEmpty(externalCode)){
+ top.Ext.getCmp("externalCode").setValue(externalCode);
+ }
+ });
+ }
if(id != 0){
godownEntryItemStore.load();
}