diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/AccountcalendarController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/AccountcalendarController.java index 75de7ed0..2657f175 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/AccountcalendarController.java +++ b/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.dto.AdminUserRespDTO; import com.win.module.wms.controller.accountcalendar.vo.*; -import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO; -import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarRespVO; +import com.win.module.wms.controller.bom.vo.BomImportErrorVO; 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.itembasic.ItembasicDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.accountcalendar.AccountcalendarService; import io.swagger.v3.oas.annotations.Operation; @@ -167,16 +163,18 @@ public class AccountcalendarController { @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") }) @PreAuthorize("@ss.hasPermission('wms:accountcalendar:import')") - public void importExcel(HttpServletResponse response, - @RequestParam("file") MultipartFile file, - @RequestParam(value = "mode") Integer mode, - @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { + public CommonResult> importExcel(HttpServletResponse response, + @RequestParam("file") MultipartFile file, + @RequestParam(value = "mode") Integer mode, + @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { List list = ExcelUtils.read(file, AccountcalendarImportExcelVo.class); - List errorList = accountcalendarService.importAccountcalendarList(list, mode, updatePart); + List errorList = accountcalendarService.importAccountcalendarList(list, mode, updatePart); Map returnMap = new HashMap<>(); returnMap.put("errorCount", errorList.size()); if(!errorList.isEmpty()) { String url = ExcelUtils.writeLocalFile("账期日历导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList); returnMap.put("errorFile", url); - }} + } + return success(returnMap); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/vo/AccountcalendarImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/vo/AccountcalendarImportErrorVO.java new file mode 100644 index 00000000..18ca1710 --- /dev/null +++ b/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; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnJob/vo/PurchasereturnJobDetailUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnJob/vo/PurchasereturnJobDetailUpdateReqVO.java index a0ca0d4c..d5860390 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnJob/vo/PurchasereturnJobDetailUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnJob/vo/PurchasereturnJobDetailUpdateReqVO.java @@ -3,10 +3,30 @@ package com.win.module.wms.controller.purchasereturnJob.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.math.BigDecimal; + @Schema(description = "管理后台 - 采购退货任务子更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class PurchasereturnJobDetailUpdateReqVO extends PurchasereturnJobDetailBaseVO { + @Schema(description = "实际收货数量") + private BigDecimal handleQty; + + @Schema(description = "到包装") + private String toPackingNumber; + + @Schema(description = "到器具") + private String toContainerNumber; + + @Schema(description = "到批次") + private String toBatch; + + @Schema(description = "到库存状态") + private String toInventoryStatus; + + @Schema(description = "到库位") + private String toLocationCode; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/accountcalendar/AccountcalendarConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/accountcalendar/AccountcalendarConvert.java index 0fde6b44..4de45020 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/accountcalendar/AccountcalendarConvert.java +++ b/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.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 org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @@ -32,4 +34,6 @@ public interface AccountcalendarConvert { List convertList02(List list); + AccountcalendarImportErrorVO convert2(AccountcalendarDO bean); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/accountcalendar/AccountcalendarDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/accountcalendar/AccountcalendarDO.java index fc347c4f..4e03251b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/accountcalendar/AccountcalendarDO.java +++ b/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; - /** - * 创建者ID - */ - private String creator; + /** * 删除时间 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/accountcalendar/AccountcalendarMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/accountcalendar/AccountcalendarMapper.java index 3e6915aa..7f1d0593 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/accountcalendar/AccountcalendarMapper.java +++ b/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.AccountcalendarPageReqVO; 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 java.util.List; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/bom/BomMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/bom/BomMapper.java index b5fb5ad5..0109e978 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/bom/BomMapper.java +++ b/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.BomPageReqVO; 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 java.util.List; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/accountcalendar/AccountcalendarService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/accountcalendar/AccountcalendarService.java index dabc9f03..675d1c0a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/accountcalendar/AccountcalendarService.java +++ b/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 getAccountcalendarList(AccountcalendarExportReqVO exportReqVO); - List importAccountcalendarList(List accountcalendarImportExcelVos, Integer mode, boolean updatePart); + List importAccountcalendarList(List accountcalendarImportExcelVos, Integer mode, boolean updatePart); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/accountcalendar/AccountcalendarServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/accountcalendar/AccountcalendarServiceImpl.java index b1de58c8..e2e23e4e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/accountcalendar/AccountcalendarServiceImpl.java +++ b/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.datapermission.core.util.DataPermissionUtils; 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.bom.BomConvert; 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 org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; @@ -37,14 +41,15 @@ public class AccountcalendarServiceImpl implements AccountcalendarService { private AccountcalendarMapper accountcalendarMapper; @Override + @Transactional public Long createAccountcalendar(AccountcalendarCreateReqVO createReqVO) { validateAccountcalendarForCreateOrUpdate(createReqVO.getId(),createReqVO.getAvailable()); // 插入 - AccountcalendarDO accountcalendar = AccountcalendarConvert.INSTANCE.convert(createReqVO); + AccountcalendarDO accountCalendar = AccountcalendarConvert.INSTANCE.convert(createReqVO); validateAccountcalendarForCreateOrUpdate(null,createReqVO.getAvailable()); - accountcalendarMapper.insert(accountcalendar); + accountcalendarMapper.insert(accountCalendar); // 返回 - return accountcalendar.getId(); + return accountCalendar.getId(); } @Override @@ -88,47 +93,50 @@ public class AccountcalendarServiceImpl implements AccountcalendarService { return accountcalendarMapper.selectList(exportReqVO); } - public List importAccountcalendarList(List 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 importAccountcalendarList(List importAccountcalendars, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(importAccountcalendars)) { throw exception(ACCOUNTCALENDAR_IMPORT_LIST_IS_EMPTY); } - List errorList = new ArrayList<>(); + List errorList = new ArrayList<>(); importAccountcalendars.forEach(importAccountcalendar -> { - String massage = ""; - // 校验,判断是否有不符合的原因 - if(mode != null){ - try { - validateAccountcalendarExists(null); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } - try { - validateAvailableExists(importAccountcalendar.getAvailable()); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } + AccountcalendarDO accountcalendarDO = AccountcalendarConvert.INSTANCE.convert(importAccountcalendar); + String massage = this.validateAccountcalendarImport(accountcalendarDO); + boolean flag = true; + if(!massage.isEmpty()){ + AccountcalendarImportErrorVO importErrorVO =AccountcalendarConvert.INSTANCE.convert2(accountcalendarDO); + importErrorVO.setImportStatus("失败"); + importErrorVO.setImportRemark(massage.substring(0, massage.length() - 1)); + errorList.add(importErrorVO); + flag = false; } - if(StrUtil.isNotEmpty(massage)){ - massage.substring(0,massage.length()-1); - errorList.add(importAccountcalendar); - } - if(errorList == null){ - // 判断如果不存在,在进行插入 - AccountcalendarDO existAccountcalendar = new AccountcalendarDO(); - if (existAccountcalendar == null&& mode != 3) { + if(flag){ + + + if ( mode != 3) { accountcalendarMapper.insert(AccountcalendarConvert.INSTANCE.convert(importAccountcalendar)); } - else if (existAccountcalendar != null && mode != 2) {// 如果存在,判断是否允许更新 - AccountcalendarDO accountcalendarDO = AccountcalendarConvert.INSTANCE.convert(importAccountcalendar); - accountcalendarDO.setId(existAccountcalendar.getId()); + else if ( mode != 2) { + // 如果存在,判断是否允许更新 accountcalendarMapper.updateById(accountcalendarDO); } } }); - //错误不为空并非部分更新,手工回滚 - if(!errorList.isEmpty() && !updatePart) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } + return errorList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomServiceImpl.java index 946e4529..6e79ad60 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomServiceImpl.java +++ b/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.datapermission.core.util.DataPermissionUtils; 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.purchasereceiptRequest.PurchasereceiptRequestMainConvert; 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 org.springframework.stereotype.Service; -import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java index f5cdfdc0..e7500bad 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java @@ -25,12 +25,12 @@ import com.win.module.wms.dal.mysql.inspectJob.InspectJobDetailMapper; import com.win.module.wms.dal.mysql.inspectJob.InspectJobMainMapper; import com.win.module.wms.dal.mysql.inspectRecord.InspectRecordDetailMapper; import com.win.module.wms.dal.mysql.inspectRecord.InspectRecordMainMapper; +import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestDetailMapper; import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestMainMapper; import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.job.JobStatusState; import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.expectin.ExpectinService; -import com.win.module.wms.service.inspectRequest.InspectRequestDetailService; import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.util.JobUtils; import org.springframework.beans.BeanUtils; @@ -84,7 +84,7 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { @Resource private BalanceMapper balanceMapper; @Resource - private InspectRequestDetailService inspectRequestDetailService; + private InspectRequestDetailMapper inspectRequestDetailMapper; @Override public InspectJobMainDO getInspectJobMain(Long id) { @@ -318,6 +318,7 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { //全检,再次生成检验申请 if(inspectJobMainUpdateReqVO.getNextAction().equals("FULL_INSPECT")) { InspectRequestMainDO requestMainDO = inspectRequestMainMapper.selectByNumber(inspectJobMainUpdateReqVO.getRequestNumber()); + List requestDetailDOList = inspectRequestDetailMapper.selectList(requestMainDO.getId()); String requestNumber = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_REQUEST.getCode()); requestMainDO.setNumber(requestNumber); requestMainDO.setSampleQty(requestMainDO.getReceiveQty()); @@ -330,7 +331,6 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { requestMainDO.setUpdater(null); requestMainDO.setUpdateTime(null); inspectRequestMainMapper.insert(requestMainDO); - List requestDetailDOList = inspectRequestDetailService.selectList(requestMainDO.getId()); for(InspectRequestDetailDO inspectRequestDetailDO : requestDetailDOList) { inspectRequestDetailDO.setId(null); inspectRequestDetailDO.setCreator(null); @@ -340,6 +340,7 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { inspectRequestDetailDO.setMasterId(requestMainDO.getId()); inspectRequestDetailDO.setNumber(requestNumber); } + inspectRequestDetailMapper.insertBatch(requestDetailDOList); } else { //增加库存事务 transactionService.createTransaction(transactionCreateReqVOList); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java index 63cbdf08..63877a3e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java +++ b/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 public List importInventoryinitRequestMainList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) { - throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); + throw exception(INVENTORYINIT_REQUEST_MAIN_NOT_EXISTS); } List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnJob/PurchasereturnJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnJob/PurchasereturnJobMainServiceImpl.java index 2e66e2ee..a3f58530 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnJob/PurchasereturnJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnJob/PurchasereturnJobMainServiceImpl.java @@ -15,6 +15,8 @@ import com.win.module.wms.controller.purchasereturnJob.vo.PurchasereturnJobMainE import com.win.module.wms.controller.purchasereturnJob.vo.PurchasereturnJobMainPageReqVO; import com.win.module.wms.controller.purchasereturnJob.vo.PurchasereturnJobMainUpdateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.convert.purchasereturnJob.PurchasereturnJobDetailConvert; +import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.purchasereturnJob.PurchasereturnJobDetailDO; import com.win.module.wms.dal.dataobject.purchasereturnJob.PurchasereturnJobMainDO; @@ -23,6 +25,7 @@ import com.win.module.wms.dal.dataobject.purchasereturnRecord.PurchasereturnReco import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import com.win.module.wms.dal.dataobject.supplierdeliverRecord.SupplierdeliverRecordDetailDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; +import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.purchasereturnJob.PurchasereturnJobMainMapper; import com.win.module.wms.dal.mysql.purchasereturnRecord.PurchasereturnRecordDetailMapper; import com.win.module.wms.dal.mysql.purchasereturnRecord.PurchasereturnRecordMainMapper; @@ -86,6 +89,8 @@ public class PurchasereturnJobMainServiceImpl implements PurchasereturnJobMainSe private SerialNumberApi serialNumberApi; @Resource private JobUtils jobUtils; + @Resource + private BalanceMapper balanceMapper; @Override public PageResult getPurchasereturnJobMainSenior(CustomConditions conditions) { @@ -204,7 +209,6 @@ public class PurchasereturnJobMainServiceImpl implements PurchasereturnJobMainSe public String executePurchasereturnJobMain(PurchasereturnJobMainUpdateReqVO purchasereturnJobMainUpdateReqVO) { //查询数据 PurchasereturnJobMainDO purchasereturnJobMainDO = this.validatePurchasereturnJobMainExists(purchasereturnJobMainUpdateReqVO.getId()); - List subList = purchasereturnJobDetailService.selectList(purchasereturnJobMainDO.getId()); JobStatusState jobStatusState = new JobStatusState(purchasereturnJobMainDO.getStatus()); boolean flag = jobStatusState.execute(); if(!flag) { @@ -236,16 +240,22 @@ public class PurchasereturnJobMainServiceImpl implements PurchasereturnJobMainSe List purchasereturnRecordDetailDOList = new ArrayList<>(); //库存事务 List transactionCreateReqVOList = new ArrayList<>(); - for(PurchasereturnJobDetailDO purchasereturnJobDetailDO : subList) { + for(PurchasereturnJobDetailUpdateReqVO purchasereturnJobDetailUpdateReqVO : purchasereturnJobDetailUpdateReqVOList) { + PurchasereturnJobDetailDO purchasereturnJobDetailDO = PurchasereturnJobDetailConvert.INSTANCE.convert(purchasereturnJobDetailUpdateReqVO); PurchasereturnRecordDetailDO purchasereturnRecordDetailDO = new PurchasereturnRecordDetailDO(); BeanUtils.copyProperties(purchasereturnJobDetailDO, purchasereturnRecordDetailDO); purchasereturnRecordDetailDO.setMasterId(purchasereturnRecordMainDO.getId()); purchasereturnRecordDetailDO.setNumber(number); purchasereturnRecordDetailDO.setJobDetailId(String.valueOf(purchasereturnJobDetailDO.getId())); - purchasereturnRecordDetailDO.setFromBatch(purchasereturnJobDetailDO.getBatch()); - purchasereturnRecordDetailDO.setToBatch(purchasereturnJobDetailDO.getBatch()); purchasereturnRecordDetailDO.setFromPackingNumber(purchasereturnJobDetailDO.getPackingNumber()); - purchasereturnRecordDetailDO.setToPackingNumber(purchasereturnJobDetailDO.getPackingNumber()); + purchasereturnRecordDetailDO.setToPackingNumber(purchasereturnJobDetailUpdateReqVO.getToPackingNumber()); + purchasereturnRecordDetailDO.setFromContainerNumber(purchasereturnJobDetailDO.getContainerNumber()); + purchasereturnRecordDetailDO.setToContainerNumber(purchasereturnJobDetailUpdateReqVO.getToContainerNumber()); + purchasereturnRecordDetailDO.setQty(purchasereturnJobDetailUpdateReqVO.getHandleQty()); + purchasereturnRecordDetailDO.setFromBatch(purchasereturnJobDetailDO.getBatch()); + purchasereturnRecordDetailDO.setToBatch(purchasereturnJobDetailUpdateReqVO.getToBatch()); + purchasereturnRecordDetailDO.setInventoryStatus(purchasereturnJobDetailUpdateReqVO.getToInventoryStatus()); + purchasereturnRecordDetailDO.setToLocationCode(purchasereturnJobDetailUpdateReqVO.getToLocationCode()); purchasereturnRecordDetailDO.setId(null); purchasereturnRecordDetailDO.setCreateTime(null); purchasereturnRecordDetailDO.setCreator(null); @@ -254,21 +264,52 @@ public class PurchasereturnJobMainServiceImpl implements PurchasereturnJobMainSe purchasereturnRecordDetailDOList.add(purchasereturnRecordDetailDO); //更新采购订单明细的退货数量 purchaseMainService.updateOrderPurchaseReturnQty(purchasereturnRecordDetailDO.getPoNumber(), purchasereturnRecordDetailDO.getPoLine(), purchasereturnRecordDetailDO.getItemCode(), purchasereturnRecordDetailDO.getQty()); + //查询库存余额 + BalanceDO balanceDO = balanceMapper.getBalanceQty(purchasereturnRecordDetailDO.getFromPackingNumber(), purchasereturnRecordDetailDO.getItemCode(), purchasereturnRecordDetailDO.getFromBatch(), purchasereturnRecordDetailDO.getInventoryStatus(), purchasereturnRecordDetailDO.getFromLocationCode()); //添加库存事务list - TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); - BeanUtils.copyProperties(purchasereturnRecordDetailDO, transactionCreateReqVO); + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(purchasereturnRecordDetailDO, transactionCreateReqVOOut); //增加业务类型 BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReurnJob"); - transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); - TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); - transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); - transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); - transactionCreateReqVO.setBusinessType(purchasereturnRecordMainDO.getBusinessType()); - transactionCreateReqVO.setLocationCode(purchasereturnJobDetailDO.getFromLocationCode()); - transactionCreateReqVO.setOwnerCode(purchasereturnRecordDetailDO.getFromOwnerCode()); - transactionCreateReqVO.setRecordNumber(number); - transactionCreateReqVO.setId(null); - transactionCreateReqVOList.add(transactionCreateReqVO); + transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactionTypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setInventoryAction(transactionTypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactionTypeDOOut.getCode()); + transactionCreateReqVOOut.setBusinessType(purchasereturnRecordMainDO.getBusinessType()); + transactionCreateReqVOOut.setLocationCode(purchasereturnJobDetailDO.getFromLocationCode()); + transactionCreateReqVOOut.setOwnerCode(purchasereturnRecordDetailDO.getFromOwnerCode()); + transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice()); + transactionCreateReqVOOut.setAmount(balanceDO.getAmount()); + transactionCreateReqVOOut.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVOOut.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate()); + transactionCreateReqVOOut.setRecordNumber(number); + transactionCreateReqVOOut.setQty(purchasereturnJobDetailUpdateReqVO.getHandleQty()); + transactionCreateReqVOOut.setInventoryStatus(purchasereturnJobDetailUpdateReqVO.getInventoryStatus()); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOOut); + //判断businesstypeDO.getInTransactionType()是否为空,不为空时增加入库存事务 + if(businesstypeDO.getInTransactionType() != null && !businesstypeDO.getInTransactionType().isEmpty()) { + //增加入库存事务 + TransactiontypeDO transactionTypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(purchasereturnRecordDetailDO, transactionCreateReqVOIn); + transactionCreateReqVOIn.setInventoryAction(transactionTypeDOIn.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactionTypeDOIn.getCode()); + transactionCreateReqVOIn.setBusinessType(purchasereturnRecordMainDO.getBusinessType()); + transactionCreateReqVOIn.setLocationCode(purchasereturnJobDetailDO.getToLocationCode()); + transactionCreateReqVOIn.setOwnerCode(purchasereturnRecordDetailDO.getToOwnerCode()); + transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); + transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); + transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setQty(purchasereturnJobDetailUpdateReqVO.getHandleQty()); + transactionCreateReqVOIn.setInventoryStatus(purchasereturnJobDetailUpdateReqVO.getToInventoryStatus()); + transactionCreateReqVOIn.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOIn); + } } purchasereturnRecordDetailMapper.insertBatch(purchasereturnRecordDetailDOList); List typeList = new ArrayList<>(); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java index 354e6103..51912e83 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java @@ -114,13 +114,14 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque List subDOList = PurchasereturnRequestDetailConvert.INSTANCE.convertList03(createReqVO.getSubList()); validatorToCreate(mainDO, subDOList); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); + mainDO.setRequestTime(LocalDateTime.now()); mainDO.setNumber(number); + purchasereturnRequestMainMapper.insert(mainDO); for (PurchasereturnRequestDetailDO detailDO : subDOList) { detailDO.setId(null); detailDO.setMasterId(mainDO.getId()); detailDO.setNumber(number); } - purchasereturnRequestMainMapper.insert(mainDO); purchasereturnRequestDetailMapper.insertBatch(subDOList); //调用自动执行方法 if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { @@ -356,6 +357,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque purchasereturnJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete()); purchasereturnJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); purchasereturnJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); + purchasereturnJobMainDO.setRequestTime(mainDO.getRequestTime()); purchasereturnJobMainDO.setId(null); purchasereturnJobMainDO.setCreateTime(null); purchasereturnJobMainDO.setCreator(null); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarServiceImpl.java index ba8b7224..61cc3a3f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarServiceImpl.java +++ b/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; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.StrUtil; import com.google.common.annotations.VisibleForTesting; 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.systemcalendar.vo.*; -import com.win.module.wms.convert.bom.BomConvert; 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.mysql.systemcalendar.SystemcalendarMapper; import org.springframework.stereotype.Service; -import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -136,7 +130,6 @@ public class SystemcalendarServiceImpl implements SystemcalendarService { } } }); - return errorList; } @@ -150,6 +143,7 @@ public class SystemcalendarServiceImpl implements SystemcalendarService { }); } + @VisibleForTesting private void validateSystemcalendarExists(Long id) { if (id == null) { @@ -160,6 +154,7 @@ public class SystemcalendarServiceImpl implements SystemcalendarService { } } + @VisibleForTesting private void validateMoubleExists(String mouble) { if (mouble == null) {