add 入库判断插入库存

dev
wanghao 1 month ago
parent c58e0d6747
commit 344cdc52fb

@ -54,6 +54,10 @@ public class WmsInStockDetails extends TenantEntity {
*
*/
private Double unitPrice;
/**
* ID
*/
private Long projectId;
/**
*
@ -97,4 +101,5 @@ public class WmsInStockDetails extends TenantEntity {
*
*/
private String warehouseName;
}

@ -101,4 +101,13 @@ public class WmsInventoryDetails extends TenantEntity {
*
*/
private String materialModel;
/**
*
*/
private Double unitPrice;
/**
* ID
*/
private Long projectId;
}

@ -61,6 +61,7 @@ public class WmsWarehouseInfo extends TenantEntity {
* 1 0
*/
private String activeFlag;
private String wmsStoreType;
/**
* 0 1

@ -51,6 +51,10 @@ public class WmsInStockDetailsBo extends BaseEntity {
*/
private Double unitPrice;
/**
* ID
*/
private Long projectId;
/**
*
*/

@ -60,6 +60,14 @@ public class WmsInventoryDetailsBo extends BaseEntity {
*
*/
private String remark;
/**
*
*/
private Double unitPrice;
/**
* ID
*/
private Long projectId;
}

@ -55,6 +55,7 @@ public class WmsWarehouseInfoBo extends BaseEntity {
* 1 0
*/
private String activeFlag;
private String wmsStoreType;
}

@ -115,4 +115,10 @@ public class WmsInStockDetailsVo implements Serializable {
*
*/
private String warehouseName;
/**
* ID
*/
private Long projectId;
}

@ -114,4 +114,13 @@ public class WmsInventoryDetailsVo implements Serializable {
*/
private String materialModel;
/**
*
*/
private Double unitPrice;
/**
* ID
*/
private Long projectId;
}

@ -122,5 +122,6 @@ public class WmsWarehouseInfoVo implements Serializable {
private Date updateTime;
private String deptName;
private String wmsStoreType;
}

@ -66,4 +66,6 @@ public interface IWmsInventoryDetailsService {
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
void insertList(List<WmsInventoryDetails> inventoryDetailsList);
}

@ -5,30 +5,30 @@ import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.enums.FormatsType;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.system.api.RemoteCodeRuleService;
import org.dromara.wms.domain.WmsInStockBill;
import org.dromara.wms.domain.WmsInStockDetails;
import org.dromara.wms.domain.WmsInventoryDetails;
import org.dromara.wms.domain.bo.WmsInStockBillBo;
import org.dromara.wms.domain.vo.WmsInStockBillVo;
import org.dromara.wms.domain.vo.WmsWarehouseInfoVo;
import org.dromara.wms.mapper.WmsInStockBillMapper;
import org.dromara.wms.mapper.WmsInStockDetailsMapper;
import org.dromara.wms.service.IWmsInStockBillService;
import org.dromara.wms.service.IWmsInventoryDetailsService;
import org.dromara.wms.service.IWmsWarehouseInfoService;
import org.dromara.workflow.api.RemoteWorkflowService;
import org.dromara.workflow.api.domain.RemoteStartProcess;
import org.dromara.workflow.api.event.ProcessEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* Service
@ -42,6 +42,9 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService {
private final WmsInStockBillMapper baseMapper;
private final WmsInStockDetailsMapper wmsInStockDetailsMapper;
private final RemoteCodeRuleService remoteCodeRuleService;
private final IWmsInventoryDetailsService inventoryService;
private final IWmsWarehouseInfoService warehouseService;
@DubboReference(timeout = 30000)//超时时间
private RemoteWorkflowService remoteWorkflowService;//流程
@ -107,22 +110,40 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService {
@Override
public Boolean insertByBo(WmsInStockBillBo bo) {
WmsInStockBill add = MapstructUtils.convert(bo, WmsInStockBill.class);
add.setInStockCode(remoteCodeRuleService.selectCodeRuleCode("1005"));
// 查询创建时间为今天的入库单条数
int count = baseMapper.selectCountNowInStore();
String dateTimeNow = DateUtils.dateTimeNow(FormatsType.YYYYMMDD);
if (count > 0) {
String tag = String.format("%03d", count + 1);
add.setInStockCode("RK" + dateTimeNow + "-" + tag);
} else {
add.setInStockCode("RK" + dateTimeNow + "-" + "001");
}
// int count = baseMapper.selectCountNowInStore();
// String dateTimeNow = DateUtils.dateTimeNow(FormatsType.YYYYMMDD);
// if (count > 0) {
// String tag = String.format("%03d", count + 1);
// add.setInStockCode("RK" + dateTimeNow + "-" + tag);
// } else {
// add.setInStockCode("RK" + dateTimeNow + "-" + "001");
// }
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
Long inStockBillId = add.getInStockBillId();
WmsWarehouseInfoVo wmsWarehouseInfoVo = warehouseService.queryById(add.getWarehouseId());
boolean insertInventortState = wmsWarehouseInfoVo.getWmsStoreType().equals("1");
List<WmsInStockDetails> inStockDetailsList = bo.getInStockDetailsList();
// 设置入库单明细的入库单ID
inStockDetailsList.forEach(item -> item.setInStockBillId(inStockBillId));
wmsInStockDetailsMapper.insert(inStockDetailsList);
List<WmsInventoryDetails> inventoryDetailsList = new ArrayList<>(inStockDetailsList.size());
inStockDetailsList.forEach(item -> {
item.setInStockBillId(inStockBillId); // 设置入库单明细的入库单ID
item.setProjectId(bo.getProjectId()); //关联项目
if (insertInventortState) {
WmsInventoryDetails inventoryDetails = MapstructUtils.convert(item, WmsInventoryDetails.class);
inventoryDetails.setInventoryAmount(item.getInStockAmount());
inventoryDetailsList.add(inventoryDetails);
}
});
wmsInStockDetailsMapper.insert(inStockDetailsList); //插入子表
if (insertInventortState) {
inventoryService.insertList(inventoryDetailsList); //插入库存
}
}
return flag;
}

@ -145,4 +145,9 @@ public class WmsInventoryDetailsServiceImpl implements IWmsInventoryDetailsServi
}
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public void insertList(List<WmsInventoryDetails> inventoryDetailsList) {
baseMapper.insert(inventoryDetailsList);
}
}

Loading…
Cancel
Save