Commit b447a949 LN

增加工单来源类型。工单搜索修改。

1 个父辈 b7bf85b7
package com.neotel.smfcore.core.order.enums;
public class LITEORDER_STYPE {
/**手动创建的工单*/
public static int MANUAL =0;
/**共享文件夹工单*/
public static int SHAREDFOLDER =1;
/**系统对接的 工单*/
public static int API =2;
}
......@@ -37,7 +37,7 @@ public class DefaultOrderFileListener implements IOrderFileListener {
protected LiteOrderCache liteOrderCache;
@Override
public boolean handleOrderFile(File orderFile) {
public boolean handleOrderFile(File orderFile,int sourceType) {
String fileName = orderFile.getName();
//String backupFileName = fileName +"_" + System.currentTimeMillis();
//看数据库是否已有此工单
......@@ -64,6 +64,7 @@ public class DefaultOrderFileListener implements IOrderFileListener {
LiteOrder liteOrder = new LiteOrder(so, liteOrderItems);
liteOrder.setSource(fileName);
liteOrder.setSourceType(sourceType);//0=手动创建,1=共享文件夹
LiteOrder dbOrder = liteOrderManager.findByOrderNo(liteOrder.getOrderNo());
if (dbOrder != null) {
......
......@@ -7,6 +7,6 @@ import java.io.File;
*/
public interface IOrderFileListener {
boolean handleOrderFile(File orderFile);
boolean handleOrderFile(File orderFile,int sourceType);
}
......@@ -3,7 +3,6 @@ package com.neotel.smfcore.core.order.rest;
import cn.hutool.core.util.ObjectUtil;
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.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
......@@ -21,6 +20,7 @@ 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.enums.LITEORDER_STATUS;
import com.neotel.smfcore.core.order.enums.LITEORDER_STYPE;
import com.neotel.smfcore.core.order.rest.bean.dto.OrderDto;
import com.neotel.smfcore.core.order.rest.bean.dto.OrderItemDto;
import com.neotel.smfcore.core.order.rest.bean.dto.OrderKanbanDto;
......@@ -39,7 +39,6 @@ import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.security.bean.FileProperties;
import com.neotel.smfcore.security.rest.bean.query.UserQueryCriteria;
import com.neotel.smfcore.security.service.manager.IGroupManager;
import com.neotel.smfcore.security.service.manager.IUserManager;
import com.neotel.smfcore.security.service.po.Group;
......@@ -52,23 +51,16 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
......@@ -145,7 +137,7 @@ public class OrderController {
}
File folder = new File(properties.getPath(), "pos");
File localFile = FileUtil.upload(orderFile, folder.getAbsolutePath());
boolean result = orderFileWatch.handleOrderFile(localFile);
boolean result = orderFileWatch.handleOrderFile(localFile, LITEORDER_STYPE.MANUAL);
if (result) {
return ResultBean.newOkResult("smfcore.order.uploadOK", "工单上传成功");
} else {
......@@ -259,6 +251,9 @@ public class OrderController {
query.addCriteria(Criteria.where("status").is(LITEORDER_STATUS.CLOSED));
} else if (criteria.getStatus() == 2) {
query.addCriteria(Criteria.where("status").ne(LITEORDER_STATUS.CLOSED));
}else if(criteria.getStatus()==3){
//进行中
query.addCriteria(Criteria.where("status").nin(LITEORDER_STATUS.CLOSED,LITEORDER_STATUS.NEW));
}
}
PageData<LiteOrder> orderList = liteOrderManager.findByPage(query, pageable);
......@@ -779,11 +774,12 @@ public class OrderController {
int allCount = liteOrderManager.countByQuery(new Query(Criteria.where("orderNo").exists(true)));
int endCount = liteOrderManager.countByQuery(new Query(Criteria.where("status").is(LITEORDER_STATUS.CLOSED)));
Criteria c = new Criteria();
c.and("status").nin(LITEORDER_STATUS.CLOSED,LITEORDER_STATUS.NEW);
c.and("status").nin(LITEORDER_STATUS.CLOSED, LITEORDER_STATUS.NEW);
Query query = new Query(c);
int exeCount = liteOrderManager.countByQuery(query);
int abCount = 0;
OrderKanbanDto dto = new OrderKanbanDto(allCount, endCount, exeCount, abCount);
int waitCount = liteOrderManager.countByQuery(new Query(Criteria.where("status").is(LITEORDER_STATUS.NEW)));
OrderKanbanDto dto = new OrderKanbanDto(allCount, endCount, exeCount, abCount, waitCount);
return dto;
}
......
package com.neotel.smfcore.core.order.rest.bean.dto;
import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import com.neotel.smfcore.core.order.enums.LITEORDER_STYPE;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
......@@ -69,6 +69,8 @@ public class OrderDto implements Serializable {
@ApiModelProperty("工单来源")
private String source = "";
@ApiModelProperty("工单来源类型,0=手动创建,1=共享文件夹,2=系统对接")
private int sourceType = LITEORDER_STYPE.MANUAL;
@ApiModelProperty("任务完成时间(用于关闭页面显示)")
@Transient
......
......@@ -17,4 +17,6 @@ public class OrderKanbanDto {
private int executingOrderCount;
@ApiModelProperty("异常工单")
private int abnormalOrderCount;
@ApiModelProperty("等待工单数")
private int waitOrderCount;
}
......@@ -12,9 +12,12 @@ import java.util.List;
@Data
public class OrderQueryCondition {
@QueryCondition(blurry = "orderNo")
@QueryCondition(blurry = "orderNo,so,soId,source,line")
private String blurry;
@QueryCondition(blurry = "orderNo")
private String orderNo = "";
@QueryCondition(type = QueryCondition.Type.BETWEEN)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private BetweenData<Date> createDate;
......@@ -24,7 +27,7 @@ public class OrderQueryCondition {
@QueryCondition(type = QueryCondition.Type.NIN, propName = "source")
private List<String> excludeSourceList;
//状态,0=所有,1=已关闭,2=未关闭
//状态,0=所有,1=已关闭,2=未关闭,3=进行中
private Integer status;
......
......@@ -2,9 +2,8 @@ package com.neotel.smfcore.core.order.service.po;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.base.BasePo;
import com.neotel.smfcore.common.utils.StorageConstants;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS;
import com.neotel.smfcore.core.order.enums.LITEORDER_STYPE;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import lombok.Data;
import org.springframework.data.annotation.Transient;
......@@ -66,6 +65,11 @@ public class LiteOrder extends BasePo implements Serializable {
private boolean closed = false;
/**
* 工单来源类型,0=手动创建,1=共享文件夹,2=系统对接
*/
private int sourceType = LITEORDER_STYPE.MANUAL;
/**
* 工单来源
......
package com.neotel.smfcore.core.order.util;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.csv.CsvReader;
import com.neotel.smfcore.common.utils.SmbUtil;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.enums.LITEORDER_STYPE;
import com.neotel.smfcore.core.order.listener.IOrderFileListener;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import com.neotel.smfcore.core.system.bean.OrderSetting;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.activation.MimeType;
import java.io.File;
import java.io.FileFilter;
import java.nio.file.Files;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
......@@ -88,7 +78,7 @@ public class OrderFileWatch {
}
};
for (File file : orderFolder.listFiles(fileFilter)) {
boolean handled = handleOrderFile(file);
boolean handled = handleOrderFile(file, LITEORDER_STYPE.SHAREDFOLDER);
String backupFileName = file.getName() +"_" + System.currentTimeMillis();
File resultFile = null;
......@@ -114,11 +104,11 @@ public class OrderFileWatch {
* @param orderFile
* @return
*/
public boolean handleOrderFile(File orderFile){
public boolean handleOrderFile(File orderFile,int sourceType){
log.info("开始处理Order文件:" + orderFile.getAbsolutePath());
for (IOrderFileListener orderFileListener : orderFileListenerList) {
boolean result = orderFileListener.handleOrderFile(orderFile);
boolean result = orderFileListener.handleOrderFile(orderFile,sourceType);
if(result){
return true;
}
......
......@@ -8,6 +8,7 @@ import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS;
import com.neotel.smfcore.core.order.enums.LITEORDER_STYPE;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
......@@ -192,6 +193,7 @@ public class JobService {
//设置工单名和额外字段
liteOrder.setOrderNo(jobName + "_" + fileName);
liteOrder.setSource("nexim");
liteOrder.setSourceType(LITEORDER_STYPE.API);
liteOrder.addAppendDate("jobState", jobState);
liteOrder.addAppendDate("jobName", jobName);
liteOrder.addAppendDate("fileName", fileName);
......
......@@ -24,7 +24,7 @@ public class HamanOrderFileListener extends DefaultOrderFileListener {
protected IHamanBinPosDao hamanBinPosDao;
@Override
public boolean handleOrderFile(File orderFile) {
public boolean handleOrderFile(File orderFile,int sourceType) {
String fileName = orderFile.getName();
if(isFileType(fileName,"csv")){
......
......@@ -12,6 +12,7 @@ import com.neotel.smfcore.core.equipment.util.EquipConfigUtil;
import com.neotel.smfcore.core.equipment.util.bean.EquipConfigInfo;
import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS;
import com.neotel.smfcore.core.order.enums.LITEORDER_STYPE;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
......@@ -167,6 +168,7 @@ public class TMSUtil {
LiteOrder liteOrder = new LiteOrder(orderNo, items);
liteOrder.setSource(requestCmd);
liteOrder.setSourceType(LITEORDER_STYPE.API);
LiteOrder dbOrder = liteOrderManager.findByOrderNo(liteOrder.getOrderNo());
if (dbOrder != null) {
orderNo = orderNo + "-" + requestID;
......
......@@ -16,6 +16,7 @@ import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.enums.LITEORDER_STYPE;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
......@@ -465,6 +466,7 @@ public class HellaServiceHandler extends BaseSmfApiListener implements IoHandler
}
liteOrder = new LiteOrder(workorderNumber,items);
liteOrder.setSource(groupName);
liteOrder.setSourceType(LITEORDER_STYPE.API);
log.info("新增加订单:" + liteOrder.getOrderNo()+",设备组名称["+groupName+"],标签名称["+labelName+"]");
liteOrder = liteOrderManager.createWithItems(liteOrder);
liteOrderCache.addOrderToMap(liteOrder);
......
......@@ -11,6 +11,7 @@ import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.enums.LITEORDER_STYPE;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
......@@ -130,6 +131,7 @@ public class TianTongController {
LiteOrder liteOrder = new LiteOrder();
liteOrder.setOrderNo(orderNo);
liteOrder.setSource(source);
liteOrder.setSourceType(LITEORDER_STYPE.API);
liteOrder.setSo(so);
liteOrder.setOrderItems(orderItemList);
liteOrder = liteOrderManager.createWithItems(liteOrder);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!