Commit 46d38152 LN

工单上传修改

1 个父辈 39699f8c
......@@ -8,10 +8,7 @@ import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.csv.CsvReader;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.FileUtil;
import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.*;
import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS;
import com.neotel.smfcore.core.order.rest.bean.dto.OrderDto;
......@@ -54,9 +51,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
@Slf4j
......@@ -107,29 +102,48 @@ public class OrderController {
}
File folder = new File(properties.getPath(), "pos");
File localFile = FileUtil.upload(orderFile, folder.getAbsolutePath());
List<LiteOrderItem> liteOrderItems = handleOrderCsv(localFile.getAbsolutePath());
Map<String, List<LiteOrderItem>> itemMap = handleOrderCsv(localFile.getName(),localFile.getAbsolutePath());
if (liteOrderItems == null || liteOrderItems.size() <= 0) {
if (itemMap == null || itemMap.size() <= 0) {
throw new ValidateException("smfcore.fileError", "文件解析失败");
}
for (String so:itemMap.keySet()
) {
List<LiteOrderItem> liteOrderItems = itemMap.get(so);
if (liteOrderItems.size() <= 0) {
continue;
}
LiteOrder liteOrder = new LiteOrder(localFile.getName(), liteOrderItems);
int type = 2;
for (LiteOrderItem item :
liteOrderItems) {
if (!StringUtils.isEmpty(item.getPn()) && (StringUtils.isEmpty(item.getRi()))) {
type = 1;
break;
}
}
LiteOrder liteOrder = new LiteOrder(so, liteOrderItems);
liteOrder.setType(type);
liteOrder.setSource(localFile.getAbsolutePath());
liteOrder.setStatus(LITEORDER_STATUS.NEW);
LiteOrder dbOrder = liteOrderManager.findByOrderNo(liteOrder.getOrderNo());
if (dbOrder == null) {
log.info("新增加订单:" + liteOrder.getOrderNo());
log.info("新增加订单:" + liteOrder.getOrderNo() + ",共" + liteOrderItems.size() + "条工单详情");
liteOrder = liteOrderManager.createWithItems(liteOrder);
// TaskService.liteOrderMap.put(liteOrder.getOrderNo(), liteOrder);
} else {
log.info("数据库中已存在工单号为[" + liteOrder.getOrderNo() + "],忽略文件:" + localFile.getAbsolutePath());
throw new ValidateException("smfcode.valueAlreadyExist", "{0}[{1}]已存在", new String[]{"orderNo", liteOrder.getOrderNo()});
// throw new ValidateException("smfcode.valueAlreadyExist", "{0}[{1}]已存在", new String[]{"orderNo", liteOrder.getOrderNo()});
// throw new ValidateException("工单号[" + liteOrder.getOrderNo() + "]已存在");
}
}
return ResultBean.newOkResult("工单上传成功");
}
......@@ -178,16 +192,18 @@ public class OrderController {
}
protected List<LiteOrderItem> handleOrderCsv(String fileURL) {
protected Map<String ,List<LiteOrderItem>> handleOrderCsv(String fileName,String fileURL) {
try {
log.info("开始更解析上传的工单");
Map<String ,List<LiteOrderItem>> itemMap=new HashMap<>();
List<LiteOrderItem> items = Lists.newArrayList();
CsvReader csvRead = CsvReader.newReader(fileURL,"PN", "PN");
int partNumberIndex = csvRead.getIndex("PN", "PN");
int qtyIndex = csvRead.getIndex("NUM", "QTY");
int feederIndex = csvRead.getIndex("FEEDER", "FEEDER");
int riIndex = csvRead.getIndex("RI", "RI");
int soIndex = csvRead.getIndex("SO", "SO");
int row = 1;
int newRowCount = 0;
......@@ -215,14 +231,29 @@ public class OrderController {
if (feederIndex != -1) {
feeder = lineValues[feederIndex];
}
String ri="";
String so=fileName;
if(riIndex!=-1){
ri=lineValues[riIndex];
}
if(soIndex!=-1){
so=lineValues[soIndex];
}
LiteOrderItem item = new LiteOrderItem();
item.setPn(partNumber);
item.setNeedNum(num);
item.setFeederInfo(feeder);
item.setRi(ri);
if(!itemMap.containsKey(so)){
itemMap.put(so,new ArrayList<LiteOrderItem>());
}
itemMap.get(so).add(item);
items.add(item);
}
}
return items;
return itemMap;
} catch (Exception ex) {
log.error("解析上传的工单出错:" + ex.toString());
}
......
......@@ -20,6 +20,7 @@ public class LiteOrder extends BasePo implements Serializable {
public LiteOrder(String orderNo, List<LiteOrderItem> orderItems) {
this.orderItems = orderItems;
this.orderNo = orderNo;
this.type=1;
}
/**
......@@ -63,6 +64,11 @@ public class LiteOrder extends BasePo implements Serializable {
private float orderTimes = 1f;
/**
* 工单类型,默认1=PN,2=RI
*/
private int type=1;
/**
* 订单的详细信息
*/
@Transient
......
......@@ -9,8 +9,17 @@ import java.io.Serializable;
@Data
@Document
public class LiteOrderItem extends BasePo implements Serializable {
//物料编号
/**
* 物料编号
*/
private String pn;
/**
* 唯一码
*/
private String ri;
//需求数量
private int needNum = 0;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!