Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
Gree
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit b6d58c8a
由
sunke
编写于
2020-04-09 11:43:31 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1 更新时暂停出库
2 解除单个工单绑定 3 解决分配相同库位的问题(排除掉已完成列表中的库位)
1 个父辈
6ee0aba6
显示空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
81 行增加
和
114 行删除
myproject/src/main/java/com/myproject/bean/update/Settings.java
myproject/src/main/java/com/myproject/dao/mongo/IStoragePosDao.java
myproject/src/main/java/com/myproject/dao/mongo/impl/StoragePosDaoImpl.java
myproject/src/main/java/com/myproject/webapp/controller/qisda/OutInfoSearchController.java
myproject/src/main/java/com/myproject/webapp/controller/qisda/QisdaController.java
myproject/src/main/java/com/myproject/webapp/controller/system/SettingsController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/QisdaApiController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/TaskService.java
myproject/src/main/webapp/WEB-INF/pages/component/storagePosFind.jsp
myproject/src/main/webapp/WEB-INF/pages/qisda/outInfoSearch.jsp
myproject/src/main/webapp/WEB-INF/pages/system/settings.jsp
myproject/src/main/java/com/myproject/bean/update/Settings.java
查看文件 @
b6d58c8
...
@@ -164,6 +164,11 @@ public class Settings extends BaseMongoBean {
...
@@ -164,6 +164,11 @@ public class Settings extends BaseMongoBean {
*/
*/
private
String
orderFileDir
;
private
String
orderFileDir
;
/**
* 准备进行更新,不允许需求单出库
*/
private
boolean
stopOut
=
false
;
public
Date
getLastPcbCheckDate
()
{
public
Date
getLastPcbCheckDate
()
{
return
lastPcbCheckDate
;
return
lastPcbCheckDate
;
}
}
...
@@ -387,5 +392,13 @@ public class Settings extends BaseMongoBean {
...
@@ -387,5 +392,13 @@ public class Settings extends BaseMongoBean {
public
void
setInactionDay
(
int
inactionDay
)
{
public
void
setInactionDay
(
int
inactionDay
)
{
this
.
inactionDay
=
inactionDay
;
this
.
inactionDay
=
inactionDay
;
}
}
public
boolean
isStopOut
()
{
return
stopOut
;
}
public
void
setStopOut
(
boolean
stopOut
)
{
this
.
stopOut
=
stopOut
;
}
}
}
myproject/src/main/java/com/myproject/dao/mongo/IStoragePosDao.java
查看文件 @
b6d58c8
...
@@ -77,7 +77,7 @@ public interface IStoragePosDao extends IMongoDao {
...
@@ -77,7 +77,7 @@ public interface IStoragePosDao extends IMongoDao {
List
<
StoragePos
>
findBindByPn
(
String
soseq
,
String
pn
);
List
<
StoragePos
>
findBindByPn
(
String
soseq
,
String
pn
);
List
<
StoragePos
>
allBindPos
();
List
<
StoragePos
>
allBindPos
(
String
so
);
StoragePos
findByBarcode
(
String
barcode
);
StoragePos
findByBarcode
(
String
barcode
);
...
...
myproject/src/main/java/com/myproject/dao/mongo/impl/StoragePosDaoImpl.java
查看文件 @
b6d58c8
...
@@ -422,8 +422,8 @@ public class StoragePosDaoImpl extends AbstractMongoDao implements IStoragePosDa
...
@@ -422,8 +422,8 @@ public class StoragePosDaoImpl extends AbstractMongoDao implements IStoragePosDa
* 获取工单的所有绑定料盘
* 获取工单的所有绑定料盘
*/
*/
@Override
@Override
public
List
<
StoragePos
>
allBindPos
()
{
public
List
<
StoragePos
>
allBindPos
(
String
so
)
{
Criteria
c
=
Criteria
.
where
(
"barcode.appendInfo.so"
).
ne
(
null
);
Criteria
c
=
Criteria
.
where
(
"barcode.appendInfo.so"
).
is
(
so
);
Query
q
=
new
Query
(
c
);
Query
q
=
new
Query
(
c
);
return
findByQuery
(
q
);
return
findByQuery
(
q
);
}
}
...
...
myproject/src/main/java/com/myproject/webapp/controller/qisda/OutInfoSearchController.java
查看文件 @
b6d58c8
...
@@ -7,6 +7,7 @@ import com.myproject.dao.mongo.ILiteOrderDao;
...
@@ -7,6 +7,7 @@ import com.myproject.dao.mongo.ILiteOrderDao;
import
com.myproject.dao.mongo.qisda.IOutInfoDao
;
import
com.myproject.dao.mongo.qisda.IOutInfoDao
;
import
com.myproject.dao.mongo.qisda.IOutItemDao
;
import
com.myproject.dao.mongo.qisda.IOutItemDao
;
import
com.myproject.webapp.controller.storage.BaseSearchController
;
import
com.myproject.webapp.controller.storage.BaseSearchController
;
import
com.myproject.webapp.controller.webService.DataCache
;
import
org.apache.logging.log4j.util.Strings
;
import
org.apache.logging.log4j.util.Strings
;
import
org.displaytag.properties.SortOrderEnum
;
import
org.displaytag.properties.SortOrderEnum
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -35,9 +36,15 @@ public class OutInfoSearchController extends BaseSearchController {
...
@@ -35,9 +36,15 @@ public class OutInfoSearchController extends BaseSearchController {
@Autowired
@Autowired
protected
IOutItemDao
outItemDao
;
protected
IOutItemDao
outItemDao
;
@Autowired
private
DataCache
dataCache
;
@RequestMapping
(
"/outInfoSearch*"
)
@RequestMapping
(
"/outInfoSearch*"
)
public
String
onSubmit
(
@ModelAttribute
(
"searchCriteria"
)
BaseSearchCriteria
searchCriteria
,
HttpServletRequest
request
)
{
public
String
onSubmit
(
@ModelAttribute
(
"searchCriteria"
)
BaseSearchCriteria
searchCriteria
,
HttpServletRequest
request
)
{
boolean
stopOut
=
dataCache
.
getSettings
().
isStopOut
();
request
.
setAttribute
(
"stopOut"
,
stopOut
);
Query
query
=
new
Query
();
Query
query
=
new
Query
();
Criteria
criteria
=
new
Criteria
();
Criteria
criteria
=
new
Criteria
();
...
...
myproject/src/main/java/com/myproject/webapp/controller/qisda/QisdaController.java
查看文件 @
b6d58c8
...
@@ -86,9 +86,9 @@ public class QisdaController extends BaseController {
...
@@ -86,9 +86,9 @@ public class QisdaController extends BaseController {
*/
*/
@RequestMapping
(
"/qisda/dnIn"
)
@RequestMapping
(
"/qisda/dnIn"
)
public
String
dnIn
(
HttpServletRequest
request
){
public
String
dnIn
(
HttpServletRequest
request
){
if
(
currentDnInfo
!=
null
){
//
if(currentDnInfo != null){
//if(currentDnInfo.isDNIn())
//if(currentDnInfo.isDNIn())
}
//
}
return
"qisda/dnIn"
;
return
"qisda/dnIn"
;
}
}
...
@@ -177,13 +177,21 @@ public class QisdaController extends BaseController {
...
@@ -177,13 +177,21 @@ public class QisdaController extends BaseController {
@RequestMapping
(
"/service/store/qisda/clearAllBind"
)
@RequestMapping
(
"/service/store/qisda/clearAllBind"
)
@ResponseBody
@ResponseBody
public
String
unBindAllReel
(
HttpServletRequest
request
){
public
String
unBindAllReel
(
HttpServletRequest
request
){
log
.
info
(
"开始解绑所有绑定工单的料盘"
);
String
so
=
request
.
getParameter
(
"so"
);
List
<
StoragePos
>
bindPosList
=
storagePosDao
.
allBindPos
();
if
(
Strings
.
isNullOrEmpty
(
so
)){
return
"无工单号参数so,无法解绑"
;
}
log
.
info
(
"开始解绑绑定工单["
+
so
+
"]的料盘"
);
int
count
=
0
;
List
<
StoragePos
>
bindPosList
=
storagePosDao
.
allBindPos
(
so
);
for
(
StoragePos
storagePos
:
bindPosList
)
{
for
(
StoragePos
storagePos
:
bindPosList
)
{
storagePosDao
.
unbindReel
(
storagePos
);
storagePosDao
.
unbindReel
(
storagePos
);
log
.
info
(
"解除["
+
storagePos
.
getBarcode
().
getBarcode
()+
"]的工单["
+
so
+
"]绑定"
);
count
=
count
+
1
;
}
}
log
.
info
(
"清理绑定完成"
);
String
msg
=
"工单["
+
so
+
"]解除绑定完成,共解绑["
+
count
+
"]盘"
;
return
"OK"
;
log
.
info
(
msg
);
return
msg
;
}
}
/**
/**
...
...
myproject/src/main/java/com/myproject/webapp/controller/system/SettingsController.java
查看文件 @
b6d58c8
...
@@ -84,6 +84,7 @@ public class SettingsController extends BaseUpdateController {
...
@@ -84,6 +84,7 @@ public class SettingsController extends BaseUpdateController {
oldSettings
.
setOrderFileDir
(
settings
.
getOrderFileDir
());
oldSettings
.
setOrderFileDir
(
settings
.
getOrderFileDir
());
oldSettings
.
setInactionDay
(
settings
.
getInactionDay
());
oldSettings
.
setInactionDay
(
settings
.
getInactionDay
());
oldSettings
.
setStopOut
(
settings
.
isStopOut
());
dataCache
.
updateSettings
(
oldSettings
);
dataCache
.
updateSettings
(
oldSettings
);
saveMessage
(
request
,
getText
(
"storage.saveSuccess"
,
request
.
getLocale
()));
saveMessage
(
request
,
getText
(
"storage.saveSuccess"
,
request
.
getLocale
()));
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/QisdaApiController.java
查看文件 @
b6d58c8
...
@@ -122,6 +122,9 @@ public class QisdaApiController extends BaseController {
...
@@ -122,6 +122,9 @@ public class QisdaApiController extends BaseController {
@RequestMapping
(
"/executeOut"
)
@RequestMapping
(
"/executeOut"
)
@ResponseBody
@ResponseBody
public
String
executeOut
(
HttpServletRequest
request
){
public
String
executeOut
(
HttpServletRequest
request
){
if
(
dataCache
.
getSettings
().
isStopOut
()){
return
"系统更新中,暂停出库,请稍后再试"
;
}
String
hSerial
=
request
.
getParameter
(
"hSerial"
);
String
hSerial
=
request
.
getParameter
(
"hSerial"
);
String
maxReelStr
=
request
.
getParameter
(
"max"
);
String
maxReelStr
=
request
.
getParameter
(
"max"
);
int
maxReelNum
=
-
1
;
int
maxReelNum
=
-
1
;
...
@@ -212,8 +215,8 @@ public class QisdaApiController extends BaseController {
...
@@ -212,8 +215,8 @@ public class QisdaApiController extends BaseController {
//未真实绑定过,可以出库,绑定
//未真实绑定过,可以出库,绑定
appendInfo
.
sethSerial
(
outItem
.
gethSerial
());
appendInfo
.
sethSerial
(
outItem
.
gethSerial
());
appendInfo
.
setRefno
(
outItem
.
getRefno
());
appendInfo
.
setRefno
(
outItem
.
getRefno
());
appendInfo
.
setSo
(
"HSerial
:
"
+
outItem
.
gethSerial
());
appendInfo
.
setSo
(
"HSerial
-
"
+
outItem
.
gethSerial
());
appendInfo
.
setSoseq
(
"HSerial
:
"
+
outItem
.
getSoseq
());
appendInfo
.
setSoseq
(
"HSerial
-
"
+
outItem
.
getSoseq
());
appendInfo
.
setSlotStr
(
outItem
.
getSlotStr
());
appendInfo
.
setSlotStr
(
outItem
.
getSlotStr
());
appendInfo
.
setBindSlot
(
"1"
);
appendInfo
.
setBindSlot
(
"1"
);
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/TaskService.java
查看文件 @
b6d58c8
...
@@ -553,7 +553,7 @@ public class TaskService implements ITaskService {
...
@@ -553,7 +553,7 @@ public class TaskService implements ITaskService {
countMap
.
put
(
storage
.
getId
(),
0
);
countMap
.
put
(
storage
.
getId
(),
0
);
}
}
Set
<
String
>
hasOutTaskStorageIds
=
new
HashSet
<>();
//
Set<String> hasOutTaskStorageIds = new HashSet<>();
for
(
DataLog
task
:
allTasks
)
{
for
(
DataLog
task
:
allTasks
)
{
String
storageId
=
task
.
getStorageId
();
String
storageId
=
task
.
getStorageId
();
if
(!
Strings
.
isNullOrEmpty
(
storageId
)){
if
(!
Strings
.
isNullOrEmpty
(
storageId
)){
...
@@ -562,9 +562,9 @@ public class TaskService implements ITaskService {
...
@@ -562,9 +562,9 @@ public class TaskService implements ITaskService {
taskCount
=
taskCount
+
1
;
taskCount
=
taskCount
+
1
;
countMap
.
put
(
storageId
,
taskCount
);
countMap
.
put
(
storageId
,
taskCount
);
}
}
if
(
task
.
isCheckOutTask
()){
//
if(task.isCheckOutTask()){
hasOutTaskStorageIds
.
add
(
storageId
);
//
hasOutTaskStorageIds.add(storageId);
}
//
}
}
}
}
}
...
@@ -576,10 +576,10 @@ public class TaskService implements ITaskService {
...
@@ -576,10 +576,10 @@ public class TaskService implements ITaskService {
if
(
status
.
timeOut
()){
if
(
status
.
timeOut
()){
continue
;
continue
;
}
}
if
(
hasOutTaskStorageIds
.
contains
(
storage
.
getId
())){
//
if(hasOutTaskStorageIds.contains(storage.getId())){
//流水线有出库任务的,不分配入库任务(出库优先)
//
//流水线有出库任务的,不分配入库任务(出库优先)
continue
;
//
continue;
}
//
}
if
(
storage
.
canPutIn
(
barcode
.
getPlateSize
(),
barcode
.
getHeight
())){
if
(
storage
.
canPutIn
(
barcode
.
getPlateSize
(),
barcode
.
getHeight
())){
availbleStorageList
.
add
(
storage
);
availbleStorageList
.
add
(
storage
);
}
}
...
@@ -606,7 +606,7 @@ public class TaskService implements ITaskService {
...
@@ -606,7 +606,7 @@ public class TaskService implements ITaskService {
log
.
info
(
"可用料仓太少,不按任务数分配,重新查找..."
);
log
.
info
(
"可用料仓太少,不按任务数分配,重新查找..."
);
for
(
Storage
storage
:
availbleStorageList
)
{
for
(
Storage
storage
:
availbleStorageList
)
{
try
{
try
{
log
.
info
(
"
尝试从"
+
storage
.
getName
()+
"["
+
storage
.
getCid
()+
"]查找空位,当前料仓任务数
"
);
log
.
info
(
"
不按任务数分配,尝试从"
+
storage
.
getName
()+
"["
+
storage
.
getCid
()+
"]查找空位
"
);
return
findLineEmptyPosForPutIn
(
storage
,
barcode
);
return
findLineEmptyPosForPutIn
(
storage
,
barcode
);
}
catch
(
Exception
e
){
}
catch
(
Exception
e
){
log
.
info
(
"从"
+
storage
.
getName
()+
"["
+
storage
.
getCid
()+
"]查找空位失败:"
+
e
.
getMessage
());
log
.
info
(
"从"
+
storage
.
getName
()+
"["
+
storage
.
getCid
()+
"]查找空位失败:"
+
e
.
getMessage
());
...
@@ -860,8 +860,16 @@ public class TaskService implements ITaskService {
...
@@ -860,8 +860,16 @@ public class TaskService implements ITaskService {
@Override
@Override
public
Collection
<
String
>
excludePosIds
(){
public
Collection
<
String
>
excludePosIds
(){
//排除掉正在执行的仓位
//排除掉正在执行的仓位
Collection
<
DataLog
>
allTasks
=
taskMap
.
values
();
Collection
<
DataLog
>
allTasks
=
new
ArrayList
<>(
taskMap
.
values
());
allTasks
.
addAll
(
finishedTaskMap
.
values
());
try
{
for
(
DataLog
finishTask
:
finishedTaskMap
.
values
())
{
allTasks
.
add
(
finishTask
);
}
}
catch
(
Exception
e
){
log
.
error
(
"获取排除库位出错"
,
e
);
}
Collection
<
String
>
operatingPosIds
=
new
HashSet
<>();
Collection
<
String
>
operatingPosIds
=
new
HashSet
<>();
for
(
DataLog
task
:
allTasks
){
for
(
DataLog
task
:
allTasks
){
String
posId
=
task
.
getPosId
();
String
posId
=
task
.
getPosId
();
...
...
myproject/src/main/webapp/WEB-INF/pages/component/storagePosFind.jsp
查看文件 @
b6d58c8
...
@@ -205,10 +205,6 @@
...
@@ -205,10 +205,6 @@
</div>
</div>
<!-- END PAGE CONTENT-->
<!-- END PAGE CONTENT-->
<form method="get" action="${ctx}/service/store/checkout.html" id="checkoutForm">
<form method="get" action="${ctx}/service/store/checkout.html" id="checkoutForm">
<input type="hidden" name="pid" id="pid"/>
<input type="hidden" name="pid" id="pid"/>
...
...
myproject/src/main/webapp/WEB-INF/pages/qisda/outInfoSearch.jsp
查看文件 @
b6d58c8
...
@@ -16,16 +16,22 @@
...
@@ -16,16 +16,22 @@
}
}
</style>
</style>
<!-- BEGIN PAGE HEADER-->
<h3 class="page-title">
<c:if test="${stopOut}">
系统更新中,暂停出库,请稍后再试
</c:if>
<c:if test="${!stopOut}">
<!-- BEGIN PAGE HEADER-->
<h3 class="page-title">
<fmt:message key="需求单"/>
<fmt:message key="需求单"/>
</h3>
</h3>
<!-- BEGIN PAGE CONTENT-->
<!-- BEGIN PAGE CONTENT-->
<div class="row">
<div class="row">
<div class="col-md-12">
<div class="col-md-12">
<!-- BEGIN EXAMPLE TABLE PORTLET-->
<!-- BEGIN EXAMPLE TABLE PORTLET-->
<div class="portlet box blue">
<div class="portlet box blue">
<div class="portlet-title">
<div class="portlet-title">
...
@@ -107,7 +113,8 @@
...
@@ -107,7 +113,8 @@
</div>
</div>
<!-- END EXAMPLE TABLE PORTLET-->
<!-- END EXAMPLE TABLE PORTLET-->
</div>
</div>
</div>
</div>
</c:if>
<div id="detail" class="modal fade" tabindex="-1" data-backdrop="static" data-keyboard="false">
<div id="detail" class="modal fade" tabindex="-1" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog" style="margin-top: 10%;width:80%;margin-left:10%;">
<div class="modal-dialog" style="margin-top: 10%;width:80%;margin-left:10%;">
...
...
myproject/src/main/webapp/WEB-INF/pages/system/settings.jsp
查看文件 @
b6d58c8
...
@@ -73,99 +73,23 @@
...
@@ -73,99 +73,23 @@
</div>
</div>
</div>
</div>
<%--<div class="portlet-title">--%>
<%--<div class="caption">--%>
<%--<i class="icon-speedometer font-green-haze"></i>--%>
<%--<span class="caption-subject bold uppercase font-green-haze"><fmt:message key="menu.system.maintenance"/></span>--%>
<%--</div>--%>
<%--</div>--%>
<%--<div class="portlet-body" style="padding-left: 30px;">--%>
<%--<div class="form-group form-inline">--%>
<%--<div class="input-group margin-top-10">--%>
<%--<span class="input-group-addon"><fmt:message key="settings.maintenanceDays"/>:</span>--%>
<%--<form:input path="maintenanceDays" cssClass="form-control input-small"/>--%>
<%--<span class="input-group-addon"><fmt:message key="time.days"/></span>--%>
<%--</div>--%>
<%--</div>--%>
<%--<div class="form-group form-inline">--%>
<%--<div class="input-group margin-top-10"><fmt:message key="settings.pcbEmail.adress"/>:</div>--%>
<%--<div class="input-group margin-top-10">--%>
<%--<form:input path="maintenanceEmail" cssClass="form-control input-xlarge"/>--%>
<%--<button type="button" class="btn yellow" onclick="testEmail('');"><fmt:message key="btn.test"/></button>--%>
<%--</div>--%>
<%--</div>--%>
<%--</div>--%>
<div class="portlet-title">
<div class="portlet-title">
<div class="caption">
<div class="caption">
<i class="icon-bell font-green-haze"></i>
<i class="icon-bell font-green-haze"></i>
<span class="caption-subject bold uppercase font-green-haze"><fmt:message key="
提醒
设置"/></span>
<span class="caption-subject bold uppercase font-green-haze"><fmt:message key="
更新
设置"/></span>
</div>
</div>
</div>
</div>
<div class="portlet-body" style="padding-left: 30px;">
<div class="portlet-body" style="padding-left: 30px;">
<div class="form-group form-inline"
>
<%--<div class="col-md-6">--%
>
<div class="input-group margin-top-10
">
<div class="input-group
">
<
form:input path="inactionDay" cssClass="form-control input-small"/
>
<
label class="control-label"><fmt:message key="系统更新,暂停出库"/> </label
>
<
span class="input-group-addon"><fmt:message key="天前呆滞物料提醒"/></span
>
<
form:checkbox path="stopOut"/
>
</div>
</div>
</div>
<%--<div class="form-group form-inline">--%>
<%--<div class="input-group margin-top-10"><fmt:message key="settings.pcbEmail.adress"/>:</div>--%>
<%--<div class="input-group margin-top-10">--%>
<%--<form:input path="pcbExpireEmail" cssClass="form-control input-xlarge"/>--%>
<%--<button type="button" class="btn yellow" onclick="testEmail('');"><fmt:message key="btn.test"/></button>--%>
<%--</div>--%>
<%--</div>--%>
<%--</div>--%>
<%--<div class="form-group form-inline">--%>
<%--<div class="input-group margin-top-10">--%>
<%--<span class="input-group-addon"><fmt:message key="settings.pcbEmail.everyday"/></span>--%>
<%--<form:select path="pcbExpireTime" cssClass="form-control input-small">--%>
<%--<c:forEach begin="0" end="23" var="hour">--%>
<%--<form:option value="${hour}"/>--%>
<%--</c:forEach>--%>
<%--</form:select>--%>
<%--<span class="input-group-addon"><fmt:message key="settings.pcbEmail.reminder"/></span>--%>
<%--</div>--%>
<%--</div>--%>
<%--<div class="form-group form-inline">--%>
<%--<div class="input-group margin-top-10">--%>
<%--<span class="input-group-addon"><fmt:message key="settings.pcbEmail.expire"/></span>--%>
<%--<form:input path="pcbExpireDay" cssClass="form-control input-small"/>--%>
<%--<span class="input-group-addon"><fmt:message key="settings.pcbEmail.reminderDay"/></span>--%>
<%--</div>--%>
<%--<button type="button" class="btn yellow" onclick="testEmail('true');"><fmt:message key="btn.test"/></button>--%>
<%--</div>--%>
</div>
</div>
<%--<div class="portlet-title">--%>
<%--<div class="caption">--%>
<%--<i class="icon-speedometer font-green-haze"></i>--%>
<%--<span class="caption-subject bold uppercase font-green-haze"><fmt:message key="button.backup"/></span>--%>
<%--</div>--%>
<%--</div>--%>
<%--<div class="portlet-body" style="padding-left: 30px;">--%>
<%--<div class="form-group form-inline">--%>
<%--<div class="input-group margin-top-10">--%>
<%--<span class="input-group-addon"><fmt:message key="settings.backupHours"/>:</span>--%>
<%--<form:input path="backupHours" cssClass="form-control input-small"/>--%>
<%--<span class="input-group-addon"><fmt:message key="time.hours"/></span>--%>
<%--</div>--%>
<%--</div>--%>
<%--<div class="form-group form-inline">--%>
<%--<div class="input-group margin-top-10"><fmt:message key="settings.backupPath"/>:</div>--%>
<%--<div class="input-group margin-top-10">--%>
<%--<form:input path="backupPath" cssClass="form-control input-xlarge"/>--%>
<%--<button type="button" class="btn blue" id="backup"><fmt:message key="button.backup"/></button>--%>
<%--<button type="button" class="btn yellow" id="restore"><fmt:message key="button.restore"/></button>--%>
<%--</div>--%>
<%--</div>--%>
<%--</div>--%>
<div class="portlet-title">
<div class="portlet-title">
<div class="caption">
<div class="caption">
<i class="icon-link font-green-haze"></i>
<i class="icon-link font-green-haze"></i>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论