package com.consum.base.service.impl;
|
|
import com.consum.base.core.CodeGeneratorEnum;
|
import com.consum.base.core.CodeGeneratorService;
|
import com.consum.base.core.utils.IdUtil;
|
import com.consum.base.pojo.request.UsingFormBackGoodsInfo;
|
import com.consum.base.pojo.request.UsingFormBackParam;
|
import com.consum.base.pojo.request.baseGoodModel;
|
import com.consum.base.service.BaseCategoryServiceImpl;
|
import com.consum.base.service.UsingFormBackService;
|
import com.consum.model.po.BaseCategory;
|
import com.consum.model.po.FinSysTenantUser;
|
import com.consum.model.po.UsingFormBack;
|
import com.consum.model.po.UsingFormBackGoods;
|
import com.walker.infrastructure.utils.DateUtils;
|
import com.walker.jdbc.service.BaseServiceImpl;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
/**
|
* @author asus
|
* @version 1.0
|
* @description: 物品回收单
|
* @date 2023/12/1 11:27
|
*/
|
@Service
|
public class UsingFormBackServiceImpl extends BaseServiceImpl implements UsingFormBackService {
|
|
@Autowired
|
private CodeGeneratorService codeGeneratorService;
|
@Autowired
|
private BaseCategoryServiceImpl baseCategoryService;
|
|
@Override
|
public void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo) {
|
|
Long departmentId = usingFormBackParam.getDepartmentId();
|
String departmentName = usingFormBackParam.getDepartmentName();
|
Long operatorId = usingFormBackParam.getOperatorId();
|
String operatorName = usingFormBackParam.getOperatorName();
|
Long backTime = usingFormBackParam.getDealTime();
|
String procureDoc = usingFormBackParam.getProcureDoc();
|
List<UsingFormBackGoodsInfo> usingFormBackGoodsInfo = usingFormBackParam.getGoods();
|
|
Long usingFormBackId = addUsingFormBack(sysInfo, departmentId, departmentName, operatorId, operatorName, backTime, procureDoc);
|
for (UsingFormBackGoodsInfo backingGoodsInfo : usingFormBackGoodsInfo) {
|
Long baseCategoryId = backingGoodsInfo.getBaseCategoryId();
|
Long baseGoodsTemplateId = backingGoodsInfo.getBaseGoodsTemplateId();
|
String goodsTemplateName = backingGoodsInfo.getGoodsTemplateName();
|
Long transBusinessId = backingGoodsInfo.getTransBusinessId();
|
String businessFormCode = backingGoodsInfo.getBusinessFormCode();
|
|
Map<String, List<baseGoodModel>> collect = backingGoodsInfo.getModels().stream()
|
.collect(Collectors.groupingBy(baseGoodModel::getBaseGoodsModelsId));
|
|
UsingFormBackGoods usingFormBackGoods = new UsingFormBackGoods();
|
usingFormBackGoods.setId(IdUtil.generateId());
|
usingFormBackGoods.setUsingFormBackId(usingFormBackId);
|
usingFormBackGoods.setBaseGoodsTemplateId(baseGoodsTemplateId);
|
usingFormBackGoods.setBaseGoodsTemplateName(goodsTemplateName);
|
|
BaseCategory baseCategory = baseCategoryService.getById(baseCategoryId);
|
String categoryName = baseCategory.getCategoryName();
|
String classification = baseCategory.getClassification();
|
usingFormBackGoods.setCategoryName(categoryName);
|
usingFormBackGoods.setClassification(classification);
|
usingFormBackGoods.setTransBusinessId(transBusinessId);
|
usingFormBackGoods.setBusinessFormCode(businessFormCode);
|
|
// usingFormBackGoods.setTransOutWarehouseType();
|
// usingFormBackGoods.setTransOutWarehouseId();
|
|
}
|
}
|
|
@Transactional
|
public Long addUsingFormBack(FinSysTenantUser sysInfo, Long departmentId, String departmentName, Long operatorId, String operatorName, Long backTime,
|
String procureDoc) {
|
UsingFormBack usingFormBack = new UsingFormBack();
|
usingFormBack.setId(IdUtil.generateId());
|
usingFormBack.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.GOBACK));
|
// usingFormBack.setOutWarehouseType();
|
// usingFormBack.setOutWarehouseId();
|
// usingFormBack.setOutWarehouseName();
|
|
String tenantId = sysInfo.getTenantId();
|
String tenantName = sysInfo.getTenantName();
|
usingFormBack.setAgencyId(Long.valueOf(tenantId));
|
usingFormBack.setAgencyName(tenantName);
|
usingFormBack.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
|
usingFormBack.setStates(1);
|
|
usingFormBack.setDepartmentId(departmentId);
|
usingFormBack.setDepartmentName(departmentName);
|
usingFormBack.setOperatorId(operatorId);
|
usingFormBack.setOperatorName(operatorName);
|
usingFormBack.setDealTime(backTime);
|
usingFormBack.setProcureDoc(procureDoc);
|
this.insert(usingFormBack);
|
return usingFormBack.getId();
|
}
|
}
|