Commit 2d9fbf4b LN

齐套页面增加导出功能

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