package com.ruoyi.system.controller; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson2.JSON; import com.ruoyi.system.domain.QuoteCraft; import com.ruoyi.system.domain.QuoteType; import com.ruoyi.system.service.IQuoteMaterialTypeService; import com.ruoyi.system.service.IServiceGoodsService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.domain.QuoteMaterial; import com.ruoyi.system.service.IQuoteMaterialService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; /** * 项目报价--物料信息Controller * * @author ruoyi * @date 2025-05-13 */ @RestController @RequestMapping("/system/QuoteMaterial") public class QuoteMaterialController extends BaseController { @Autowired private IQuoteMaterialService quoteMaterialService; @Autowired private IServiceGoodsService serviceGoodsService; @Autowired private IQuoteMaterialTypeService quoteMaterialTypeService; /** * 查询项目报价--物料信息列表 */ @PreAuthorize("@ss.hasPermi('system:QuoteMaterial:list')") @GetMapping("/list") public TableDataInfo list(QuoteMaterial quoteMaterial) { startPage(); if(quoteMaterial.getGoodId()!=null){ quoteMaterial.setGoodId("\""+quoteMaterial.getGoodId()+"\""); } List list = quoteMaterialService.selectQuoteMaterialList(quoteMaterial); for(QuoteMaterial QuoteMaterialData:list){ List idslist = Arrays.asList( QuoteMaterialData.getGoodId().replaceAll("[\\[\\]\"]", "").split(", ")); QuoteMaterialData.setServiceName(serviceGoodsService.selectTitlesByIds(idslist)); List typeidslist = Arrays.asList( QuoteMaterialData.getTypeId().replaceAll("[\\[\\]\"]", "").split(", ")); QuoteMaterialData.setTypeName(quoteMaterialTypeService.selecttypesByIds(typeidslist)); } return getDataTable(list); } /** * 导出项目报价--物料信息列表 */ @PreAuthorize("@ss.hasPermi('system:QuoteMaterial:export')") @Log(title = "项目报价--物料信息", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, QuoteMaterial quoteMaterial) { List list = quoteMaterialService.selectQuoteMaterialList(quoteMaterial); ExcelUtil util = new ExcelUtil(QuoteMaterial.class); util.exportExcel(response, list, "项目报价--物料信息数据"); } /** * 获取服务内容详细信息 * QuoteCraft quoteCraft */ @PreAuthorize("@ss.hasPermi('system:QuoteMaterial:query')") @GetMapping(value = "/selectQuoteMaterialList") public AjaxResult selectQuoteMaterialList() { return success(quoteMaterialService.selectQuoteMaterialList(new QuoteMaterial())); } /** * 获取项目报价--物料信息详细信息 */ @PreAuthorize("@ss.hasPermi('system:QuoteMaterial:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { QuoteMaterial quoteMaterial=quoteMaterialService.selectQuoteMaterialById(id); if (quoteMaterial.getGoodId()!=null){ String str = quoteMaterial.getGoodId(); List stringList = JSON.parseArray(str, String.class); List intList = stringList.stream().map(Integer::parseInt).collect(Collectors.toList()); quoteMaterial.setGoodsintids(intList); } return success(quoteMaterial); } /** * 新增项目报价--物料信息 */ @PreAuthorize("@ss.hasPermi('system:QuoteMaterial:add')") @Log(title = "项目报价--物料信息", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody QuoteMaterial quoteMaterial) { if(quoteMaterial.getGoodsintids().size()>0){ List intList =quoteMaterial.getGoodsintids(); // 先转成字符串List List strList = intList.stream().map(String::valueOf).collect(Collectors.toList()); // 再转成json字符串 String json = JSON.toJSONString(strList); quoteMaterial.setGoodId(json.replaceAll("\",\"", "\", \"")); //String withSpace = compact.replaceAll("\",\"", "\", \""); } return toAjax(quoteMaterialService.insertQuoteMaterial(quoteMaterial)); } /** * 修改项目报价--物料信息 */ @PreAuthorize("@ss.hasPermi('system:QuoteMaterial:edit')") @Log(title = "项目报价--物料信息", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody QuoteMaterial quoteMaterial) { if(quoteMaterial.getGoodsintids().size()>0){ System.out.println("#########################"+quoteMaterial.getGoodsintids()); List intList =quoteMaterial.getGoodsintids(); // 先转成字符串List List strList = intList.stream().map(String::valueOf).collect(Collectors.toList()); // 再转成json字符串 String json = JSON.toJSONString(strList); quoteMaterial.setGoodId(json.replaceAll("\",\"", "\", \"")); //String withSpace = compact.replaceAll("\",\"", "\", \""); } return toAjax(quoteMaterialService.updateQuoteMaterial(quoteMaterial)); } /** * 删除项目报价--物料信息 */ @PreAuthorize("@ss.hasPermi('system:QuoteMaterial:remove')") @Log(title = "项目报价--物料信息", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(quoteMaterialService.deleteQuoteMaterialByIds(ids)); } }