diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/SupplieritemController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/SupplieritemController.java index e0d9515b..f3c3ae4d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/SupplieritemController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/SupplieritemController.java @@ -10,6 +10,7 @@ import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO; import com.win.module.wms.controller.purchaseprice.vo.PurchasepriceRespVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO; import com.win.module.wms.controller.supplieritem.vo.*; import com.win.module.wms.convert.itembasic.ItembasicConvert; import com.win.module.wms.convert.purchaseprice.PurchasepriceConvert; @@ -191,7 +192,7 @@ public class SupplieritemController { @RequestParam(value = "mode") Integer mode, @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { List list = ExcelUtils.read(file, SupplieriteamImportExcelVo.class); - List errorList = supplieritemService.importSupplieriteamList(list, mode, updatePart); + List errorList = supplieritemService.importSupplieriteamList(list, mode, updatePart); Map returnMap = new HashMap<>(); returnMap.put("errorCount", errorList.size()); if(!errorList.isEmpty()) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/vo/SupplieriteamImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/vo/SupplieriteamImportErrorVO.java new file mode 100644 index 00000000..45ef0bf4 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/vo/SupplieriteamImportErrorVO.java @@ -0,0 +1,89 @@ +package com.win.module.wms.controller.supplieritem.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.framework.excel.core.convert.DictConvert; +import com.win.module.wms.enums.DictTypeConstants; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@ToString(callSuper = true) +public class SupplieriteamImportErrorVO { + @ExcelProperty("供应商代码") + private String supplierCode; + + @ExcelProperty("物料代码") + private String itemCode; + + @ExcelProperty("供应商物料代码") + private String supplierItemCode; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String supplierUom; + + @ExcelProperty("转换率") + private BigDecimal convertRate; + + @ExcelProperty(value = "供应商包装单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.PACK_UNIT) + private String packUnit; + + @ExcelProperty("供应商包装数量") + private BigDecimal packQty; + + @ExcelProperty(value = "供应商代替包装单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.PACK_UNIT) + private String altPackUnit; + + @ExcelProperty("供应商代替包装数量") + private BigDecimal altPackQty; + + @ExcelProperty("每器具包装数") + private Integer packQtyOfContainer; + + @ExcelProperty("默认收货仓库") + private String defaultWarehouseCode; + + @ExcelProperty("默认收货库位") + private String defaultLocationCode; + + @ExcelProperty(value = "包装结算方式", converter = DictConvert.class) + @DictFormat(DictTypeConstants.SETTLEMENT_TYPE) + private String settlementType; + + @ExcelProperty(value = "是否可用", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) + private String available; + + @ExcelProperty(value = "生效时间") + @ColumnWidth(value = 16) + private LocalDateTime activeTime; + + @ExcelProperty(value = "失效时间") + @ColumnWidth(value = 16) + private LocalDateTime expireTime; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty(value = "导入状态", index = 0) + private String importStatus; + + @ExcelProperty(value = "导入说明", index = 1) + private String importRemark; + + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplieritem/SupplieritemConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplieritem/SupplieritemConvert.java index ab6c60b5..45831586 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplieritem/SupplieritemConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplieritem/SupplieritemConvert.java @@ -4,11 +4,7 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.supplieritem.vo.SupplieritemCreateReqVO; -import com.win.module.wms.controller.supplieritem.vo.SupplieritemExcelVO; -import com.win.module.wms.controller.supplieritem.vo.SupplieritemRespVO; -import com.win.module.wms.controller.supplieritem.vo.SupplieritemUpdateReqVO; -import com.win.module.wms.controller.supplieritem.vo.SupplieriteamImportExcelVo; +import com.win.module.wms.controller.supplieritem.vo.*; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; @@ -37,4 +33,6 @@ public interface SupplieritemConvert { SupplieritemDO convert(SupplieriteamImportExcelVo bean); + SupplieriteamImportErrorVO convert2(SupplieritemDO bean); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemService.java index 7860067f..2b372121 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemService.java @@ -4,11 +4,7 @@ import java.util.*; import javax.validation.*; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.supplieritem.vo.SupplieritemCreateReqVO; -import com.win.module.wms.controller.supplieritem.vo.SupplieritemExportReqVO; -import com.win.module.wms.controller.supplieritem.vo.SupplieritemPageReqVO; -import com.win.module.wms.controller.supplieritem.vo.SupplieritemUpdateReqVO; -import com.win.module.wms.controller.supplieritem.vo.SupplieriteamImportExcelVo; +import com.win.module.wms.controller.supplieritem.vo.*; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; import com.win.framework.common.pojo.PageResult; @@ -81,7 +77,7 @@ public interface SupplieritemService { */ List getSupplieritemList(SupplieritemExportReqVO exportReqVO); - List importSupplieriteamList(List importTeam, Integer mode, boolean updatePart); + List importSupplieriteamList(List importTeam, Integer mode, boolean updatePart); /** * BQ----QSI diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java index abb5d825..0fed2e23 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java @@ -8,8 +8,11 @@ import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.framework.datapermission.core.util.DataPermissionUtils; +import com.win.module.wms.controller.bom.vo.BomImportErrorVO; import com.win.module.wms.controller.supplieritem.vo.*; +import com.win.module.wms.convert.bom.BomConvert; import com.win.module.wms.convert.supplieritem.SupplieritemConvert; +import com.win.module.wms.dal.dataobject.bom.BomDO; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; import com.win.module.wms.dal.mysql.supplieritem.SupplieritemMapper; import org.springframework.stereotype.Service; @@ -90,64 +93,70 @@ public class SupplieritemServiceImpl implements SupplieritemService { public List getSupplieritemList(SupplieritemExportReqVO exportReqVO) { return supplieritemMapper.selectList(exportReqVO); } + private String validateSupplieritemImport( SupplieritemDO supplieriteam ){ + StringBuilder message = new StringBuilder(); + try { + validateSupplieritemExists(null); + } catch (ServiceException ex) { + message.append(ex.getMessage()).append(","); + } + try { + validateItemCodeExists(null,supplieriteam.getItemCode()); + } catch (ServiceException ex) { + message.append(ex.getMessage()).append(","); + } + try { + validateSupperCodeExists(supplieriteam.getSupplierCode()); + } catch (ServiceException ex) { + message.append(ex.getMessage()).append(","); + } + try { + validatePackunitExists(supplieriteam.getPackUnit()); + } catch (ServiceException ex) { + message.append(ex.getMessage()).append(","); + } + try { + validatePackQtyExists(supplieriteam.getPackQty()); + } catch (ServiceException ex) { + message.append(ex.getMessage()).append(","); + } + try { + validateAvailableExists(supplieriteam.getAvailable()); + } catch (ServiceException ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } - public List importSupplieriteamList(List supplieriteams, Integer mode, boolean updatePart) { + + public List importSupplieriteamList(List supplieriteams, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(supplieriteams)) { throw exception(SUPPLIERITEM_IMPORT_LIST_IS_EMPTY); } - List errorList = new ArrayList<>(); + List errorList = new ArrayList<>(); supplieriteams.forEach(supplieriteam -> { - // 校验,判断是否有不符合的原因 - String massage = ""; - if(mode != null){ - try { - validateSupplieritemExists(null); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } - try { - validateItemCodeExists(null,supplieriteam.getItemCode()); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } - try { - validateSupperCodeExists(supplieriteam.getSupplierCode()); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } - try { - validatePackunitExists(supplieriteam.getPackUnit()); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } - try { - validatePackQtyExists(supplieriteam.getPackQty()); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } - try { - validateAvailableExists(supplieriteam.getAvailable()); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } - } - - - // 判断如果不存在,在进行插入 - SupplieritemDO existSupplieriteam = supplieritemMapper.selectBySuppercode(supplieriteam.getSupplierCode()); - if (existSupplieriteam == null&& mode != 3) { - supplieritemMapper.insert(SupplieritemConvert.INSTANCE.convert(supplieriteam)); + SupplieritemDO supplieritemDO = SupplieritemConvert.INSTANCE.convert(supplieriteam); + String massage = this.validateSupplieritemImport(supplieritemDO); + boolean flag = true; + if(!massage.isEmpty()){ + SupplieriteamImportErrorVO importErrorVO = SupplieritemConvert.INSTANCE.convert2(supplieritemDO); + importErrorVO.setImportStatus("失败"); + importErrorVO.setImportRemark(massage.substring(0, massage.length() - 1)); + errorList.add(importErrorVO); + flag = false; } - else if (existSupplieriteam != null && mode != 2) {// 如果存在,判断是否允许更新 - SupplieritemDO supplieriteamDO = SupplieritemConvert.INSTANCE.convert(supplieriteam); - supplieriteamDO.setId(existSupplieriteam.getId()); - supplieritemMapper.updateById(supplieriteamDO); + if(flag){ + SupplieritemDO existSupplieriteam = supplieritemMapper.selectBySuppercode(supplieriteam.getSupplierCode()); + if (existSupplieriteam == null&& mode != 3) { + supplieritemMapper.insert(supplieritemDO); + } + else if (existSupplieriteam != null && mode != 2) { + // 如果存在,判断是否允许更新 + supplieritemDO.setId(existSupplieriteam.getId()); + supplieritemMapper.updateById(supplieritemDO); + } } }); - //错误不为空并非部分更新,手工回滚 - if(!errorList.isEmpty() && !updatePart) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } return errorList; }