Commit baecefe2 LN

工单结构修改

1 个父辈 5e3d9e49
...@@ -832,7 +832,7 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -832,7 +832,7 @@ public class BaseDeviceHandler implements IDeviceHandler {
for (DataLog dataLog : dataLogList for (DataLog dataLog : dataLogList
) { ) {
if (dataLog.getStatus().equals(OP_STATUS.WAIT)) { if (dataLog.getStatus().equals(OP_STATUS.WAIT)) {
if ((ObjectUtil.isNotEmpty(item.getPn()) && item.getPn().equals(dataLog.getPartNumber())) || if ((ObjectUtil.isNotEmpty(item.getMaterialNo()) && item.getMaterialNo().equals(dataLog.getPartNumber())) ||
(ObjectUtil.isNotEmpty(item.getRi()) && item.getRi().equals(dataLog.getBarcode())) (ObjectUtil.isNotEmpty(item.getRi()) && item.getRi().equals(dataLog.getBarcode()))
) )
......
...@@ -91,6 +91,23 @@ public class LiteOrderCache implements ITaskListener { ...@@ -91,6 +91,23 @@ public class LiteOrderCache implements ITaskListener {
liteOrderMap.put(order.getOrderNo(), order); liteOrderMap.put(order.getOrderNo(), order);
} }
public LiteOrder findOrderByNo(String orderNo){
if(liteOrderMap.containsKey(orderNo)){
return liteOrderMap.get(orderNo);
}
else{
LiteOrder order=liteOrderManager.findByOrderNo(orderNo);
if(order!=null){
addOrderToMap(order);;
return order;
}
}
return null;
}
private boolean isProcessTimer = false; private boolean isProcessTimer = false;
public void runTimer(){ public void runTimer(){
...@@ -130,7 +147,7 @@ public class LiteOrderCache implements ITaskListener { ...@@ -130,7 +147,7 @@ public class LiteOrderCache implements ITaskListener {
if(order.isNew()||order.isTaskFinished()){ if(order.isNew()||order.isTaskFinished()){
//判断是否到达时间 //判断是否到达时间
Date curr=new Date(); Date curr=new Date();
if(order.getSDate().before(curr)){ if(order.getStartDate().before(curr)){
//开始自动出库 //开始自动出库
String result= checkOutLiteOrder(order.getOrderNo(),false); String result= checkOutLiteOrder(order.getOrderNo(),false);
if(!ObjectUtil.isEmpty(result)){ if(!ObjectUtil.isEmpty(result)){
...@@ -352,7 +369,7 @@ public class LiteOrderCache implements ITaskListener { ...@@ -352,7 +369,7 @@ public class LiteOrderCache implements ITaskListener {
orderItem.setOutReelCount(0); orderItem.setOutReelCount(0);
liteOrderItemManager.save(orderItem); liteOrderItemManager.save(orderItem);
//剩余未出数量 //剩余未出数量
Float totalNum = orderItem.getNeedNum() * cacheOrder.getOrderTimes(); Float totalNum = orderItem.getQty() * cacheOrder.getOrderTimes();
int remainNum = totalNum.intValue() - orderItem.getOutNum(); int remainNum = totalNum.intValue() - orderItem.getOutNum();
...@@ -365,7 +382,7 @@ public class LiteOrderCache implements ITaskListener { ...@@ -365,7 +382,7 @@ public class LiteOrderCache implements ITaskListener {
int assignNum = 0; int assignNum = 0;
while (assignNum < remainNum) { while (assignNum < remainNum) {
Collection<String> excludePosIds = excludePosIds(); Collection<String> excludePosIds = excludePosIds();
String partNumber = orderItem.getPn(); String partNumber = orderItem.getMaterialNo();
StoragePos pos = null; StoragePos pos = null;
if(cacheOrder.getType()==2){ if(cacheOrder.getType()==2){
...@@ -391,7 +408,7 @@ public class LiteOrderCache implements ITaskListener { ...@@ -391,7 +408,7 @@ public class LiteOrderCache implements ITaskListener {
task.setSourceId(cacheOrder.getId()); task.setSourceId(cacheOrder.getId());
task.setSourceName(cacheOrder.getOrderNo()); task.setSourceName(cacheOrder.getOrderNo());
task.setSubSourceId(orderItem.getId()); task.setSubSourceId(orderItem.getId());
task.setSubSourceInfo(orderItem.getFeederInfo()); task.setSubSourceInfo(orderItem.getStation());
task.setType(OP.CHECKOUT); task.setType(OP.CHECKOUT);
task.setLightColor(nextColor.getRgb()); task.setLightColor(nextColor.getRgb());
task.setStatus(OP_STATUS.WAIT.name()); task.setStatus(OP_STATUS.WAIT.name());
...@@ -506,7 +523,7 @@ public class LiteOrderCache implements ITaskListener { ...@@ -506,7 +523,7 @@ public class LiteOrderCache implements ITaskListener {
List<String> availableStorageIds = dataCache.getAvailableStorageIds(); List<String> availableStorageIds = dataCache.getAvailableStorageIds();
Collection<String> excludePosIds = excludePosIds(); Collection<String> excludePosIds = excludePosIds();
String partNumber = orderItem.getPn(); String partNumber = orderItem.getMaterialNo();
StoragePos pos = null; StoragePos pos = null;
if(cacheOrder.getType()==2){ if(cacheOrder.getType()==2){
//RI //RI
...@@ -527,7 +544,7 @@ public class LiteOrderCache implements ITaskListener { ...@@ -527,7 +544,7 @@ public class LiteOrderCache implements ITaskListener {
task.setSourceId(cacheOrder.getId()); task.setSourceId(cacheOrder.getId());
task.setSourceName(cacheOrder.getOrderNo()); task.setSourceName(cacheOrder.getOrderNo());
task.setSubSourceId(orderItem.getId()); task.setSubSourceId(orderItem.getId());
task.setSubSourceInfo(orderItem.getFeederInfo()); task.setSubSourceInfo(orderItem.getStation());
task.setType(OP.CHECKOUT); task.setType(OP.CHECKOUT);
// task.setLightColor(nextColor.getRgb()); // task.setLightColor(nextColor.getRgb());
task.setStatus(OP_STATUS.WAIT.name()); task.setStatus(OP_STATUS.WAIT.name());
......
...@@ -99,6 +99,73 @@ public class OrderController { ...@@ -99,6 +99,73 @@ public class OrderController {
// userService.download(userService.queryAll(criteria), response); // userService.download(userService.queryAll(criteria), response);
// } // }
@ApiOperation("查询工单")
@GetMapping
@PreAuthorize("@el.check('workOrder')")
public PageData<OrderDto> query(OrderQueryCondition criteria, Pageable pageable) {
User user = userManager.findByUserName(SecurityUtils.getCurrentUsername());
if (user != null) {
//数据权限 查找没有权限的组列表
if (!user.getIsAdmin()) {
Set<String> groupIds = user.getGroups();
List<String> excludeSources = Lists.newArrayList();
List<Group> groups=groupManager.findAll();
for (Group group :
groups) {
if(groupIds.contains(group.getId())){
continue;
}
excludeSources.add(group.getGroupName());
}
// //都没有权限,返回空
// if (ObjectUtils.isEmpty(groupNames)) {
// return new PageData<>(Lists.newArrayList(), 0);
// }
criteria.setExcludeSourceList(excludeSources);
}
}
Query query = QueryHelp.getQuery(criteria);
if (criteria.getStatus() != null) {
if (criteria.getStatus() == 1) {
query.addCriteria(Criteria.where("status").is(LITEORDER_STATUS.CLOSED));
} else if (criteria.getStatus() == 2) {
query.addCriteria(Criteria.where("status").ne(LITEORDER_STATUS.CLOSED));
}
}
PageData<LiteOrder> orderList = liteOrderManager.findByPage(query, pageable);
PageData<OrderDto> resultList=orderMapper.toDto(orderList);
return resultList;
}
//
@ApiOperation("工单详情")
@GetMapping("/detial")
@PreAuthorize("@el.check('workOrder:detial')")
@AnonymousAccess
public OrderDto detial(@RequestParam(required = false) String id, @RequestParam(required = false) String orderNo) {
if (!ObjectUtils.isEmpty(id)) {
LiteOrder liteOrder = liteOrderManager.get(id);
if (liteOrder != null) {
OrderDto dto= orderMapper.toDto(liteOrder);
dto.setOrderItems(orderItemMapper.toDto(liteOrder.getOrderItems()));
return dto;
}
} else if (!ObjectUtils.isEmpty(orderNo)) {
LiteOrder liteOrder = liteOrderManager.findByOrderNo(orderNo);
if (liteOrder != null) {
OrderDto dto= orderMapper.toDto(liteOrder);
dto.setOrderItems(orderItemMapper.toDto(liteOrder.getOrderItems()));
return dto;
}
}
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"orderNo"});
}
@ApiOperation("上传工单") @ApiOperation("上传工单")
@PostMapping(value = "/upload") @PostMapping(value = "/upload")
@AnonymousAccess @AnonymousAccess
...@@ -221,73 +288,6 @@ public class OrderController { ...@@ -221,73 +288,6 @@ public class OrderController {
} }
} }
@ApiOperation("查询工单")
@GetMapping
@PreAuthorize("@el.check('workOrder')")
public PageData<OrderDto> query(OrderQueryCondition criteria, Pageable pageable) {
User user = userManager.findByUserName(SecurityUtils.getCurrentUsername());
if (user != null) {
//数据权限 查找没有权限的组列表
if (!user.getIsAdmin()) {
Set<String> groupIds = user.getGroups();
List<String> excludeSources = Lists.newArrayList();
List<Group> groups=groupManager.findAll();
for (Group group :
groups) {
if(groupIds.contains(group.getId())){
continue;
}
excludeSources.add(group.getGroupName());
}
// //都没有权限,返回空
// if (ObjectUtils.isEmpty(groupNames)) {
// return new PageData<>(Lists.newArrayList(), 0);
// }
criteria.setExcludeSourceList(excludeSources);
}
}
Query query = QueryHelp.getQuery(criteria);
if (criteria.getStatus() != null) {
if (criteria.getStatus() == 1) {
query.addCriteria(Criteria.where("status").is(LITEORDER_STATUS.CLOSED));
} else if (criteria.getStatus() == 2) {
query.addCriteria(Criteria.where("status").ne(LITEORDER_STATUS.CLOSED));
}
}
PageData<LiteOrder> orderList = liteOrderManager.findByPage(query, pageable);
PageData<OrderDto> resultList=orderMapper.toDto(orderList);
return resultList;
}
//
@ApiOperation("工单详情")
@GetMapping("/detial")
@PreAuthorize("@el.check('workOrder:detial')")
@AnonymousAccess
public OrderDto detial(@RequestParam(required = false) String id, @RequestParam(required = false) String orderNo) {
if (!ObjectUtils.isEmpty(id)) {
LiteOrder liteOrder = liteOrderManager.get(id);
if (liteOrder != null) {
OrderDto dto= orderMapper.toDto(liteOrder);
dto.setOrderItems(orderItemMapper.toDto(liteOrder.getOrderItems()));
return dto;
}
} else if (!ObjectUtils.isEmpty(orderNo)) {
LiteOrder liteOrder = liteOrderManager.findByOrderNo(orderNo);
if (liteOrder != null) {
OrderDto dto= orderMapper.toDto(liteOrder);
dto.setOrderItems(orderItemMapper.toDto(liteOrder.getOrderItems()));
return dto;
}
}
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"orderNo"});
}
@ApiOperation("修改工单数量") @ApiOperation("修改工单数量")
@PostMapping(value = "/updateNum") @PostMapping(value = "/updateNum")
...@@ -340,7 +340,7 @@ public class OrderController { ...@@ -340,7 +340,7 @@ public class OrderController {
if (param.getId() == null) { if (param.getId() == null) {
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"orderNo"}); throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"orderNo"});
} }
if (param.getLine() == null) { if (param.getWorkLine() == null) {
throw new ValidateException("smfcore.order.lineCanotNull", "线别不能为空"); throw new ValidateException("smfcore.order.lineCanotNull", "线别不能为空");
} }
...@@ -352,89 +352,11 @@ public class OrderController { ...@@ -352,89 +352,11 @@ public class OrderController {
if (!order.isNew()) { if (!order.isNew()) {
throw new ValidateException("smfcore.order.cannotUpdateLine", "工单已出库,不能修改线别"); throw new ValidateException("smfcore.order.cannotUpdateLine", "工单已出库,不能修改线别");
} }
order.setLine(param.getLine()); order.setWorkLine(param.getWorkLine());
liteOrderManager.save(order); liteOrderManager.save(order);
liteOrderCache.addOrderToMap(order); liteOrderCache.addOrderToMap(order);
return ResultBean.newOkResult(orderMapper.toDto(order)); return ResultBean.newOkResult(orderMapper.toDto(order));
} }
// protected Map<String ,List<LiteOrderItem>> handleOrderCsv(String fileName,String fileURL) {
// try {
// fileName=fileName.replace(".csv","");
// log.info("开始更解析上传的工单");
// Map<String ,List<LiteOrderItem>> itemMap=new HashMap<>();
// List<LiteOrderItem> items = Lists.newArrayList();
//
// OrderSetting orderSetting = dataCache.getOrderSetting();
//
// CsvReader csvRead = CsvReader.newReader(fileURL,"PN", orderSetting.getPn());
// int partNumberIndex = csvRead.getIndex("PN", orderSetting.getPn());
// int qtyIndex = csvRead.getIndex("QTY", orderSetting.getQty());
// int feederIndex = csvRead.getIndex("FEEDER", orderSetting.getFeeder());
// int riIndex = csvRead.getIndex("RI",orderSetting.getRi());
// int soIndex = csvRead.getIndex("SO", orderSetting.getSo());
//
// int row = 1;
// int newRowCount = 0;
// int updateRowCount = 0;
//
// while (csvRead.readRecord()) {
// row++;
// String[] lineValues = csvRead.getValues();
// String partNumber = lineValues[partNumberIndex];
// String ri="";
// if(riIndex!=-1){
// ri=lineValues[riIndex];
// }
// if (partNumber.isEmpty()&&ri.isEmpty()) {
// log.warn("行[partNumber=" + partNumber + "]中PN和RI都 为空,此行忽略");
// } else {
// int num = 1;
// if (qtyIndex != -1) {
// String numStr = lineValues[qtyIndex];
// if (Strings.isNotBlank(numStr)) {
// try {
// num = Integer.valueOf(numStr);
// } catch (Exception e) {
// log.error(partNumber + "的数量:" + numStr + " 不是数字,使用1");
// }
// }
// }
// String feeder = "";
// if (feederIndex != -1) {
// feeder = lineValues[feederIndex];
// }
// String so=fileName;
//
// if(soIndex!=-1){
// so=lineValues[soIndex];
// }
// if(!ObjectUtil.isNotEmpty(so)){
// so=fileName;
// }
// LiteOrderItem item = new LiteOrderItem();
// item.setPn(partNumber);
// if(partNumber.isEmpty()){
// item.setNeedReelCount(1);
// }
// 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 itemMap;
// } catch (Exception ex) {
// log.error("解析上传的工单出错:" + ex.toString());
// }
// return null;
// }
} }
...@@ -21,15 +21,34 @@ public class OrderDto implements Serializable { ...@@ -21,15 +21,34 @@ public class OrderDto implements Serializable {
*/ */
@ApiModelProperty("工单号") @ApiModelProperty("工单号")
private String orderNo; private String orderNo;
/**
* 当前任务盘数 @ApiModelProperty("工单号/合单号")
*/ private String jobNo;
@ApiModelProperty("补料单号,如果有值表示此单为补料单")
private String replenishmentNo;
@ApiModelProperty("基地编号")
private String baseCode;
@ApiModelProperty("库位")
private String lgort;
@ApiModelProperty("产线")
private String workLine;
@ApiModelProperty("排程数量")
private Integer wemng;
@ApiModelProperty("开工时间")
private Date startDate;
@ApiModelProperty("完工时间")
private Date endDate;
@ApiModelProperty("当前任务盘数") @ApiModelProperty("当前任务盘数")
private int taskReelCount = 0; private int taskReelCount = 0;
/**
* 当前任务已完成盘数
*/
@ApiModelProperty("当前任务已完成盘数") @ApiModelProperty("当前任务已完成盘数")
private int finishedReelCount = 0; private int finishedReelCount = 0;
...@@ -51,9 +70,6 @@ public class OrderDto implements Serializable { ...@@ -51,9 +70,6 @@ public class OrderDto implements Serializable {
@ApiModelProperty("订单状态") @ApiModelProperty("订单状态")
private int status = LITEORDER_STATUS.NEW; private int status = LITEORDER_STATUS.NEW;
/**
* 出库状态, 2表示已完成
*/
@ApiModelProperty("出库状态, 2表示已完成") @ApiModelProperty("出库状态, 2表示已完成")
private boolean closed = false; private boolean closed = false;
...@@ -73,14 +89,14 @@ public class OrderDto implements Serializable { ...@@ -73,14 +89,14 @@ public class OrderDto implements Serializable {
@ApiModelProperty("订单的详细信息") @ApiModelProperty("订单的详细信息")
private List<OrderItemDto> orderItems; private List<OrderItemDto> orderItems;
@ApiModelProperty("建议出仓时间")
private Date sdate=new Date();
@ApiModelProperty("创建时间") @ApiModelProperty("创建时间")
private Date createDate = new Date(); private Date createDate = new Date();
@ApiModelProperty("工单线别") // @ApiModelProperty("建议出仓时间")
private String line = ""; // private Date sdate=new Date();
// @ApiModelProperty("工单线别")
// private String line = "";
} }
...@@ -11,14 +11,23 @@ public class OrderItemDto { ...@@ -11,14 +11,23 @@ public class OrderItemDto {
@ApiModelProperty(value = "ID") @ApiModelProperty(value = "ID")
private String id; private String id;
@ApiModelProperty("物料编号") @ApiModelProperty(value = "PN 物料号")
private String pn; private String materialNo;
@ApiModelProperty("唯一码") @ApiModelProperty(value = "站位号")
private String ri; private String station;
@ApiModelProperty("需求数量") @ApiModelProperty(value = "需求数量")
private int needNum = 0; private Integer qty;
@ApiModelProperty(value = "超发标识[贵重物料](1是不允许超发,0是允许超发)")
private Integer overFlag;
@ApiModelProperty(value = "发料增量")
private Integer increment;
@ApiModelProperty(value = "移动原因")
private String reason;
@ApiModelProperty("需求料盘数") @ApiModelProperty("需求料盘数")
private int needReelCount = 0; private int needReelCount = 0;
...@@ -32,11 +41,19 @@ public class OrderItemDto { ...@@ -32,11 +41,19 @@ public class OrderItemDto {
@ApiModelProperty("订单信息") @ApiModelProperty("订单信息")
private String orderNo = ""; private String orderNo = "";
@ApiModelProperty("站位信息")
private String feederInfo = "";
@ApiModelProperty("库存信息") @ApiModelProperty("库存信息")
@Transient @Transient
private int inventoryNum = 0; private int inventoryNum = 0;
// @ApiModelProperty("物料编号")
// private String pn;
// @ApiModelProperty("唯一码")
// private String ri;
//
// @ApiModelProperty("需求数量")
// private int needNum = 0;
//
// @ApiModelProperty("站位信息")
// private String feederInfo = "";
} }
...@@ -11,7 +11,7 @@ import java.util.List; ...@@ -11,7 +11,7 @@ import java.util.List;
@Data @Data
public class OrderQueryCondition { public class OrderQueryCondition {
@QueryCondition(blurry = "orderNo") @QueryCondition(blurry = "orderNo,jobNo,replenishmentNo")
private String blurry; private String blurry;
@QueryCondition(type = QueryCondition.Type.BETWEEN) @QueryCondition(type = QueryCondition.Type.BETWEEN)
......
...@@ -69,8 +69,8 @@ public class LiteOrderManagerImpl implements ILiteOrderManager { ...@@ -69,8 +69,8 @@ public class LiteOrderManagerImpl implements ILiteOrderManager {
liteOrderItem = liteOrderItemManager.save(liteOrderItem); liteOrderItem = liteOrderItemManager.save(liteOrderItem);
items.add(liteOrderItem); items.add(liteOrderItem);
} }
if(liteOrder.getSDate()==null){ if(liteOrder.getStartDate()==null){
liteOrder.setSdate(new Date(System.currentTimeMillis())); liteOrder.setStartDate(new Date(System.currentTimeMillis()));
} }
liteOrder = save(liteOrder); liteOrder = save(liteOrder);
liteOrder.setOrderItems(items); liteOrder.setOrderItems(items);
......
...@@ -4,6 +4,7 @@ import com.neotel.smfcore.common.base.BasePo; ...@@ -4,6 +4,7 @@ import com.neotel.smfcore.common.base.BasePo;
import com.neotel.smfcore.common.utils.StorageConstants; import com.neotel.smfcore.common.utils.StorageConstants;
import com.neotel.smfcore.common.utils.StringUtils; import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS; import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS;
import com.neotel.smfcore.hikvision.bean.HikOutInfo;
import lombok.Data; import lombok.Data;
import org.springframework.data.annotation.Transient; import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
...@@ -25,7 +26,8 @@ public class LiteOrder extends BasePo implements Serializable { ...@@ -25,7 +26,8 @@ public class LiteOrder extends BasePo implements Serializable {
this.type = 2; this.type = 2;
for (LiteOrderItem item : for (LiteOrderItem item :
orderItems) { orderItems) {
if (!StringUtils.isEmpty(item.getPn()) && (StringUtils.isEmpty(item.getRi()))) { if (!StringUtils.isEmpty(item.getMaterialNo())) {
// if (!StringUtils.isEmpty(item.getPn()) && (StringUtils.isEmpty(item.getRi()))) {
this.type = 1; this.type = 1;
break; break;
} }
...@@ -37,10 +39,42 @@ public class LiteOrder extends BasePo implements Serializable { ...@@ -37,10 +39,42 @@ public class LiteOrder extends BasePo implements Serializable {
* 需求单号 * 需求单号
*/ */
private String orderNo; private String orderNo;
/**
* jobNo String true 工单号/合单号[合并唯一]
*/
private String jobNo;
/**
*replenishmentNo String false 补料单号,如果有值表示此单为补料单[合并唯一]
*/
private String replenishmentNo;
/**
*baseCode String true 基地编号
*/
private String baseCode;
/**
*lgort String true 库位
*/
private String lgort;
/**
*workLine String true 产线
*/
private String workLine;
/**
*wemng Integer true 排程数量
*/
private Integer wemng;
/**
*startDate String true 开工时间
*/
private Date startDate;
/** /**
* 工单号 *endDate String true 完工时间
*/ */
private String so; private Date endDate;
/** /**
* 当前任务盘数 * 当前任务盘数
*/ */
...@@ -76,12 +110,6 @@ public class LiteOrder extends BasePo implements Serializable { ...@@ -76,12 +110,6 @@ public class LiteOrder extends BasePo implements Serializable {
* 工单来源 * 工单来源
*/ */
private String source = ""; private String source = "";
/**
* 线别,AGV运送时使用此值做为目的地
*/
private String line = "";
/** /**
* 任务完成时间(用于关闭页面显示) * 任务完成时间(用于关闭页面显示)
*/ */
...@@ -104,10 +132,7 @@ public class LiteOrder extends BasePo implements Serializable { ...@@ -104,10 +132,7 @@ public class LiteOrder extends BasePo implements Serializable {
@Transient @Transient
private List<LiteOrderItem> orderItems; private List<LiteOrderItem> orderItems;
/**
* 建议出仓时间
*/
private Date sdate=new Date();
public void setClosed(boolean value){ public void setClosed(boolean value){
this.closed=value; this.closed=value;
...@@ -208,13 +233,51 @@ public class LiteOrder extends BasePo implements Serializable { ...@@ -208,13 +233,51 @@ public class LiteOrder extends BasePo implements Serializable {
} }
return orderTimes; return orderTimes;
} }
public Date getStartDate(){
public Date getSDate(){ if(startDate==null){
if(sdate==null){
return getCreateDate(); return getCreateDate();
} }
return sdate; return startDate;
}
public void UpdateOutInfo(HikOutInfo outInfo){
//更改工单信息
this.setJobNo(outInfo.getJobNo());
this.setReplenishmentNo(outInfo.getReplenishmentNo());
this.setBaseCode(outInfo.getBaseCode());
this.setLgort(outInfo.getLgort());
this.setWorkLine(outInfo.getWorkLine());
this.setStartDate(outInfo.getStartDate());
this.setUpdateDate(new Date());
this.setEndDate(outInfo.getEndDate());
this.setWemng(outInfo.getWemng());
} }
public void addOrderItems(LiteOrderItem item){
orderItems.add(item);
}
// /**
// * 工单号
// */
// private String so;
// /**
// * 线别,AGV运送时使用此值做为目的地
// */
// private String line = "";
// /**
// * 建议出仓时间
// */
// private Date sdate=new Date();
// public Date getSDate(){
// if(sdate==null){
// return getCreateDate();
// }
// return sdate;
// }
} }
...@@ -9,22 +9,44 @@ import java.io.Serializable; ...@@ -9,22 +9,44 @@ import java.io.Serializable;
@Data @Data
@Document @Document
public class LiteOrderItem extends BasePo implements Serializable ,Comparable<LiteOrderItem> { public class LiteOrderItem extends BasePo implements Serializable ,Comparable<LiteOrderItem> {
/** /**
* 物料编号 * materialNo String true 物料号[详情]
*/ */
private String pn; private String materialNo;
/** /**
* 唯一码 * station String true 站位号
*/ */
private String ri; private String station;
/**
*qty Integer true 需求数量
*/
private Integer qty;
/**
*overFlag Integer true 超发标识[贵重物料](1是不允许超发,0是允许超发)
*/
private Integer overFlag;
/**
*increment Integer true 发料增量
*/
private Integer increment;
/** /**
* 总需求数量 *reason String false 移动原因
*/ */
private int needNum = 0; private String reason;
//
/**
* 唯一码
*/
private String ri;
/** /**
* 总需求料盘数 * 总需求料盘数
*/ */
...@@ -54,29 +76,12 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li ...@@ -54,29 +76,12 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
* 订单信息 * 订单信息
*/ */
private String orderNo = ""; private String orderNo = "";
/**
* 站位编号,料架工单出库时,亮灯指引功能排序
*/
private Integer slotNum=0;
/**
* 站位信息
*/
private String feederInfo = "";
/**
* 库存信息
*/
@Transient
private int inventoryNum = 0;
/** /**
* 出库是否满足要求,已出库数量大于需求数量 * 出库是否满足要求,已出库数量大于需求数量
*/ */
public boolean isOutFinished(){ public boolean isOutFinished(){
return outNum - needNum >=0; return outNum - qty >=0;
} }
@Override @Override
...@@ -86,4 +91,34 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li ...@@ -86,4 +91,34 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
} }
return this.getId().compareTo(o.getId()); return this.getId().compareTo(o.getId());
} }
// /**
// * 物料编号 materialNo
// */
// private String pn;
//
//
// /**
// * 总需求数量 qty
// */
// private int needNum = 0;
//
// /**
// * 站位编号,料架工单出库时,亮灯指引功能排序
// */
// private Integer slotNum=0;
//
// /**
// * 站位信息
// */
// private String feederInfo = "";
//
// /**
// * 库存信息
// */
// @Transient
// private int inventoryNum = 0;
} }
...@@ -266,13 +266,13 @@ public class OrderFileWatch { ...@@ -266,13 +266,13 @@ public class OrderFileWatch {
so=fileName; so=fileName;
} }
LiteOrderItem item = new LiteOrderItem(); LiteOrderItem item = new LiteOrderItem();
item.setPn(partNumber); item.setMaterialNo(partNumber);
if(partNumber.isEmpty()){ if(partNumber.isEmpty()){
item.setNeedReelCount(1); item.setNeedReelCount(1);
} }
item.setNeedNum(num); item.setQty(num);
item.setFeederInfo(feeder); item.setStation(feeder);
item.setRi(ri); item.setRi(ri);
if(!itemMap.containsKey(so)){ if(!itemMap.containsKey(so)){
itemMap.put(so,new ArrayList<LiteOrderItem>()); itemMap.put(so,new ArrayList<LiteOrderItem>());
......
package com.neotel.smfcore.hikvision.bean;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
public class HikOutInfo implements Serializable {
/**
* jobNo String true 工单号/合单号[合并唯一]
*/
private String jobNo;
/**
*replenishmentNo String false 补料单号,如果有值表示此单为补料单[合并唯一]
*/
private String replenishmentNo;
/**
*baseCode String true 基地编号
*/
private String baseCode;
/**
*lgort String true 库位
*/
private String lgort;
/**
*workLine String true 产线
*/
private String workLine;
/**
*startDate String true 开工时间
*/
private Date startDate;
/**
*endDate String true 完工时间
*/
private Date endDate;
/**
* materialNo String true 物料号[详情]
*/
private String materialNo;
/**
* station String true 站位号
*/
private String station;
/**
*qty Integer true 需求数量
*/
private Integer qty;
/**
*overFlag Integer true 超发标识[贵重物料](1是不允许超发,0是允许超发)
*/
private Integer overFlag;
/**
*increment Integer true 发料增量
*/
private Integer increment;
/**
*wemng Integer true 排程数量
*/
private Integer wemng;
/**
*reason String false 移动原因
*/
private String reason;
public LiteOrderItem crateOrderItem(String orderNo) {
LiteOrderItem item = new LiteOrderItem();
item.setOrderNo(orderNo);
item.setStation(this.getStation());
item.setMaterialNo(this.getMaterialNo());
item.setQty(this.getQty());
item.setOverFlag(this.getOverFlag());
item.setIncrement(this.getIncrement());
item.setReason(this.getReason());
return item;
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!