From 9538bdb6ee3714e030d41807e6ab46cd6258d590 Mon Sep 17 00:00:00 2001
From: 邱宇豪 <qyh123230312>
Date: 星期二, 26 九月 2023 08:43:12 +0800
Subject: [PATCH] 调整预埋件

---
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/embedment/service/impl/SysEmbedmentRecordServiceImpl.java |  120 +++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 94 insertions(+), 26 deletions(-)

diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/embedment/service/impl/SysEmbedmentRecordServiceImpl.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/embedment/service/impl/SysEmbedmentRecordServiceImpl.java
index bd82644..73740a3 100644
--- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/embedment/service/impl/SysEmbedmentRecordServiceImpl.java
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/embedment/service/impl/SysEmbedmentRecordServiceImpl.java
@@ -1,10 +1,10 @@
 package com.thhy.materials.modules.biz.embedment.service.impl;
 
+import cn.hutool.core.text.StrBuilder;
 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;
@@ -15,7 +15,17 @@
 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.materials.entity.SysAssistGood;
 import com.thhy.materials.modules.biz.utils.ExcelUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.usermodel.DataValidation;
+import org.apache.poi.ss.usermodel.DataValidationConstraint;
+import org.apache.poi.ss.usermodel.DataValidationHelper;
+import org.apache.poi.ss.util.CellRangeAddressList;
+import org.apache.poi.util.IOUtils;
+import org.apache.poi.xssf.usermodel.XSSFRow;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -23,10 +33,14 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.OutputStream;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * @Author QiuYuHao
@@ -44,28 +58,30 @@
 
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public BasicResult insert(SysEmbedmentRecordEntity sysEmbedmentRecordEntity) {
 		SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
 		sysEmbedmentRecordEntity.setCreateUser(sysUserInfo.getRealName());
+		sysEmbedmentRecordEntity.setCompanyId(sysUserInfo.getCompanyId());
 		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(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","库存没有该预埋件,请到【预埋件种类】添加","库存没有该预埋件,请到【预埋件种类】添加");
 			}
-			if(result < 0 ){
-				return BasicResult.faild("11111","库存不足","库存不足");
-			}
-			entity.setStock(result);
-			sysEmbedmentGoodsMapper.update(entity);//更改库存
-		}else {
-			return BasicResult.faild("11111","库存没有该预埋件,请到【预埋件种类】添加","库存没有该预埋件,请到【预埋件种类】添加");
-		}
-		sysEmbedmentRecordMapper.insert(sysEmbedmentRecordEntity);
+			sysEmbedmentRecordMapper.insert(sysEmbedmentRecordEntity);
 		return BasicResult.success();
 	}
 
@@ -76,7 +92,18 @@
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public BasicResult update(SysEmbedmentRecordEntity sysEmbedmentRecordEntity) {
+		String id = sysEmbedmentRecordEntity.getId();//记录id
+		String embedmentId = sysEmbedmentRecordEntity.getEmbedmentId();//库存id
+		SysEmbedmentRecordEntity queryRecordData = sysEmbedmentRecordMapper.embedmentRecordInfo(id);//查询到的记录
+		Integer dataChangeStock = queryRecordData.getChangeStock();//拿到修改前的入库数量
+		Integer paramChangeStock = sysEmbedmentRecordEntity.getChangeStock();//当前传输入库数量
+		Integer nowChangeStock = paramChangeStock - dataChangeStock;//当前传的和库里的取差值
+		SysEmbedmentGoodsEntity entity = sysEmbedmentGoodsMapper.findEntity(embedmentId);
+		Integer resultStock = entity.getStock() + nowChangeStock;
+		entity.setStock(resultStock);
+		sysEmbedmentGoodsMapper.update(entity);
 		sysEmbedmentRecordMapper.update(sysEmbedmentRecordEntity);
 		return BasicResult.success();
 	}
@@ -116,8 +143,38 @@
 
 	@Override
 	public void recordExportTemplate(EmbedmentRecordDto embedmentRecordDto, HttpServletResponse response) {
-		List<SysEmbedmentRecordEntity> sysEmbedmentRecordEntities = new ArrayList<>();
-		ExcelUtils.downExcel(sysEmbedmentRecordEntities,SysEmbedmentRecordEntity.class,response,"预埋件出入库");
+		SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
+		String companyId = sysUserInfo.getCompanyId();
+		XSSFWorkbook book = new XSSFWorkbook();
+		XSSFSheet sheet = book.createSheet();
+		XSSFRow row = sheet.createRow(0);
+		row.createCell(0).setCellValue("物品名称-规格型号");
+		row.createCell(1).setCellValue("入库数量");
+		row.createCell(2).setCellValue("单价");
+		row.createCell(3).setCellValue("金额");
+		row.createCell(4).setCellValue("备注");
+		embedmentRecordDto.setCompanyId(companyId);
+		List<String> lx = sysEmbedmentRecordMapper.embedmentRecordList(embedmentRecordDto).stream().map(s -> s.getEmbedmentNameAndModel()).collect(Collectors.toList());
+		String[] gjlx = lx.toArray(new String[lx.size()]);
+
+		//物品名称-规格型号
+		CellRangeAddressList regions1 = new CellRangeAddressList(1, 500, 0, 0);
+		DataValidationHelper dataValidationHelper = sheet.getDataValidationHelper();
+		DataValidationConstraint createExplicitListConstraint1 = dataValidationHelper.createExplicitListConstraint(gjlx);
+		DataValidation createValidation1 = dataValidationHelper.createValidation(createExplicitListConstraint1, regions1);
+		sheet.addValidationData(createValidation1);
+		response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+		response.setHeader("Content-Disposition", "attachment;filename=test.xls");
+		OutputStream out = null;
+		try {
+			out = response.getOutputStream();
+			book.write(out);
+			out.close();
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			IOUtils.closeQuietly(out);
+		}
 	}
 
 	@Override
@@ -135,23 +192,34 @@
 				String embedmentNameAndModel = list.get(0).toString();
 				String[] split = embedmentNameAndModel.split("-");
 				String embedmentName = split[0];
-				String embedmentModel = split[1];
-				String id =  sysEmbedmentGoodsMapper.embedmentNameAndType(embedmentName,null);
+				StringBuilder embedmentModel = new StringBuilder();
+				for (int i = 1; i < split.length; i++) {
+					if (StringUtils.isBlank(embedmentModel)){
+						embedmentModel.append(split[i]);
+					}else {
+						embedmentModel.append("-"+split[i]);
+					}
+
+				}
+				String id =  sysEmbedmentGoodsMapper.embedmentNameAndType(embedmentName,null, embedmentModel.toString());
+				if(StringUtils.isBlank(id)) {
+					throw new BasicException(new BasicMessage("500","库存没有【"+embedmentName+"】,请到预埋件种类新增,新增完可重新导入!"));
+				}
 				SysEmbedmentRecordEntity sysEmbedmentRecordEntity = new SysEmbedmentRecordEntity();
 				sysEmbedmentRecordEntity.setEmbedmentId(id);
 				//入库数量
-				Integer changeStock = Integer.valueOf(list.get(2).toString());
+				Integer changeStock = Integer.valueOf(list.get(1).toString());
 				sysEmbedmentRecordEntity.setChangeStock(changeStock);
 				//单价
-				String dj = list.get(3).toString();
+				String dj = list.get(2).toString();
 				BigDecimal singlePrice = new BigDecimal(dj);
 				sysEmbedmentRecordEntity.setSinglePrice(singlePrice);
 				//金额
-				String je = list.get(4).toString();
+				String je = list.get(3).toString();
 				BigDecimal amount = new BigDecimal(je);
 				sysEmbedmentRecordEntity.setAmount(amount);
 				//备注
-				String remark = list.get(5).toString();
+				String remark = list.get(4).toString();
 				sysEmbedmentRecordEntity.setRemark(remark);
 				//入库人
 				SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();

--
Gitblit v1.9.3