Commit 585e62bc LN

功能修改。

1 个父辈 e8f815ad
......@@ -7,7 +7,7 @@ public class LITEORDER_STATUS {
/**新建的工单*/
public static int NEW=0;
/**工单缺料*/
/**工单缺料 未齐套*/
public static int SHORTAGE=1;
/**工单正在出库执行中*/
......@@ -18,7 +18,7 @@ public class LITEORDER_STATUS {
public static int CLOSED=3;
/**出库完成缺料*/
/**出库完成缺料*/
public static int EXECUTING_END=4;
......@@ -28,11 +28,11 @@ public class LITEORDER_STATUS {
/**
* 工单状态
* 0=新建的工单
* 1=工单缺料
* 2=工单正在出库中
* 3=工单已关闭
* 4=出库完成
* 0=新建
* 1=未齐套
* 2=出库中
* 3=已关闭
* 4=工单欠料
* 5=欠料出库中
*/
/**
......
......@@ -201,18 +201,20 @@ public class OrderSheetController {
}
String pos=liteOrder.getPosition(type);
if(ObjectUtil.isNotEmpty(pos)){
throw new ValidateException("smfcore.orderSheet.hasPos", "工单{0}已有{1}位置{2}",new String[]{orderNo,liteOrder.getPosition(type),pos} );
log.info("工单合单:工单号["+liteOrder.getOrderNo()+"]绑定位置["+type+"]["+position+"]失败:已有位置:"+type+"_"+pos);
throw new ValidateException("smfcore.orderSheet.hasPos", "工单{0}已有{1}位置{2}",new String[]{orderNo,type+"",pos} );
}
if(liteOrder.getPosInfos()!=null){
for (OrderPosInfo posInfo :
liteOrder.getPosInfos()) {
if (posInfo.getPosition().equals(position)) {
throw new ValidateException("smfcore.orderSheet.hasPos", "工单{0}已有{1}位置{2}",new String[]{orderNo,liteOrder.getPosition(posInfo.getType()),position} );
log.info("工单合单:工单号["+liteOrder.getOrderNo()+"]绑定位置["+type+"]["+position+"]失败:已有位置:"+posInfo.getType()+"_"+pos);
throw new ValidateException("smfcore.orderSheet.hasPos", "工单{0}已有{1}位置{2}",new String[]{orderNo,posInfo.getType()+"",position} );
}
}
}
liteOrder.addPos(type,position);
log.info("工单合单:工单号["+liteOrder.getOrderNo()+"]绑定位置["+type+"]["+position+"]");
log.info("工单合单:工单号["+liteOrder.getOrderNo()+"]绑定位置["+type+"]["+position+"]成功");
liteOrderManager.save(liteOrder);
liteOrderCache.addOrderToMap(liteOrder);
......
......@@ -107,8 +107,8 @@ public class OrderShortageController {
@ApiOperation("欠料发料:工单欠料出库")
@PostMapping(value = "/shortageOut")
@PreAuthorize("@el.check('workOrder')")
public ResultBean shortageOut(@RequestBody Map<String, String> mapValues) {
String orderNo = mapValues.get("orderNo");
public ResultBean shortageOut(@RequestBody String orderNo) {
// String orderNo = mapValues.get("orderNo");
if (orderNo == null) {
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"orderNo"});
}
......@@ -120,11 +120,19 @@ public class OrderShortageController {
//判断是否已有在出库中的工单
Integer[] status=new Integer[]{LITEORDER_STATUS.ADDOUTBOUND};
Query query = getQuery(new OrderQueryCondition(),status);
//已齐套的不显示
query.addCriteria(Criteria.where("complete").ne(true));
List<LiteOrder> liteOrders=liteOrderManager.findByQuery(query);
if(liteOrders.size()>0){
throw new ValidateException("smfcore.orderShortage.hasOut", "请等待工单["+liteOrders.get(0).getOrderNo()+"]欠料出库结束", new String[]{"orderNo", liteOrders.get(0).getOrderNo()});
}
//判断是否可以欠料出库
if(!liteOrder.isExecutingEnd()){
throw new ValidateException("smfcore.orderShortage.statusError", "操作失败,"+liteOrder.getOrderNo()+"非工单欠料状态",new String[]{liteOrder.getOrderNo()} );
}
log.info("工单合单:工单号["+liteOrder.getOrderNo()+"]开始欠料出库");
//TODO 调用缺料出库方法
String result = liteOrderCache.checkOutLiteOrder(SecurityUtils.getCurrentUsername(), liteOrder.getOrderNo(),true,true);
......@@ -139,16 +147,7 @@ public class OrderShortageController {
@GetMapping("/shortageOutTasks")
@PreAuthorize("@el.check('reelOut')")
public List<TaskDto> shortageOutTasks(@RequestParam Map<String, String> paramsMap) {
//
// String orderNo = paramsMap.get("orderNo");
// if (orderNo == null) {
// throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"orderNo"});
// }
//
// LiteOrder liteOrder = liteOrderManager.findByOrderNo(orderNo);
// if (liteOrder == null) {
// throw new ValidateException("smfcore.valueNotFind", "未找到{0}[{1}]", new String[]{"orderNo", orderNo});
// }
//判断是否已有在出库中的工单
Integer[] status = new Integer[]{LITEORDER_STATUS.ADDOUTBOUND};
Query query = getQuery(new OrderQueryCondition(), status);
......@@ -178,9 +177,10 @@ public class OrderShortageController {
@GetMapping(value = "/sheetList")
@PreAuthorize("@el.check('workOrder')")
public PageData<OrderDto> queryList(OrderQueryCondition criteria, Pageable pageable) {
Integer[] status=new Integer[]{LITEORDER_STATUS.CLOSED};
Integer[] status=new Integer[]{LITEORDER_STATUS.CLOSED,LITEORDER_STATUS.ADDOUTBOUND,LITEORDER_STATUS.EXECUTING_END};
Query query = getQuery(criteria,status);
query.addCriteria(Criteria.where("complete").ne(true));
PageData<LiteOrder> orderList = liteOrderManager.findByPage(query, pageable);
PageData<OrderDto> resultList = orderMapper.toDto(orderList);
return resultList;
......@@ -229,18 +229,20 @@ public class OrderShortageController {
String pos=liteOrder.getPosition(type);
if(ObjectUtil.isNotEmpty(pos)){
throw new ValidateException("smfcore.orderSheet.hasPos", "工单{0}已有{1}位置{2}",new String[]{orderNo,liteOrder.getPosition(type),pos} );
log.info("工单合单:工单号["+liteOrder.getOrderNo()+"]绑定位置["+type+"]["+position+"]失败:已有位置:欠料_"+pos);
throw new ValidateException("smfcore.orderSheet.hasPos", "工单{0}已有{1}位置{2}",new String[]{orderNo,"欠料",pos} );
}
if(liteOrder.getPosInfos()!=null){
for (OrderPosInfo posInfo :
liteOrder.getPosInfos()) {
if (posInfo.getPosition().equals(position)) {
throw new ValidateException("smfcore.orderSheet.hasPos", "工单{0}已有{1}位置{2}",new String[]{orderNo,liteOrder.getPosition(posInfo.getType()),position} );
log.info("工单合单:工单号["+liteOrder.getOrderNo()+"]绑定位置["+type+"]["+position+"]失败:已有位置:"+posInfo.getType()+"_"+pos);
throw new ValidateException("smfcore.orderSheet.hasPos", "工单{0}已有{1}位置{2}",new String[]{orderNo,posInfo.getType()+"",position} );
}
}
}
liteOrder.addPos(type,position);
log.info("工单合单:工单号["+liteOrder.getOrderNo()+"]绑定位置["+type+"]["+position+"]");
log.info("工单合单:工单号["+liteOrder.getOrderNo()+"]绑定位置["+type+"]["+position+"]成功");
liteOrderManager.save(liteOrder);
liteOrderCache.addOrderToMap(liteOrder);
......@@ -252,19 +254,37 @@ public class OrderShortageController {
@ApiOperation("合单欠料:工单已齐套")
@PostMapping(value = "/orderComplete")
@PreAuthorize("@el.check('workOrder')")
public ResultBean orderComplete(@RequestBody Map<String, Object> mapValues) {
String orderNo = mapValues.get("orderNo").toString();
public ResultBean orderComplete(@RequestBody String orderNo) {
// String orderNo = mapValues.get("orderNo").toString();
LiteOrder liteOrder= liteOrderManager.findByOrderNo(orderNo);
if(liteOrder==null){
throw new ValidateException("smfcore.orderSheet.barcode", "未找到工单{0}",new String[]{orderNo} );
}
//如果还有未完成的工单任务,不能齐套
List<DataLog> allTasks = taskService.getAllTasks();
for (DataLog datalog :
allTasks) {
if (datalog.isOrderTask() && datalog.getSourceId().equals(liteOrder.getId())) {
if(datalog.isWait()||datalog.isExecuting()){
log.info("工单已齐套:工单号["+orderNo+"]操作失败:工单出库任务["+datalog.getPosName()+"]["+datalog.getBarcode()+"]还未结束");
throw new ValidateException("smfcore.orderSheet.taskNotEnd", "操作失败,工单出库任务["+datalog.getPosName()+"]["+datalog.getBarcode()+"]还未结束",new String[]{datalog.getPosName(),datalog.getBarcode()} );
}
}
}
if(liteOrder.isExecutingEnd()||liteOrder.isClosed()){
log.info("工单已齐套:工单号["+liteOrder.getOrderNo()+"]工单已齐套");
liteOrder.setComplete(true);
liteOrderManager.save(liteOrder);
liteOrderCache.addOrderToMap(liteOrder);
log.info("工单已齐套:工单号["+liteOrder.getOrderNo()+"]工单已齐套");
liteOrder.setComplete(true);
liteOrderManager.save(liteOrder);
liteOrderCache.addOrderToMap(liteOrder);
return ResultBean.newOkResult("ok");
}
else {
log.info("工单已齐套:工单号["+orderNo+"]操作失败:状态="+liteOrder.getStatus());
throw new ValidateException("smfcore.orderSheet.complete.error", "操作失败" );
}
return ResultBean.newOkResult("ok");
}
}
......@@ -236,6 +236,19 @@ public class LiteOrder extends BasePo implements Serializable {
public boolean isExecuting(){
return status == LITEORDER_STATUS.EXECUTING;
}
/**
* 是否出库完成欠料工单
*/
public boolean isExecutingEnd(){
return status == LITEORDER_STATUS.EXECUTING_END;
}
/**
* 是否欠料出库中的工单
*/
public boolean isAddOutBound(){
return status == LITEORDER_STATUS.ADDOUTBOUND;
}
......
......@@ -258,6 +258,8 @@ 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
smfcore.orderShortage.hasOut=\u8BF7\u7B49\u5F85\u5DE5\u5355[{0}]\u6B20\u6599\u51FA\u5E93\u7ED3\u675F
smfcore.orderShortage.statusError=\u64CD\u4F5C\u5931\u8D25\uFF0C{0}\u975E\u5DE5\u5355\u6B20\u6599\u72B6\u6001
smfcore.orderSheet.taskNotEnd=\u64CD\u4F5C\u5931\u8D25\uFF0C\u5DE5\u5355\u51FA\u5E93\u4EFB\u52A1[{0}][{1}}]\u8FD8\u672A\u7ED3\u675F
#smfcore.order.out.short=\u5DE5\u5355\u51FA\u5E93\u5931\u8D25\uFF0C\u5DE5\u5355\u7F3A\u6599
#smfclient.nlp.onlyOneTray=\u4E0D\u53EF\u540C\u65F6\u653E\u5165\u591A\u76D8\u7269\u6599:{0}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!