package com.thhy.materials.modules.biz.embedment.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.thhy.general.common.BasicMessage; import com.thhy.general.common.BasicResult; import com.thhy.general.common.IBasicStatus; 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.EmbedmentRecordDto; import com.thhy.materials.modules.biz.embedment.entity.SysEmbedmentGoodsEntity; import com.thhy.materials.modules.biz.embedment.entity.SysEmbedmentRecordEntity; import com.thhy.materials.modules.biz.embedment.mapper.SysEmbedmentGoodsMapper; import com.thhy.materials.modules.biz.embedment.mapper.SysEmbedmentRecordMapper; import com.thhy.materials.modules.biz.embedment.service.SysEmbedmentRecordService; import com.thhy.materials.modules.biz.utils.ExcelUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * @Author QiuYuHao * @CreateDate 2023-09-22 16:28:24 * 预埋件出入库实现 */ @Service public class SysEmbedmentRecordServiceImpl implements SysEmbedmentRecordService{ @Autowired private SysEmbedmentRecordMapper sysEmbedmentRecordMapper; @Autowired private SysEmbedmentGoodsMapper sysEmbedmentGoodsMapper; @Override public BasicResult insert(SysEmbedmentRecordEntity sysEmbedmentRecordEntity) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); sysEmbedmentRecordEntity.setCreateUser(sysUserInfo.getRealName()); SysEmbedmentGoodsEntity entity = sysEmbedmentGoodsMapper.findEntity(sysEmbedmentRecordEntity.getEmbedmentId()); if(entity!=null){ String stockType = sysEmbedmentRecordEntity.getStockType(); //stockType 1入库 2出库 int result = entity.getStock(); if("1".equals(stockType)){ result= entity.getStock() + sysEmbedmentRecordEntity.getChangeStock(); }else{ result= entity.getStock() - sysEmbedmentRecordEntity.getChangeStock(); } if(result < 0 ){ return BasicResult.faild("11111","库存不足","库存不足"); } entity.setStock(result); sysEmbedmentGoodsMapper.update(entity);//更改库存 }else { return BasicResult.faild("11111","库存没有该预埋件,请到【预埋件种类】添加","库存没有该预埋件,请到【预埋件种类】添加"); } sysEmbedmentRecordMapper.insert(sysEmbedmentRecordEntity); return BasicResult.success(); } @Override public BasicResult embedmentRecordDel(String id) { sysEmbedmentRecordMapper.embedmentRecordDel(id); return BasicResult.success(); } @Override public BasicResult update(SysEmbedmentRecordEntity sysEmbedmentRecordEntity) { sysEmbedmentRecordMapper.update(sysEmbedmentRecordEntity); return BasicResult.success(); } @Override public BasicResult embedmentRecordList(EmbedmentRecordDto embedmentRecordDto) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); embedmentRecordDto.setCompanyId(sysUserInfo.getCompanyId()); PageHelper.startPage(embedmentRecordDto.getPageNum(),embedmentRecordDto.getPageSize()); List sysEmbedmentRecordEntities = sysEmbedmentRecordMapper.embedmentRecordList(embedmentRecordDto); PageInfo info = new PageInfo<>(sysEmbedmentRecordEntities); return BasicResult.success(info); } @Override public BasicResult embedmentRecordOutList(EmbedmentRecordDto embedmentRecordDto) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); embedmentRecordDto.setCompanyId(sysUserInfo.getCompanyId()); PageHelper.startPage(embedmentRecordDto.getPageNum(),embedmentRecordDto.getPageSize()); List sysEmbedmentRecordEntities = sysEmbedmentRecordMapper.embedmentRecordOutList(embedmentRecordDto); PageInfo info = new PageInfo<>(sysEmbedmentRecordEntities); return BasicResult.success(info); } @Override public BasicResult embedmentRecordInfo(String id) { return BasicResult.success(sysEmbedmentRecordMapper.embedmentRecordInfo(id)); } @Override public void export(EmbedmentRecordDto embedmentRecordDto, HttpServletResponse response) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); embedmentRecordDto.setCompanyId(sysUserInfo.getCompanyId()); List sysEmbedmentRecordEntities = sysEmbedmentRecordMapper.embedmentRecordList(embedmentRecordDto); ExcelUtils.downExcel(sysEmbedmentRecordEntities,SysEmbedmentRecordEntity.class,response,"预埋件入库"); } @Override public void recordExportTemplate(EmbedmentRecordDto embedmentRecordDto, HttpServletResponse response) { List sysEmbedmentRecordEntities = new ArrayList<>(); ExcelUtils.downExcel(sysEmbedmentRecordEntities,SysEmbedmentRecordEntity.class,response,"预埋件出入库"); } @Override @Transactional(rollbackFor = Exception.class) public BasicResult variateExcel(MultipartFile file, HttpServletRequest request) { List> lists = null;//去工具类处理,返回excel中的数据 try { lists = ExcelUtil.getUserListByExcel(file.getInputStream(), file.getOriginalFilename()); } catch (Exception e) { e.printStackTrace(); } lists.remove(0); if (lists.size()>0){ for (List list :lists){ String embedmentNameAndModel = list.get(0).toString(); String[] split = embedmentNameAndModel.split("-"); String embedmentName = split[0]; String embedmentModel = split[1]; String id = sysEmbedmentGoodsMapper.embedmentNameAndType(embedmentName,null); SysEmbedmentRecordEntity sysEmbedmentRecordEntity = new SysEmbedmentRecordEntity(); sysEmbedmentRecordEntity.setEmbedmentId(id); //入库数量 Integer changeStock = Integer.valueOf(list.get(2).toString()); sysEmbedmentRecordEntity.setChangeStock(changeStock); //单价 String dj = list.get(3).toString(); BigDecimal singlePrice = new BigDecimal(dj); sysEmbedmentRecordEntity.setSinglePrice(singlePrice); //金额 String je = list.get(4).toString(); BigDecimal amount = new BigDecimal(je); sysEmbedmentRecordEntity.setAmount(amount); //备注 String remark = list.get(5).toString(); sysEmbedmentRecordEntity.setRemark(remark); //入库人 SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); sysEmbedmentRecordEntity.setCreateUser(sysUserInfo.getRealName()); sysEmbedmentRecordEntity.setCompanyId(companyId); //stockType 1入库 sysEmbedmentRecordEntity.setStockType("1"); SysEmbedmentGoodsEntity entity = sysEmbedmentGoodsMapper.findEntity(sysEmbedmentRecordEntity.getEmbedmentId()); if(entity!=null){ int result = entity.getStock() + sysEmbedmentRecordEntity.getChangeStock(); entity.setStock(result); sysEmbedmentGoodsMapper.update(entity);//更改库存 }else { throw new BasicException(new BasicMessage("500","库存没有【"+embedmentName+"】,请到预埋件种类新增,新增完可重新导入!")); } sysEmbedmentRecordMapper.insert(sysEmbedmentRecordEntity); } return BasicResult.success("导入成功"); }else { return BasicResult.faild("11111","error","空文件"); } } }