导入物料BUG修改
This commit is contained in:
@@ -7,12 +7,14 @@ import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
|
||||
@SpringBootApplication
|
||||
@EnableRyFeignClients
|
||||
@EnableDiscoveryClient
|
||||
@MapperScan("com.mhd.wms.domain.**.mapper")
|
||||
@EnableMethodCache(basePackages = "com.mhd.platform.domain.**.cache")
|
||||
@EnableAsync
|
||||
@ComponentScan(basePackages = {
|
||||
"com.mhd.wms",
|
||||
"com.mhd.system.api.factory"
|
||||
|
||||
+26
-10
@@ -16,6 +16,8 @@ import com.mhd.wms.domain.materialBaseInfo.entity.MaterialBaseInfo;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.facade.IMaterialBaseInfoService;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.mapper.MaterialBaseInfoMapper;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.todo.MaterialBaseInfoDO;
|
||||
import com.mhd.wms.domain.materialBaseInfo.service.MaterialBaseInfoDomainService;
|
||||
import com.mhd.wms.domain.materialGoodsRule.service.MaterialGoodsRuleDomainService;
|
||||
import com.mhd.wms.domain.materialCommon.service.MaterialCommonDomainService;
|
||||
import com.mhd.wms.domain.materialCommon.repository.todo.MaterialCommonDO;
|
||||
import com.mhd.wms.domain.materialInventoryWarning.service.MaterialInventoryWarningDomainService;
|
||||
@@ -61,6 +63,10 @@ public class MaterialBaseInfoAsyncService {
|
||||
private MaterialInventoryWarningDomainService materialInventoryWarningDomainService;
|
||||
@Autowired
|
||||
private MaterialBarCodeDomainService materialBarCodeDomainService;
|
||||
@Autowired
|
||||
private MaterialBaseInfoDomainService materialBaseInfoDomainService;
|
||||
@Autowired
|
||||
private com.mhd.wms.domain.materialGoodsRule.service.MaterialGoodsRuleDomainService materialGoodsRuleDomainService;
|
||||
|
||||
@Async
|
||||
public void doImportData(File tmpFile, String fileName, LoginUser loginUser) {
|
||||
@@ -191,21 +197,37 @@ public class MaterialBaseInfoAsyncService {
|
||||
materialBaseInfoDO.setMaterialCommon(null);
|
||||
materialBaseInfoDO.setMaterialWarehouseControl(null);
|
||||
materialBaseInfoDO.setMaterialBarCodeList(buildImportBarCodeList(row));
|
||||
// 直接调用 insert,通过自身注入的 materialBaseInfoService
|
||||
materialBaseInfoService.save(convertToEntity(materialBaseInfoDO));
|
||||
Long materialBaseInfoId = materialBaseInfoDO.getMaterialBaseInfoId();
|
||||
|
||||
// 补全创建人信息(异步线程没有 SecurityContext,用 loginUser)
|
||||
if (loginUser != null) {
|
||||
materialBaseInfoDO.setCreateBy(loginUser.getUserid());
|
||||
materialBaseInfoDO.setCreateByName(loginUser.getUsername());
|
||||
}
|
||||
materialBaseInfoDO.setCreateTime(new Date());
|
||||
materialBaseInfoDO.setDelFlag(1);
|
||||
// 通过 domainService 插入,获取自增 ID
|
||||
Long materialBaseInfoId = materialBaseInfoDomainService.insert(materialBaseInfoDO);
|
||||
materialBaseInfoDO.setMaterialBaseInfoId(materialBaseInfoId);
|
||||
// 商品规则
|
||||
com.mhd.wms.domain.materialGoodsRule.repository.todo.MaterialGoodsRuleDO goodsRule = materialBaseInfoDO.getMaterialGoodsRule();
|
||||
if (goodsRule != null) {
|
||||
goodsRule.setMaterialBaseInfoId(materialBaseInfoId);
|
||||
materialGoodsRuleDomainService.insert(goodsRule);
|
||||
}
|
||||
// 公共信息
|
||||
MaterialCommonDO materialCommonDO = materialBaseInfoDO.getMaterialCommon();
|
||||
if (materialCommonDO != null) {
|
||||
materialCommonDO.setMaterialBaseInfoId(materialBaseInfoId);
|
||||
materialCommonDomainService.insert(materialCommonDO);
|
||||
}
|
||||
// 仓库控制信息
|
||||
MaterialWarehouseControlDO materialWarehouseControlDO = materialBaseInfoDO.getMaterialWarehouseControl();
|
||||
if (materialWarehouseControlDO != null) {
|
||||
materialWarehouseControlDO.setMaterialBaseInfoId(materialBaseInfoId);
|
||||
materialWarehouseControlDomainService.insert(materialWarehouseControlDO);
|
||||
}
|
||||
// 库存预警
|
||||
materialInventoryWarningDomainService.batchInsertOrUpdate(materialBaseInfoDO);
|
||||
// 条码信息
|
||||
materialBarCodeDomainService.batchInsertOrUpdate(materialBaseInfoDO);
|
||||
successCount++;
|
||||
} catch (Exception e) {
|
||||
@@ -235,12 +257,6 @@ public class MaterialBaseInfoAsyncService {
|
||||
|
||||
// ====== 以下方法从 MaterialBaseInfoApplicationService 复制,避免循环依赖 ======
|
||||
|
||||
private MaterialBaseInfo convertToEntity(MaterialBaseInfoDO materialBaseInfoDO) {
|
||||
com.mhd.wms.domain.materialBaseInfo.entity.MaterialBaseInfo entity = new com.mhd.wms.domain.materialBaseInfo.entity.MaterialBaseInfo();
|
||||
BeanUtils.copyProperties(materialBaseInfoDO, entity);
|
||||
return entity;
|
||||
}
|
||||
|
||||
private void normalizeImportBarCodeWhenDuplicateOfHs(MaterialBaseInfoDTO row) {
|
||||
if (row == null || StringUtils.isBlank(row.getBarCode())) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user