入库主子表删除逻辑

master
maxw@mesnac.com 5 days ago
parent 21d58ed15b
commit a1d11193bd

@ -67,4 +67,6 @@ public interface IWmsInstockDetailService {
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
int deleteById(Long instockDetailId); int deleteById(Long instockDetailId);
int deleteByInstockId(Collection<Long> ids);
} }

@ -65,4 +65,6 @@ public interface IWmsInstockOrderService {
* @return * @return
*/ */
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
Integer approveInstockOrder(WmsInstockOrderBo bo);
} }

@ -23,7 +23,9 @@ import org.dromara.wms.service.IWmsInstockPrintService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -137,6 +139,7 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService {
* @return * @return
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(WmsInstockDetailBo bo) { public Boolean updateByBo(WmsInstockDetailBo bo) {
String username = LoginHelper.getUsername(); String username = LoginHelper.getUsername();
if (bo.getPrintNum()==null){ if (bo.getPrintNum()==null){
@ -145,8 +148,11 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService {
validEntityBeforeSave(update); validEntityBeforeSave(update);
return baseMapper.updateDetail(update)>0; return baseMapper.updateDetail(update)>0;
} }
//打印数量不能超过入库数量 if (bo.getPrintedNum()==null){
if (bo.getPrintNum()+bo.getPrintedNum()>bo.getInstockQty()){ bo.setPrintedNum(new BigDecimal(0));
}
//分包数量不能超过入库数量
if (bo.getPrintNum().add(bo.getPrintedNum()).compareTo(bo.getInstockQty())>0){
return false; return false;
} }
Integer printNum = (int)wmsInstockPrintService.queryPrintNum(bo) + 1; Integer printNum = (int)wmsInstockPrintService.queryPrintNum(bo) + 1;
@ -162,7 +168,7 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService {
wmsInstockPrint.setCreateBy(username); wmsInstockPrint.setCreateBy(username);
int rows = wmsInstockPrintService.insertWmsInstockPrint(wmsInstockPrint); int rows = wmsInstockPrintService.insertWmsInstockPrint(wmsInstockPrint);
WmsInstockDetail wmsInstockDetail = new WmsInstockDetail(); WmsInstockDetail wmsInstockDetail = new WmsInstockDetail();
wmsInstockDetail.setPrintedNum(bo.getPrintedNum()+bo.getPrintNum()); wmsInstockDetail.setPrintedNum(bo.getPrintedNum().add(bo.getPrintNum()));
LambdaUpdateWrapper<WmsInstockDetail> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<WmsInstockDetail> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(WmsInstockDetail::getInstockDetailId,bo.getInstockDetailId()); updateWrapper.eq(WmsInstockDetail::getInstockDetailId,bo.getInstockDetailId());
wmsInstockDetail.setUpdateBy(username); wmsInstockDetail.setUpdateBy(username);
@ -186,6 +192,13 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService {
//TODO 做一些数据校验,如唯一约束 //TODO 做一些数据校验,如唯一约束
} }
@Override
public int deleteByInstockId(Collection<Long> ids) {
LambdaUpdateWrapper<WmsInstockDetail> wrapper = new LambdaUpdateWrapper<>();
wrapper.in(WmsInstockDetail::getInstockId,ids);
return baseMapper.delete(wrapper);
}
@Override @Override
public int deleteById(Long instockDetailId) { public int deleteById(Long instockDetailId) {
return baseMapper.deleteById(instockDetailId); return baseMapper.deleteById(instockDetailId);

@ -1,8 +1,10 @@
package org.dromara.wms.service.impl; package org.dromara.wms.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper; 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.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo; 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.bo.WmsInstockOrderBo;
import org.dromara.wms.domain.vo.WmsInstockOrderVo; import org.dromara.wms.domain.vo.WmsInstockOrderVo;
import org.dromara.wms.mapper.WmsInstockOrderMapper; 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.dromara.wms.service.IWmsInstockOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
@ -40,7 +46,11 @@ import java.util.concurrent.atomic.AtomicLong;
@Service @Service
public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService {
private static final AtomicInteger sequence = new AtomicInteger(999); private static final AtomicInteger sequence = new AtomicInteger(999);
private static final String auditPass = "1";
private final WmsInstockOrderMapper baseMapper; private final WmsInstockOrderMapper baseMapper;
@Autowired
private IWmsInstockDetailService wmsInstockDetailService;
public static Integer nextSequence() { public static Integer nextSequence() {
return sequence.incrementAndGet(); return sequence.incrementAndGet();
} }
@ -134,7 +144,7 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService {
public WmsInstockOrderVo insertByBo(WmsInstockOrderBo bo) { public WmsInstockOrderVo insertByBo(WmsInstockOrderBo bo) {
String username = LoginHelper.getUsername(); String username = LoginHelper.getUsername();
Date date = new Date(); Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
String orderDate = format.format(date); String orderDate = format.format(date);
String order = "IN"; String order = "IN";
String orderLast=""; String orderLast="";
@ -147,6 +157,14 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService {
} }
String inStockOrder = order + orderDate + orderLast; String inStockOrder = order + orderDate + orderLast;
WmsInstockOrder add = MapstructUtils.convert(bo, WmsInstockOrder.class); WmsInstockOrder add = MapstructUtils.convert(bo, WmsInstockOrder.class);
List<WmsConfiguration> unAuditConfigurationList = baseMapper.selectUnAuditByConfiguration(bo.getWarehouseId());
if (CollectionUtils.isNotEmpty(unAuditConfigurationList)){
add.setAuditStatus(auditPass);
}
List<WmsConfiguration> configurationList = baseMapper.selectAuditByConfiguration(bo.getWarehouseId());
if (CollectionUtils.isNotEmpty(configurationList)){
add.setAuditBy(configurationList.get(0).getAuditBy());
}
validEntityBeforeSave(add); validEntityBeforeSave(add);
add.setInstockCode(inStockOrder); add.setInstockCode(inStockOrder);
add.setCreateBy(username); add.setCreateBy(username);
@ -194,6 +212,20 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService {
//TODO 做一些数据校验,如唯一约束 //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 * @return
*/ */
@Override @Override
@Transactional
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){ if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验 //TODO 做一些业务上的校验,判断是否需要校验
} }
LambdaUpdateWrapper<WmsInstockOrder> wrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<WmsInstockOrder> wrapper = new LambdaUpdateWrapper<>();
wrapper.in(WmsInstockOrder::getInstockId,ids); wrapper.in(WmsInstockOrder::getInstockId,ids);
return baseMapper.delete(wrapper)>0; int delete = baseMapper.delete(wrapper);
int count = wmsInstockDetailService.deleteByInstockId(ids);
return delete>0;
} }
} }

Loading…
Cancel
Save