|
|
|
|
@ -185,6 +185,9 @@ public class MesPurchaseOrderServiceImpl implements IMesPurchaseOrderService {
|
|
|
|
|
|
|
|
|
|
//校验此采购订单有没有合并过
|
|
|
|
|
MesSaleOrderRelate querySaleOrderRelate = new MesSaleOrderRelate();
|
|
|
|
|
if (purchaseOrderId == null) {
|
|
|
|
|
throw new ServiceException("采购订单不能为空");
|
|
|
|
|
}
|
|
|
|
|
querySaleOrderRelate.setPurchaseOrderId(purchaseOrderId);
|
|
|
|
|
List<MesSaleOrderRelate> mesSaleOrderRelates = mesSaleOrderRelateMapper.selectMesSaleOrderRelateList(querySaleOrderRelate);
|
|
|
|
|
if (mesSaleOrderRelates != null && !mesSaleOrderRelates.isEmpty()) {
|
|
|
|
|
@ -259,7 +262,7 @@ public class MesPurchaseOrderServiceImpl implements IMesPurchaseOrderService {
|
|
|
|
|
if (mesSaleOrderRelatesBySale != null && !mesSaleOrderRelatesBySale.isEmpty()) {
|
|
|
|
|
throw new ServiceException("选择的销售订单已经合并过,不能绑定");
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
if (orderBind.getSaleOrderId() != null) {
|
|
|
|
|
throw new ServiceException("安全库存标识为是的不需要选择销售订单");
|
|
|
|
|
}
|
|
|
|
|
@ -317,7 +320,7 @@ public class MesPurchaseOrderServiceImpl implements IMesPurchaseOrderService {
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<MesPurchaseOrder> unbindPurchaseOrderList(MesPurchaseOrder mesPurchaseOrder) {
|
|
|
|
|
if(StringUtils.isNotEmpty(mesPurchaseOrder.getBomFlag()) &&mesPurchaseOrder.getBomFlag().equals("0")){
|
|
|
|
|
if (StringUtils.isNotEmpty(mesPurchaseOrder.getBomFlag()) && mesPurchaseOrder.getBomFlag().equals("0")) {
|
|
|
|
|
mesPurchaseOrder.setMaterialBomId(null);
|
|
|
|
|
}
|
|
|
|
|
return mesPurchaseOrderMapper.unbindPurchaseOrderList(mesPurchaseOrder);
|
|
|
|
|
@ -361,15 +364,15 @@ public class MesPurchaseOrderServiceImpl implements IMesPurchaseOrderService {
|
|
|
|
|
MesPurchaseOrder dbMesPurchaseOrder = mesPurchaseOrderMapper.
|
|
|
|
|
unbindPurchaseOrderListByPurchaseAndSaleOrderId(purchaseOrderId, mesSaleOrder.getSaleOrderId());
|
|
|
|
|
if (!mesPurchaseOrder.equals(dbMesPurchaseOrder)) {
|
|
|
|
|
throw new ServiceException("序号: " + mesPurchaseOrder.getSerialNumber() +",数据有变化,请重新更新");
|
|
|
|
|
throw new ServiceException("序号: " + mesPurchaseOrder.getSerialNumber() + ",数据有变化,请重新更新");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (dbMesPurchaseOrder.getOrderStatus().equals(MesConstants.MES_PURCHASE_ORDER_STATUS_PURCHASE_COMPLETE)) {
|
|
|
|
|
throw new ServiceException("序号: " + mesPurchaseOrder.getSerialNumber() +",此采购订单已经采购完成,无需再绑定");
|
|
|
|
|
throw new ServiceException("序号: " + mesPurchaseOrder.getSerialNumber() + ",此采购订单已经采购完成,无需再绑定");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (dbMesPurchaseOrder.getOrderStatus().equals(MesConstants.MES_PURCHASE_ORDER_STATUS_AUTO_OUTSTOCK_COMPLETE)) {
|
|
|
|
|
throw new ServiceException("序号: " + mesPurchaseOrder.getSerialNumber() +",此采购订单已经自动出库完成,无需再绑定");
|
|
|
|
|
throw new ServiceException("序号: " + mesPurchaseOrder.getSerialNumber() + ",此采购订单已经自动出库完成,无需再绑定");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -439,12 +442,12 @@ public class MesPurchaseOrderServiceImpl implements IMesPurchaseOrderService {
|
|
|
|
|
mesOrderBindMapper.insertMesOrderBind(orderBind);
|
|
|
|
|
} else {
|
|
|
|
|
MesOrderBind bind = bindList.get(0);
|
|
|
|
|
if(purchaseOrder.getUpdateAmount().compareTo(BigDecimal.ZERO)>0){
|
|
|
|
|
if (purchaseOrder.getUpdateAmount().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
|
bind.setBindAmount(purchaseOrder.getUpdateAmount());
|
|
|
|
|
bind.setUpdateBy(SecurityUtils.getLoginUser() == null ? SecurityUtils.getUsername() : SecurityUtils.getLoginUser().getNickname());
|
|
|
|
|
bind.setUpdateTime(DateUtils.getNowDate());
|
|
|
|
|
mesOrderBindMapper.updateMesOrderBind(bind);
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
mesOrderBindMapper.deleteMesOrderBindByOrderBindId(bind.getOrderBindId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -538,8 +541,6 @@ public class MesPurchaseOrderServiceImpl implements IMesPurchaseOrderService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//查询采购订单 采购订单号不在原材料入库记录中当前日期入库的并且同一物料的采购订单,并且采购订单是采购入库完成的。
|
|
|
|
|
List<MesPurchaseOrder> mesPurchaseOrderList = mesPurchaseOrderMapper.selectNotRawInstockPurchaseOrderList(dateStr);
|
|
|
|
|
List<MesPurchaseOrder> autoStockPurchaseOrderList = new ArrayList<>();
|
|
|
|
|
@ -611,7 +612,6 @@ public class MesPurchaseOrderServiceImpl implements IMesPurchaseOrderService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询绑定销售订单的采购订单信息,join material
|
|
|
|
|
*
|
|
|
|
|
@ -625,26 +625,25 @@ public class MesPurchaseOrderServiceImpl implements IMesPurchaseOrderService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*采购订单超时统计
|
|
|
|
|
* 采购订单超时统计
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public void purchaseOrderOverTimeAlarm(){
|
|
|
|
|
public void purchaseOrderOverTimeAlarm() {
|
|
|
|
|
// 订单状态(1待采购2采购中3采购完成4自动出库完成)
|
|
|
|
|
MesPurchaseOrder queryPurchaseOrder = new MesPurchaseOrder();
|
|
|
|
|
queryPurchaseOrder.setPurchaseOrderClassfication(MesConstants.MES_PURCHASE_ORDER_CLASSFICATION_ERP);
|
|
|
|
|
queryPurchaseOrder.setOrderStatusStr(MesConstants.MES_PURCHASE_ORDER_STATUS_TOPURCHASE+","+MesConstants.MES_PURCHASE_ORDER_STATUS_PURCHASEING);
|
|
|
|
|
queryPurchaseOrder.setOrderStatusStr(MesConstants.MES_PURCHASE_ORDER_STATUS_TOPURCHASE + "," + MesConstants.MES_PURCHASE_ORDER_STATUS_PURCHASEING);
|
|
|
|
|
|
|
|
|
|
List<MesPurchaseOrder> purchaseOrderList = mesPurchaseOrderMapper.selectMesPurchaseOrderList(queryPurchaseOrder);
|
|
|
|
|
Date currentDate = new Date();
|
|
|
|
|
List<MesPurchaseOrder> overTimePurchaseOrderList = purchaseOrderList.stream()
|
|
|
|
|
.filter(mpo -> mpo.getPlanDeliveryDate()!=null && mpo.getPlanDeliveryDate().getTime() <= currentDate.getTime()).collect(Collectors.toList());
|
|
|
|
|
if(overTimePurchaseOrderList!=null && !overTimePurchaseOrderList.isEmpty()){
|
|
|
|
|
.filter(mpo -> mpo.getPlanDeliveryDate() != null && mpo.getPlanDeliveryDate().getTime() <= currentDate.getTime()).collect(Collectors.toList());
|
|
|
|
|
if (overTimePurchaseOrderList != null && !overTimePurchaseOrderList.isEmpty()) {
|
|
|
|
|
// String nickName = SecurityUtils.getLoginUser().getNickname();
|
|
|
|
|
// for(MesProductOrder mesProductOrder:overTimeProductOrderList){
|
|
|
|
|
List<SysPointRouter> sysPointRouterList = new ArrayList<>();
|
|
|
|
|
SysPointRouter sysPointRouter = getSysPointRouter(null, currentDate);
|
|
|
|
|
SysPointRouter sysPointRouter = getSysPointRouter(null, currentDate);
|
|
|
|
|
sysPointRouterList.add(sysPointRouter);
|
|
|
|
|
remoteSysCommonService.insertSysPointRouterPort(sysPointRouterList, SecurityConstants.INNER);
|
|
|
|
|
// }
|
|
|
|
|
@ -655,6 +654,7 @@ public class MesPurchaseOrderServiceImpl implements IMesPurchaseOrderService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询采购订单信息,Join order_bind 新增原材料条码
|
|
|
|
|
*
|
|
|
|
|
* @param mesPurchaseOrder
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@ -670,7 +670,7 @@ public class MesPurchaseOrderServiceImpl implements IMesPurchaseOrderService {
|
|
|
|
|
sysPointRouter.setPointType(SystemConstants.SYS_ROUTER_POINT_TYPE_ALARM);
|
|
|
|
|
sysPointRouter.setRouterAddress("/mes/plan/purchaseOrder");
|
|
|
|
|
sysPointRouter.setProcessActivityId(SystemConstants.PROCESS_ACTIVITY_ID_PURCHASEORDER_OVERTIME);
|
|
|
|
|
if(purchaseOrderId!=null){
|
|
|
|
|
if (purchaseOrderId != null) {
|
|
|
|
|
JSONObject routerAddressDetailJson = new JSONObject();
|
|
|
|
|
routerAddressDetailJson.put("purchaseOrderId", purchaseOrderId);
|
|
|
|
|
sysPointRouter.setRouterAddressDetail(routerAddressDetailJson.toString());
|
|
|
|
|
|