|
|
|
|
@ -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;
|
|
|
|
|
}
|
|
|
|
|
|