入库主子表删除逻辑

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);
int deleteById(Long instockDetailId);
int deleteByInstockId(Collection<Long> ids);
}

@ -65,4 +65,6 @@ public interface IWmsInstockOrderService {
* @return
*/
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.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<WmsInstockDetail> 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<Long> ids) {
LambdaUpdateWrapper<WmsInstockDetail> wrapper = new LambdaUpdateWrapper<>();
wrapper.in(WmsInstockDetail::getInstockId,ids);
return baseMapper.delete(wrapper);
}
@Override
public int deleteById(Long instockDetailId) {
return baseMapper.deleteById(instockDetailId);

@ -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<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);
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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
LambdaUpdateWrapper<WmsInstockOrder> 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;
}
}

Loading…
Cancel
Save