Commit 2b9efd62 sunke

产线补料页面调整,增加申请人和申请时间

一共三种情况 一种是料架料够 就直接出料架亮灯取完料盘订单关闭  第二种是料架有料但是不满足需求 提示缺料 是否继续出  是就强制出 料架把有的料亮灯取完订单关闭否就不做任何动作  第三种就是料架一盘料都没有 这个时候就要提示此工单无料是否关闭 是就关闭 否就不做动作
1 个父辈 cf98ab99
......@@ -15,6 +15,7 @@ import com.neotel.smfcore.core.order.bean.OrderBoxInfo;
import com.neotel.smfcore.core.order.bean.OrderPnInfo;
import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS;
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.OrderPnDto;
import com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderItemMapper;
import com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderMapper;
......@@ -40,6 +41,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
......@@ -160,22 +162,31 @@ public class OrderController {
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;
return toOrderDto(liteOrder);
}
} 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;
return toOrderDto(liteOrder);
}
}
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"orderNo"});
}
private OrderDto toOrderDto(LiteOrder liteOrder){
OrderDto dto = orderMapper.toDto(liteOrder);
List<OrderItemDto> itemDtos = orderItemMapper.toDto(liteOrder.getOrderItems());
for (OrderItemDto itemDto : itemDtos) {
String lgort = itemDto.getLgort();
if(Strings.isBlank(lgort)){
itemDto.setLgort(dto.getLgort());
}
}
dto.setOrderItems(itemDtos);
return dto;
}
@ApiOperation("上传工单")
@PostMapping(value = "/upload")
@AnonymousAccess
......@@ -196,8 +207,7 @@ public class OrderController {
throw new ValidateException("smfcore.fileError", "文件解析失败");
}
for (HikOrderInfo outInfo :
itemList) {
for (HikOrderInfo outInfo : itemList) {
//查找工单是否存在
String orderNo = outInfo.getJobNo();
......@@ -262,7 +272,7 @@ public class OrderController {
if (ObjectUtil.isEmpty(result)) {
return ResultBean.newOkResult(result);
}
else if(result.equals("smfcore.order.out.short")){
else if(result.equals("smfcore.order.out.shortReel") || result.equals("smfcore.order.out.noReel")){
return ResultBean.newErrorResult(99, result, result);
}
else {
......
......@@ -18,11 +18,13 @@ import com.neotel.smfcore.core.order.bean.OrderBoxInfo;
import com.neotel.smfcore.core.order.bean.OrderPnInfo;
import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS;
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.OrderPnDto;
import com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderItemMapper;
import com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderMapper;
import com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderPnMapper;
import com.neotel.smfcore.core.order.rest.bean.query.OrderQueryCondition;
import com.neotel.smfcore.core.order.rest.bean.query.RepleOrderQueryCondition;
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;
......@@ -42,6 +44,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
......@@ -109,7 +112,7 @@ public class RepleOrderController {
@ApiOperation("查询补料工单")
@GetMapping
@PreAuthorize("@el.check('productionLineReple')")
public PageData<OrderDto> query(OrderQueryCondition criteria, Pageable pageable) {
public PageData<OrderDto> query(RepleOrderQueryCondition criteria, Pageable pageable) {
//Query query = QueryHelp.getQuery(criteria);
List<Criteria> criteriaList = QueryHelp.toCriteria(criteria);
if (criteria.getStatus() != null) {
......@@ -143,22 +146,31 @@ public class RepleOrderController {
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;
return toOrderDto(liteOrder);
}
} 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;
return toOrderDto(liteOrder);
}
}
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"orderNo"});
}
private OrderDto toOrderDto(LiteOrder liteOrder){
OrderDto dto = orderMapper.toDto(liteOrder);
List<OrderItemDto> itemDtos = orderItemMapper.toDto(liteOrder.getOrderItems());
for (OrderItemDto itemDto : itemDtos) {
String lgort = itemDto.getLgort();
if(Strings.isBlank(lgort)){
itemDto.setLgort(dto.getLgort());
}
}
dto.setOrderItems(itemDtos);
return dto;
}
@ApiOperation("产线补料工单出库")
@PostMapping(value = "/out")
......@@ -184,7 +196,7 @@ public class RepleOrderController {
if (ObjectUtil.isEmpty(result)) {
return ResultBean.newOkResult(result);
}
else if(result.equals("smfcore.order.out.short")){
else if(result.equals("smfcore.order.out.shortReel") || result.equals("smfcore.order.out.noReel")){
return ResultBean.newErrorResult(99, result, result);
}
else {
......
......@@ -122,4 +122,14 @@ public class OrderDto implements Serializable {
*/
@ApiModelProperty(value = "面别")
private String wktype;
/**
* 申请人
*/
private String applyName;
/**
* 申请时间
*/
private Date applyDate;
}
......@@ -17,6 +17,11 @@ public class OrderItemDto {
@ApiModelProperty(value = "站位号")
private String station;
/**
*lgort String true 库位
*/
private String lgort;
@ApiModelProperty(value = "需求数量")
private Integer qty;
......
package com.neotel.smfcore.core.order.rest.bean.query;
import com.neotel.smfcore.common.annotation.QueryCondition;
import com.neotel.smfcore.common.bean.BetweenData;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
@Data
public class RepleOrderQueryCondition {
@QueryCondition(blurry = "orderNo,jobNo,workLine,applyName,wktype,replenishmentNo")
private String blurry;
/**
* jobNo String true 工单号/合单号[合并唯一]
*/
@QueryCondition
private String jobNo;
/**
*workLine String true 产线
*/
@QueryCondition
private String workLine;
/**
* 申请人
*/
@QueryCondition
private String applyName;
/**
* 申请时间
*/
@QueryCondition(type = QueryCondition.Type.BETWEEN)
@DateTimeFormat(pattern = "yyyy-MM-dd")
private BetweenData<Date> applyDate;
/**
* 面别
*/
@QueryCondition
private String wktype;
/**
*replenishmentNo String false 补料单号,如果有值表示此单为补料单[合并唯一]
*/
@QueryCondition
private String replenishmentNo;
@QueryCondition(type = QueryCondition.Type.BETWEEN)
private BetweenData<Date> createDate;
@QueryCondition(type = QueryCondition.Type.BETWEEN)
@DateTimeFormat(pattern = "yyyy-MM-dd")
private BetweenData<Date> startDate;
@QueryCondition(type = QueryCondition.Type.IN, propName = "subWknumList")
private List<String> orderNoList;
@QueryCondition(type = QueryCondition.Type.IN, propName = "source")
private List<String> sourceList;
@QueryCondition(type = QueryCondition.Type.NIN, propName = "source")
private List<String> excludeSourceList;
//状态,0=所有,1=已关闭,2=未关闭,3=出库中
private Integer status;
//
// @QueryCondition(type=QueryCondition.Type.IN,propName = "status")
// private List<Integer> statusList ;
}
......@@ -29,8 +29,7 @@ public class LiteOrder extends BasePo implements Serializable {
this.orderItems = orderItems;
this.orderNo = orderNo;
this.type = 2;
for (LiteOrderItem item :
orderItems) {
for (LiteOrderItem item : orderItems) {
if (!StringUtils.isEmpty(item.getMaterialNo())) {
// if (!StringUtils.isEmpty(item.getPn()) && (StringUtils.isEmpty(item.getRi()))) {
this.type = 1;
......@@ -186,6 +185,16 @@ public class LiteOrder extends BasePo implements Serializable {
*/
private String wktype;
/**
* 申请人
*/
private String applyName;
/**
* 申请时间
*/
private Date applyDate;
public Integer getBoxNum(){
if(boxInfos!=null){
return boxInfos.size();
......@@ -320,6 +329,8 @@ public class LiteOrder extends BasePo implements Serializable {
this.setWemng(outInfo.getWemng());
this.setWktype(outInfo.getWktype());
this.setSubWknumList(outInfo.getSubWknumList());
this.setApplyName(outInfo.getApplyName());
this.setApplyDate(outInfo.getApplyD());
if(orderItems==null){
orderItems=new ArrayList<>();
}
......
......@@ -35,6 +35,11 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
*/
private int increment=0;
/**
*lgort String true 库位
*/
private String lgort;
/**
*reason String false 移动原因
......
......@@ -102,6 +102,19 @@ public class HikOrderInfo implements Serializable {
*/
private String wktype;
/**
* 申请人
*/
private String applyName;
/**
* 申请时间
*/
private String applyDate;
public void setSubWknum(String subWknum) {
this.subWknum = subWknum;
subWknumList = Lists.newArrayList(subWknum.split(","));
......@@ -122,7 +135,8 @@ public class HikOrderInfo implements Serializable {
item.setOverFlag(this.getOverFlag());
item.setIncrement(this.getPrepareIncrement());
item.setReason(this.getReason());
item.setWemng(this.wemng);
item.setWemng(this.getWemng());
item.setLgort(this.getLgort());
return item;
}
......@@ -146,4 +160,18 @@ public class HikOrderInfo implements Serializable {
}
return sDate;
}
/**
* 申请时间
* @return
*/
public Date getApplyD(){
Date sDate=null;
try {
sDate= DateUtil.toDate(applyDate,"yyyy-MM-dd HH:mm:ss");
}catch (Exception ex){
log.error("HitOutInfo getApplyD ["+applyDate+"] 出错:"+ex.toString());
}
return sDate;
}
}
......@@ -27,7 +27,6 @@ smfcore.noAccessUpdate=\u6CA1\u6709\u5220\u9664\u83DC\u5355\u7684\u6743\u9650
smfcore.roleCannotDel=\u89D2\u8272[{0}]\u6709[{1}]\u4E2A\u7528\u6237\u5173\u8054\u6539\u89D2\u8272,\u4E0D\u80FD\u5220\u9664
smfcore.notFindPos=\u672A\u627E\u5230\u9501\u5B9A\u5E93\u4F4D
smfcore.error.barcode.empty=\u672A\u626B\u5230\u6761\u7801
smfcore.error.barcode.many=\u627E\u5230\u591A\u4E2A\u6709\u6548\u6761\u7801,\u65E0\u6CD5\u5165\u5E93
smfcore.error.barcode.expired=\u7269\u6599\u5DF2\u8FC7\u671F,\u65E0\u6CD5\u5165\u5E93.
smfcore.allBoxView.noReel=\u5E93\u4F4D{0}\u4E2D\u65E0\u7269\u6599
smfcore.error.barcode.many=\u627E\u5230\u591A\u4E2A\u6709\u6548\u7684\u6761\u7801
......@@ -105,7 +104,6 @@ smfcore.error.barcode.noRules=\u89E3\u6790\u89C4\u5219\u672A\u5B9A\u4E49
smfcore.error.barcode.wrongLength=\u6761\u7801[{0}]\u957F\u5EA6\u9519\u8BEF
smfcore.error.barcode.noField=\u6761\u7801\u89E3\u6790\u5931\u8D25,\u672A\u627E\u5230{0}\u5B57\u6BB5
smfcore.error.barcode.pnNotExist=x\u6863\u6848 {0} \u4E0D\u5B58\u5728
smfcore.error.barcode.invalid={0}\u4E0D\u662F\u6709\u6548\u7684\u6761\u7801
smfcore.error.barcode.locked=\u5E93\u4F4D[{0}]\u5DF2\u88AB\u9501\u5B9A
smfcore.manualOut.ok=\u624B\u52A8\u51FA\u5E93\u6210\u529F
smfcore.manualOut.notFound=\u4ED3\u5E93\u4E2D\u672A\u627E\u5230\u6599\u76D8\u4FE1\u606F
......@@ -254,6 +252,8 @@ smfcore.component.storeError=\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u5E93\u5B58\uF
smfcore.user.group.error=\u7EC4[{0}]\u5DF2\u7ECF\u5206\u914D\u7ED9\u64CD\u4F5C\u5458[{1}]
smfcore.noValidPos=\u672A\u627E\u5230\u5355\u636E\u53F7
smfcore.order.out.short=\u5DE5\u5355\u7F3A\u6599
smfcore.order.out.shortReel=\u5DE5\u5355\u7F3A\u6599,\u662F\u5426\u7EE7\u7EED\u51FA\u5E93
smfcore.order.out.noReel=\u6B64\u5DE5\u5355\u65E0\u6599\u662F\u5426\u5173\u95ED
smfcore.outList.out.short=\u5B58\u50A8\u51FA\u5E93\u5355{0}\u7F3A\u6599
smfcore.outList.out.noTask=\u8F6C\u50A8\u51FA\u5E93\u5355\u65E0\u53EF\u6267\u884C\u7684\u4EFB\u52A1
smfcore.posNotDel=\u5220\u9664\u5931\u8D25\uFF0C\u8BF7\u5148\u5220\u9664[{0}]\u7684\u6240\u6709\u5E93\u4F4D
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!