diff --git a/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/suppliers/ISuppliersApi.java b/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/suppliers/ISuppliersApi.java index d31a3ae..933bbf8 100644 --- a/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/suppliers/ISuppliersApi.java +++ b/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/suppliers/ISuppliersApi.java @@ -2,13 +2,11 @@ package com.nu.modules.suppliers; import com.baomidou.mybatisplus.core.metadata.IPage; import com.nu.dto.SuppliersMaterialInfoDto; -import com.nu.entity.NuBillEntity; -import com.nu.entity.SuppliersApplyEntity; -import com.nu.entity.SuppliersOrgAllEntity; -import com.nu.entity.SuppliersOrgEntity; +import com.nu.entity.*; import com.nu.modules.orgapplyinfo.entity.OrgAllInfoApiEntity; import java.util.List; +import java.util.Map; public interface ISuppliersApi { @@ -37,4 +35,17 @@ public interface ISuppliersApi { SuppliersApplyEntity getSupInfoByApplyId(String id); SuppliersApplyEntity getShowInfoByOpenId(String openId); + + List getSuppliersOrgInfoByOpenId(String openId); + + List getSuppliersMaterialType(String orgCode,String suppliersId); + + IPage getSuppliersMaterialInfo(String orgCode, String materialTypeId,String suppliersId,Integer pageNo,Integer pageSize); + + List> getSuppliersMaterialTypeByCondition(String orgCode, String suppliersId); + + List addSuppliersMaterialInfo(String orgCode,String suppliersId,List suppliersMaterialInfoDtos); + + SuppliersMaterialInfoDto editSuppliersMaterialInfo(SuppliersMaterialInfoDto suppliersMaterialInfoDtos); + } diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/allMaterialInfo/controller/NuBizAllMaterialInfoController.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/allMaterialInfo/controller/NuBizAllMaterialInfoController.java index 0dfd563..2f62e80 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/allMaterialInfo/controller/NuBizAllMaterialInfoController.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/allMaterialInfo/controller/NuBizAllMaterialInfoController.java @@ -155,7 +155,7 @@ public class NuBizAllMaterialInfoController extends JeecgController { - void exportExcel(NuBizAllMaterialInfo nuBizAllMaterialInfo,HttpServletResponse response); + void exportExcel(NuBizAllMaterialInfo nuBizAllMaterialInfo,HttpServletResponse response) throws IOException; } diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/allMaterialInfo/service/impl/NuBizAllMaterialInfoServiceImpl.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/allMaterialInfo/service/impl/NuBizAllMaterialInfoServiceImpl.java index 68a23bd..51f18c1 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/allMaterialInfo/service/impl/NuBizAllMaterialInfoServiceImpl.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/allMaterialInfo/service/impl/NuBizAllMaterialInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.nu.modules.allMaterialInfo.service.impl; +import com.aliyun.core.utils.IOUtils; import com.nu.modules.allMaterialInfo.entity.NuBizAllMaterialInfo; import com.nu.modules.allMaterialInfo.mapper.NuBizAllMaterialInfoMapper; import com.nu.modules.allMaterialInfo.service.INuBizAllMaterialInfoService; @@ -23,7 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; +import java.io.ByteArrayOutputStream; +import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.List; @@ -37,7 +43,7 @@ import java.util.List; public class NuBizAllMaterialInfoServiceImpl extends ServiceImpl implements INuBizAllMaterialInfoService { @Override - public void exportExcel(NuBizAllMaterialInfo nuBizAllMaterialInfo,HttpServletResponse response) { + public void exportExcel(NuBizAllMaterialInfo nuBizAllMaterialInfo,HttpServletResponse response) throws IOException { // 1. 查询数据 QueryWrapper queryWrapper = new QueryWrapper<>(); List dataList = baseMapper.selectList(queryWrapper); @@ -82,37 +88,128 @@ public class NuBizAllMaterialInfoServiceImpl extends ServiceImpl drawing = sheet.createDrawingPatriarch(); + + // 创建锚点 + ClientAnchor anchor = workbook.getCreationHelper().createClientAnchor(); + anchor.setCol1(startCol); // 起始列 + anchor.setRow1(startRow); // 起始行 + anchor.setCol2(endCol); // 结束列(不包含) + anchor.setRow2(endRow); // 结束行(不包含) + + // 插入图片 + Picture picture = drawing.createPicture(anchor, pictureIdx); + } + + // 从URL下载图片的方法 + private static byte[] downloadImageFromUrl(String imageUrl) throws IOException { + try { + // 使用Java内置的HttpURLConnection + URL url = new URL(imageUrl); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("GET"); + connection.setConnectTimeout(10000); // 10秒连接超时 + connection.setReadTimeout(30000); // 30秒读取超时 + + // 检查响应码 + int responseCode = connection.getResponseCode(); + if (responseCode != HttpURLConnection.HTTP_OK) { + throw new IOException("HTTP请求失败,响应码: " + responseCode); + } + + // 读取图片数据 + try (InputStream inputStream = connection.getInputStream(); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { + + byte[] buffer = new byte[8192]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, bytesRead); + } + + return outputStream.toByteArray(); + } + + } catch (Exception e) { + throw new IOException("下载图片失败: " + imageUrl, e); + } + } + + // 根据URL或路径确定图片类型 + private static int getPictureType(String path) { + String lowerPath = path.toLowerCase(); + + if (lowerPath.endsWith(".png")) { + return Workbook.PICTURE_TYPE_PNG; + } else if (lowerPath.endsWith(".jpg") || lowerPath.endsWith(".jpeg")) { + return Workbook.PICTURE_TYPE_JPEG; + } else if (lowerPath.endsWith(".bmp") || lowerPath.endsWith(".dib")) { + return Workbook.PICTURE_TYPE_DIB; + } else if (lowerPath.endsWith(".emf")) { + return Workbook.PICTURE_TYPE_EMF; + } else if (lowerPath.endsWith(".wmf")) { + return Workbook.PICTURE_TYPE_WMF; + } else if (lowerPath.endsWith(".gif")) { + return Workbook.PICTURE_TYPE_JPEG; // POI不支持GIF,转换为JPEG + } else { + // 默认或从Content-Type判断 + return Workbook.PICTURE_TYPE_JPEG; + } + } + /** * 设置单元格值并应用样式 */ diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/entity/NuBizSuppliersMaterialInfo.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/entity/NuBizSuppliersMaterialInfo.java index caa04a2..e3235d7 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/entity/NuBizSuppliersMaterialInfo.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/entity/NuBizSuppliersMaterialInfo.java @@ -79,4 +79,6 @@ public class NuBizSuppliersMaterialInfo implements Serializable { @Excel(name = "销售单位", width = 15) @ApiModelProperty(value = "销售单位") private java.lang.String salesUnit; + private java.lang.String orgCode; + private java.lang.String manufacturer; } diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/mapper/NuBizSuppliersApplyMapper.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/mapper/NuBizSuppliersApplyMapper.java index 1b6816e..1e3c8d6 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/mapper/NuBizSuppliersApplyMapper.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/mapper/NuBizSuppliersApplyMapper.java @@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.nu.entity.SuppliersApplyEntity; -import com.nu.entity.SuppliersOrgAllEntity; +import com.nu.dto.SuppliersMaterialInfoDto; +import com.nu.entity.*; import com.nu.modules.orgapplyinfo.entity.OrgAllInfoApiEntity; import org.apache.ibatis.annotations.Param; import com.nu.modules.bizSuppliers.entity.NuBizSuppliersApply; @@ -30,4 +30,12 @@ public interface NuBizSuppliersApplyMapper extends BaseMapper listPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); SuppliersApplyEntity getShowInfoByOpenId(@Param("openId") String openId); + + List getSuppliersOrgInfoByOpenId(@Param("openId") String openId); + + List getSuppliersMaterialType(@Param("suppliersId") String suppliersId); + + IPage getSuppliersMaterialInfo(@Param("materialTypeId")String materialTypeId,@Param("suppliersId")String suppliersId,IPage page); + + List getCategoryList(@Param("suppliersId")String suppliersId); } diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/mapper/NuBizSuppliersMaterialInfoMapper.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/mapper/NuBizSuppliersMaterialInfoMapper.java index 58c9794..197a68d 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/mapper/NuBizSuppliersMaterialInfoMapper.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/mapper/NuBizSuppliersMaterialInfoMapper.java @@ -19,4 +19,5 @@ public interface NuBizSuppliersMaterialInfoMapper extends BaseMapper noList(@Param("list") List list); IPage getSuppliersWlInfo(IPage page, @Param("title") String title, @Param("suppliersId") String suppliersId); + } diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/mapper/xml/NuBizSuppliersApplyMapper.xml b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/mapper/xml/NuBizSuppliersApplyMapper.xml index a7e19e4..28d29f3 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/mapper/xml/NuBizSuppliersApplyMapper.xml +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/mapper/xml/NuBizSuppliersApplyMapper.xml @@ -166,4 +166,30 @@ AND iz_history = 'N' AND opt_type = '入驻' and suppliers_id is null + + + + + + + diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/service/impl/NuBizSuppliersApplyServiceImpl.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/service/impl/NuBizSuppliersApplyServiceImpl.java index cbd062a..9669b6d 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/service/impl/NuBizSuppliersApplyServiceImpl.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/bizSuppliers/service/impl/NuBizSuppliersApplyServiceImpl.java @@ -1,7 +1,9 @@ package com.nu.modules.bizSuppliers.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -27,11 +29,13 @@ import com.nu.modules.suppliers.ISuppliersApi; import com.nu.modules.wxnotice.IWxNoticeApi; import com.nu.utils.DictUtils; import com.nu.utils.RabbitMQUtil; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.vo.LoginUser; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -47,6 +51,7 @@ import java.util.*; * @Date: 2025-12-22 * @Version: V1.0 */ +@Slf4j @Service public class NuBizSuppliersApplyServiceImpl extends ServiceImpl implements INuBizSuppliersApplyService, ISuppliersApi { @@ -71,6 +76,10 @@ public class NuBizSuppliersApplyServiceImpl extends ServiceImpl getSuppliersOrgInfoByOpenId(String openId) { + return baseMapper.getSuppliersOrgInfoByOpenId(openId); + } + + /** + * 获取供应商物料分类 + * @param orgCode + * @return + */ + @Override + @DS("#orgCode") + public List getSuppliersMaterialType(String orgCode,String suppliersId) { + return baseMapper.getSuppliersMaterialType(suppliersId); + } + + /** + * 获取供应商物料信息 + * @param orgCode + * @param materialTypeId + * @return + */ + @Override + @DS("#orgCode") + public IPage getSuppliersMaterialInfo(String orgCode, String materialTypeId,String suppliersId,Integer pageNo,Integer pageSize) { + IPage page = new Page<>(pageNo, pageSize); + return baseMapper.getSuppliersMaterialInfo(materialTypeId,suppliersId,page); + } + + /** + * 获取供应商物料分类-筛选功能 + * @param orgCode + * @return + */ + @Override + @DS("#orgCode") + public List> getSuppliersMaterialTypeByCondition(String orgCode,String suppliersId) { +// 一级分类 + List list = baseMapper.getCategoryList(suppliersId); +// 二级分类 + List list2 = baseMapper.getSuppliersMaterialType(suppliersId); + List> list3 = new ArrayList<>(); + for (SuppliersMaterialTypeEntity param1 : list){ + Map map = new HashMap<>(); + map.put("id",param1.getId()); + map.put("name",param1.getCategoryName()); + List> map2 = new ArrayList<>(); + for (SuppliersMaterialTypeEntity param2 : list2){ + if (param1.getId().equals(param2.getParentId())){ + Map map3 = new HashMap<>(); + map3.put("id",param2.getId()); + map3.put("name",param2.getTypeName()); + map2.add(map3); + } + } + map.put("children",map2); + list3.add(map); + } + return list3; + } + + /** + * 添加供应商物料信息 + * @param suppliersMaterialInfoDtos + * @return + */ + @Override + public List addSuppliersMaterialInfo(String orgCode,String suppliersId,List suppliersMaterialInfoDtos) { + List addList = BeanUtil.copyToList(suppliersMaterialInfoDtos, NuBizSuppliersMaterialInfo.class); + for (NuBizSuppliersMaterialInfo nuBizSuppliersMaterialInfo : addList){ + nuBizSuppliersMaterialInfo.setSuppliersId(suppliersId); + nuBizSuppliersMaterialInfo.setOrgCode(orgCode); + nuBizSuppliersMaterialInfoMapper.insert(nuBizSuppliersMaterialInfo); + } + return null; + } + + /** + * 修改供应商物料信息 + * @param suppliersMaterialInfoDtos + * @return + */ + @Override + public SuppliersMaterialInfoDto editSuppliersMaterialInfo(SuppliersMaterialInfoDto suppliersMaterialInfoDtos) { + NuBizSuppliersMaterialInfo nuBizSuppliersMaterialInfo = new NuBizSuppliersMaterialInfo(); + BeanUtils.copyProperties(suppliersMaterialInfoDtos, nuBizSuppliersMaterialInfo); + nuBizSuppliersMaterialInfoMapper.updateById(nuBizSuppliersMaterialInfo); + SuppliersMaterialInfoDto suppliersInfoMQDto = new SuppliersMaterialInfoDto(); + BeanUtils.copyProperties(nuBizSuppliersMaterialInfo, suppliersInfoMQDto); + rabbitMQUtil.sendToExchange("nu.suppliers.applyStatus", suppliersMaterialInfoDtos.getOrgCode() + ".suppliers.updateMaterialInfo", suppliersInfoMQDto); + return null; + } + @Override public IPage listPage(Page page, QueryWrapper queryWrapper) { return baseMapper.listPage(page, queryWrapper); diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/mapper/xml/NuEmployeesAdvisoryInfoMapper.xml b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/mapper/xml/NuEmployeesAdvisoryInfoMapper.xml index ea16ed1..c4e8382 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/mapper/xml/NuEmployeesAdvisoryInfoMapper.xml +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/mapper/xml/NuEmployeesAdvisoryInfoMapper.xml @@ -59,13 +59,9 @@