package com.consum.base.service;
|
|
import com.consum.base.core.CodeGeneratorEnum;
|
import com.consum.base.core.CodeGeneratorService;
|
import com.consum.base.pojo.LWhFormScrappedGoodsParams;
|
import com.consum.base.pojo.LWhFormScrappedParam;
|
import com.consum.base.pojo.LWhProcureModelParams;
|
import com.consum.base.util.IdUtil;
|
import com.consum.model.po.*;
|
import com.iplatform.model.po.S_user_core;
|
import com.walker.jdbc.service.BaseServiceImpl;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @Description 报废单
|
* @Author 卢庆阳
|
* @Date 2023/11/1
|
*/
|
@Service
|
public class LWhFormScrappedServiceImpl extends BaseServiceImpl {
|
@Autowired
|
private CodeGeneratorService codeGeneratorService;
|
@Autowired
|
private BaseWarehouseServiceImpl baseWarehouseService;
|
@Autowired
|
private FinSysTenantDepartmentServiceImpl departmentService;
|
@Autowired
|
private LWhGoodsService lWhGoodsService;
|
@Autowired
|
private LWhFormScrappedGoodsService scrappedGoodsService;
|
|
/**
|
* 新增
|
* @param param
|
* @param sysInfo
|
* @param operatorUser
|
* @return
|
*/
|
//1.新增报废单
|
//2.新增报废单物品
|
public int add(LWhFormScrappedParam param, FinSysTenantUser sysInfo, S_user_core operatorUser) {
|
//1.新增报废单记录
|
LWhFormScrapped lWhFormScrapped = new LWhFormScrapped();
|
//调拨单id
|
long lWhFormTransferId = IdUtil.generateId();
|
lWhFormScrapped.setId(lWhFormTransferId);
|
lWhFormScrapped.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Scrapped));
|
lWhFormScrapped.setWarehouseType(0);
|
Long warehouseId = param.getWarehouseId();
|
lWhFormScrapped.setWarehouseId(warehouseId);
|
//根据仓库id查询仓库
|
BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId);
|
if (warehouse == null) {
|
log.error("仓库不存在");
|
return 0;
|
}
|
lWhFormScrapped.setWarehouseName(warehouse.getWarehouseName());
|
lWhFormScrapped.setAgencyId(Long.valueOf(sysInfo.getTenantId()));
|
lWhFormScrapped.setAgencyName(sysInfo.getTenantName());
|
lWhFormScrapped.setOperatorId(sysInfo.getSysUserId());
|
lWhFormScrapped.setOperatorName(sysInfo.getUserName());
|
lWhFormScrapped.setDealTime(param.getDealTime());
|
lWhFormScrapped.setStates(0);
|
//根据部门id查询部门
|
FinSysTenantDepartment department = this.departmentService.getById(sysInfo.getSysDeptId());
|
if (department != null) {
|
lWhFormScrapped.setDepartmentId(sysInfo.getSysDeptId());
|
lWhFormScrapped.setDepartmentName(department.getName());
|
}
|
int flag1 = this.insert(lWhFormScrapped);
|
if (flag1 == 0) {
|
log.error("新增报废单失败");
|
return 0;
|
}
|
//2.新增报废单物品记录
|
List<LWhFormScrappedGoodsParams> scrappedGoodsParamList = param.getScrappedGoodsList();
|
List<LWhFormScrappedGoods> scrappedGoodsList = new ArrayList<>();
|
for (LWhFormScrappedGoodsParams params : scrappedGoodsParamList) {
|
LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods();
|
scrappedGoods.setId(IdUtil.generateId());
|
//根据物品型号查询物品库存
|
int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, scrappedGoods.getBaseGoodsModelsId(), (short) 1, null);
|
if (params.getCounts() > goodsNum) {
|
log.error("报废数量大于库存数量");
|
return 0;
|
}
|
scrappedGoods.setCounts(params.getCounts());
|
scrappedGoods.setScrappedCode(params.getScrappedCode());
|
//TODO 报废原因
|
scrappedGoodsList.add(scrappedGoods);
|
}
|
int flag2 = this.scrappedGoodsService.insert(scrappedGoodsList);
|
if (flag2 != scrappedGoodsList.size()) {
|
log.error("新增报废单物品记录");
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return 0;
|
}
|
return 1;
|
}
|
}
|