Commit e4b1e93e sunke

物料维护界面导出所有数据

运行统计界面报警删除
已在库位中提示信息添加线别
条码设置,出库策略移入系统菜单
MiniStock时间可在系统设置页面进行配置
轻工单页面出库后不需要再次选择线体
操作界面出库流程修改:选择单个物料后弹出输入工号框进行验证

单独出库增加线别和在库时间展示,去除供应商
保存产品后自动进入下一个新增产品页面
出库授权码只允许使用当前登陆用户
1 个父辈 90a52008
正在显示 22 个修改的文件 包含 113 行增加61 行删除
2020-12-23 13:36:09 INFO [BarcodeRule.java:394] - 准备发送到ministock 2021-03-03 09:09:50 INFO [BarcodeRule.java:52] - 开始解析二维码规则:1@2@3@PN@5@6@7@8@9@10@xxPRODATEyyyyMMdd@xxxEXPDATEyyyyMMdd@13@14@15@16@17@RI@xQTYxxxxxx@20@21@22@23
2020-12-23 13:37:26 INFO [BarcodeRule.java:394] - 准备发送到ministock 2021-03-03 09:09:50 INFO [BarcodeRule.java:77] - 分割符为:@长度为:23
2021-03-03 09:09:50 INFO [BarcodeRule.java:81] - partNumber: 为{name='PN', index=3, prefix='', suffix=''}
2021-03-03 09:09:50 INFO [BarcodeRule.java:94] - produceDate: 为{name='PRODATE', index=10, prefix='xx', suffix='yyyyMMdd'}
2021-03-03 09:09:50 INFO [BarcodeRule.java:96] - expireDate: 为{name='EXPDATE', index=11, prefix='xxx', suffix='yyyyMMdd'}
2021-03-03 09:09:50 INFO [BarcodeRule.java:83] - reelId: 为{name='RI', index=17, prefix='', suffix=''}
2021-03-03 09:09:50 INFO [BarcodeRule.java:88] - quantity: 为{name='QTY', index=18, prefix='x', suffix='xxxxxx'}
2021-03-03 09:09:50 INFO [BarcodeRule.java:220] - 开始解析条码[[)>@06@12S0002@P1267370498@1PGCM31CR71E475KA51K@31PGCM31CR71E475KA51K@12V690588124@10VJPN-IA@2P@20P@6D20210114@14D20220714@30PY@Z1@K0@16K0@V97294419@3SS2871011499X9@Q6000NAR000@20T1@1TIA1107LX5@2T@1Z@@]
...@@ -132,7 +132,7 @@ public class Settings extends BaseMongoBean { ...@@ -132,7 +132,7 @@ public class Settings extends BaseMongoBean {
/** /**
* 备份周期 * 备份周期
*/ */
private int backupHours = 0; private int backupHours = 10;
/** /**
* 维护周期 * 维护周期
......
...@@ -71,8 +71,18 @@ public class ComponentManagerImpl implements IComponentManager { ...@@ -71,8 +71,18 @@ public class ComponentManagerImpl implements IComponentManager {
{ {
log.debug("Search components with Query " + query.toString()); log.debug("Search components with Query " + query.toString());
pageList.setList(componentDao.findByQuery(query, pageList.getPageNumber(), pageList.getObjectsPerPage()));
pageList.setFullListSize(componentDao.countByQuery(query)); int sizePerPage = pageList.getObjectsPerPage();
int totalSize = componentDao.countByQuery(query);
pageList.setFullListSize(totalSize);
int pageNumber = pageList.getPageNumber();
if(pageNumber == -1){
sizePerPage = totalSize;
pageNumber = 1;
}
pageList.setList(componentDao.findByQuery(query, pageNumber, sizePerPage));
log.debug("Search returns " + pageList.getFullListSize() + " components"); log.debug("Search returns " + pageList.getFullListSize() + " components");
return pageList; return pageList;
} }
......
...@@ -18,7 +18,7 @@ import javax.validation.Valid; ...@@ -18,7 +18,7 @@ import javax.validation.Valid;
@Controller @Controller
@RequestMapping("/barcode/barcodeSettings.html") @RequestMapping("/system/barcodeSettings.html")
public class BarcodeSettingsController extends SettingsController { public class BarcodeSettingsController extends SettingsController {
......
...@@ -7,6 +7,7 @@ import com.myproject.bean.search.PageList; ...@@ -7,6 +7,7 @@ import com.myproject.bean.search.PageList;
import com.myproject.manager.IComponentManager; import com.myproject.manager.IComponentManager;
import com.myproject.util.StorageConstants; import com.myproject.util.StorageConstants;
import com.myproject.webapp.controller.FileUpload; import com.myproject.webapp.controller.FileUpload;
import org.displaytag.tags.TableTagParameters;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
...@@ -89,8 +90,13 @@ public class ComponentSearchController extends BaseSearchController { ...@@ -89,8 +90,13 @@ public class ComponentSearchController extends BaseSearchController {
request.setAttribute("type", componentType); request.setAttribute("type", componentType);
} }
PageList pageList = searchCriteria.getPageList();
if (request.getParameter(TableTagParameters.PARAMETER_EXPORTING) != null){
pageList.setPageNumber(-1);
}
query.with(new Sort(Sort.Direction.DESC, "updateDate")); query.with(new Sort(Sort.Direction.DESC, "updateDate"));
searchCriteria.setPageList(componentmanager.findByQuery(query, searchCriteria.getPageList())); searchCriteria.setPageList(componentmanager.findByQuery(query, pageList));
//model.addAttribute("searchResult", searchCriteria.getPageList()); //model.addAttribute("searchResult", searchCriteria.getPageList());
// return new ModelAndView(getSuccessView(), model.asMap()); // return new ModelAndView(getSuccessView(), model.asMap());
......
...@@ -28,6 +28,7 @@ import org.springframework.web.multipart.commons.CommonsMultipartResolver; ...@@ -28,6 +28,7 @@ import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
...@@ -91,7 +92,7 @@ public class ComponentUpdateController extends BaseUpdateController{ ...@@ -91,7 +92,7 @@ public class ComponentUpdateController extends BaseUpdateController{
@RequestMapping(method = RequestMethod.POST) @RequestMapping(method = RequestMethod.POST)
public String submit(@Valid Component component, BindingResult result, public String submit(@Valid Component component, BindingResult result,
HttpServletRequest request) throws Exception { HttpServletRequest request, HttpServletResponse response) throws Exception {
if(result.hasErrors()) { if(result.hasErrors()) {
return getSuccessView(); return getSuccessView();
} else { } else {
...@@ -149,7 +150,11 @@ public class ComponentUpdateController extends BaseUpdateController{ ...@@ -149,7 +150,11 @@ public class ComponentUpdateController extends BaseUpdateController{
} }
} }
saveMessage(request, getText("component.saveSuccess", request.getLocale())); saveMessage(request, getText("component.saveSuccess", request.getLocale()));
break; //return "/component/componentSearch.html";
//break;
response.sendRedirect(request.getContextPath() + "/component/componentUpdate.html");
//return StorageConstants.COMPONENT_SEARCH_VIEW;
return null;
case StorageConstants.DELETE: case StorageConstants.DELETE:
componentmanager.delete(component); componentmanager.delete(component);
saveMessage(request, getText("component.deleteSuccess", request.getLocale())); saveMessage(request, getText("component.deleteSuccess", request.getLocale()));
......
...@@ -32,7 +32,6 @@ import java.util.concurrent.Executors; ...@@ -32,7 +32,6 @@ import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
@Controller @Controller
...@@ -135,7 +134,8 @@ public class SzShelfController extends BaseController { ...@@ -135,7 +134,8 @@ public class SzShelfController extends BaseController {
private void sendToMiniStock(){ private void sendToMiniStock(){
try{ try{
//2个小时还在库中的,发送到MiniStock //2个小时还在库中的,发送到MiniStock
List<StoragePos> posListToSend = storagePosManager.findBeforePutinTime(10); int miniStockHours = dataCache.getSettings().getBackupHours();
List<StoragePos> posListToSend = storagePosManager.findBeforePutinTime(miniStockHours);
sendToMiniStock(posListToSend); sendToMiniStock(posListToSend);
}catch (Exception e){ }catch (Exception e){
log.error("发送到MiniStock出错",e); log.error("发送到MiniStock出错",e);
...@@ -492,30 +492,30 @@ public class SzShelfController extends BaseController { ...@@ -492,30 +492,30 @@ public class SzShelfController extends BaseController {
@ResponseBody @ResponseBody
public String outFromShelf(HttpServletRequest request){ public String outFromShelf(HttpServletRequest request){
final String cid = request.getParameter("cid"); final String cid = request.getParameter("cid");
String partnumber = request.getParameter("pn"); String outPosId = request.getParameter("outPosId");
String opUser = request.getParameter("opUser"); String authCode = request.getParameter("opUser");
if(Strings.isNullOrEmpty(opUser)){ if(Strings.isNullOrEmpty(authCode)){
return getText("shelf.msg.emptyEmployeeNo",request.getLocale(),"请输入工号"); return getText("shelf.msg.emptyEmployeeNo",request.getLocale(),"请输入工号");
} }
User user = userManager.findByAuthCode(opUser); User user = StorageDataController.getLoginUser();
if(user == null){ if(user == null){
return getText("shelf.msg.noPermission",request.getLocale(),"无权执行此操作"); return getText("shelf.msg.noPermission",request.getLocale(),"无权执行此操作,请重新登陆");
}else{
if(!user.getAuthCode().equals(authCode)){
return getText("shelf.msg.authCodeError",request.getLocale(),"授权码错误");
} }
if(partnumber != null){
partnumber = partnumber.trim();
} }
StoragePos pos = storagePosManager.get(outPosId);
if(pos != null){
Storage storage = dataCache.getStorage(cid); Storage storage = dataCache.getStorage(cid);
if(storage == null){ if(storage == null){
String msg = getText("shelf.msg.notFound",request.getLocale(),"未找到料架"); String msg = getText("shelf.msg.notFound",request.getLocale(),"未找到料架");
return msg; return msg;
}else if(!storage.getId().equals(pos.getStorageId())){
return getText("shelf.msg.noPermission",request.getLocale(),"无权执行此操作,该物料不属于该料架");
} }
String storageId = storage.getId();
String areaId = storage.getAreaId();
StorageConstants.CHECKOUT_TYPE checkoutType = dataCache.getCheckOutType();
Collection<String> excludePosIds = taskService.excludePosIds(areaId);
StoragePos pos = storagePosManager.findPartNumberPos(storageId,partnumber,excludePosIds, checkoutType);
if(pos != null){
log.info(pos.getBarcode().getBarcode() + " 从["+pos.getPosName()+"]手动出库,点亮对应库位"); log.info(pos.getBarcode().getBarcode() + " 从["+pos.getPosName()+"]手动出库,点亮对应库位");
int delayCloseTime = 10000; int delayCloseTime = 10000;
...@@ -527,7 +527,7 @@ public class SzShelfController extends BaseController { ...@@ -527,7 +527,7 @@ public class SzShelfController extends BaseController {
} }
openAndCloseLights(storage,posNames,delayCloseTime,color); openAndCloseLights(storage,posNames,delayCloseTime,color);
taskService.addTaskToFinished(pos,null,opUser); taskService.addTaskToFinished(pos,null,authCode);
return "OK"+getText("shelf.msg.outOk",new String[]{pos.getShortPosName()},request.getLocale(),"操作成功,请从库位["+pos.getPosName()+"]中取出物料"); return "OK"+getText("shelf.msg.outOk",new String[]{pos.getShortPosName()},request.getLocale(),"操作成功,请从库位["+pos.getPosName()+"]中取出物料");
}else{ }else{
...@@ -649,7 +649,9 @@ public class SzShelfController extends BaseController { ...@@ -649,7 +649,9 @@ public class SzShelfController extends BaseController {
} }
posName = posName.substring(1); posName = posName.substring(1);
} }
return getText("shelf.msg.alreadyInPos",new String[]{inPos.getShortPosName()},request.getLocale(),"该物料已在库位["+posName+"]中"); String lineName = inPos.getBarcode().getLineInfoStr();
String inName = lineName +"(" + inPos.getShortPosName() + ")";
return getText("shelf.msg.alreadyInPos",new String[]{inName},request.getLocale(),"该物料已在["+posName+"]中");
} }
String putInColor = "red"; String putInColor = "red";
...@@ -676,7 +678,7 @@ public class SzShelfController extends BaseController { ...@@ -676,7 +678,7 @@ public class SzShelfController extends BaseController {
//线别信息不一致 //线别信息不一致
if(Strings.isNullOrEmpty(lineInfoStr)){ if(Strings.isNullOrEmpty(lineInfoStr)){
log.error("["+packageId+"]线别信息与配置不一致"); log.error("["+packageId+"]线别信息与配置不一致");
return "n"+getText("shelf.msg.erroLine",new String[]{ecall.getSmtLineNo()}, request.getLocale(),"该物料是"+ecall.getSmtLineNo()+"物料,如确认入库请选择对应线别"); return "n"+getText("shelf.msg.erroLine",new String[]{ecall.getSmtLineNo()}, request.getLocale(),"该物料是"+ecall.getSmtLineNo()+"线物料,如确认入库请选择对应线别");
} }
} }
}else{ }else{
...@@ -787,6 +789,14 @@ public class SzShelfController extends BaseController { ...@@ -787,6 +789,14 @@ public class SzShelfController extends BaseController {
} }
} }
@RequestMapping("/service/store/shelfInventory")
@ResponseBody
public List<StoragePos> shelfInventory(HttpServletRequest request) {
String cid = request.getParameter("cid");
String storageId = dataCache.getStorage(cid).getId();
return storagePosManager.findNotEmptyByStorageId(storageId);
}
@RequestMapping("/service/store/testNet") @RequestMapping("/service/store/testNet")
@ResponseBody @ResponseBody
public String testNet(HttpServletRequest request) { public String testNet(HttpServletRequest request) {
......
...@@ -8,6 +8,7 @@ import com.myproject.dao.mongo.IDataLogDao; ...@@ -8,6 +8,7 @@ import com.myproject.dao.mongo.IDataLogDao;
import com.myproject.util.StorageConstants; import com.myproject.util.StorageConstants;
import com.myproject.webapp.controller.storage.BaseSearchController; import com.myproject.webapp.controller.storage.BaseSearchController;
import org.displaytag.properties.SortOrderEnum; import org.displaytag.properties.SortOrderEnum;
import org.displaytag.tags.TableTagParameters;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
...@@ -70,15 +71,20 @@ public class DataLogSearchController extends BaseSearchController { ...@@ -70,15 +71,20 @@ public class DataLogSearchController extends BaseSearchController {
criteria.and("partNumber").regex(pattern); criteria.and("partNumber").regex(pattern);
} }
query.addCriteria(criteria); query.addCriteria(criteria);
PageList pageList = searchCriteria.getPageList(); PageList pageList = searchCriteria.getPageList();
if(pageList.getSortCriterion().equals("id")){ if(pageList.getSortCriterion().equals("id")){
pageList.setSortCriterion("updateDate"); pageList.setSortCriterion("updateDate");
pageList.setSortDirection(SortOrderEnum.DESCENDING); pageList.setSortDirection(SortOrderEnum.DESCENDING);
searchCriteria.setPageList(pageList);
} }
searchCriteria.setPageList(dataLogDao.findByQuery(query, searchCriteria.getPageList())); if (request.getParameter(TableTagParameters.PARAMETER_EXPORTING) != null){
pageList.setPageNumber(-1);
}
searchCriteria.setPageList(dataLogDao.findByQuery(query, pageList));
return SUCCESS_VIEW; return SUCCESS_VIEW;
} }
......
...@@ -15,7 +15,7 @@ import javax.validation.Valid; ...@@ -15,7 +15,7 @@ import javax.validation.Valid;
@Controller @Controller
@RequestMapping("/workOrder/checkOutSettings.html") @RequestMapping("/system/checkOutSettings.html")
public class CheckOutSettingsController extends SettingsController { public class CheckOutSettingsController extends SettingsController {
......
...@@ -304,6 +304,7 @@ settings.pcbEmail.everyday=Everyday ...@@ -304,6 +304,7 @@ settings.pcbEmail.everyday=Everyday
settings.pcbEmail.reminder=Remind settings.pcbEmail.reminder=Remind
settings.pcbEmail.reminderDay=Before Due settings.pcbEmail.reminderDay=Before Due
settings.remind.deadday=days dead metiral remind settings.remind.deadday=days dead metiral remind
settings.miniStock.hours=hours to MiniStock
settings.pcbEmail.expire=PCB expiration settings.pcbEmail.expire=PCB expiration
settings.pcbEmail.adress=Emails (seperated by ;) settings.pcbEmail.adress=Emails (seperated by ;)
barCodeSettings.rule=Barcode Rules barCodeSettings.rule=Barcode Rules
......
...@@ -410,3 +410,4 @@ settings.restore.confirm=Would you like to proceed? ...@@ -410,3 +410,4 @@ settings.restore.confirm=Would you like to proceed?
settings.restore.success=Operation succeeded settings.restore.success=Operation succeeded
checkout.sucess=Add task list successn checkout.sucess=Add task list successn
settings.remind.deadday=days dead metiral remind settings.remind.deadday=days dead metiral remind
settings.miniStock.hours=hours to MiniStock
\ No newline at end of file \ No newline at end of file
...@@ -367,3 +367,4 @@ settings.restore.confirm=\u786E\u5B9A\u8981\u8FD8\u539F\u5230\u6B64\u7248\u672C ...@@ -367,3 +367,4 @@ settings.restore.confirm=\u786E\u5B9A\u8981\u8FD8\u539F\u5230\u6B64\u7248\u672C
settings.restore.success=\u64CD\u4F5C\u6210\u529F settings.restore.success=\u64CD\u4F5C\u6210\u529F
checkout.sucess=\u52A0\u5165\u51FA\u5E93\u4EFB\u52A1\u5217\u8868\u6210\u529F checkout.sucess=\u52A0\u5165\u51FA\u5E93\u4EFB\u52A1\u5217\u8868\u6210\u529F
settings.remind.deadday=\u5929\u524D\u5446\u6EDE\u7269\u6599\u63D0\u9192 settings.remind.deadday=\u5929\u524D\u5446\u6EDE\u7269\u6599\u63D0\u9192
settings.miniStock.hours=\u5C0F\u65F6\u524D\u7269\u6599\u53D1\u9001\u5230MiniStock
\ No newline at end of file \ No newline at end of file
...@@ -361,11 +361,12 @@ shelf.employeeNo=Employee No. ...@@ -361,11 +361,12 @@ shelf.employeeNo=Employee No.
shelf.msg.opSucess=Operation complete shelf.msg.opSucess=Operation complete
shelf.msg.notFound=Shelf not found. shelf.msg.notFound=Shelf not found.
shelf.msg.emptyEmployeeNo=Employee No. is required. shelf.msg.emptyEmployeeNo=Employee No. is required.
shelf.msg.noPermission=No permission to operate. shelf.msg.noPermission=No permission to operate, please relogin.
shelf.msg.authCodeError=The auth code is error.
shelf.msg.outOk=Please take out the material from the location [{0}] shelf.msg.outOk=Please take out the material from the location [{0}]
shelf.msg.outError=No material is found. shelf.msg.outError=No material is found.
shelf.msg.noLine=The line information is not found, please select the line if confirmed. shelf.msg.noLine=The line information is not found, please select the line if confirmed.
shelf.msg.erroLine=The material is for {0}, please select the line if confirmed. shelf.msg.erroLine=The material is for Line {0}, please select the line if confirmed.
shelf.msg.alreadyInPos=The material is already exists in [{0}] shelf.msg.alreadyInPos=The material is already exists in [{0}]
shelf.msg.inOk=Please put the material in the location [{0}] shelf.msg.inOk=Please put the material in the location [{0}]
shelf.msg.inMergeOk=Please merge the location [{0}], then put in the material. shelf.msg.inMergeOk=Please merge the location [{0}], then put in the material.
......
...@@ -360,11 +360,12 @@ shelf.employeeNo=Employee No. ...@@ -360,11 +360,12 @@ shelf.employeeNo=Employee No.
shelf.msg.opSucess=Operation complete shelf.msg.opSucess=Operation complete
shelf.msg.notFound=Shelf not found. shelf.msg.notFound=Shelf not found.
shelf.msg.emptyEmployeeNo=Employee No. is required. shelf.msg.emptyEmployeeNo=Employee No. is required.
shelf.msg.noPermission=No permission to operate. shelf.msg.noPermission=No permission to operate, please relogin.
shelf.msg.authCodeError=The auth code is error.
shelf.msg.outOk=Please take out the material from the location [{0}] shelf.msg.outOk=Please take out the material from the location [{0}]
shelf.msg.outError=No material is found. shelf.msg.outError=No material is found.
shelf.msg.noLine=The line information is not found, please select the line if confirmed. shelf.msg.noLine=The line information is not found, please select the line if confirmed.
shelf.msg.erroLine=The material is for {0}, please select the line if confirmed. shelf.msg.erroLine=The material is for Line {0}, please select the line if confirmed.
shelf.msg.alreadyInPos=The material is already exists in [{0}] shelf.msg.alreadyInPos=The material is already exists in [{0}]
shelf.msg.inOk=Please put the material in the location [{0}] shelf.msg.inOk=Please put the material in the location [{0}]
shelf.msg.inMergeOk=Please merge the location [{0}], then put in the material. shelf.msg.inMergeOk=Please merge the location [{0}], then put in the material.
......
...@@ -360,11 +360,12 @@ shelf.employeeNo=\u5458\u5DE5\u5DE5\u53F7 ...@@ -360,11 +360,12 @@ shelf.employeeNo=\u5458\u5DE5\u5DE5\u53F7
shelf.msg.opSucess=\u64CD\u4F5C\u5B8C\u6210 shelf.msg.opSucess=\u64CD\u4F5C\u5B8C\u6210
shelf.msg.notFound=\u672A\u627E\u5230\u6599\u67B6 shelf.msg.notFound=\u672A\u627E\u5230\u6599\u67B6
shelf.msg.emptyEmployeeNo=\u8BF7\u8F93\u5165\u5DE5\u53F7 shelf.msg.emptyEmployeeNo=\u8BF7\u8F93\u5165\u5DE5\u53F7
shelf.msg.noPermission=\u65E0\u6743\u6267\u884C\u6B64\u64CD\u4F5C shelf.msg.noPermission=\u65E0\u6743\u6267\u884C\u6B64\u64CD\u4F5C,\u8BF7\u91CD\u65B0\u767B\u9646
shelf.msg.authCodeError=\u6388\u6743\u7801\u9519\u8BEF
shelf.msg.outOk=\u64CD\u4F5C\u6210\u529F,\u8BF7\u4ECE\u5E93\u4F4D[{0}]\u4E2D\u53D6\u51FA\u7269\u6599 shelf.msg.outOk=\u64CD\u4F5C\u6210\u529F,\u8BF7\u4ECE\u5E93\u4F4D[{0}]\u4E2D\u53D6\u51FA\u7269\u6599
shelf.msg.outError=\u64CD\u4F5C\u5931\u8D25,\u672A\u627E\u5230\u53EF\u4EE5\u51FA\u5E93\u7684\u7269\u6599 shelf.msg.outError=\u64CD\u4F5C\u5931\u8D25,\u672A\u627E\u5230\u53EF\u4EE5\u51FA\u5E93\u7684\u7269\u6599
shelf.msg.noLine=\u672A\u67E5\u5230\u8BE5\u7269\u6599\u7684\u7EBF\u522B\u4FE1\u606F,\u5982\u786E\u8BA4\u5165\u5E93\u8BF7\u9009\u62E9\u5BF9\u5E94\u7EBF\u522B shelf.msg.noLine=\u672A\u67E5\u5230\u8BE5\u7269\u6599\u7684\u7EBF\u522B\u4FE1\u606F,\u5982\u786E\u8BA4\u5165\u5E93\u8BF7\u9009\u62E9\u5BF9\u5E94\u7EBF\u522B
shelf.msg.erroLine=\u8BE5\u7269\u6599\u662F{0}\u7269\u6599,\u5982\u786E\u8BA4\u5165\u5E93\u8BF7\u9009\u62E9\u5BF9\u5E94\u7EBF\u522B shelf.msg.erroLine=\u8BE5\u7269\u6599\u662F{0}\u7EBF\u7269\u6599,\u5982\u786E\u8BA4\u5165\u5E93\u8BF7\u9009\u62E9\u5BF9\u5E94\u7EBF\u522B
shelf.msg.alreadyInPos=\u8BE5\u7269\u6599\u5DF2\u5728\u5E93\u4F4D[{0}]\u4E2D shelf.msg.alreadyInPos=\u8BE5\u7269\u6599\u5DF2\u5728\u5E93\u4F4D[{0}]\u4E2D
shelf.msg.inOk=\u64CD\u4F5C\u6210\u529F,\u8BF7\u653E\u5165\u5E93\u4F4D[{0}] shelf.msg.inOk=\u64CD\u4F5C\u6210\u529F,\u8BF7\u653E\u5165\u5E93\u4F4D[{0}]
shelf.msg.inMergeOk=\u64CD\u4F5C\u6210\u529F,\u8BF7\u5408\u5E76\u5E93\u4F4D[{0}]\u5E76\u653E\u5165\u6599\u76D8 shelf.msg.inMergeOk=\u64CD\u4F5C\u6210\u529F,\u8BF7\u5408\u5E76\u5E93\u4F4D[{0}]\u5E76\u653E\u5165\u6599\u76D8
......
...@@ -94,11 +94,15 @@ ...@@ -94,11 +94,15 @@
<div class="table-scrollable"> <div class="table-scrollable">
<display:table name="searchCriteria.pageList" cellspacing="0" cellpadding="0" requestURI="componentSearch.html?type=${type}" <display:table name="searchCriteria.pageList" cellspacing="0" cellpadding="0" requestURI="componentSearch.html?type=${type}"
sort="external" sort="external"
defaultsort="1" class="table table-striped table-bordered table-hover" export="false" id="component"> defaultsort="1" class="table table-striped table-bordered table-hover" export="true" id="component">
<%--<display:column property="name" titleKey="component.name"/>--%> <%--<display:column property="name" titleKey="component.name"/>--%>
<display:column titleKey="component.partNumber"> <display:setProperty name="export.csv.filename" value="components.csv" />
<display:column titleKey="component.partNumber" media="html">
<a href="${ctx}/component/componentUpdate.html?type=${component.type}&id=${component.id}">${component.partNumber}</a> <a href="${ctx}/component/componentUpdate.html?type=${component.type}&id=${component.id}">${component.partNumber}</a>
</display:column> </display:column>
<display:column titleKey="component.partNumber" media="csv">
${component.partNumber}
</display:column>
<display:column property="provider" titleKey="component.provider"/> <display:column property="provider" titleKey="component.provider"/>
<display:column titleKey="component.plate.size"> <display:column titleKey="component.plate.size">
${component.plateSize} x ${component.height} ${component.plateSize} x ${component.height}
......
...@@ -287,7 +287,8 @@ ...@@ -287,7 +287,8 @@
$("#btn"+ids[i]).parent().parent().attr("class","hide"); $("#btn"+ids[i]).parent().parent().attr("class","hide");
} }
$.post("${ctx}/service/store/clearInactionPos", {pids: posId}, function (data) { $.post("${ctx}/service/store/clearInactionPos", {pids: posId}, function (data) {
window.location.href=""; //window.location.href="";
$("#btn"+ids[i]).parent().parent().attr("class","hide");
}); });
} }
......
...@@ -71,17 +71,6 @@ ...@@ -71,17 +71,6 @@
<a href="#" onclick="cancelTask('${dataLog.id}')"><fmt:message key="button.cancel"/></a> <a href="#" onclick="cancelTask('${dataLog.id}')"><fmt:message key="button.cancel"/></a>
</c:if> </c:if>
</display:column> </display:column>
<display:column titleKey="dataLog.orderSource" sortable="true" sortProperty="sourceName" media="html">
${dataLog.sourceStr}
</display:column>
<display:column titleKey="dataLog.batch" sortable="true" sortProperty="batchInfo" property="batchInfo" media="html"/>
<%--<display:column titleKey="产品工程"></display:column>--%>
<%--<display:column titleKey="产品代号"></display:column>--%>
<%--<display:column titleKey="产品印制板代号"></display:column>--%>
<%--<display:column titleKey="印制板编号"></display:column>--%>
<%--<display:column titleKey="代料名称"></display:column>--%>
<%--<display:column titleKey="代料型号"></display:column>--%>
<%--<display:column titleKey="代料单"></display:column>--%>
<display:column property="operator" titleKey="操作人" sortable="true" sortProperty="operator"/> <display:column property="operator" titleKey="操作人" sortable="true" sortProperty="operator"/>
<display:column titleKey="dataLog.date" sortable="true" sortProperty="updateDate"> <display:column titleKey="dataLog.date" sortable="true" sortProperty="updateDate">
<fmt:formatDate value="${dataLog.updateDate}" pattern="yyyy-MM-dd HH:mm"/> <fmt:formatDate value="${dataLog.updateDate}" pattern="yyyy-MM-dd HH:mm"/>
......
...@@ -39,6 +39,12 @@ ...@@ -39,6 +39,12 @@
<span class="input-group-addon"><fmt:message key="settings.remind.deadday"/></span> <span class="input-group-addon"><fmt:message key="settings.remind.deadday"/></span>
</div> </div>
</div> </div>
<div class="form-group form-inline">
<div class="input-group margin-top-10">
<form:input path="backupHours" cssClass="form-control input-small"/>
<span class="input-group-addon"><fmt:message key="settings.miniStock.hours"/></span>
</div>
</div>
</div> </div>
<div class="portlet-title"> <div class="portlet-title">
......
...@@ -52,11 +52,7 @@ ...@@ -52,11 +52,7 @@
<%--</a>--%> <%--</a>--%>
<%--</li>--%> <%--</li>--%>
<li class="classic-menu-dropdown">
<a href="${ctx}/workOrder/checkOutSettings.html" name="workOrder">
<fmt:message key="menu.outRule"/><span class="selected"></span>
</a>
</li>
</security:authorize> </security:authorize>
</ul> </ul>
</security:authorize> </security:authorize>
...@@ -89,12 +85,6 @@ ...@@ -89,12 +85,6 @@
<fmt:message key="menu.barCode.search"/><span class="selected"></span> <fmt:message key="menu.barCode.search"/><span class="selected"></span>
</a> </a>
</li> </li>
<li class="classic-menu-dropdown">
<a href="${ctx}/barcode/barcodeSettings.html" name="barcode">
<fmt:message key="menu.barCode.settings"/><span class="selected"></span>
</a>
</li>
</ul> </ul>
</security:authorize> </security:authorize>
...@@ -151,6 +141,17 @@ ...@@ -151,6 +141,17 @@
</security:authorize> </security:authorize>
<li class="classic-menu-dropdown">
<a href="${ctx}/system/barcodeSettings.html" name="system">
<fmt:message key="menu.barCode.settings"/><span class="selected"></span>
</a>
</li>
<li class="classic-menu-dropdown">
<a href="${ctx}/system/checkOutSettings.html" name="system">
<fmt:message key="menu.outRule"/><span class="selected"></span>
</a>
</li>
<security:authorize ifAnyGranted="ROLE_MANAGE_ROLE,ROLE_MANAGE_USER"> <security:authorize ifAnyGranted="ROLE_MANAGE_ROLE,ROLE_MANAGE_USER">
<li class="classic-menu-dropdown"> <li class="classic-menu-dropdown">
<a href="${ctx}/system/storageSearch.html" name="system"> <a href="${ctx}/system/storageSearch.html" name="system">
...@@ -158,6 +159,8 @@ ...@@ -158,6 +159,8 @@
</a> </a>
</li> </li>
</security:authorize> </security:authorize>
</ul> </ul>
</div> </div>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!