|
|
@ -1,12 +1,14 @@ |
|
|
|
package com.win.module.wms.service.productionlineitem; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.google.common.annotations.VisibleForTesting; |
|
|
|
import com.win.framework.common.exception.ServiceException; |
|
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
|
import com.win.framework.datapermission.core.util.DataPermissionUtils; |
|
|
|
import com.win.module.wms.controller.productionlineitem.vo.*; |
|
|
|
import com.win.module.wms.convert.productionlineitem.ProductionlineitemConvert; |
|
|
|
import com.win.module.wms.dal.dataobject.customerdock.CustomerdockDO; |
|
|
|
import com.win.module.wms.dal.dataobject.owner.OwnerDO; |
|
|
|
import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO; |
|
|
|
import com.win.module.wms.dal.mysql.productionlineitem.ProductionlineitemMapper; |
|
|
@ -94,7 +96,8 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService |
|
|
|
try { |
|
|
|
if (mode != null) { |
|
|
|
validateProcessForCreateOrUpdate(null, productionlineItem.getFgLocationCode(), productionlineItem.getProductionLineCode() |
|
|
|
,productionlineItem.getItemCode(),productionlineItem.getAvailable());} |
|
|
|
, productionlineItem.getItemCode(), productionlineItem.getAvailable()); |
|
|
|
} |
|
|
|
} catch (ServiceException ex) { |
|
|
|
errorList.add(productionlineItem); |
|
|
|
return; |
|
|
@ -103,8 +106,7 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService |
|
|
|
OwnerDO existConfigurationSetting = null; |
|
|
|
if (existConfigurationSetting == null && mode != 3) { |
|
|
|
productionlineitemMapper.insert(ProductionlineitemConvert.INSTANCE.convert(productionlineItem)); |
|
|
|
} |
|
|
|
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
|
|
|
|
} else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
|
|
|
|
ProductionlineitemDO productionlineItemDo = ProductionlineitemConvert.INSTANCE.convert(productionlineItem); |
|
|
|
productionlineItemDo.setId(existConfigurationSetting.getId()); |
|
|
|
productionlineitemMapper.updateById(productionlineItemDo); |
|
|
@ -116,6 +118,7 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService |
|
|
|
} |
|
|
|
return errorList; |
|
|
|
} |
|
|
|
|
|
|
|
private void validateProcessForCreateOrUpdate(Long id, String fgLocationCode, String productionLineCode, String itemCode, String available) { |
|
|
|
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
|
|
|
|
DataPermissionUtils.executeIgnore(() -> { |
|
|
@ -136,28 +139,47 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService |
|
|
|
throw exception(PRODUCTIONLINEITEM_NOT_EXISTS); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@VisibleForTesting |
|
|
|
private void validateFgLocationCodeExists(String fgLocationCode) { |
|
|
|
if (fgLocationCode.isEmpty()) { |
|
|
|
throw exception(PRODUCTIONLINEITEM_FGLOCATION_CODE_NOT_EXISTS); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@VisibleForTesting |
|
|
|
private void validateProductionLineCodeExists(String productionLineCode) { |
|
|
|
if (productionLineCode.isEmpty()) { |
|
|
|
throw exception(PRODUCTIONLINEITEM_PRODUCT_LINE_COED_NOT_EXISTS); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@VisibleForTesting |
|
|
|
private void validateItemCodeExists(String itemCode) { |
|
|
|
if (itemCode.isEmpty()) { |
|
|
|
throw exception(PRODUCTIONLINEITEM_ITEM_CODE_NOT_EXISTS); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@VisibleForTesting |
|
|
|
private void validateAvailableExists(String available) { |
|
|
|
if (available.isEmpty()) { |
|
|
|
throw exception(PRODUCTIONLINEITEM_AVAILABLE_NOT_EXISTS); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public ProductionlineitemDO ProductionlineitemExist(String code, String linecode) { |
|
|
|
QueryWrapper queryWrapper = new QueryWrapper(); |
|
|
|
queryWrapper.eq("code", code); |
|
|
|
queryWrapper.eq("linecode", linecode); |
|
|
|
ProductionlineitemDO productionlineitemDO = productionlineitemMapper.selectOne(queryWrapper); |
|
|
|
if (productionlineitemDO != null && productionlineitemDO.getAvailable().equals("TRUE")) { |
|
|
|
return productionlineitemDO; |
|
|
|
} else { |
|
|
|
throw exception(CUSTOMERDOCK_NOT_EXISTS); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|