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 = 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> 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(); } }