Browse Source

账期日历

master
廉洪喜 2 years ago
parent
commit
bd73e8b98e
  1. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/AccountcalendarController.java
  2. 61
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/vo/AccountcalendarImportErrorVO.java
  3. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/accountcalendar/AccountcalendarConvert.java
  4. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/accountcalendar/AccountcalendarDO.java
  5. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/accountcalendar/AccountcalendarMapper.java
  6. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/bom/BomMapper.java
  7. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/accountcalendar/AccountcalendarService.java
  8. 74
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/accountcalendar/AccountcalendarServiceImpl.java
  9. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomServiceImpl.java
  10. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java
  11. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarServiceImpl.java

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/AccountcalendarController.java

@ -9,13 +9,9 @@ import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.accountcalendar.vo.*; import com.win.module.wms.controller.accountcalendar.vo.*;
import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO; import com.win.module.wms.controller.bom.vo.BomImportErrorVO;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarRespVO;
import com.win.module.wms.convert.accountcalendar.AccountcalendarConvert; import com.win.module.wms.convert.accountcalendar.AccountcalendarConvert;
import com.win.module.wms.convert.itembasic.ItembasicConvert;
import com.win.module.wms.convert.systemcalendar.SystemcalendarConvert;
import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.accountcalendar.AccountcalendarService; import com.win.module.wms.service.accountcalendar.AccountcalendarService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -167,16 +163,18 @@ public class AccountcalendarController {
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
}) })
@PreAuthorize("@ss.hasPermission('wms:accountcalendar:import')") @PreAuthorize("@ss.hasPermission('wms:accountcalendar:import')")
public void importExcel(HttpServletResponse response, public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file, @RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode, @RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<AccountcalendarImportExcelVo> list = ExcelUtils.read(file, AccountcalendarImportExcelVo.class); List<AccountcalendarImportExcelVo> list = ExcelUtils.read(file, AccountcalendarImportExcelVo.class);
List<AccountcalendarImportExcelVo> errorList = accountcalendarService.importAccountcalendarList(list, mode, updatePart); List<AccountcalendarImportErrorVO> errorList = accountcalendarService.importAccountcalendarList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>(); Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size()); returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) { if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("账期日历导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList); String url = ExcelUtils.writeLocalFile("账期日历导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url); returnMap.put("errorFile", url);
}} }
return success(returnMap);
}
} }

61
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/vo/AccountcalendarImportErrorVO.java

@ -0,0 +1,61 @@
package com.win.module.wms.controller.accountcalendar.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.Builder;
import lombok.Data;
import lombok.ToString;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@Builder
@ToString(callSuper = true)
public class AccountcalendarImportErrorVO {
@ExcelProperty("年")
private String year;
@ExcelProperty("月")
private String month;
@ExcelProperty("描述")
private String descriiption;
@ExcelProperty("开始时间")
@ColumnWidth(value = 16)
private LocalDateTime beginTime;
@ExcelProperty("结束时间")
@ColumnWidth(value = 16)
private LocalDateTime endTime;
@ExcelProperty("转换生效时间")
@ColumnWidth(value = 16)
private LocalDateTime converttotime;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String available;
@ExcelProperty("生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty("失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;
@ExcelProperty(value = "导入说明", index = 1)
private String importRemark;
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/accountcalendar/AccountcalendarConvert.java

@ -2,6 +2,8 @@ package com.win.module.wms.convert.accountcalendar;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.accountcalendar.vo.*; import com.win.module.wms.controller.accountcalendar.vo.*;
import com.win.module.wms.controller.bom.vo.BomImportErrorVO;
import com.win.module.wms.controller.bom.vo.BomImportExcelVo;
import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
@ -32,4 +34,6 @@ public interface AccountcalendarConvert {
List<AccountcalendarExcelVO> convertList02(List<AccountcalendarDO> list); List<AccountcalendarExcelVO> convertList02(List<AccountcalendarDO> list);
AccountcalendarImportErrorVO convert2(AccountcalendarDO bean);
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/accountcalendar/AccountcalendarDO.java

@ -71,10 +71,7 @@ public class AccountcalendarDO extends BaseDO {
* 备注 * 备注
*/ */
private String remark; private String remark;
/**
* 创建者ID
*/
private String creator;
/** /**
* 删除时间 * 删除时间
*/ */

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/accountcalendar/AccountcalendarMapper.java

@ -8,7 +8,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.accountcalendar.vo.AccountcalendarExportReqVO; import com.win.module.wms.controller.accountcalendar.vo.AccountcalendarExportReqVO;
import com.win.module.wms.controller.accountcalendar.vo.AccountcalendarPageReqVO; import com.win.module.wms.controller.accountcalendar.vo.AccountcalendarPageReqVO;
import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.bom.BomDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/bom/BomMapper.java

@ -8,8 +8,6 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.bom.vo.BomExportReqVO; import com.win.module.wms.controller.bom.vo.BomExportReqVO;
import com.win.module.wms.controller.bom.vo.BomPageReqVO; import com.win.module.wms.controller.bom.vo.BomPageReqVO;
import com.win.module.wms.dal.dataobject.bom.BomDO; import com.win.module.wms.dal.dataobject.bom.BomDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/accountcalendar/AccountcalendarService.java

@ -78,5 +78,5 @@ public interface AccountcalendarService {
List<AccountcalendarDO> getAccountcalendarList(AccountcalendarExportReqVO exportReqVO); List<AccountcalendarDO> getAccountcalendarList(AccountcalendarExportReqVO exportReqVO);
List<AccountcalendarImportExcelVo> importAccountcalendarList(List<AccountcalendarImportExcelVo> accountcalendarImportExcelVos, Integer mode, boolean updatePart); List<AccountcalendarImportErrorVO> importAccountcalendarList(List<AccountcalendarImportExcelVo> accountcalendarImportExcelVos, Integer mode, boolean updatePart);
} }

74
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/accountcalendar/AccountcalendarServiceImpl.java

@ -8,10 +8,14 @@ import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils; import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.accountcalendar.vo.*; import com.win.module.wms.controller.accountcalendar.vo.*;
import com.win.module.wms.controller.bom.vo.BomImportErrorVO;
import com.win.module.wms.convert.accountcalendar.AccountcalendarConvert; import com.win.module.wms.convert.accountcalendar.AccountcalendarConvert;
import com.win.module.wms.convert.bom.BomConvert;
import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO;
import com.win.module.wms.dal.dataobject.bom.BomDO;
import com.win.module.wms.dal.mysql.accountcalendar.AccountcalendarMapper; import com.win.module.wms.dal.mysql.accountcalendar.AccountcalendarMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -37,14 +41,15 @@ public class AccountcalendarServiceImpl implements AccountcalendarService {
private AccountcalendarMapper accountcalendarMapper; private AccountcalendarMapper accountcalendarMapper;
@Override @Override
@Transactional
public Long createAccountcalendar(AccountcalendarCreateReqVO createReqVO) { public Long createAccountcalendar(AccountcalendarCreateReqVO createReqVO) {
validateAccountcalendarForCreateOrUpdate(createReqVO.getId(),createReqVO.getAvailable()); validateAccountcalendarForCreateOrUpdate(createReqVO.getId(),createReqVO.getAvailable());
// 插入 // 插入
AccountcalendarDO accountcalendar = AccountcalendarConvert.INSTANCE.convert(createReqVO); AccountcalendarDO accountCalendar = AccountcalendarConvert.INSTANCE.convert(createReqVO);
validateAccountcalendarForCreateOrUpdate(null,createReqVO.getAvailable()); validateAccountcalendarForCreateOrUpdate(null,createReqVO.getAvailable());
accountcalendarMapper.insert(accountcalendar); accountcalendarMapper.insert(accountCalendar);
// 返回 // 返回
return accountcalendar.getId(); return accountCalendar.getId();
} }
@Override @Override
@ -88,47 +93,50 @@ public class AccountcalendarServiceImpl implements AccountcalendarService {
return accountcalendarMapper.selectList(exportReqVO); return accountcalendarMapper.selectList(exportReqVO);
} }
public List<AccountcalendarImportExcelVo> importAccountcalendarList(List<AccountcalendarImportExcelVo> importAccountcalendars, Integer mode, boolean updatePart) { public String validateAccountcalendarImport(AccountcalendarDO importAccountcalendar){
StringBuilder message = new StringBuilder();
try {
validateAccountcalendarExists(null);
} catch (ServiceException ex) {
message.append(ex.getMessage()).append(",");
}
try {
validateAvailableExists(importAccountcalendar.getAvailable());
} catch (ServiceException ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
public List<AccountcalendarImportErrorVO> importAccountcalendarList(List<AccountcalendarImportExcelVo> importAccountcalendars, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(importAccountcalendars)) { if (CollUtil.isEmpty(importAccountcalendars)) {
throw exception(ACCOUNTCALENDAR_IMPORT_LIST_IS_EMPTY); throw exception(ACCOUNTCALENDAR_IMPORT_LIST_IS_EMPTY);
} }
List<AccountcalendarImportExcelVo> errorList = new ArrayList<>(); List<AccountcalendarImportErrorVO> errorList = new ArrayList<>();
importAccountcalendars.forEach(importAccountcalendar -> { importAccountcalendars.forEach(importAccountcalendar -> {
String massage = ""; AccountcalendarDO accountcalendarDO = AccountcalendarConvert.INSTANCE.convert(importAccountcalendar);
// 校验,判断是否有不符合的原因 String massage = this.validateAccountcalendarImport(accountcalendarDO);
if(mode != null){ boolean flag = true;
try { if(!massage.isEmpty()){
validateAccountcalendarExists(null); AccountcalendarImportErrorVO importErrorVO =AccountcalendarConvert.INSTANCE.convert2(accountcalendarDO);
} catch (ServiceException ex) { importErrorVO.setImportStatus("失败");
massage += ex.getMessage() + ","; importErrorVO.setImportRemark(massage.substring(0, massage.length() - 1));
} errorList.add(importErrorVO);
try { flag = false;
validateAvailableExists(importAccountcalendar.getAvailable());
} catch (ServiceException ex) {
massage += ex.getMessage() + ",";
}
} }
if(StrUtil.isNotEmpty(massage)){ if(flag){
massage.substring(0,massage.length()-1);
errorList.add(importAccountcalendar);
} if ( mode != 3) {
if(errorList == null){
// 判断如果不存在,在进行插入
AccountcalendarDO existAccountcalendar = new AccountcalendarDO();
if (existAccountcalendar == null&& mode != 3) {
accountcalendarMapper.insert(AccountcalendarConvert.INSTANCE.convert(importAccountcalendar)); accountcalendarMapper.insert(AccountcalendarConvert.INSTANCE.convert(importAccountcalendar));
} }
else if (existAccountcalendar != null && mode != 2) {// 如果存在,判断是否允许更新 else if ( mode != 2) {
AccountcalendarDO accountcalendarDO = AccountcalendarConvert.INSTANCE.convert(importAccountcalendar); // 如果存在,判断是否允许更新
accountcalendarDO.setId(existAccountcalendar.getId());
accountcalendarMapper.updateById(accountcalendarDO); accountcalendarMapper.updateById(accountcalendarDO);
} }
} }
}); });
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList; return errorList;
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomServiceImpl.java

@ -9,22 +9,15 @@ import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils; import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.bom.vo.*; import com.win.module.wms.controller.bom.vo.*;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
import com.win.module.wms.convert.bom.BomConvert; import com.win.module.wms.convert.bom.BomConvert;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert;
import com.win.module.wms.dal.dataobject.bom.BomDO; import com.win.module.wms.dal.dataobject.bom.BomDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.mysql.bom.BomMapper; import com.win.module.wms.dal.mysql.bom.BomMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java

@ -357,7 +357,7 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
@Transactional @Transactional
public List<InventoryinitRequestMainImportErrorVO> importInventoryinitRequestMainList(List<InventoryinitRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) { public List<InventoryinitRequestMainImportErrorVO> importInventoryinitRequestMainList(List<InventoryinitRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) { if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); throw exception(INVENTORYINIT_REQUEST_MAIN_NOT_EXISTS);
} }
List<InventoryinitRequestMainImportErrorVO> errorList = new ArrayList<>(); List<InventoryinitRequestMainImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> { datas.forEach(createReqVO -> {

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarServiceImpl.java

@ -1,26 +1,20 @@
package com.win.module.wms.service.systemcalendar; package com.win.module.wms.service.systemcalendar;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException; import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils; import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.bom.vo.BomImportErrorVO;
import com.win.module.wms.controller.systemcalendar.vo.*; import com.win.module.wms.controller.systemcalendar.vo.*;
import com.win.module.wms.convert.bom.BomConvert;
import com.win.module.wms.convert.systemcalendar.SystemcalendarConvert; import com.win.module.wms.convert.systemcalendar.SystemcalendarConvert;
import com.win.module.wms.dal.dataobject.bom.BomDO;
import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO; import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO;
import com.win.module.wms.dal.mysql.systemcalendar.SystemcalendarMapper; import com.win.module.wms.dal.mysql.systemcalendar.SystemcalendarMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
@ -136,7 +130,6 @@ public class SystemcalendarServiceImpl implements SystemcalendarService {
} }
} }
}); });
return errorList; return errorList;
} }
@ -150,6 +143,7 @@ public class SystemcalendarServiceImpl implements SystemcalendarService {
}); });
} }
@VisibleForTesting @VisibleForTesting
private void validateSystemcalendarExists(Long id) { private void validateSystemcalendarExists(Long id) {
if (id == null) { if (id == null) {
@ -160,6 +154,7 @@ public class SystemcalendarServiceImpl implements SystemcalendarService {
} }
} }
@VisibleForTesting @VisibleForTesting
private void validateMoubleExists(String mouble) { private void validateMoubleExists(String mouble) {
if (mouble == null) { if (mouble == null) {

Loading…
Cancel
Save