package com.thhy.materials.modules.biz.embedment.service.impl;
|
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.util.StringUtil;
|
import com.thhy.general.common.BasicResult;
|
import com.thhy.general.common.BasicStatus;
|
import com.thhy.general.config.SysUserInfo;
|
import com.thhy.general.exception.BasicException;
|
import com.thhy.general.utils.ExcelUtils;
|
import com.thhy.general.utils.UserInfoUtils;
|
import com.thhy.materials.modules.biz.embedment.dto.EmbedmentGoodsDto;
|
import com.thhy.materials.modules.biz.embedment.entity.SysEmbedmentCorrectionEntity;
|
import com.thhy.materials.modules.biz.embedment.entity.SysEmbedmentGoodsEntity;
|
import com.thhy.materials.modules.biz.embedment.mapper.SysEmbedmentCorrectionMapper;
|
import com.thhy.materials.modules.biz.embedment.mapper.SysEmbedmentGoodsMapper;
|
import com.thhy.materials.modules.biz.embedment.service.SysEmbedmentGoodsService;
|
import org.redisson.api.RLock;
|
import org.redisson.api.RedissonClient;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.util.List;
|
import java.util.concurrent.TimeUnit;
|
import java.util.stream.Collectors;
|
|
/**
|
* @Author QiuYuHao
|
* @CreateDate 2023-09-22 13:32:52
|
* 预埋件库存实现
|
*/
|
@Service
|
public class SysEmbedmentGoodsServiceImpl implements SysEmbedmentGoodsService {
|
|
@Autowired
|
private RedissonClient redissonClient;
|
|
@Autowired
|
private SysEmbedmentGoodsMapper sysEmbedmentGoodsMapper;
|
|
@Autowired
|
private SysEmbedmentCorrectionMapper sysEmbedmentCorrectionMapper;
|
|
//=======================种类到此开始=======================
|
|
@Override
|
public BasicResult getType() {
|
return BasicResult.success(sysEmbedmentGoodsMapper.getType());
|
}
|
@Override
|
public BasicResult insert(SysEmbedmentGoodsEntity sysEmbedmentGoodsEntity) {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
sysEmbedmentGoodsEntity.setCompanyId(sysUserInfo.getCompanyId());
|
String embedmentName = sysEmbedmentGoodsEntity.getEmbedmentName();
|
String embedmentType = sysEmbedmentGoodsEntity.getEmbedmentType();
|
String embedmentModel = sysEmbedmentGoodsEntity.getEmbedmentModel();
|
String id = sysEmbedmentGoodsMapper.embedmentNameAndType(embedmentName,embedmentType, embedmentModel);
|
if(!StringUtil.isEmpty(id)){
|
return BasicResult.faild("11111","error","名称和规格型号不可重复");
|
}
|
sysEmbedmentGoodsMapper.insert(sysEmbedmentGoodsEntity);
|
return BasicResult.success();
|
}
|
|
@Override
|
public BasicResult delete(String id) {
|
sysEmbedmentGoodsMapper.delete(id);
|
return BasicResult.success();
|
}
|
|
@Override
|
public BasicResult update(SysEmbedmentGoodsEntity sysEmbedmentGoodsEntity) {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
sysEmbedmentGoodsEntity.setCompanyId(sysUserInfo.getCompanyId());
|
String embedmentName = sysEmbedmentGoodsEntity.getEmbedmentName();
|
String embedmentType = sysEmbedmentGoodsEntity.getEmbedmentType();
|
String embedmentModel = sysEmbedmentGoodsEntity.getEmbedmentModel();
|
String id = sysEmbedmentGoodsMapper.embedmentNameAndType(embedmentName,embedmentType, embedmentModel);
|
if(!StringUtil.isEmpty(id) && !sysEmbedmentGoodsEntity.getId().equals(id)){
|
return BasicResult.faild("11111","error","名称和规格型号不可重复");
|
}
|
sysEmbedmentGoodsMapper.update(sysEmbedmentGoodsEntity);
|
return BasicResult.success();
|
}
|
|
@Override
|
public BasicResult findAll(EmbedmentGoodsDto embedmentGoodsDto) {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
embedmentGoodsDto.setCompanyId(sysUserInfo.getCompanyId());
|
PageHelper.startPage(embedmentGoodsDto.getPageNum(), embedmentGoodsDto.getPageSize());
|
List<SysEmbedmentGoodsEntity> all = sysEmbedmentGoodsMapper.findAll(embedmentGoodsDto);
|
PageInfo<SysEmbedmentGoodsEntity> pageInfo = new PageInfo<>(all);
|
return BasicResult.success(pageInfo);
|
}
|
|
@Override
|
public BasicResult findEntity(String id) {
|
return BasicResult.success(sysEmbedmentGoodsMapper.findEntity(id));
|
}
|
|
|
|
@Override
|
public BasicResult findAllDetails(String id) {
|
return BasicResult.success(sysEmbedmentGoodsMapper.findEntity(id).getEmbedmentModel());
|
}
|
//=======================种类到此结束=======================
|
|
//=======================库存管理开始=======================
|
@Override
|
public void export(EmbedmentGoodsDto embedmentGoodsDto, HttpServletResponse response) {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
embedmentGoodsDto.setCompanyId(sysUserInfo.getCompanyId());
|
List<SysEmbedmentGoodsEntity> all = sysEmbedmentGoodsMapper.findAll(embedmentGoodsDto);
|
ExcelUtils.downExcel(all,SysEmbedmentGoodsEntity.class,response,"库存管理");
|
}
|
|
/**
|
* 预警值设置
|
* @param embedmentGoodsDto
|
* @return
|
*/
|
@Override
|
public BasicResult alarmSet(EmbedmentGoodsDto embedmentGoodsDto) {
|
sysEmbedmentGoodsMapper.alarmSet(embedmentGoodsDto);
|
return BasicResult.success();
|
}
|
|
/**
|
* 库存校正
|
* @param embedmentGoodsDto
|
* @return
|
*/
|
@Override
|
public BasicResult inventoryCorrection(EmbedmentGoodsDto embedmentGoodsDto) {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
String companyId = sysUserInfo.getCompanyId();
|
RLock lock = redissonClient.getLock("embedmentlock");
|
try {
|
if (lock.tryLock(5, 10, TimeUnit.SECONDS)) {
|
//此时参数实体获得的id是库存id 更新库存
|
SysEmbedmentGoodsEntity s = new SysEmbedmentGoodsEntity();
|
s.setId(embedmentGoodsDto.getId());
|
s.setStock(embedmentGoodsDto.getCorrectionAfter());
|
sysEmbedmentGoodsMapper.update(s);
|
} else {
|
throw new BasicException(BasicStatus.OP_IS_TIMEOUT);
|
}
|
} catch (InterruptedException e) {
|
throw new BasicException(BasicStatus.OP_IS_REPEAT);
|
} finally {
|
if (lock.isLocked()) {
|
lock.unlock();
|
}
|
}
|
//添加校正记录
|
SysEmbedmentCorrectionEntity sc = new SysEmbedmentCorrectionEntity();
|
sc.setEmbedmentId(embedmentGoodsDto.getId());
|
sc.setCorrectionNum(embedmentGoodsDto.getCorrectionNum());
|
sc.setCorrectionAfter(embedmentGoodsDto.getCorrectionAfter());
|
sc.setCorrectionBefore(embedmentGoodsDto.getCorrectionBefore());
|
sc.setCreateUser(sysUserInfo.getRealName());
|
sc.setRemark(embedmentGoodsDto.getRemark());
|
sysEmbedmentCorrectionMapper.insert(sc);
|
return BasicResult.success();
|
}
|
|
//=======================库存管理结束=======================
|
//=======================校正记录结束=======================
|
|
/**
|
* 校正记录列表
|
* @param embedmentGoodsDto
|
* @return
|
*/
|
@Override
|
public BasicResult inventoryList(EmbedmentGoodsDto embedmentGoodsDto) {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
embedmentGoodsDto.setCompanyId(sysUserInfo.getCompanyId());
|
PageHelper.startPage(embedmentGoodsDto.getPageNum(), embedmentGoodsDto.getPageSize());
|
List<SysEmbedmentCorrectionEntity> sysEmbedmentCorrectionEntities = sysEmbedmentCorrectionMapper.inventoryList(embedmentGoodsDto);
|
PageInfo<SysEmbedmentCorrectionEntity> pageInfo = new PageInfo<>(sysEmbedmentCorrectionEntities);
|
return BasicResult.success(pageInfo);
|
}
|
|
//=======================校正记录结束=======================
|
|
}
|