Commit 057e0807 sunke

每页展示数量修改

库位导出
接口异常功能优化
启动加载数据优化
1 个父辈 0e8f9693
正在显示 25 个修改的文件 包含 332 行增加206 行删除
...@@ -239,7 +239,7 @@ public class FileUtil extends cn.hutool.core.io.FileUtil { ...@@ -239,7 +239,7 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
// 这里注意 如果同一个sheet只要创建一次 // 这里注意 如果同一个sheet只要创建一次
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build(); WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build();
// 去调用写入,这里我调用了五次,实际使用时根据数据库分页的总的页数来 // 去调用写入,这里我调用了五次,实际使用时根据数据库分页的总的页数来
PageRequest page = PageRequest.ofSize(10000); PageRequest page = PageRequest.ofSize(20000);
if(pageable != null){ if(pageable != null){
page.withSort(pageable.getSort()); page.withSort(pageable.getSort());
} }
......
...@@ -86,6 +86,8 @@ public class ComponentController { ...@@ -86,6 +86,8 @@ public class ComponentController {
@Override @Override
public List<List<Object>> getPageData(Query query, Pageable pageable) { public List<List<Object>> getPageData(Query query, Pageable pageable) {
long end = pageable.getOffset() + pageable.getPageSize();
log.info("开始导出元器件"+pageable.getOffset()+" - " + end);
List<Component> list = componentManager.findByQuery(query,pageable); List<Component> list = componentManager.findByQuery(query,pageable);
List<List<Object>> dataList = new ArrayList<>(); List<List<Object>> dataList = new ArrayList<>();
for (Component component : list) { for (Component component : list) {
......
...@@ -83,6 +83,8 @@ public class BarcodeManagerImpl implements IBarcodeManager { ...@@ -83,6 +83,8 @@ public class BarcodeManagerImpl implements IBarcodeManager {
@Override @Override
public List<List<Object>> getPageData(Query query, Pageable pageable) { public List<List<Object>> getPageData(Query query, Pageable pageable) {
long end = pageable.getOffset() + pageable.getPageSize();
log.info("开始导出条码"+pageable.getOffset()+" - " + end);
List<Barcode> barcodeList = barcodeDao.findByQuery(query,pageable); List<Barcode> barcodeList = barcodeDao.findByQuery(query,pageable);
List<List<Object>> dataList = new ArrayList<>(); List<List<Object>> dataList = new ArrayList<>();
for (Barcode barcode : barcodeList) { for (Barcode barcode : barcodeList) {
......
package com.neotel.smfcore.core.hik.rest; package com.neotel.smfcore.core.hik.rest;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.bean.ResultBean; 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.QueryHelp; import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.core.barcode.rest.bean.dto.BarcodeDto;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.hik.rest.dto.InterfaceExDto; import com.neotel.smfcore.core.hik.rest.dto.InterfaceExDto;
import com.neotel.smfcore.core.hik.rest.query.InterfaceExCriteria; import com.neotel.smfcore.core.hik.rest.query.InterfaceExCriteria;
import com.neotel.smfcore.core.system.rest.bean.dto.TaskDto;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.hikvision.HikApiCache; import com.neotel.smfcore.hikvision.HikApiCache;
import com.neotel.smfcore.hikvision.bean.api.HikApiRequest; import com.neotel.smfcore.hikvision.bean.api.HikApiRequest;
import com.neotel.smfcore.hikvision.bean.api.ResponseParam; import com.neotel.smfcore.hikvision.bean.api.ResponseParam;
import com.neotel.smfcore.hikvision.service.dao.IHikApiRequestErrorDao;
import com.neotel.smfcore.hikvision.service.po.HikApiRequestError;
import com.neotel.smfcore.hikvision.util.JsonUtil; import com.neotel.smfcore.hikvision.util.JsonUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.*; import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
...@@ -26,71 +36,24 @@ import java.util.regex.Pattern; ...@@ -26,71 +36,24 @@ import java.util.regex.Pattern;
@RequestMapping("api/interfaceException") @RequestMapping("api/interfaceException")
public class InterfaceExceptionController { public class InterfaceExceptionController {
@Autowired
private IHikApiRequestErrorDao hikApiRequestErrorDao;
@ApiOperation("获取异常列表") @ApiOperation("获取异常列表")
@GetMapping("/list") @GetMapping("/list")
public List<InterfaceExDto> list( InterfaceExCriteria criteria) { public PageData<InterfaceExDto> list(InterfaceExCriteria criteria, Pageable pageable) {
Query query= QueryHelp.getQuery(criteria);
List<InterfaceExDto> results = new ArrayList<>(); List<InterfaceExDto> results = new ArrayList<>();
List<HikApiRequest> requests = HikApiCache.getAllRequestList(); List<HikApiRequestError> requests = hikApiRequestErrorDao.findByQuery(query,pageable);
for (HikApiRequest request : requests) { int totalCount = hikApiRequestErrorDao.countByQuery(query);
for (HikApiRequestError request : requests) {
InterfaceExDto dto = toDto(request); InterfaceExDto dto = toDto(request);
//dto.setApiType(2); results.add(dto);
if (criteria.getCreateDate() != null) {
Date from = criteria.getCreateDate().getFrom();
Date to = criteria.getCreateDate().getTo();
if (ObjectUtil.isNotEmpty(from)) {
if (request.getUpdatetime().before(from)) {
break;
}
}
if (ObjectUtil.isNotEmpty(to)) {
if (request.getUpdatetime().after(to)) {
break;
}
}
}
boolean blurryOk = false;
if (ObjectUtil.isNotEmpty(criteria.getBlurry())) {
String blurry = criteria.getBlurry();
String[] blurrys = blurry.split(",");
String[] valueArray = new String[]{dto.getReqCode(), dto.getResponseMsg(), JsonUtil.toJsonStr(dto.getData()) , dto.getUserCode()};
for (String s : blurrys) {
if (ObjectUtil.isNotEmpty(s)) {
for (String v :
valueArray) {
if (ObjectUtil.isEmpty(v)) {
continue;
}
try {
Pattern pattern = Pattern.compile(QueryHelp.escapeExprSpecialWord(s), Pattern.CASE_INSENSITIVE);
Matcher m = pattern.matcher(v);
while (m.find()) {
blurryOk = true;
break;
}
if (blurryOk) break;
} catch (Exception ex) {
log.error(ex.toString());
}
}
if (blurryOk) break;
} else {
blurryOk = true;
}
}
} else {
blurryOk = true;
}
if (blurryOk) {
results.add(dto);
}
} }
return results; return new PageData<InterfaceExDto>(results,totalCount);
} }
private InterfaceExDto toDto(HikApiRequest request) { private InterfaceExDto toDto(HikApiRequestError request) {
InterfaceExDto dto = new InterfaceExDto(); InterfaceExDto dto = new InterfaceExDto();
dto.setApiType(request.getApiType()); dto.setApiType(request.getApiType());
dto.setCreateTime(request.getCreateTime()); dto.setCreateTime(request.getCreateTime());
...@@ -112,7 +75,7 @@ public class InterfaceExceptionController { ...@@ -112,7 +75,7 @@ public class InterfaceExceptionController {
throw new ValidateException("smfcore.error.interfaceEx.invalid", "未找到异常接口{1}", new String[]{""}); throw new ValidateException("smfcore.error.interfaceEx.invalid", "未找到异常接口{1}", new String[]{""});
} }
HikApiRequest request = HikApiCache.getRequest(reqCode); HikApiRequestError request = HikApiCache.getRequest(reqCode);
if (request == null) { if (request == null) {
throw new ValidateException("smfcore.error.interfaceEx.invalid", "未找到异常接口{0}", new String[]{reqCode}); throw new ValidateException("smfcore.error.interfaceEx.invalid", "未找到异常接口{0}", new String[]{reqCode});
} }
......
...@@ -8,10 +8,10 @@ import org.springframework.format.annotation.DateTimeFormat; ...@@ -8,10 +8,10 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.sql.Date; import java.sql.Date;
@Data @Data
public class InterfaceExCriteria { public class InterfaceExCriteria {
@QueryCondition(blurry = "reqCode,userCode,date,responseMsg") @QueryCondition(blurry = "param.reqCode,param.userCode,param.data,responseParam.message,responseParam.data")
private String blurry; private String blurry;
@QueryCondition(type = QueryCondition.Type.BETWEEN, propName = "updateDate") @QueryCondition(type = QueryCondition.Type.BETWEEN, propName = "createDate")
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private BetweenData<Date> createDate; private BetweenData<Date> createDate;
......
...@@ -49,6 +49,7 @@ public class InListCache { ...@@ -49,6 +49,7 @@ public class InListCache {
addInListToMap(list); addInListToMap(list);
// } // }
} }
log.info("加载到["+inLists.size()+"]条入库单");
} }
public void addInListToMap(InList inList ){ public void addInListToMap(InList inList ){
if(inList==null|| inList.getName()==null){ if(inList==null|| inList.getName()==null){
......
...@@ -66,6 +66,10 @@ public class LiteOrderCache implements ITaskListener { ...@@ -66,6 +66,10 @@ public class LiteOrderCache implements ITaskListener {
*/ */
public static Map<String, LiteOrder> liteOrderMap = new ConcurrentHashMap<>(); public static Map<String, LiteOrder> liteOrderMap = new ConcurrentHashMap<>();
public static Collection<LiteOrder> getAllCachedOrders(){
return liteOrderMap.values();
}
public void loadUnEndOrderInfos() { public void loadUnEndOrderInfos() {
Criteria c = Criteria.where("remainBoxNum").exists(false); Criteria c = Criteria.where("remainBoxNum").exists(false);
Query q = Query.query(c); Query q = Query.query(c);
...@@ -91,6 +95,7 @@ public class LiteOrderCache implements ITaskListener { ...@@ -91,6 +95,7 @@ public class LiteOrderCache implements ITaskListener {
addOrderToMap(order); addOrderToMap(order);
// } // }
} }
log.info("加载到["+unEndOutInfoList.size()+"]个未完成的需求单");
} }
public void addOrderToMap(LiteOrder order ){ public void addOrderToMap(LiteOrder order ){
if(order==null|| order.getOrderNo()==null){ if(order==null|| order.getOrderNo()==null){
...@@ -287,7 +292,7 @@ public class LiteOrderCache implements ITaskListener { ...@@ -287,7 +292,7 @@ public class LiteOrderCache implements ITaskListener {
* @return * @return
*/ */
public LiteOrder updateOrderFromApi(String userName,LiteOrder liteOrder) { public LiteOrder updateOrderFromApi(String userName,LiteOrder liteOrder) {
if ((!liteOrder.isNew()) &&(!liteOrder.isShortage()) ) { if ((!liteOrder.isNew()) /**&&(!liteOrder.isShortage())*/) {
return liteOrder; return liteOrder;
} }
...@@ -805,6 +810,8 @@ public class LiteOrderCache implements ITaskListener { ...@@ -805,6 +810,8 @@ public class LiteOrderCache implements ITaskListener {
} }
//挑选散盘 //挑选散盘
log.info("开始挑选散盘料,剩余需求"+targetNum); log.info("开始挑选散盘料,剩余需求"+targetNum);
//已挑选的散盘数量
int notWholeReelCount = 0;
while (true){ while (true){
//取散盘 //取散盘
StoragePos outPos = pickNotWholeReel(excludePosNameList,posList,targetNum,oneReelNum); StoragePos outPos = pickNotWholeReel(excludePosNameList,posList,targetNum,oneReelNum);
...@@ -818,16 +825,20 @@ public class LiteOrderCache implements ITaskListener { ...@@ -818,16 +825,20 @@ public class LiteOrderCache implements ITaskListener {
if(targetNum <=0){ if(targetNum <=0){
break; break;
} }
notWholeReelCount = notWholeReelCount + 1;
// if(notWholeReelCount > 3){
// log.info(pn + "的散盘已挑选3盘,跳出");
// }
} }
} }
if(targetNum > 0){ if(targetNum > 0){
log.info("剩余需求"+targetNum+"开始补充盘"); log.info("剩余需求"+targetNum+"开始补充最合适的盘");
while(true){ while(true){
StoragePos outPos = pickFitWholeReel(excludePosNameList,posList,targetNum); StoragePos outPos = pickFitWholeReel(excludePosNameList,posList,targetNum);
if(outPos == null){ if(outPos == null){
break; break;
}else{ }else{
log.info("挑选到批次["+outPos.getBarcode().getBatch()+"]的散盘物料:" + outPos.getBarcode().getBarcode() + " 数量:" + outPos.getBarcode().getAmount()); log.info("挑选到批次["+outPos.getBarcode().getBatch()+"]的物料:" + outPos.getBarcode().getBarcode() + " 数量:" + outPos.getBarcode().getAmount());
outPosList.add(outPos); outPosList.add(outPos);
excludePosNameList.add(outPos.getPosName()); excludePosNameList.add(outPos.getPosName());
targetNum = targetNum - outPos.getBarcode().getAmount(); targetNum = targetNum - outPos.getBarcode().getAmount();
......
...@@ -99,7 +99,7 @@ public class OrderPnCache { ...@@ -99,7 +99,7 @@ public class OrderPnCache {
log.info("开始更新齐套数据----------"); log.info("开始更新齐套数据----------");
//需要每个工单单独计算缺料数,最后把总盘数加起来 //需要每个工单单独计算缺料数,最后把总盘数加起来
List<LiteOrder> liteOrders = liteOrderManager.findUnEndOrdersList(); Collection<LiteOrder> liteOrders = LiteOrderCache.getAllCachedOrders();
orderPnInfoMap = new HashMap<>(); orderPnInfoMap = new HashMap<>();
......
...@@ -267,6 +267,9 @@ public class OrderController { ...@@ -267,6 +267,9 @@ public class OrderController {
if (liteOrder == null) { if (liteOrder == null) {
throw new ValidateException("smfcore.valueNotFind", "未找到{0}[{1}]", new String[]{"orderNo", orderNo}); throw new ValidateException("smfcore.valueNotFind", "未找到{0}[{1}]", new String[]{"orderNo", orderNo});
} }
if (!liteOrder.isNew() && !liteOrder.isShortage()){
throw new ValidateException("smfcore.order.executed", "该工单已执行,无法重复执行", new String[]{});
}
String result = liteOrderCache.checkOutLiteOrder(SecurityUtils.getCurrentUsername(), liteOrder.getOrderNo(),isShortageOut,false); String result = liteOrderCache.checkOutLiteOrder(SecurityUtils.getCurrentUsername(), liteOrder.getOrderNo(),isShortageOut,false);
if (ObjectUtil.isEmpty(result)) { if (ObjectUtil.isEmpty(result)) {
return ResultBean.newOkResult(result); return ResultBean.newOkResult(result);
......
...@@ -36,10 +36,7 @@ import org.springframework.data.mongodb.core.query.Query; ...@@ -36,10 +36,7 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList; import java.util.*;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
@Slf4j @Slf4j
@Api(tags = "工单欠料发料,合单欠料") @Api(tags = "工单欠料发料,合单欠料")
...@@ -146,9 +143,9 @@ public class OrderShortageController { ...@@ -146,9 +143,9 @@ public class OrderShortageController {
@PreAuthorize("@el.check('reelOut')") @PreAuthorize("@el.check('reelOut')")
public List<TaskDto> shortageOutTasks(@RequestParam Map<String, String> paramsMap) { public List<TaskDto> shortageOutTasks(@RequestParam Map<String, String> paramsMap) {
List<DataLog> taskList = new ArrayList<>(); List<DataLog> taskList = new ArrayList<>();
List<DataLog> allTasks = taskService.getAllTasks(); Collection<DataLog> allTasks = taskService.getQueueTasks();
for (DataLog datalog : allTasks) { for (DataLog datalog : allTasks) {
if (datalog.isOrderTask()) { if (datalog.isOrderTask() && datalog.isCheckOutTask()) {
//判断是否是缺料出库 //判断是否是缺料出库
if (datalog.isAddOutbound()) { if (datalog.isAddOutbound()) {
taskList.add(datalog); taskList.add(datalog);
...@@ -158,7 +155,7 @@ public class OrderShortageController { ...@@ -158,7 +155,7 @@ public class OrderShortageController {
taskList.sort(new Comparator<DataLog>() { taskList.sort(new Comparator<DataLog>() {
@Override @Override
public int compare(DataLog o1, DataLog o2) { public int compare(DataLog o1, DataLog o2) {
return o1.getCid().compareTo(o2.getCid()); return o1.getPosName().compareTo(o2.getPosName());
} }
}); });
return taskMapper.toDto(taskList); return taskMapper.toDto(taskList);
......
...@@ -20,10 +20,10 @@ import org.springframework.data.mongodb.core.query.Criteria; ...@@ -20,10 +20,10 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date; import java.util.*;
import java.util.List;
@Service @Service
@Slf4j
public class LiteOrderManagerImpl implements ILiteOrderManager { public class LiteOrderManagerImpl implements ILiteOrderManager {
@Autowired @Autowired
...@@ -46,6 +46,7 @@ public class LiteOrderManagerImpl implements ILiteOrderManager { ...@@ -46,6 +46,7 @@ public class LiteOrderManagerImpl implements ILiteOrderManager {
public LiteOrder get(String id) { public LiteOrder get(String id) {
LiteOrder order= liteOrderDao.findOneById(id); LiteOrder order= liteOrderDao.findOneById(id);
if(order!=null&& order.getOrderItems()==null){ if(order!=null&& order.getOrderItems()==null){
log.info("加载["+order.getOrderNo()+"]详情");
List<LiteOrderItem> items=liteOrderItemManager.findOrderItems(order.getOrderNo()); List<LiteOrderItem> items=liteOrderItemManager.findOrderItems(order.getOrderNo());
order.setOrderItems(items); order.setOrderItems(items);
} }
...@@ -83,14 +84,29 @@ public class LiteOrderManagerImpl implements ILiteOrderManager { ...@@ -83,14 +84,29 @@ public class LiteOrderManagerImpl implements ILiteOrderManager {
c.and("status").nin(LITEORDER_STATUS.CLOSED); c.and("status").nin(LITEORDER_STATUS.CLOSED);
Query query = new Query(c); Query query = new Query(c);
List<LiteOrder> orders = findByQuery(query); List<LiteOrder> orders = findByQuery(query);
for (LiteOrder order : orders log.info("加载到["+orders.size()+"]个未完成需求单,开始加载需求单详情");
) { List<String> orderNoList = new ArrayList<>();
Map<String, LiteOrder> orderMap = new HashMap<>();
for (LiteOrder order : orders) {
orderNoList.add(order.getOrderNo());
orderMap.put(order.getOrderNo(),order);
if (order != null && order.getOrderItems() == null) { if (order != null && order.getOrderItems() == null) {
//log.info("加载["+order.getOrderNo()+"]详情");
List<LiteOrderItem> items = liteOrderItemManager.findOrderItems(order.getOrderNo()); List<LiteOrderItem> items = liteOrderItemManager.findOrderItems(order.getOrderNo());
order.setOrderItems(items); order.setOrderItems(items);
} }
} }
return orders; // List<LiteOrderItem> items = liteOrderItemManager.findByQuery(Query.query(Criteria.where("orderNo").in(orderNoList)));
// log.info("加载到["+items.size()+"]条详情");
// for (LiteOrderItem item : items) {
// LiteOrder order = orderMap.get(item.getOrderNo());
// if(order != null){
// order.addOrderItems(item);
// }else{
// log.info("未找到工单["+item.getOrderNo()+"]");
// }
// }
return new ArrayList<>(orderMap.values());
} }
@Override @Override
......
...@@ -359,6 +359,9 @@ public class LiteOrder extends BasePo implements Serializable { ...@@ -359,6 +359,9 @@ public class LiteOrder extends BasePo implements Serializable {
} }
public void addOrderItems(LiteOrderItem item){ public void addOrderItems(LiteOrderItem item){
if(orderItems==null){
orderItems=new ArrayList<>();
}
orderItems.add(item); orderItems.add(item);
} }
......
...@@ -152,7 +152,7 @@ public class OutListCache implements ITaskListener { ...@@ -152,7 +152,7 @@ public class OutListCache implements ITaskListener {
public void loadMap() { public void loadMap() {
log.info("开始加载转储出库单"); log.info("开始加载转储出库单");
Query query = new Query(Criteria.where("status").ne(2)); Query query = new Query(Criteria.where("status").ne(3));
List<OutList> outLists = outListManager.findByQuery(query); List<OutList> outLists = outListManager.findByQuery(query);
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
for (OutList list : outLists) { for (OutList list : outLists) {
...@@ -163,6 +163,7 @@ public class OutListCache implements ITaskListener { ...@@ -163,6 +163,7 @@ public class OutListCache implements ITaskListener {
addOutListToMap(list); addOutListToMap(list);
// } // }
} }
log.info("加载到["+outLists.size()+"]条转储出库单");
} }
public void addOutListToMap(OutList outList) { public void addOutListToMap(OutList outList) {
......
...@@ -2,13 +2,12 @@ package com.neotel.smfcore.core.storage.rest; ...@@ -2,13 +2,12 @@ package com.neotel.smfcore.core.storage.rest;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.base.IExcelDownLoad;
import com.neotel.smfcore.common.bean.PageData; import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.bean.ResultBean; 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.Constants; import com.neotel.smfcore.common.utils.*;
import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StorageConstants;
import com.neotel.smfcore.core.barcode.bean.CodeBean; import com.neotel.smfcore.core.barcode.bean.CodeBean;
import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE; import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.core.barcode.rest.bean.dto.CodeDto; import com.neotel.smfcore.core.barcode.rest.bean.dto.CodeDto;
...@@ -29,6 +28,7 @@ import com.neotel.smfcore.core.storage.service.dao.IStoragePosDao; ...@@ -29,6 +28,7 @@ import com.neotel.smfcore.core.storage.service.dao.IStoragePosDao;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager; import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage; import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos; import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.rest.bean.query.TaskQueryCondition;
import com.neotel.smfcore.core.system.service.po.DataLog; import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService; import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.security.annotation.AnonymousAccess; import com.neotel.smfcore.security.annotation.AnonymousAccess;
...@@ -54,6 +54,8 @@ import org.springframework.web.bind.annotation.*; ...@@ -54,6 +54,8 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -81,15 +83,20 @@ public class StoragePosController { ...@@ -81,15 +83,20 @@ public class StoragePosController {
@Autowired @Autowired
private CodeMapper codeMapper; private CodeMapper codeMapper;
private Query getQuery(StoragePosQueryCriteria criteria){
if (criteria.getStorageIdList() != null && criteria.getStorageIdList().contains("0")) {
criteria.setStorageIdList(null);
}
Query query = QueryHelp.getQuery(criteria);
return query;
}
@ApiOperation("查询库位") @ApiOperation("查询库位")
@GetMapping @GetMapping
@PreAuthorize("@el.check('storagePos:list')") @PreAuthorize("@el.check('storagePos:list')")
public PageData<StoragePosDto> query(StoragePosQueryCriteria criteria, Pageable pageable) { public PageData<StoragePosDto> query(StoragePosQueryCriteria criteria, Pageable pageable) {
if (criteria.getStorageIdList() != null && criteria.getStorageIdList().contains("0")) { Query query = getQuery(criteria);
criteria.setStorageIdList(null);
}
Query query = QueryHelp.getQuery(criteria);
PageData<StoragePos> pages = storagePosManager.findByPage(query, pageable); PageData<StoragePos> pages = storagePosManager.findByPage(query, pageable);
List<StoragePosDto> StoragePosDtos = storagePosMapper.toDto(pages.getContent()); List<StoragePosDto> StoragePosDtos = storagePosMapper.toDto(pages.getContent());
...@@ -102,6 +109,70 @@ public class StoragePosController { ...@@ -102,6 +109,70 @@ public class StoragePosController {
return new PageData(StoragePosDtos, pages.getTotalElements()); return new PageData(StoragePosDtos, pages.getTotalElements());
} }
@ApiOperation("导出库位")
@GetMapping(value = "/download")
@PreAuthorize("@el.check('storagePos:list')")
public void download(HttpServletResponse response, StoragePosQueryCriteria criteria, Pageable pageable, HttpServletRequest request) throws IOException {
Query query = getQuery(criteria);
FileUtil.downloadExcel(query, pageable, response, new IExcelDownLoad() {
@Override
public List<List<String>> getHeader() {
List<List<String>> header = new ArrayList<>();
header.add(Lists.newArrayList("设备名称"));
header.add(Lists.newArrayList("库位号"));
header.add(Lists.newArrayList("是否可用"));
header.add(Lists.newArrayList("条码"));
header.add(Lists.newArrayList("料件编号"));
header.add(Lists.newArrayList("料盘尺寸"));
header.add(Lists.newArrayList("直径"));
header.add(Lists.newArrayList("厚度"));
return header;
}
@Override
public List<List<Object>> getPageData(Query query, Pageable pageable) {
long end = pageable.getOffset() + pageable.getPageSize();
log.info("开始导出库位"+pageable.getOffset()+" - " + end);
List<List<Object>> dataList = new ArrayList<>();
List<StoragePos> posList = storagePosManager.findByQuery(query, pageable);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (StoragePos pos : posList) {
List<Object> data = new ArrayList<>();
//storageName,posName,enabled,barcode.barcode,barcode.partNumber,barcode.size,w,h,
Storage storage=dataCache.getStorageById(pos.getStorageId());
String storageName = "";
if(storage != null){
storageName = storage.getName();
}
String enabled = "是";
if(pos.isEnabled()){
enabled = "否";
}
Barcode barcode = pos.getBarcode();
String barcodeStr = "";
String pn = "";
String reelSize = "";
if(barcode != null){
barcodeStr = barcode.getBarcode();
pn = barcode.getPartNumber();
reelSize = ""+barcode.getPlateSize()+"X"+barcode.getHeight();
}
data.add(storageName);//"设备名称"
data.add(pos.getPosName());//"库位号"
data.add(enabled);//"是否可用"
data.add(barcodeStr);//"条码"
data.add(pn);//"料件编号"
data.add(reelSize);//"料盘尺寸"
data.add(pos.getW());//"直径"
data.add(pos.getH());//"厚度"
dataList.add(data);
}
return dataList;
}
});
}
@ApiOperation("删除指定料仓所有库位") @ApiOperation("删除指定料仓所有库位")
@PutMapping("/removeAllPos") @PutMapping("/removeAllPos")
......
...@@ -33,6 +33,8 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> { ...@@ -33,6 +33,8 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
StoragePos findPartNumberInStorages(List<String> storageIdList,String labelId, String pn, Collection<String> excludePosIds, CHECKOUT_TYPE checkOutType); StoragePos findPartNumberInStorages(List<String> storageIdList,String labelId, String pn, Collection<String> excludePosIds, CHECKOUT_TYPE checkOutType);
List<StoragePos> findByQuery(Query query, Pageable pageable);
void removePosByStorageId(String storageId); void removePosByStorageId(String storageId);
void deletePoss(Set<String> ids); void deletePoss(Set<String> ids);
......
...@@ -297,6 +297,11 @@ public class StoragePosManagerImpl implements IStoragePosManager { ...@@ -297,6 +297,11 @@ public class StoragePosManagerImpl implements IStoragePosManager {
} }
@Override @Override
public List<StoragePos> findByQuery(Query query, Pageable pageable) {
return storagePosDao.findByQuery(query, pageable);
}
@Override
public List<StoragePos> findByQuery(Query query) { public List<StoragePos> findByQuery(Query query) {
return storagePosDao.findByQuery(query); return storagePosDao.findByQuery(query);
} }
...@@ -532,6 +537,8 @@ public class StoragePosManagerImpl implements IStoragePosManager { ...@@ -532,6 +537,8 @@ public class StoragePosManagerImpl implements IStoragePosManager {
@Override @Override
public List<List<Object>> getPageData(Query query, Pageable pageable) { public List<List<Object>> getPageData(Query query, Pageable pageable) {
long end = pageable.getOffset() + pageable.getPageSize();
log.info("开始导出库存"+pageable.getOffset()+" - " + end);
List<List<Object>> dataList = new ArrayList<>(); List<List<Object>> dataList = new ArrayList<>();
List<StoragePos> storagePos = storagePosDao.findByQuery(query, pageable); List<StoragePos> storagePos = storagePosDao.findByQuery(query, pageable);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS"); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
......
...@@ -200,6 +200,7 @@ public class TaskController { ...@@ -200,6 +200,7 @@ public class TaskController {
if(task.isCancel()||task.isFinished()||task.isEnd()){ if(task.isCancel()||task.isFinished()||task.isEnd()){
throw new ValidateException("smfcore.taskHasEnd","任务{0}已取消或已结束",new String[]{task.getPosName()} ); throw new ValidateException("smfcore.taskHasEnd","任务{0}已取消或已结束",new String[]{task.getPosName()} );
} }
log.info("用户:" + SecurityUtils.getCurrentUsername() + "取消["+task.getBarcode()+"]的任务");
taskService.cancelTask(taskId); taskService.cancelTask(taskId);
} }
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
......
...@@ -12,6 +12,7 @@ import com.neotel.smfcore.core.storage.service.po.StoragePos; ...@@ -12,6 +12,7 @@ import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.dao.IDataLogDao; import com.neotel.smfcore.core.system.service.dao.IDataLogDao;
import com.neotel.smfcore.core.system.service.manager.IDataLogManager; import com.neotel.smfcore.core.system.service.manager.IDataLogManager;
import com.neotel.smfcore.core.system.service.po.DataLog; import com.neotel.smfcore.core.system.service.po.DataLog;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
...@@ -26,6 +27,7 @@ import java.text.SimpleDateFormat; ...@@ -26,6 +27,7 @@ import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
@Service @Service
@Slf4j
public class DataLogManagerImpl implements IDataLogManager { public class DataLogManagerImpl implements IDataLogManager {
@Autowired @Autowired
...@@ -115,6 +117,8 @@ public class DataLogManagerImpl implements IDataLogManager { ...@@ -115,6 +117,8 @@ public class DataLogManagerImpl implements IDataLogManager {
@Override @Override
public List<List<Object>> getPageData(Query query, Pageable pageable) { public List<List<Object>> getPageData(Query query, Pageable pageable) {
long end = pageable.getOffset() + pageable.getPageSize();
log.info("开始导出出入库记录"+pageable.getOffset()+" - " + end);
List<List<Object>> dataList = new ArrayList<>(); List<List<Object>> dataList = new ArrayList<>();
List<DataLog> dataLogList = dataLogDao.findByQuery(query, pageable); List<DataLog> dataLogList = dataLogDao.findByQuery(query, pageable);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
......
...@@ -3,8 +3,11 @@ package com.neotel.smfcore.hikvision; ...@@ -3,8 +3,11 @@ package com.neotel.smfcore.hikvision;
import com.neotel.smfcore.common.exception.ValidateException; import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants; import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.core.device.util.DataCache; import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.storage.service.dao.IStorageDao;
import com.neotel.smfcore.hikvision.bean.api.HikApiRequest; import com.neotel.smfcore.hikvision.bean.api.HikApiRequest;
import com.neotel.smfcore.hikvision.bean.api.ResponseParam; import com.neotel.smfcore.hikvision.bean.api.ResponseParam;
import com.neotel.smfcore.hikvision.service.dao.IHikApiRequestErrorDao;
import com.neotel.smfcore.hikvision.service.po.HikApiRequestError;
import com.neotel.smfcore.hikvision.util.HttpHelper; import com.neotel.smfcore.hikvision.util.HttpHelper;
import com.neotel.smfcore.hikvision.util.JsonUtil; import com.neotel.smfcore.hikvision.util.JsonUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -20,79 +23,71 @@ import java.util.concurrent.ConcurrentHashMap; ...@@ -20,79 +23,71 @@ import java.util.concurrent.ConcurrentHashMap;
public class HikApiCache { public class HikApiCache {
private static DataCache dataCache; private static DataCache dataCache;
@Autowired @Autowired
public void setDataCache(DataCache dataCache) { public void setDataCache(DataCache dataCache) {
HikApiCache.dataCache = dataCache; HikApiCache.dataCache = dataCache;
} }
/**
* 需要重发的指令列表
*/
private static Map<String, HikApiRequest> failedRequestMap = new HashMap<>();
private static boolean isProcessTimer = false; private static IHikApiRequestErrorDao hikApiRequestErrorDao;
@Autowired
public void setHikApiRequestErrorDao(IHikApiRequestErrorDao hikApiRequestErrorDao) {
HikApiCache.hikApiRequestErrorDao = hikApiRequestErrorDao;
}
@PostConstruct @PostConstruct
public void Init() { public void Init() {
initApiRequestMap(); //initApiRequestMap();
} }
/** /**
* 加载请求指令信息 * 加载请求指令信息
*/ */
private static void initApiRequestMap() { private static void initApiRequestMap() {
failedRequestMap = new ConcurrentHashMap<>();
Map<String, HikApiRequest> dbFailedRequestMap = dataCache.getCache(Constants.CACHE_failedRequestMap); Map<String, HikApiRequest> dbFailedRequestMap = dataCache.getCache(Constants.CACHE_failedRequestMap);
if (dbFailedRequestMap != null) { if (dbFailedRequestMap != null && dbFailedRequestMap.size() > 0) {
failedRequestMap.putAll(dbFailedRequestMap); List<HikApiRequestError> failedList = new ArrayList<>();
log.info("共加载到接口异常:" + failedRequestMap.size() + "条"); for (HikApiRequest dbRequest : dbFailedRequestMap.values()) {
} HikApiRequestError requestError = new HikApiRequestError();
} requestError.setApiType(dbRequest.getApiType());
/** requestError.setUrl(dbRequest.getUrl());
* 定时器,每10秒执行一次 requestError.setKey(dbRequest.getKey());
*/ requestError.setSecret(dbRequest.getSecret());
public static void runTimer() { requestError.setParam(dbRequest.getParam());
if (!isProcessTimer) { requestError.setCreateTime(dbRequest.getCreateTime());
isProcessTimer = true; requestError.setUpdatetime(dbRequest.getUpdatetime());
try { requestError.setResponseParam(dbRequest.getResponseParam());
// sendFailedRequest(); failedList.add(requestError);
} catch (Exception e) {
log.error("发送失败请求定时器执行出错:" + e.getMessage());
} finally {
isProcessTimer = false;
} }
hikApiRequestErrorDao.insertAll(failedList);
log.info("转移["+dbFailedRequestMap.size()+"]条历史异常");
dataCache.updateCache(Constants.CACHE_failedRequestMap,new HashMap<>());
} }
} }
public static List<HikApiRequest> getAllRequestList() {
List<HikApiRequest> requests=new ArrayList<>(failedRequestMap.values()); public static HikApiRequestError getRequest(String req) {
//自动根据更新时间排序 return hikApiRequestErrorDao.getByReqCode(req);
Collections.sort(requests);
return requests;
}
public static HikApiRequest getRequest(String req) {
return failedRequestMap.get(req);
} }
public static void addFailedRequest(HikApiRequest apiRequest, ResponseParam responseParam) { public static void addFailedRequest(HikApiRequestError apiRequest, ResponseParam responseParam) {
String mapKey = apiRequest.getParam().getReqCode(); String mapKey = apiRequest.getParam().getReqCode();
apiRequest.setResponseParam(responseParam); apiRequest.setResponseParam(responseParam);
apiRequest.setUpdatetime(new Date()); apiRequest.setUpdatetime(new Date());
if (failedRequestMap.get(mapKey) == null) { HikApiRequestError dbRequest = hikApiRequestErrorDao.getByReqCode(mapKey);
log.info(mapKey + "通知指令发送到Hik失败,加入到缓存"); if (dbRequest == null) {
log.info(mapKey + "通知指令"+mapKey+"发送到Hik失败,加入到缓存");
hikApiRequestErrorDao.save(apiRequest);
} }
failedRequestMap.put(apiRequest.getParam().getReqCode(), apiRequest);
dataCache.updateCache(Constants.CACHE_failedRequestMap, failedRequestMap);
} }
public static void removeFailedRequest(HikApiRequest apiRequest) { public static void removeFailedRequest(HikApiRequestError apiRequest) {
String mapKey = apiRequest.getParam().getReqCode(); String mapKey = apiRequest.getParam().getReqCode();
if (failedRequestMap.get(mapKey) != null) { hikApiRequestErrorDao.removeOneById(apiRequest.getId());
log.info(mapKey + "通知指令发送到Hik成功,从缓存中移除"); log.info(mapKey + "通知指令["+mapKey+"]发送到Hik成功,从缓存中移除");
failedRequestMap.remove(apiRequest.getParam().getReqCode());
dataCache.updateCache(Constants.CACHE_failedRequestMap, failedRequestMap);
}
} }
...@@ -100,26 +95,13 @@ public class HikApiCache { ...@@ -100,26 +95,13 @@ public class HikApiCache {
* 获取失败列表,进行定时发送 * 获取失败列表,进行定时发送
*/ */
public static void sendFailedRequest() { public static void sendFailedRequest() {
List<HikApiRequestError> failedList = hikApiRequestErrorDao.findAllFailedList();
if (failedRequestMap == null) { for (HikApiRequestError apiRequest : failedList) {
initApiRequestMap();
}
List<HikApiRequest> failedList = new ArrayList<>();
failedList.addAll(failedRequestMap.values());
failedList.sort(new Comparator<HikApiRequest>() {
@Override
public int compare(HikApiRequest o1, HikApiRequest o2) {
return o1.getCreateTime().compareTo(o2.getCreateTime());
}
});
for (HikApiRequest apiRequest : failedList) {
reSendRequest(apiRequest); reSendRequest(apiRequest);
} }
} }
public static ResponseParam reSendRequest(HikApiRequest apiRequest) { public static ResponseParam reSendRequest(HikApiRequestError apiRequest) {
ResponseParam responseParam = null; ResponseParam responseParam = null;
try { try {
String interName = "Hik 接口" + apiRequest.getApiType() + " 重发:"; String interName = "Hik 接口" + apiRequest.getApiType() + " 重发:";
......
...@@ -34,8 +34,6 @@ public class HikvisionApiController { ...@@ -34,8 +34,6 @@ public class HikvisionApiController {
@Autowired @Autowired
private LiteOrderCache liteOrderCache; private LiteOrderCache liteOrderCache;
@Autowired @Autowired
private ILiteOrderItemManager liteOrderItemManager;
@Autowired
private ILiteOrderManager liteOrderManager; private ILiteOrderManager liteOrderManager;
@ApiOperation("创建出库单:创建出库需求单,可一次性传入多个") @ApiOperation("创建出库单:创建出库需求单,可一次性传入多个")
......
package com.neotel.smfcore.hikvision.bean.api; package com.neotel.smfcore.hikvision.bean.api;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem; import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import com.neotel.smfcore.hikvision.service.po.HikApiRequestError;
import com.neotel.smfcore.hikvision.util.JsonUtil; import com.neotel.smfcore.hikvision.util.JsonUtil;
import lombok.*; import lombok.*;
...@@ -10,11 +11,9 @@ import java.util.HashMap; ...@@ -10,11 +11,9 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
@Data @Data
@AllArgsConstructor public class HikApiRequest extends HikApiRequestError {
@NoArgsConstructor
public class HikApiRequest implements Serializable , Comparable<HikApiRequest>{
public HikApiRequest(int apiType,String url,String key,String secret,RequestParam param){ public HikApiRequest(int apiType, String url, String key, String secret, RequestParam param){
this.apiType=apiType; this.apiType=apiType;
this.url=url; this.url=url;
this.key=key; this.key=key;
...@@ -24,52 +23,6 @@ public class HikApiRequest implements Serializable , Comparable<HikApiRequest>{ ...@@ -24,52 +23,6 @@ public class HikApiRequest implements Serializable , Comparable<HikApiRequest>{
this.updatetime=new Date(); this.updatetime=new Date();
} }
/**
* 消息类型
* 2=7.2转储单入库过账接口
* 3=7.3排程发料过账接口
* 5=7.5 入库上架过账接口
* 6=7.6 出库下架过账接口
* 11=7.11订单发料完成通知接口
*/
private int apiType=0;
/**
* url
*/
private String url="";
/**
* 接口key
*/
private String key="";
/**
* 接口密钥
*/
private String secret="";
/**
* 参数信息
*/
private RequestParam param;
/**
* 消息创建时间
*/
private Date createTime;
/**
* 最后更新时间
*/
private Date updatetime;
/**
* 最后一次接口返回值
*/
private ResponseParam responseParam;
public String getParamJson(){ public String getParamJson(){
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("reqCode", param.getReqCode()); params.put("reqCode", param.getReqCode());
...@@ -83,11 +36,11 @@ public class HikApiRequest implements Serializable , Comparable<HikApiRequest>{ ...@@ -83,11 +36,11 @@ public class HikApiRequest implements Serializable , Comparable<HikApiRequest>{
return JsonUtil.toJsonStr(param.getData()); return JsonUtil.toJsonStr(param.getData());
} }
@Override // @Override
public int compareTo(HikApiRequest o) { // public int compareTo(HikApiRequest o) {
if(o.getUpdatetime()!=null&&this.getUpdatetime()!=null){ // if(o.getUpdatetime()!=null&&this.getUpdatetime()!=null){
return o.getUpdatetime().compareTo(this.getUpdatetime()); // return o.getUpdatetime().compareTo(this.getUpdatetime());
} // }
return o.getCreateTime().compareTo(this.getCreateTime()); // return o.getCreateTime().compareTo(this.getCreateTime());
} // }
} }
package com.neotel.smfcore.hikvision.service.dao;
import com.neotel.smfcore.common.base.IBaseDao;
import com.neotel.smfcore.hikvision.service.po.HikApiRequestError;
import java.util.List;
public interface IHikApiRequestErrorDao extends IBaseDao {
HikApiRequestError getByReqCode(String reqCode);
List<HikApiRequestError> findAllFailedList();
}
package com.neotel.smfcore.hikvision.service.dao.impl;
import com.neotel.smfcore.common.base.AbstractBaseDao;
import com.neotel.smfcore.hikvision.service.dao.IHikApiRequestErrorDao;
import com.neotel.smfcore.hikvision.service.po.HikApiRequestError;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class HikApiRequestErrorDaoImpl extends AbstractBaseDao implements IHikApiRequestErrorDao {
@Override
public Class getEntityClass() {
return HikApiRequestError.class;
}
@Override
public HikApiRequestError getByReqCode(String reqCode){
return findOneByCondition(new String[]{"param.reqCode"}, new String[]{reqCode});
}
@Override
public List<HikApiRequestError> findAllFailedList(){
Query query = new Query();
//根据开始出库时间排序
Sort sort = Sort.by(Sort.Direction.ASC, "createDate");
query.with(sort);
return findByQuery(query);
}
}
package com.neotel.smfcore.hikvision.service.po;
import com.neotel.smfcore.common.base.BasePo;
import com.neotel.smfcore.hikvision.bean.api.RequestParam;
import com.neotel.smfcore.hikvision.bean.api.ResponseParam;
import com.neotel.smfcore.hikvision.util.JsonUtil;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Data
public class HikApiRequestError extends BasePo implements Serializable{
/**
* 消息类型
* 2=7.2转储单入库过账接口
* 3=7.3排程发料过账接口
* 5=7.5 入库上架过账接口
* 6=7.6 出库下架过账接口
* 11=7.11订单发料完成通知接口
*/
protected int apiType=0;
/**
* url
*/
protected String url="";
/**
* 接口key
*/
protected String key="";
/**
* 接口密钥
*/
protected String secret="";
/**
* 参数信息
*/
protected RequestParam param;
/**
* 消息创建时间
*/
protected Date createTime;
/**
* 最后更新时间
*/
protected Date updatetime;
/**
* 最后一次接口返回值
*/
protected ResponseParam responseParam;
}
...@@ -6,6 +6,7 @@ import com.neotel.smfcore.common.utils.DateUtil; ...@@ -6,6 +6,7 @@ import com.neotel.smfcore.common.utils.DateUtil;
import com.neotel.smfcore.hikvision.bean.api.HikApiRequest; import com.neotel.smfcore.hikvision.bean.api.HikApiRequest;
import com.neotel.smfcore.hikvision.bean.api.RequestParam; import com.neotel.smfcore.hikvision.bean.api.RequestParam;
import com.neotel.smfcore.hikvision.bean.api.ResponseParam; import com.neotel.smfcore.hikvision.bean.api.ResponseParam;
import com.neotel.smfcore.hikvision.service.po.HikApiRequestError;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient; import org.apache.http.client.HttpClient;
...@@ -38,7 +39,7 @@ public class HttpHelper { ...@@ -38,7 +39,7 @@ public class HttpHelper {
// 设置User-Agent // 设置User-Agent
private static final String USER_AGENT = "SMD-BOX"; private static final String USER_AGENT = "SMD-BOX";
public static ResponseParam post(HikApiRequest request) throws ApiException { public static ResponseParam post(HikApiRequestError request) throws ApiException {
String url = request.getUrl(); String url = request.getUrl();
String key = request.getKey(); String key = request.getKey();
String secret = request.getSecret(); String secret = request.getSecret();
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!