Commit 2d9fbf4b LN

齐套页面增加导出功能

1 个父辈 9e224c7d
......@@ -86,7 +86,16 @@ public class OrderPnCache {
}
public synchronized void reloadData() {
public synchronized boolean reloadData() {
//如果十分钟内才更新过,就不需要再更新了
if(orderPnInfoMap!=null&&orderPnInfoMap.size()>0){
long timeSpans=System.currentTimeMillis()-lastUpdateDate.getTime();
int m=(int)(timeSpans/1000/60);
if(m<10){
return false;
}
}
log.info("开始更新齐套数据----------");
List<LiteOrder> liteOrders = liteOrderManager.findUnEndOrdersList();
......@@ -137,7 +146,6 @@ public class OrderPnCache {
continue;
}
Component component = componentManager.findOneByPN(pn);
int reelAmount = 1000;//每盘料数量
if (component != null) {
......@@ -148,12 +156,11 @@ public class OrderPnCache {
OrderPnInfo pnInfo = new OrderPnInfo(pn, needNum, lackNum, stockCount, reelAmount, needReel, new Date());
orderPnInfoMap.put(pn, pnInfo);
}
log.info("结束更新齐套数据,共有[" + orderPnInfoMap.size() + "]元器件缺料----------");
lastUpdateDate = new Date();
return true;
}
......
......@@ -8,6 +8,7 @@ import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.*;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.OrderPnCache;
import com.neotel.smfcore.core.order.bean.OrderPnInfo;
......@@ -48,7 +49,10 @@ import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.*;
......@@ -413,11 +417,38 @@ public class OrderController {
@ApiOperation("齐套页面,刷新齐套数据")
@PostMapping("/orderSet/update")
@PreAuthorize("@el.check('workOrder')")
public List<OrderPnDto> updateOrderSet( ) {
orderPnCache.reloadData();
public ResultBean updateOrderSet(HttpServletRequest request ) {
boolean result = orderPnCache.reloadData();
if (!result) {
return ResultBean.newErrorResult(-1, "smfcore.orderSet.reloadData.fail", "刷新数据失败,请稍后再试");
}
List<OrderPnInfo> orderPnInfos = orderPnCache.getDataList();
List<OrderPnDto> dtos = orderPnMapper.toDto(orderPnInfos);
return ResultBean.newOkResult(dtos);
}
@ApiOperation("导出齐套列表")
@GetMapping(value = "/orderSet/download")
@PreAuthorize("@el.check('workOrder')")
public void download(HttpServletResponse response, HttpServletRequest request) throws IOException {
List<OrderPnInfo> orderPnInfos=orderPnCache.getDataList();
List<OrderPnDto> dtos=orderPnMapper.toDto(orderPnInfos);
return dtos;
download(orderPnInfos,response,request.getLocale());
}
public void download(List<OrderPnInfo> orderPnInfoList, HttpServletResponse response,Locale locale) throws IOException {
String pn = MessageUtils.getText("smfcore.orderSet.barcode", locale, "物料编号");
String lackNum = MessageUtils.getText("smfcore.orderSet.partNumber", locale, "缺料数");
String reelCount = MessageUtils.getText("smfcore.orderSet.proDate", locale, "缺料盘数");
List<Map<String, Object>> list = new ArrayList<>();
for (OrderPnInfo orderPnInfo : orderPnInfoList) {
Map<String, Object> map = new LinkedHashMap<>();
map.put(pn, orderPnInfo.getPartNumber());
map.put(lackNum, orderPnInfo.getLackNum());
map.put(reelCount, orderPnInfo.getReelCount());
list.add(map);
}
FileUtil.downloadExcel(list, response);
}
private List<LiteOrder> getExecuteOrders(User user) {
......
......@@ -18,8 +18,11 @@ import java.util.concurrent.ConcurrentHashMap;
@Repository
public class HikApiCache {
@Autowired
private static DataCache dataCache;
@Autowired
public void setDataCache(DataCache dataCache){
HikApiCache.dataCache=dataCache;
}
/**
* 需要重发的指令列表
*/
......@@ -44,12 +47,12 @@ public class HikApiCache {
}
public static void addFailedRequest(HikApiRequest apiRequest) {
String mapKey = apiRequest.getParam().getReqCode();
if (failedRequestMap.get(mapKey) == null) {
log.info(mapKey + "通知指令发送到Hik失败,加入到缓存");
failedRequestMap.put(apiRequest.getParam().getReqCode(), apiRequest);
dataCache.updateCache(Constants.CACHE_failedRequestMap, failedRequestMap);
}
// String mapKey = apiRequest.getParam().getReqCode();
// if (failedRequestMap.get(mapKey) == null) {
// log.info(mapKey + "通知指令发送到Hik失败,加入到缓存");
// failedRequestMap.put(apiRequest.getParam().getReqCode(), apiRequest);
// dataCache.updateCache(Constants.CACHE_failedRequestMap, failedRequestMap);
// }
}
public static void removeFailedRequest(HikApiRequest apiRequest) {
......@@ -79,6 +82,11 @@ public class HikApiCache {
* 获取失败列表,进行定时发送
*/
private static void sendFailedRequest() throws ApiException {
if(failedRequestMap==null){
initApiRequestMap();
}
List<HikApiRequest> failedList = new ArrayList<>();
failedList.addAll(failedRequestMap.values());
failedList.sort(new Comparator<HikApiRequest>() {
......
......@@ -15,26 +15,26 @@ hik:
addr_9_updateRepOrderApi:
addr_10_reservedOrderApi:
addr_11_orderEndApi:
key_1_transferOrderApi:
key_2_transferOrderInApi:
key_1_transferOrderApi: "065009142"
key_2_transferOrderInApi: "065009152"
key_3_scheduleTaskApi: "065009097"
key_4_returnMaterialApi: "065009043"
key_5_putInApi: "065009094"
key_6_checkOutApi: "065009095"
key_7_updateOrderApi: "065009096"
key_8_riCheckApi: "065009099"
key_9_updateRepOrderApi:
key_9_updateRepOrderApi: "065009225"
key_10_reservedOrderApi:
key_11_orderEndApi: "065009098"
secret_1_transferOrderApi:
secret_2_transferOrderInApi:
secret_1_transferOrderApi: 3RqMfgy5djpbfol4NMh6sd1TIRNZnHeEn86QdQW5hV2Z0PXA35zUSneX07d5HQEi
secret_2_transferOrderInApi: IBf9yJb3vWCAG60pDLncapoypGsBV6gbzpENZEnLxbEsxKgvtoYcOmDDcKlbcL02
secret_3_scheduleTaskApi: eR2RbW9zHVglHfDweBHPzDF2pYR0RpF1dUpHJKrVKLmYCyHErz2NjXvMsWNJoKgz
secret_4_returnMaterialApi: sRs9lFTsRYpTvORhSI32FhjEPhJDb6TzTvIxhPudrmo9jgwwCiKJWi8go1yN8988
secret_5_putInApi: gTLARhgpnbhSv7SNOvQtHoMxWapphmgRwO72vLsVj76CpGvdpImDsum0LVlrsymu
secret_6_checkOutApi: MDulYCOgEasYYJXOk2tLycnpYKS2HQK0vXcIvJNzPt79isaHJkyE24BcCzn3hTg4
secret_7_updateOrderApi: HvbUVz6vQJYIDfmWokk98rxSUHAoDlUWNSsPuVc0hB8JtIOzZLDQYARW9tmeU2Fy
secret_8_riCheckApi: eQPd3y8xDvwXKMetEbwp2LdzJe8tD0Dg48YA1H68SPsGeKSt2Yj3pOrKibguwzwe
secret_9_updateRepOrderApi:
secret_9_updateRepOrderApi: UU9jBeJBbfg47Wpy3z1dxEBmXHanjH1AFBzGmj9c8U7zuGgG5EJR0KSzTJ7yJE9a
secret_10_reservedOrderApi:
secret_11_orderEndApi: W0KWumdsD4eMyTm3Qail9HxHTfqdvxAJW30hLKtiTpJeGO7wXwBe7aUO6n0eicf8
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!