Browse Source

Merge remote-tracking branch 'origin/master'

master
赵雪冰 2 years ago
parent
commit
bdb9d41957
  1. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/balance/BalanceController.java
  2. 62
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/board/BoardController.java
  3. 32
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java
  4. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueJob/IssueJobDetailMapper.java
  5. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/production/ProductionDetailMapper.java
  6. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java
  7. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainService.java
  8. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java
  9. 21
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java
  10. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/demandforecasting/DemandforecastingMainServiceImpl.java
  11. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/dock/DockService.java
  12. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/dock/DockServiceImpl.java
  13. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobDetailService.java
  14. 28
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobDetailServiceImpl.java
  15. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationServiceImpl.java
  16. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionDetailService.java
  17. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionDetailServiceImpl.java
  18. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionMainServiceImpl.java
  19. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java
  20. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java
  21. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java
  22. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java
  23. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java
  24. 13
      win-module-wms/win-module-wms-biz/src/main/resources/mapper/issueJob/IssueJobDetailMapper.xml
  25. 12
      win-module-wms/win-module-wms-biz/src/main/resources/mapper/production/ProductionDetailMapper.xml

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/balance/BalanceController.java

@ -11,6 +11,7 @@ import com.win.module.wms.controller.balance.vo.*;
import com.win.module.wms.convert.balance.BalanceConvert;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.service.balance.BalanceService;
import com.win.module.wms.util.JobUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
@ -36,6 +37,8 @@ public class BalanceController {
private BalanceService balanceService;
@Resource
private AdminUserApi userApi;
@Resource
private JobUtils jobUtils;
@PutMapping("/update")
@Operation(summary = "更新库存余额")
@ -116,4 +119,12 @@ public class BalanceController {
return success(result);
}
@GetMapping("/pageLocationCodeToBalance")
@Operation(summary = "获得库位代码筛选出的库存余额分页")
@PreAuthorize("@ss.hasPermission('wms:balance:query')")
public CommonResult<PageResult<BalanceRespVO>> selectLocationTypeToBalance() {
PageResult<BalanceDO> okToHold = jobUtils.selectLocationTypeToBalance("OkToHoldRequest");
PageResult<BalanceRespVO> balanceRespVOPageResult = BalanceConvert.INSTANCE.convertPage(okToHold);
return success(balanceRespVOPageResult);
}
}

62
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/board/BoardController.java

@ -0,0 +1,62 @@
package com.win.module.wms.controller.board;
import com.win.framework.common.pojo.CommonResult;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainRespVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainRespVO;
import com.win.module.wms.service.deliverJob.DeliverJobMainService;
import com.win.module.wms.service.issueJob.IssueJobDetailService;
import com.win.module.wms.service.production.ProductionDetailService;
import com.win.module.wms.service.purchasereceiptJob.PurchasereceiptJobMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import static com.win.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 看板")
@RestController
@RequestMapping("/wms/board")
@Validated
public class BoardController {
@Resource
private PurchasereceiptJobMainService purchasereceiptJobMainService;
@Resource
private IssueJobDetailService issueJobDetailService;
@Resource
private DeliverJobMainService deliverJobMainService;
@Resource
private ProductionDetailService productionDetailService;
@GetMapping("/purchasereceipt")
@Operation(summary = "采购到货看板")
public CommonResult<List<PurchasereceiptJobMainRespVO>> purchasereceipt() {
return success(purchasereceiptJobMainService.getPurchasereceiptJobListBoard());
}
@GetMapping("/issue")
@Operation(summary = "生产叫料看板")
public CommonResult<List<Map<String, Object>>> issue() {
return success(issueJobDetailService.getIssueJobListBoard());
}
@GetMapping("/production")
@Operation(summary = "生产计划看板")
public CommonResult<List<Map<String, Object>>> production() {
return success(productionDetailService.getProductionPlanListBoard());
}
@GetMapping("/deliver")
@Operation(summary = "成品发运看板")
public CommonResult<List<DeliverJobMainRespVO>> deliver() {
return success(deliverJobMainService.getDeliverJobListBoard());
}
}

32
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java

@ -221,6 +221,38 @@ public interface BalanceMapper extends BaseMapperX<BalanceDO> {
.orderByDesc(BalanceDO::getId));
}
default PageResult<BalanceDO> getBalanceInLocationTypesPage(BalancePageReqVO reqVO){
PageResult<BalanceDO> page = selectPage(reqVO,new LambdaQueryWrapperX<BalanceDO>()
.eqIfPresent(BalanceDO::getPackingNumber, reqVO.getPackingNumber())
.eqIfPresent(BalanceDO::getContainerNumber, reqVO.getContainerNumber())
.eqIfPresent(BalanceDO::getItemCode, reqVO.getItemCode())
.eqIfPresent(BalanceDO::getBatch, reqVO.getBatch())
.eqIfPresent(BalanceDO::getAltBatch, reqVO.getAltBatch())
.betweenIfPresent(BalanceDO::getArriveDate, reqVO.getArriveDate())
.betweenIfPresent(BalanceDO::getProduceDate, reqVO.getProduceDate())
.betweenIfPresent(BalanceDO::getExpireDate, reqVO.getExpireDate())
.eqIfPresent(BalanceDO::getInventoryStatus, reqVO.getInventoryStatus())
.inIfPresent(BalanceDO::getLocationCode, reqVO.getLocationCode().split(","))
.eqIfPresent(BalanceDO::getLocationGroupCode, reqVO.getLocationGroupCode())
.eqIfPresent(BalanceDO::getAreaCode, reqVO.getAreaCode())
.eqIfPresent(BalanceDO::getWarehouseCode, reqVO.getWarehouseCode())
.eqIfPresent(BalanceDO::getErpLocationCode, reqVO.getErpLocationCode())
.eqIfPresent(BalanceDO::getOwnerCode, reqVO.getOwnerCode())
.eqIfPresent(BalanceDO::getUom, reqVO.getUom())
.eqIfPresent(BalanceDO::getQty, reqVO.getQty())
.eqIfPresent(BalanceDO::getSinglePrice, reqVO.getSinglePrice())
.eqIfPresent(BalanceDO::getAmount, reqVO.getAmount())
.betweenIfPresent(BalanceDO::getPutInTime, reqVO.getPutInTime())
.eqIfPresent(BalanceDO::getFrozen, reqVO.getFrozen())
.eqIfPresent(BalanceDO::getFrozenReason, reqVO.getFrozenReason())
.eqIfPresent(BalanceDO::getLastTransNumber, reqVO.getLastTransNumber())
.eqIfPresent(BalanceDO::getWeight, reqVO.getWeight())
.eqIfPresent(BalanceDO::getArea, reqVO.getArea())
.eqIfPresent(BalanceDO::getVolume, reqVO.getVolume())
.orderByDesc(BalanceDO::getId));
return page;
}
default PageResult<BalanceDO> getBalanceItemsPage(BalancePageReqVO reqVO){
PageResult<BalanceDO> page = selectPage(reqVO,new LambdaQueryWrapperX<BalanceDO>()
.eqIfPresent(BalanceDO::getPackingNumber, reqVO.getPackingNumber())

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueJob/IssueJobDetailMapper.java

@ -1,18 +1,19 @@
package com.win.module.wms.dal.mysql.issueJob;
import java.util.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.issueJob.vo.IssueJobDetailExportReqVO;
import com.win.module.wms.controller.issueJob.vo.IssueJobDetailPageReqVO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO;
import com.win.module.wms.dal.dataobject.productionreceiptJob.ProductionreceiptJobDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/**
* 发料任务子 Mapper
@ -94,4 +95,9 @@ public interface IssueJobDetailMapper extends BaseMapperX<IssueJobDetailDO> {
.eq(IssueJobDetailDO::getMasterId, masterId));
}
/**
* 看板列表
* @return 看板列表
*/
List<Map<String, Object>> getIssueJobListBoard(@Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime);
}

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/production/ProductionDetailMapper.java

@ -5,14 +5,14 @@ import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.production.vo.ProductionDetailExportReqVO;
import com.win.module.wms.controller.production.vo.ProductionDetailPageReqVO;
import com.win.module.wms.dal.dataobject.production.ProductionDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.work.WorkDetailDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/**
* 生产计划子 Mapper
@ -67,4 +67,9 @@ public interface ProductionDetailMapper extends BaseMapperX<ProductionDetailDO>
// .orderByDesc(ProductionDetailDO::getId));
// }
/**
* 看板列表
* @return 看板列表
*/
List<Map<String, Object>> getProductionPlanListBoard(@Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime);
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java

@ -425,7 +425,6 @@ public class CountRequestMainServiceImpl implements CountRequestMainService {
countJobMainDO.setWarehouseCode(locationDO.getWarehouseCode());
countJobMainDO.setRequestDueTime(mainDO.getDueTime());
countJobMainDO.setRequestNumber(mainDO.getNumber());
countJobMainDO.setRequestDueTime(mainDO.getDueTime());
countJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete());
countJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation());
countJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty());

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainService.java

@ -2,10 +2,7 @@ package com.win.module.wms.service.deliverJob;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainCreateReqVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainExportReqVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainPageReqVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainUpdateReqVO;
import com.win.module.wms.controller.deliverJob.vo.*;
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobMainDO;
import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO;
import com.win.module.wms.dal.dataobject.sale.SaleDetailDO;
@ -152,4 +149,10 @@ public interface DeliverJobMainService {
* @return pda未处理的任务数
*/
Long getDeliverJobCountPda();
/**
* 看板列表
* @return 看板列表
*/
List<DeliverJobMainRespVO> getDeliverJobListBoard();
}

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java

@ -447,4 +447,16 @@ public class DeliverJobMainServiceImpl implements DeliverJobMainService {
queryWrapper.eq("`status`", JobStatusEnum.PENDING.getCode());
return deliverJobMainMapper.selectCount(queryWrapper);
}
@Override
public List<DeliverJobMainRespVO> getDeliverJobListBoard() {
LocalDateTime now = LocalDateTime.now();
LocalDateTime beginTime = now.minusHours(4).withMinute(0).withSecond(0).withNano(0);
LocalDateTime endTime = now.plusHours(19).withMinute(59).withSecond(59).withNano(999999999);
QueryWrapper<DeliverJobMainDO> queryWrapper = new QueryWrapper<>();
queryWrapper.between("request_due_time", beginTime, endTime);
queryWrapper.ne("`status`", JobStatusEnum.CLOSED.getCode());
List<DeliverJobMainDO> list = deliverJobMainMapper.selectList(queryWrapper);
return DeliverJobMainConvert.INSTANCE.convertList(list);
}
}

21
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java

@ -366,9 +366,6 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
}
if(businesstypeDO == null){
message.append("根据单据设置未查找到发料申请的相关业务类型");
@ -380,7 +377,11 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes());
mainDo.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());
mainDo.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());
mainDo.setRequestTime(LocalDateTime.now());
}
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
@ -467,11 +468,10 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
}
//写入数据
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.DELIVER_REQUEST.getCode());
mainDo.setNumber(number);
String customerDeliverNumber = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_DELIVER_NUMBER.getCode());
mainDo.setCustomerDeliverNumber(customerDeliverNumber);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "1"));
deliverRequestMainMapper.insert(mainDo);
for (DeliverRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
@ -657,7 +657,16 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
//校验发货计划是否存在
private DeliverPlanMainDO validatorDeliverPlanExist(String number) {
return deliverPlanMainMapper.selectByNumber(number);
if (number != null && !"".equals(number)) {
DeliverPlanMainDO deliverPlanMainDO = deliverPlanMainMapper.selectByNumber(number);
if (deliverPlanMainDO != null) {
return deliverPlanMainDO;
} else {
throw exception(DELIVER_PLAN_MAIN_NOT_EXISTS);
}
}else {
return null;
}
}
//校验客户是否存在

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/demandforecasting/DemandforecastingMainServiceImpl.java

@ -70,12 +70,11 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe
private SupplieritemService supplieritemService;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private TrendsApi trendsApi;
@Override
public Long createDemandforecastingMain(DemandforecastingMainCreateReqVO createReqVO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchasePrediction");
createReqVO.setBusinessType(businesstypeDO.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_PREDICTION.getCode());
createReqVO.setNumber(number);
createReqVO.setCreateTime(LocalDateTime.now());
@ -188,6 +187,7 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe
* @param mainDo
* @return
*/
private String validateDemandforecastingMainImport(DemandforecastingMainDO mainDo, BusinesstypeDO businesstypeDO) {
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
String messageMain = "";
@ -249,6 +249,7 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe
//新增方法(主和子)
@Transactional
private DemandforecastingMainDO validatorToCreate(DemandforecastingMainCreateReqVO createReqVO) {
DemandforecastingMainDO demandforecastingMainDO = validateMainMethod(createReqVO);
//子表校验
@ -269,6 +270,7 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe
}
//修改方法(主和子)
@Transactional
private DemandforecastingMainDO validatorToUpdate(DemandforecastingMainUpdateReqVO updateReqVO) {
DemandforecastingMainDO demandforecastingMainDO = validateMainMethod(updateReqVO);
//子表校验
@ -292,7 +294,7 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe
//校验子表公共方法(适用于新增/修改)
private void validateDetailMethod(DemandforecastingMainDO demandforecastingMainDO, DemandforecastingDetailDO demandforecastingDetailDO) {
itembasicService.selectItembasic(demandforecastingDetailDO.getItemCode());
purchaseMainService.selectPurchaseDetailDoExist(demandforecastingDetailDO.getNumber(), demandforecastingMainDO.getSupplierCode(), demandforecastingDetailDO.getItemCode(), demandforecastingDetailDO.getPoLine());
purchaseMainService.selectPurchaseDetailDoExist(demandforecastingDetailDO.getPoNumber(), demandforecastingMainDO.getSupplierCode(), demandforecastingDetailDO.getItemCode(), demandforecastingDetailDO.getPoLine());
supplieritemService.selectSupplierItemExist(demandforecastingMainDO.getSupplierCode(), demandforecastingDetailDO.getItemCode());
}

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/dock/DockService.java

@ -83,9 +83,19 @@ public interface DockService {
/**
* 校验(客户地点 月台)收货口有效状态正确
* @author chenfang
*
* @param code 代码
* @return 月台列表
* @author chenfang
*/
DockDO DockExist(String code);
/**
* 查询月台
*
* @param code toWarehouseCode
* @return 月台列表
* @author yejiaxing
*/
DockDO selectDockByTwoCode(String code, String toWarehouseCode);
}

24
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/dock/DockServiceImpl.java

@ -148,8 +148,7 @@ public class DockServiceImpl implements DockService {
DockDO existAccountcalendar = dockMapper.selectByItemCode(dockDO.getCode());
if (existAccountcalendar == null && mode != 3) {
dockMapper.insert(DockConvert.INSTANCE.convert(dock));
}
else if (existAccountcalendar != null && mode != 2) {
} else if (existAccountcalendar != null && mode != 2) {
// 如果存在,判断是否允许更新
dockDO.setId(existAccountcalendar.getId());
dockMapper.updateById(dockDO);
@ -160,7 +159,6 @@ public class DockServiceImpl implements DockService {
}
private void validateDockForCreateOrUpdate(Long id, String code, String type, String warehouseCode,
String defaultLocationCode, String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
@ -174,6 +172,7 @@ public class DockServiceImpl implements DockService {
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateDockExists(Long id) {
if (id == null) {
@ -184,6 +183,7 @@ public class DockServiceImpl implements DockService {
throw exception(DOCK_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id, String code) {
if (code.isEmpty()) {
@ -204,24 +204,28 @@ public class DockServiceImpl implements DockService {
throw exception(DOCK_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateTypeExists(String type) {
if (type.isEmpty()) {
throw exception(DOCK_TYPE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateWareHouseCodeExists(String warehouseCode) {
if (warehouseCode.isEmpty()) {
throw exception(DOCK_WARE_HOUSE_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateDefaultLocationCodeExists(String defaultLocationCode) {
if (defaultLocationCode.isEmpty()) {
throw exception(DOCK_DEFAULT_LOCATION_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
@ -241,4 +245,18 @@ public class DockServiceImpl implements DockService {
}
}
@Override
public DockDO selectDockByTwoCode(String code, String toWarehouseCode) {
QueryWrapper<DockDO> queryWrapper = new QueryWrapper();
queryWrapper.eq("code", code);
queryWrapper.eq("warehouse_code", toWarehouseCode);
queryWrapper.eq("available", "TRUE");
DockDO dockDO = dockMapper.selectOne(queryWrapper);
if (dockDO != null && "TRUE".equals(dockDO.getAvailable())) {
return dockDO;
} else {
throw exception(DOCK_NOT_EXISTS);
}
}
}

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobDetailService.java

@ -1,15 +1,14 @@
package com.win.module.wms.service.issueJob;
import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.issueJob.vo.IssueJobDetailCreateReqVO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.issueJob.vo.IssueJobDetailExportReqVO;
import com.win.module.wms.controller.issueJob.vo.IssueJobDetailPageReqVO;
import com.win.module.wms.controller.issueJob.vo.IssueJobDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO;
import com.win.framework.common.pojo.PageResult;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 发料任务子 Service 接口
@ -59,4 +58,10 @@ public interface IssueJobDetailService {
List<IssueJobDetailDO> getIssueJobDetailList(IssueJobDetailExportReqVO exportReqVO);
List<IssueJobDetailDO> selectList(Long id);
/**
* 看板列表
* @return 看板列表
*/
List<Map<String, Object>> getIssueJobListBoard();
}

28
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobDetailServiceImpl.java

@ -1,24 +1,22 @@
package com.win.module.wms.service.issueJob;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.issueJob.vo.IssueJobDetailCreateReqVO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.issueJob.vo.IssueJobDetailExportReqVO;
import com.win.module.wms.controller.issueJob.vo.IssueJobDetailPageReqVO;
import com.win.module.wms.controller.issueJob.vo.IssueJobDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO;
import com.win.module.wms.dal.mysql.issueJob.IssueJobDetailMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.issueJob.IssueJobDetailConvert;
import com.win.module.wms.dal.mysql.issueJob.IssueJobDetailMapper;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
import static com.win.module.wms.enums.ErrorCodeConstants.ISSUE_JOB_DETAIL_NOT_EXISTS;
/**
* 发料任务子 Service 实现类
@ -67,4 +65,12 @@ public class IssueJobDetailServiceImpl implements IssueJobDetailService {
return issueJobDetailMapper.selectList(masterId);
}
@Override
public List<Map<String, Object>> getIssueJobListBoard() {
LocalDateTime now = LocalDateTime.now();
LocalDateTime beginTime = now.minusHours(4).withMinute(0).withSecond(0).withNano(0);
LocalDateTime endTime = now.plusHours(19).withMinute(59).withSecond(59).withNano(999999999);
return issueJobDetailMapper.getIssueJobListBoard(beginTime, endTime);
}
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationServiceImpl.java

@ -405,7 +405,6 @@ public class LocationServiceImpl implements LocationService {
queryWrapper.eq("available", "TRUE");
queryWrapper.eq("`type`", "WIP");//线边库
queryWrapper.inSql("`code`", "SELECT DISTINCT location_code FROM transaction_balance");
queryWrapper.last("LIMIT 10");
List<LocationDO> locationDOList = locationMapper.selectList(queryWrapper);
return LocationConvert.INSTANCE.convertList(locationDOList);
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionDetailService.java

@ -3,7 +3,6 @@ package com.win.module.wms.service.production;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.production.vo.ProductionDetailCreateReqVO;
import com.win.module.wms.controller.production.vo.ProductionDetailExportReqVO;
import com.win.module.wms.controller.production.vo.ProductionDetailPageReqVO;
import com.win.module.wms.controller.production.vo.ProductionDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.production.ProductionDetailDO;
@ -11,6 +10,7 @@ import com.win.module.wms.dal.dataobject.production.ProductionDetailDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 生产计划子 Service 接口
@ -82,4 +82,10 @@ public interface ProductionDetailService {
PageResult<ProductionDetailDO> getProductionDetailSenior(CustomConditions conditions);
List<ProductionDetailDO> selectList(Long masterId);
/**
* 看板列表
* @return 看板列表
*/
List<Map<String, Object>> getProductionPlanListBoard();
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionDetailServiceImpl.java

@ -6,14 +6,11 @@ import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.dict.DictDataApi;
import com.win.module.wms.controller.production.vo.ProductionDetailCreateReqVO;
import com.win.module.wms.controller.production.vo.ProductionDetailExportReqVO;
import com.win.module.wms.controller.production.vo.ProductionDetailPageReqVO;
import com.win.module.wms.controller.production.vo.ProductionDetailUpdateReqVO;
import com.win.module.wms.convert.production.ProductionDetailConvert;
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.production.ProductionDetailDO;
import com.win.module.wms.dal.dataobject.production.ProductionMainDO;
import com.win.module.wms.dal.mysql.production.ProductionDetailMapper;
import com.win.module.wms.service.bom.BomService;
import com.win.module.wms.service.itembasic.ItembasicService;
@ -23,8 +20,10 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.ITEMBASIC_UOM_EXCEPTION;
@ -124,6 +123,14 @@ public class ProductionDetailServiceImpl implements ProductionDetailService {
return productionDetailMapper.selectList(masterId);
}
@Override
public List<Map<String, Object>> getProductionPlanListBoard() {
LocalDateTime now = LocalDateTime.now();
LocalDateTime beginTime = now.minusHours(4).withMinute(0).withSecond(0).withNano(0);
LocalDateTime endTime = now.plusHours(19).withMinute(59).withSecond(59).withNano(999999999);
return productionDetailMapper.getProductionPlanListBoard(beginTime, endTime);
}
/**
* 新增校验
* @param detailDo

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionMainServiceImpl.java

@ -511,7 +511,6 @@ public class ProductionMainServiceImpl implements ProductionMainService {
LocalDateTime beginTime = endTime.withHour(0).withMinute(0).withSecond(0).withNano(0);
QueryWrapper<ProductionMainDO> queryWrapper = new QueryWrapper<>();
queryWrapper.between("plan_date", beginTime, endTime);
queryWrapper.last("LIMIT 10");
List<ProductionMainDO> productionMainDOList = productionMainMapper.selectList(queryWrapper);
return ProductionMainConvert.INSTANCE.convertList(productionMainDOList);
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java

@ -314,10 +314,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
// 校验物品基础信息
ItembasicDO itembasicDO = this.validatorItembasic(detailDo.getItemCode());
if (itembasicDO != null) {
if (itembasicDO.getUom() != detailDo.getUom()) {
throw exception(UOM_ERRORR, itembasicDO.getUom(), detailDo.getUom());
}
if (itembasicDO.getUom() != detailDo.getUom()) {
if (!itembasicDO.getUom().equals( detailDo.getUom())) {
throw exception(UOM_ERRORR, itembasicDO.getUom(), detailDo.getUom());
}
if ("FALSE".equals(itembasicDO.getEnableBuy())) {
@ -325,7 +322,8 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
}
}else {
throw exception(SCRAP_REQUEST_ITEMCODE_INVALID);
} this.validatorItemPackagingExist(detailDo.getItemCode());
}
this.validatorItemPackagingExist(detailDo.getItemCode());
ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(detailDo.getItemCode());
if (itempackagingDO != null) {
detailDo.setStdPackUnit(itempackagingDO.getStdPackUnit());

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java

@ -4,6 +4,7 @@ import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainExportReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainPageReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainRespVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO;
import com.win.module.wms.dal.dataobject.supplierdeliverRecord.SupplierdeliverRecordDetailDO;
@ -126,4 +127,10 @@ public interface PurchasereceiptJobMainService {
* @return pda未处理的任务数
*/
Long getPurchasereceiptJobCountPda();
/**
* 看板列表
* @return 看板列表
*/
List<PurchasereceiptJobMainRespVO> getPurchasereceiptJobListBoard();
}

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java

@ -14,14 +14,12 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailCreateReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobDetailUpdateReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainExportReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainPageReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainUpdateReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.*;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailCreateReqVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainCreateReqVO;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.purchasereceiptJob.PurchasereceiptJobMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.documentSwitch.SwitchDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
@ -504,6 +502,18 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
return purchasereceiptJobMainMapper.selectCount(queryWrapper);
}
@Override
public List<PurchasereceiptJobMainRespVO> getPurchasereceiptJobListBoard() {
LocalDateTime now = LocalDateTime.now();
LocalDateTime beginTime = now.minusHours(4).withMinute(0).withSecond(0).withNano(0);
LocalDateTime endTime = now.plusHours(19).withMinute(59).withSecond(59).withNano(999999999);
QueryWrapper<PurchasereceiptJobMainDO> queryWrapper = new QueryWrapper<>();
queryWrapper.between("request_due_time", beginTime, endTime);
queryWrapper.ne("`status`", JobStatusEnum.CLOSED.getCode());
List<PurchasereceiptJobMainDO> list = purchasereceiptJobMainMapper.selectList(queryWrapper);
return PurchasereceiptJobMainConvert.INSTANCE.convertList(list);
}
private PurchasereceiptJobMainDO validatePurchasereceiptJobMainExists(Long id) {
PurchasereceiptJobMainDO purchasereceiptJobMainDO = purchasereceiptJobMainMapper.selectById(id);
if (purchasereceiptJobMainDO == null) {

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java

@ -25,6 +25,7 @@ import com.win.module.wms.convert.supplierdeliverRecord.SupplierdeliverRecordMai
import com.win.module.wms.convert.supplierdeliverRequest.SupplierdeliverRequestDetailConvert;
import com.win.module.wms.convert.supplierdeliverRequest.SupplierdeliverRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.dock.DockDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
@ -48,6 +49,7 @@ import com.win.module.wms.dal.mysql.supplierdeliverRequest.SupplierdeliverReques
import com.win.module.wms.dal.mysql.supplierdeliverRequest.SupplierdeliverRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.dock.DockService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.itempackaging.ItempackagingService;
import com.win.module.wms.service.location.LocationService;
@ -130,7 +132,10 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq
@Resource
private LocationService locationService;
@Resource
PurchasereceiptRequestMainService purchasereceiptRequestMainService;
private PurchasereceiptRequestMainService purchasereceiptRequestMainService;
@Resource
private DockService dockService;
@Override
@Transactional
@ -723,6 +728,9 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq
}
//生成采购收货申请 叶佳兴
PurchasereceiptRequestMainCreateReqVO purchasereceiptRequestMainCreateReqVO = new PurchasereceiptRequestMainCreateReqVO();
//查询月台
DockDO dockDO = dockService.selectDockByTwoCode(mainDO.getToDockCode(),mainDO.getToWarehouseCode());
mainDO.setToWarehouseCode(dockDO.getWarehouseCode());
BeanUtils.copyProperties(mainDO, purchasereceiptRequestMainCreateReqVO);
List<PurchasereceiptRequestDetailCreateReqVO> purchasereceiptRequestDetailCreateReqVOList = new ArrayList<>();
for (SupplierdeliverRequestDetailDO detailDO : detailDOList) {
@ -752,8 +760,8 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq
purchasereceiptRequestDetailCreateReqVO.setArriveDate(detailDO.getArriveDate());
purchasereceiptRequestDetailCreateReqVO.setPackingNumber(packageDO.getNumber());
purchasereceiptRequestDetailCreateReqVO.setInventoryStatus("INSP");
SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(mainDO.getSupplierCode(), detailDO.getItemCode());
purchasereceiptRequestDetailCreateReqVO.setDefaultToLocationCode(supplieritemDO.getDefaultLocationCode());
//查询月台后赋值
purchasereceiptRequestDetailCreateReqVO.setDefaultToLocationCode(dockDO.getDefaultLocationCode());
purchasereceiptRequestDetailCreateReqVO.setId(null);
purchasereceiptRequestDetailCreateReqVOList.add(purchasereceiptRequestDetailCreateReqVO);
}

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java

@ -4,8 +4,11 @@ import cn.hutool.core.exceptions.UtilException;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.balance.vo.BalancePageReqVO;
import com.win.module.wms.controller.bom.vo.BomExportReqVO;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.convert.balance.BalanceConvert;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.bom.BomDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
@ -190,14 +193,25 @@ public class JobUtils {
return result;
}
public void demo(String pcode){
//根据业务类型查出的库位类型进行库存余额数据筛选进行分页查询
public PageResult<BalanceDO> selectLocationTypeToBalance(String pcode){
BusinesstypeDO businesstypeDO = selectDocumentSettingFromBusinessType(pcode);
String inLocationTypes = businesstypeDO.getInLocationTypes();
String[] split = inLocationTypes.split(",");
ArrayList<BalanceDO> balanceDOArrayList = new ArrayList<>();
BalancePageReqVO balancePageReqVO = new BalancePageReqVO();
if(split.length > 1){
for (String s : split) {
// balanceService.getBalancePage()
String locationCode = balancePageReqVO.getLocationCode();
if(locationCode == null){
balancePageReqVO.setLocationCode(s);
}else {
balancePageReqVO.setLocationCode(locationCode + ","+s);
}
}
}else {
balancePageReqVO.setLocationCode(inLocationTypes);
}
return balanceMapper.getBalanceInLocationTypesPage(balancePageReqVO);
}
/**

13
win-module-wms/win-module-wms-biz/src/main/resources/mapper/issueJob/IssueJobDetailMapper.xml

@ -2,11 +2,12 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.win.module.wms.dal.mysql.issueJob.IssueJobDetailMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
<!-- 看板列表-->
<select id="getIssueJobListBoard" parameterType="java.time.LocalDateTime" resultType="map">
SELECT main.`status`,main.number,detail.production_line_code productionLineCode,detail.work_station_code workStationCode,main.request_number requestNumber,
detail.item_code itemCode,detail.qty,main.request_time requestTime,main.request_due_time requestDueTime,main.complete_time completeTime
FROM job_issue_main main,job_issue_detail detail
WHERE detail.number=main.number AND main.request_due_time BETWEEN #{beginTime} AND #{endTime}
</select>
</mapper>

12
win-module-wms/win-module-wms-biz/src/main/resources/mapper/production/ProductionDetailMapper.xml

@ -2,11 +2,11 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.win.module.wms.dal.mysql.production.ProductionDetailMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
<!-- 看板列表-->
<select id="getProductionPlanListBoard" parameterType="java.time.LocalDateTime" resultType="map">
SELECT main.`status`,main.number,main.production_line productionLine,detail.item_code itemCode,detail.good_qty goodQty,
detail.not_good_qty notGoodQty,main.plan_date planDate FROM plan_production_main main,plan_production_detail detail
WHERE detail.number=main.number AND main.plan_date BETWEEN #{beginTime} AND #{endTime}
</select>
</mapper>

Loading…
Cancel
Save