Merge branch 'master' of ssh://git.jizhiweb.cn:2222/clinic-v2/server
This commit is contained in:
commit
c959b4292f
|
|
@ -5,26 +5,27 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|||
import com.syjiaer.clinic.server.common.constants.Constants;
|
||||
import com.syjiaer.clinic.server.common.enums.*;
|
||||
import com.syjiaer.clinic.server.common.exception.MessageException;
|
||||
import com.syjiaer.clinic.server.common.util.DateUtil;
|
||||
import com.syjiaer.clinic.server.common.util.HttpUtil;
|
||||
import com.syjiaer.clinic.server.common.vo.Page;
|
||||
import com.syjiaer.clinic.server.entity.goods.Goods;
|
||||
import com.syjiaer.clinic.server.entity.goods.GoodsCate;
|
||||
import com.syjiaer.clinic.server.entity.inventory.*;
|
||||
import com.syjiaer.clinic.server.entity.inventory.dto.PurchaseOrderQuery;
|
||||
import com.syjiaer.clinic.server.entity.inventory.vo.InventoryGoodsVo;
|
||||
import com.syjiaer.clinic.server.entity.inventory.vo.InventoryPurchaseVo;
|
||||
import com.syjiaer.clinic.server.entity.manager.ManagerUser;
|
||||
import com.syjiaer.clinic.server.mapper.goods.GoodsCateMapper;
|
||||
import com.syjiaer.clinic.server.mapper.goods.GoodsMapper;
|
||||
import com.syjiaer.clinic.server.mapper.inventory.*;
|
||||
import com.syjiaer.clinic.server.mapper.manager.ManagerUserMapper;
|
||||
import com.syjiaer.clinic.server.service.BaseService;
|
||||
import com.syjiaer.clinic.server.service.goods.GoodsService;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.val;
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.ResourceUtils;
|
||||
|
||||
import java.io.*;
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -32,6 +33,8 @@ import java.math.RoundingMode;
|
|||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@Service
|
||||
public class InventoryPurchaseService extends BaseService {
|
||||
@Autowired
|
||||
|
|
@ -54,8 +57,10 @@ public class InventoryPurchaseService extends BaseService {
|
|||
private InventoryPurchaseMapper inventoryPurchaseMapper;
|
||||
@Autowired
|
||||
private InventoryPurchaseLogMapper inventoryPurchaseLogMapper;
|
||||
@Autowired
|
||||
private GoodsCateMapper goodsCateMapper;
|
||||
|
||||
|
||||
private Logger logger = Logger.getLogger(HttpUtil.class.getName());
|
||||
/*
|
||||
* 创建采购订单
|
||||
* @param inventoryPurchase 采购订单
|
||||
|
|
@ -423,41 +428,112 @@ public class InventoryPurchaseService extends BaseService {
|
|||
}
|
||||
public String toExcel(List<Integer> cateIdList){
|
||||
|
||||
//查询goodsCate
|
||||
QueryWrapper<GoodsCate> goodsCateQueryWrapper = new QueryWrapper<>();
|
||||
goodsCateQueryWrapper.in("id", cateIdList);
|
||||
List<GoodsCate> goodsCatesList = goodsCateMapper.selectList(goodsCateQueryWrapper);
|
||||
|
||||
Map<Integer, String> cateMap = new HashMap<>();
|
||||
|
||||
for (GoodsCate goodsCate : goodsCatesList) {
|
||||
cateMap.put(goodsCate.getId(), goodsCate.getName());
|
||||
}
|
||||
|
||||
//查询goods
|
||||
QueryWrapper<Goods> goodsWrapper = new QueryWrapper<>();
|
||||
goodsWrapper.in("cate_id", cateIdList);
|
||||
List<Goods> goodsList = goodsMapper.selectList(goodsWrapper);
|
||||
System.out.println(goodsList);
|
||||
|
||||
/*
|
||||
表格拼接字段映射
|
||||
|
||||
药品编码 id
|
||||
药品 name
|
||||
规格 min_packaging_number min_packaging_unit / packaging_unit
|
||||
厂家 producer
|
||||
分类 type
|
||||
二级分类 goodsCate表中的name
|
||||
单位 packaging_unit
|
||||
*/
|
||||
|
||||
String fileName="";
|
||||
try {
|
||||
|
||||
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
// 资源文件的路径
|
||||
InputStream inputStream = classLoader.getResourceAsStream("excelTemplate/PurchasingTemplate.xlsx");
|
||||
|
||||
if (inputStream == null)
|
||||
{
|
||||
throw new MessageException("模板表格文件获取失败");
|
||||
}
|
||||
|
||||
Workbook workbook = WorkbookFactory.create(inputStream);
|
||||
|
||||
// 2. 获取第一个Sheet
|
||||
Sheet sheet = workbook.getSheetAt(0);
|
||||
|
||||
// 3. 修改内容(例如在A1单元格写入新内容)
|
||||
Row row = sheet.getRow(10);
|
||||
if (row == null) {
|
||||
row = sheet.createRow(10);
|
||||
// 此处配置5等于表格里面的第6行
|
||||
int sheetRowNum = 5;
|
||||
|
||||
for (Goods goodsRow : goodsList) {
|
||||
sheetRowNum = sheetRowNum + 1;
|
||||
|
||||
Row excelSheetRow = sheet.getRow(sheetRowNum);
|
||||
|
||||
if (excelSheetRow == null) {
|
||||
excelSheetRow = sheet.createRow(sheetRowNum);
|
||||
}
|
||||
Cell cell = row.getCell(0);
|
||||
if (cell == null) {
|
||||
cell = row.createCell(0);
|
||||
|
||||
setCellValue(excelSheetRow,0,goodsRow.getId());
|
||||
setCellValue(excelSheetRow,1,goodsRow.getName());
|
||||
|
||||
String packagingString = goodsRow.getMinPackagingNumber() + goodsRow.getMinPackagingUnit() + "/" + goodsRow.getPackagingUnit();
|
||||
setCellValue(excelSheetRow,2,packagingString);
|
||||
|
||||
setCellValue(excelSheetRow,3,goodsRow.getProducer());
|
||||
|
||||
String desc="";
|
||||
GoodsTypeEnum goodsTypeEnum = GoodsTypeEnum.getByType(goodsRow.getType());
|
||||
if(goodsTypeEnum!=null){
|
||||
desc = goodsTypeEnum.getDesc();
|
||||
}
|
||||
cell.setCellValue("你好");
|
||||
setCellValue(excelSheetRow,4,desc);
|
||||
|
||||
String cateName = cateMap.getOrDefault(goodsRow.getCateId(),"");
|
||||
|
||||
setCellValue(excelSheetRow,5,cateName);
|
||||
setCellValue(excelSheetRow,6,goodsRow.getPackagingUnit());
|
||||
}
|
||||
//生成系统临时文件
|
||||
File file = File.createTempFile("excel", ".xlsx");
|
||||
|
||||
// 4. 保存为新文件
|
||||
FileOutputStream outFile = new FileOutputStream("D:\\new_excel.xlsx");
|
||||
FileOutputStream outFile = new FileOutputStream(file);
|
||||
workbook.write(outFile);
|
||||
|
||||
// 5. 关闭流
|
||||
outFile.close();
|
||||
inputStream.close();
|
||||
|
||||
fileName=file.getAbsolutePath();
|
||||
System.out.println("Excel文件生成成功!");
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
logger.warning(e.getMessage());
|
||||
throw new MessageException("excel创建失败");
|
||||
}
|
||||
|
||||
return "";
|
||||
return fileName;
|
||||
}
|
||||
|
||||
|
||||
private void setCellValue(Row row, int column, Object value) {
|
||||
Cell cell = row.getCell(column, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK);
|
||||
if (value == null) {
|
||||
cell.setCellValue("");
|
||||
} else if (value instanceof Number) {
|
||||
cell.setCellValue(((Number) value).doubleValue());
|
||||
} else {
|
||||
cell.setCellValue(value.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue