diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockDetailService.java index 80a200d4..c9b59fa6 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockDetailService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockDetailService.java @@ -67,4 +67,6 @@ public interface IWmsInstockDetailService { Boolean deleteWithValidByIds(Collection ids, Boolean isValid); int deleteById(Long instockDetailId); + + int deleteByInstockId(Collection ids); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockOrderService.java index 747db8f7..d1512618 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockOrderService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockOrderService.java @@ -65,4 +65,6 @@ public interface IWmsInstockOrderService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + Integer approveInstockOrder(WmsInstockOrderBo bo); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java index 6f61ff21..b1b81400 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java @@ -23,7 +23,9 @@ import org.dromara.wms.service.IWmsInstockPrintService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -137,6 +139,7 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { * @return 是否修改成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean updateByBo(WmsInstockDetailBo bo) { String username = LoginHelper.getUsername(); if (bo.getPrintNum()==null){ @@ -145,8 +148,11 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { validEntityBeforeSave(update); return baseMapper.updateDetail(update)>0; } - //打印数量不能超过入库数量 - if (bo.getPrintNum()+bo.getPrintedNum()>bo.getInstockQty()){ + if (bo.getPrintedNum()==null){ + bo.setPrintedNum(new BigDecimal(0)); + } + //分包数量不能超过入库数量 + if (bo.getPrintNum().add(bo.getPrintedNum()).compareTo(bo.getInstockQty())>0){ return false; } Integer printNum = (int)wmsInstockPrintService.queryPrintNum(bo) + 1; @@ -162,7 +168,7 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { wmsInstockPrint.setCreateBy(username); int rows = wmsInstockPrintService.insertWmsInstockPrint(wmsInstockPrint); WmsInstockDetail wmsInstockDetail = new WmsInstockDetail(); - wmsInstockDetail.setPrintedNum(bo.getPrintedNum()+bo.getPrintNum()); + wmsInstockDetail.setPrintedNum(bo.getPrintedNum().add(bo.getPrintNum())); LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(WmsInstockDetail::getInstockDetailId,bo.getInstockDetailId()); wmsInstockDetail.setUpdateBy(username); @@ -186,6 +192,13 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { //TODO 做一些数据校验,如唯一约束 } + @Override + public int deleteByInstockId(Collection ids) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.in(WmsInstockDetail::getInstockId,ids); + return baseMapper.delete(wrapper); + } + @Override public int deleteById(Long instockDetailId) { return baseMapper.deleteById(instockDetailId); diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java index 8b79e7a0..8b2f3825 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java @@ -1,8 +1,10 @@ package org.dromara.wms.service.impl; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.checkerframework.checker.units.qual.A; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -19,8 +21,12 @@ import org.dromara.wms.domain.bo.WmsConfigurationBo; import org.dromara.wms.domain.bo.WmsInstockOrderBo; import org.dromara.wms.domain.vo.WmsInstockOrderVo; import org.dromara.wms.mapper.WmsInstockOrderMapper; +import org.dromara.wms.service.IWmsConfigurationService; +import org.dromara.wms.service.IWmsInstockDetailService; import org.dromara.wms.service.IWmsInstockOrderService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.Date; @@ -40,7 +46,11 @@ import java.util.concurrent.atomic.AtomicLong; @Service public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { private static final AtomicInteger sequence = new AtomicInteger(999); + private static final String auditPass = "1"; private final WmsInstockOrderMapper baseMapper; + @Autowired + private IWmsInstockDetailService wmsInstockDetailService; + public static Integer nextSequence() { return sequence.incrementAndGet(); } @@ -134,7 +144,7 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { public WmsInstockOrderVo insertByBo(WmsInstockOrderBo bo) { String username = LoginHelper.getUsername(); Date date = new Date(); - SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); String orderDate = format.format(date); String order = "IN"; String orderLast=""; @@ -147,6 +157,14 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { } String inStockOrder = order + orderDate + orderLast; WmsInstockOrder add = MapstructUtils.convert(bo, WmsInstockOrder.class); + List unAuditConfigurationList = baseMapper.selectUnAuditByConfiguration(bo.getWarehouseId()); + if (CollectionUtils.isNotEmpty(unAuditConfigurationList)){ + add.setAuditStatus(auditPass); + } + List configurationList = baseMapper.selectAuditByConfiguration(bo.getWarehouseId()); + if (CollectionUtils.isNotEmpty(configurationList)){ + add.setAuditBy(configurationList.get(0).getAuditBy()); + } validEntityBeforeSave(add); add.setInstockCode(inStockOrder); add.setCreateBy(username); @@ -194,6 +212,20 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { //TODO 做一些数据校验,如唯一约束 } + @Override + public Integer approveInstockOrder(WmsInstockOrderBo bo) { + String username = LoginHelper.getUsername(); + if (!username.equals(bo.getAuditBy())){ + return 0; + } + WmsInstockOrder update = MapstructUtils.convert(bo, WmsInstockOrder.class); + validEntityBeforeSave(update); + update.setUpdateBy(username); + update.setAuditTime(new Date()); + int rows = baseMapper.updateInstock(update); + return rows; + } + /** * 校验并批量删除入库单信息 * @@ -202,12 +234,15 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { * @return 是否删除成功 */ @Override + @Transactional public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.in(WmsInstockOrder::getInstockId,ids); - return baseMapper.delete(wrapper)>0; + int delete = baseMapper.delete(wrapper); + int count = wmsInstockDetailService.deleteByInstockId(ids); + return delete>0; } }