diff --git a/ruoyi-admin/src/main/java/com/ruoyi/main.java b/ruoyi-admin/src/main/java/com/ruoyi/main.java new file mode 100644 index 00000000..c4303173 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/main.java @@ -0,0 +1,12 @@ +package com.ruoyi; + +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.manufacture.controller.MaterialRequisitionInfoController; + +import java.util.Scanner; + +public class main { + public static void main(String args[]){ + + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.java index f1defacf..e3a4d62d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.java @@ -5,6 +5,7 @@ import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.util.MapUtils; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.fill.FillConfig; +import com.alibaba.excel.write.metadata.fill.FillWrapper; import com.alibaba.excel.write.metadata.style.WriteCellStyle; import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; import com.ruoyi.ck.utils.Result; @@ -26,15 +27,19 @@ import com.ruoyi.outsource.domain.OutsourceOrderMaterial; import com.ruoyi.outsource.service.IOutsourceOrderMaterialService; import com.ruoyi.outsource.service.impl.OutsourceOrderMaterialServiceImpl; import com.ruoyi.manufacture.service.IWorkOrderInfoService; -import com.ruoyi.system.domain.SysBom; -import com.ruoyi.system.domain.SysBomRawMaterial; -import com.ruoyi.system.service.ISysBomBcpService; -import com.ruoyi.system.service.ISysBomRawMaterialService; -import com.ruoyi.system.service.ISysBomService; -import com.ruoyi.system.service.ISysDictTypeService; +import com.ruoyi.storehouse.domain.OutboundDetail; +import com.ruoyi.storehouse.domain.exportDto.OutboundDetailDto; +import com.ruoyi.system.domain.*; +import com.ruoyi.system.service.*; +import com.ruoyi.system.service.impl.SysBomBcpServiceImpl; +import com.ruoyi.system.service.impl.SysBomRawMaterialServiceImpl; +import com.ruoyi.system.service.impl.SysBomServiceImpl; +import com.ruoyi.system.service.impl.SysBomSubsidiaryMaterialServiceImpl; import com.ruoyi.system.utils.ExcelFillCellMergePrevColUtils; +import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -43,12 +48,10 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; +import java.io.*; import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; import static com.ruoyi.common.config.datasource.DynamicDataSourceContextHolder.log; @@ -84,7 +87,14 @@ public class MaterialRequisitionInfoController extends BaseController @Autowired private ISysBomRawMaterialService sysBomRawMaterialService; @Autowired + private ISysBomSubsidiaryMaterialService sysBomSubsidiaryMaterialService; + @Autowired private IWorkOrderInfoService workOrderInfoService; + @Autowired + private IOutsourceOrderMaterialService outsourceOrderMaterialService; + @Autowired + private ISysFinishProductService sysFinishProductService; + // @RequiresPermissions("manufacture:materialRequisitionInfo:view") // @GetMapping() @@ -592,24 +602,178 @@ public class MaterialRequisitionInfoController extends BaseController /** * 查询委外领料单物料明细List */ - @RequiresPermissions("manufacture:materialRequisitionInfo:listOutsource") - @PostMapping("/selectOutsourceDetail") +// @RequiresPermissions("manufacture:materialRequisitionInfo:listOutsource") + @PostMapping("/selectOutsourceDetail/{outsourceOrderNumber}") @ResponseBody - public void selectOutsourceDetail(MaterialRequisitionInfo materialRequisitionInfo){ + public TableDataInfo selectOutsourceDetail(@PathVariable("outsourceOrderNumber")String outsourceOrderNumber){ + startPage(); //委外订单 - IOutsourceOrderMaterialService outsourceOrderMaterialService = new OutsourceOrderMaterialServiceImpl(); - List orderMaterialList = outsourceOrderMaterialService.selectOutsourceOrderMaterialList(new OutsourceOrderMaterial(materialRequisitionInfo.getSalesOrderNumber())); - + List orderMaterialList = outsourceOrderMaterialService.selectOutsourceOrderMaterialList(new OutsourceOrderMaterial(outsourceOrderNumber)); //委外明细 List materialRequisitionDetailList = new ArrayList<>(); //bom阶 int bomRank = 1; for (OutsourceOrderMaterial outsourceOrderMaterial : orderMaterialList) { + List list = sysBomBcpAllList(bomRank,Double.valueOf(outsourceOrderMaterial.getQuantity()),new SysBomBcp(outsourceOrderMaterial.getMaterialCode())); + if (list.size()>0){ + materialRequisitionDetailList.addAll(list); + } } + return getDataTable(materialRequisitionDetailList); + } + @RequiresPermissions("manufacture:materialRequisitionInfo:export") + @Log(title = "领料单", businessType = BusinessType.EXPORT) + @PostMapping("/exportOutsource/{materialRequisitionId}") + @ResponseBody + public void exportOutsource(@PathVariable("materialRequisitionId") Long materialRequisitionId, HttpServletResponse response) throws IOException { + //委外领料 + MaterialRequisitionInfo materialRequisitionInfo = materialRequisitionInfoService.selectMaterialRequisitionInfoById(materialRequisitionId); + //委外订单 + List orderMaterialList = outsourceOrderMaterialService.selectOutsourceOrderMaterialList(new OutsourceOrderMaterial(materialRequisitionInfo.getOutsourceOrderNumber())); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("委外领料单", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + String templateFileName = "C:\\exportTemplates\\exportMaterialRequisitionOutsource.xlsx"; + ExcelFillCellMergePrevColUtils mergePrevColUtils = new ExcelFillCellMergePrevColUtils(); + Map> map = new HashMap<>(); + for (OutsourceOrderMaterial orderMaterial : orderMaterialList) { + List materialRequisitionDetailList = exportOutsourceList(materialRequisitionInfo.getMaterialRequisitionNumber(), orderMaterial.getMaterialCode()); + List materialRequisitionDetailDtoList = new ArrayList<>(); + try { + int number = 0; + Iterator materialRequisitionDetailValues = materialRequisitionDetailList.iterator(); + while (materialRequisitionDetailValues.hasNext()) { + Object detailValues = materialRequisitionDetailValues.next(); + MaterialRequisitionDetailDto detailDto = new MaterialRequisitionDetailDto(); + BeanUtils.copyProperties(detailValues, detailDto); + detailDto.setNumber(++number); + materialRequisitionDetailDtoList.add(detailDto); + } + } catch (Exception e) { + log.error(">>>>>>异常OutboundDetailDto<<<<<<", e); + } + map.put(orderMaterial,materialRequisitionDetailDtoList); + } + + File file = new File(templateFileName); + try(FileInputStream fileInputStream = new FileInputStream(file); ByteArrayOutputStream bos = new ByteArrayOutputStream()){ + int sheetCount = map.size(); + XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream); + for (int i = 1; i < sheetCount; i++) { + workbook.cloneSheet(0,"sheet"+(i+1)); + } + workbook.write(bos); + byte[] bArray = bos.toByteArray(); + InputStream is = new ByteArrayInputStream(bArray); + ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), MaterialRequisitionDetailDto.class).withTemplate(is).registerWriteHandler(mergePrevColUtils).build(); + int i = 0; + for (OutsourceOrderMaterial orderMaterial : map.keySet()) { + List finishProductList = sysFinishProductService.selectSysFinishProductList(new SysFinishProduct(orderMaterial.getMaterialCode())); + List list=new ArrayList<>(); + for (MaterialRequisitionDetailDto materialRequisitionDetailDto : map.get(orderMaterial)) { + list.add(finishProductList.get(0)); + } + WriteSheet writeSheet = EasyExcel.writerSheet(i++).build(); + FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); + excelWriter.fill(new FillWrapper("material",map.get(orderMaterial)), fillConfig, writeSheet); + excelWriter.fill(new FillWrapper("finish",list), writeSheet); + Map excelMap = MapUtils.newHashMap(); + SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日"); + excelMap.put("materialRequisitionNumber", materialRequisitionInfo.getMaterialRequisitionNumber()); + excelMap.put("salesOrderNumber", materialRequisitionInfo.getOutsourceOrderNumber()); + //暂时存在问题 + excelMap.put("typeMachine",finishProductList.get(0).getTypeMachine()); + excelMap.put("firstAddTime",format.format( new SimpleDateFormat("yyyy-MM-dd").parse(materialRequisitionInfo.getFirstAddTime()))); + excelMap.put("quantity",orderMaterial.getQuantity()); + excelMap.put("finishCode",orderMaterial.getMaterialCode()); + excelMap.put("nowDate",format.format(new Date())); + excelMap.put("deliveryDate",format.format(new SimpleDateFormat("yyyy-MM-dd").parse(orderMaterial.getDeliveryDate()))); + excelMap.put("finishName",orderMaterial.getMaterialName()); + excelWriter.fill(excelMap,writeSheet); + } + excelWriter.finish(); + }catch (Exception e){ + e.printStackTrace(); + } + } + + private List exportOutsourceList(String materialRequisitionNumber,String materialCode) { + List result = new ArrayList<>(); + List materialRequisitionDetailList = materialRequisitionDetailService.selectMaterialRequisitionDetailList(new MaterialRequisitionDetail(materialRequisitionNumber,materialCode)); + if (materialRequisitionDetailList.size()>0){ + result.addAll(materialRequisitionDetailList); + for (MaterialRequisitionDetail materialRequisitionDetail : materialRequisitionDetailList) { + result.addAll(exportOutsourceList(materialRequisitionNumber,materialRequisitionDetail.getMaterialCode())); + } + } + return result; + } + private List sysBomBcpAllList(int bomRank,Double quantity,SysBomBcp sysBomBcp) { + List materialRequisitionDetailList = new ArrayList<>(); + List bomBcpList =sysBomBcpService.selectSysBomBcpList(sysBomBcp); + List rawMaterialList = sysBomRawMaterialService.selectSysBomRawMaterialList(new SysBomRawMaterial(sysBomBcp.getFinishProductCode())); + List subsidiaryMaterialList = sysBomSubsidiaryMaterialService.selectSysBomSubsidiaryMaterialList(new SysBomSubsidiaryMaterial(sysBomBcp.getFinishProductCode())); + if(rawMaterialList.size()>0){ + for (SysBomRawMaterial rawMaterial : rawMaterialList) { + MaterialRequisitionDetail materialRequisitionDetail = new MaterialRequisitionDetail(); + materialRequisitionDetail.setMaterialCode(rawMaterial.getRawMaterialCode()); //物料代码 + materialRequisitionDetail.setMaterialName(rawMaterial.getRawMaterialName()); //物料名称 + materialRequisitionDetail.setSpecificationModel(rawMaterial.getSpecificationModel()); //规格型号 + materialRequisitionDetail.setItemNumber(rawMaterial.getSupplierNumber()); //料号 + materialRequisitionDetail.setInventoryUnit(rawMaterial.getInventoryUnit()); //单位 + materialRequisitionDetail.setUnitUsage(rawMaterial.getRawMaterialConsumption()); //单位用量 + materialRequisitionDetail.setUpFinishProductCode(rawMaterial.getFinishProductCode()); //上级半成品代码 + + materialRequisitionDetail.setPlanQuantity(String.valueOf(Double.valueOf(rawMaterial.getRawMaterialConsumption()) * quantity)); //计划数量 + materialRequisitionDetail.setMaterialType("原料"); //物料类别 + materialRequisitionDetail.setBomRank(String.valueOf(bomRank)); //bom阶 + materialRequisitionDetailList.add(materialRequisitionDetail); + } + } + if (subsidiaryMaterialList.size()>0){ + for (SysBomSubsidiaryMaterial subsidiaryMaterial : subsidiaryMaterialList) { + MaterialRequisitionDetail materialRequisitionDetail = new MaterialRequisitionDetail(); + materialRequisitionDetail.setMaterialCode(subsidiaryMaterial.getSubsidiaryMaterialCode()); //物料代码 + materialRequisitionDetail.setMaterialName(subsidiaryMaterial.getSubsidiaryMaterialName()); //物料名称 + materialRequisitionDetail.setSpecificationModel(subsidiaryMaterial.getSpecificationModel()); //规格型号 + materialRequisitionDetail.setItemNumber(subsidiaryMaterial.getSupplierNumber()); //料号 + materialRequisitionDetail.setInventoryUnit(subsidiaryMaterial.getInventoryUnit()); //单位 + materialRequisitionDetail.setUnitUsage(subsidiaryMaterial.getSubsidiaryMaterialConsumption()); //单位用量 + materialRequisitionDetail.setUpFinishProductCode(subsidiaryMaterial.getFinishProductCode()); //上级半成品代码 + + materialRequisitionDetail.setPlanQuantity(String.valueOf(Double.valueOf(subsidiaryMaterial.getSubsidiaryMaterialConsumption())*quantity)); //计划数量 + materialRequisitionDetail.setMaterialType("辅料"); //物料类别 + materialRequisitionDetail.setBomRank(String.valueOf(bomRank)); //bom阶 + materialRequisitionDetailList.add(materialRequisitionDetail); + } + } + if(bomBcpList.size()>0){ + for (SysBomBcp bomBcp : bomBcpList) { + quantity = Double.valueOf(bomBcp.getBcpMaterialConsumption())*quantity; + + MaterialRequisitionDetail materialRequisitionDetail = new MaterialRequisitionDetail(); + materialRequisitionDetail.setMaterialCode(bomBcp.getBcpCode()); //物料代码 + materialRequisitionDetail.setMaterialName(bomBcp.getBcpName()); //物料名称 + materialRequisitionDetail.setSpecificationModel(bomBcp.getSpecificationModel()); //规格型号 + materialRequisitionDetail.setItemNumber(bomBcp.getCustomerNumber()); //料号 + materialRequisitionDetail.setInventoryUnit(bomBcp.getInventoryUnit()); //单位 + materialRequisitionDetail.setUnitUsage(bomBcp.getBcpMaterialConsumption()); //单位用量 + materialRequisitionDetail.setUpFinishProductCode(bomBcp.getFinishProductCode()); //上级半成品代码 + + materialRequisitionDetail.setPlanQuantity(String.valueOf(quantity)); //计划数量 + materialRequisitionDetail.setMaterialType("半成品"); //物料类别 + materialRequisitionDetail.setBomRank(String.valueOf(bomRank)); //bom阶 + materialRequisitionDetailList.add(materialRequisitionDetail); + + List list = sysBomBcpAllList(bomRank+1,quantity,new SysBomBcp(bomBcp.getBomBcpId(),bomBcp.getBcpCode())); + materialRequisitionDetailList.addAll(list); + } + } + return materialRequisitionDetailList; } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/manufacture/domain/MaterialRequisitionDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/manufacture/domain/MaterialRequisitionDetail.java index ac64194c..9a4e7479 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/manufacture/domain/MaterialRequisitionDetail.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/manufacture/domain/MaterialRequisitionDetail.java @@ -80,7 +80,15 @@ public class MaterialRequisitionDetail extends BaseEntity @Excel(name = "上级半成品代码") private String upFinishProductCode; - public void setMaterialRequisitionDetailId(Long materialRequisitionDetailId) + public MaterialRequisitionDetail() { + } + + public MaterialRequisitionDetail(String materialRequisitionNumber, String upFinishProductCode) { + this.materialRequisitionNumber = materialRequisitionNumber; + this.upFinishProductCode = upFinishProductCode; + } + + public void setMaterialRequisitionDetailId(Long materialRequisitionDetailId) { this.materialRequisitionDetailId = materialRequisitionDetailId; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualitySupplierDeductionController.java b/ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualitySupplierDeductionController.java new file mode 100644 index 00000000..133b9d0b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualitySupplierDeductionController.java @@ -0,0 +1,190 @@ +package com.ruoyi.quality.controller; + +import java.io.IOException; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.util.MapUtils; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.metadata.fill.FillConfig; +import com.ruoyi.quality.domain.exportDto.QualitySupplierDeductionDto; +import com.ruoyi.storehouse.domain.exportDto.OutboundDetailDto; +import com.ruoyi.system.utils.ExcelFillCellMergePrevColUtils; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.quality.domain.QualitySupplierDeduction; +import com.ruoyi.quality.service.IQualitySupplierDeductionService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +import javax.servlet.http.HttpServletResponse; + +/** + * qualitySupplierDeductionController + * + * @author ruoyi + * @date 2023-06-19 + */ +@Controller +@RequestMapping("/quality/qualitySupplierDeduction") +public class QualitySupplierDeductionController extends BaseController +{ + private String prefix = "quality/qualitySupplierDeduction"; + + @Autowired + private IQualitySupplierDeductionService qualitySupplierDeductionService; + + @RequiresPermissions("quality:qualitySupplierDeduction:view") + @GetMapping() + public String qualitySupplierDeduction() + { + return prefix + "/qualitySupplierDeduction"; + } + + /** + * 查询qualitySupplierDeduction列表 + */ + @RequiresPermissions("quality:qualitySupplierDeduction:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(QualitySupplierDeduction qualitySupplierDeduction) + { + startPage(); + List list = qualitySupplierDeductionService.selectQualitySupplierDeductionList(qualitySupplierDeduction); + return getDataTable(list); + } + + /** + * 导出qualitySupplierDeduction列表 + */ + @RequiresPermissions("quality:qualitySupplierDeduction:export") + @Log(title = "qualitySupplierDeduction", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public AjaxResult export(QualitySupplierDeduction qualitySupplierDeduction) + { + List list = qualitySupplierDeductionService.selectQualitySupplierDeductionList(qualitySupplierDeduction); + ExcelUtil util = new ExcelUtil(QualitySupplierDeduction.class); + return util.exportExcel(list, "qualitySupplierDeduction数据"); + } + + /** + * 导出原料出库单 + */ + @RequiresPermissions("storehouse:outboundInfo:export") + @Log(title = "outboundInfo", businessType = BusinessType.EXPORT) + @PostMapping("/export/{qualitySupplierDeductionId}") + @ResponseBody + public void exportYL(@PathVariable("qualitySupplierDeductionId") Long qualitySupplierDeductionId , HttpServletResponse response) throws IOException { + QualitySupplierDeduction qualitySupplierDeduction= qualitySupplierDeductionService.selectQualitySupplierDeductionById(qualitySupplierDeductionId); + + ExcelFillCellMergePrevColUtils mergePrevColUtils = new ExcelFillCellMergePrevColUtils(); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("供应商索赔扣款单", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + String templateFileName = "C:\\exportTemplates\\exportQualitySupplierDeduction.xlsx"; + + try (ExcelWriter excelWriter = EasyExcel + .write(response.getOutputStream(), QualitySupplierDeductionDto.class) + .withTemplate(templateFileName) + .registerWriteHandler(mergePrevColUtils) + .build()) { + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + Map map = MapUtils.newHashMap(); + map.put("supplierCode", qualitySupplierDeduction.getSupplierCode()); + map.put("modeOfService", qualitySupplierDeduction.getModeOfService()); + map.put("acceptanceDepartment", qualitySupplierDeduction.getAcceptanceDepartment()); + map.put("acceptancePerson", qualitySupplierDeduction.getAcceptancePerson()); + map.put("contactNumber", qualitySupplierDeduction.getContactNumber()); + map.put("reworkLaborCost", qualitySupplierDeduction.getReworkLaborCost()); + map.put("customerDeduction", qualitySupplierDeduction.getCustomerDeduction()); + map.put("punitiveDamage", qualitySupplierDeduction.getPunitiveDamage()); + map.put("materialScrapCost", qualitySupplierDeduction.getMaterialScrapCost()); + map.put("transportationExpenses", qualitySupplierDeduction.getTransportationExpenses()); + map.put("otherName", "其他("+qualitySupplierDeduction.getOtherName()+")"); + map.put("othersCost", qualitySupplierDeduction.getOthersCost()); + map.put("totalAmount", qualitySupplierDeduction.getTotalAmount()); + map.put("proposePerson", qualitySupplierDeduction.getProposePerson()); + map.put("reviewedPerson", qualitySupplierDeduction.getReviewedPerson()); + map.put("approvalPerson", qualitySupplierDeduction.getApprovalPerson()); + List reasons = new ArrayList<>(); + map.put("reason", qualitySupplierDeduction.getReason()); + excelWriter.fill(map,writeSheet); + } + } + + + + /** + * 新增qualitySupplierDeduction + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存qualitySupplierDeduction + */ + @RequiresPermissions("quality:qualitySupplierDeduction:add") + @Log(title = "qualitySupplierDeduction", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(QualitySupplierDeduction qualitySupplierDeduction) + { + return toAjax(qualitySupplierDeductionService.insertQualitySupplierDeduction(qualitySupplierDeduction)); + } + + /** + * 修改qualitySupplierDeduction + */ + @GetMapping("/edit/{supplierDeductionId}") + public String edit(@PathVariable("supplierDeductionId") Long supplierDeductionId, ModelMap mmap) + { + QualitySupplierDeduction qualitySupplierDeduction = qualitySupplierDeductionService.selectQualitySupplierDeductionById(supplierDeductionId); + mmap.put("qualitySupplierDeduction", qualitySupplierDeduction); + return prefix + "/edit"; + } + + /** + * 修改保存qualitySupplierDeduction + */ + @RequiresPermissions("quality:qualitySupplierDeduction:edit") + @Log(title = "qualitySupplierDeduction", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(QualitySupplierDeduction qualitySupplierDeduction) + { + return toAjax(qualitySupplierDeductionService.updateQualitySupplierDeduction(qualitySupplierDeduction)); + } + + /** + * 删除qualitySupplierDeduction + */ + @RequiresPermissions("quality:qualitySupplierDeduction:remove") + @Log(title = "qualitySupplierDeduction", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(qualitySupplierDeductionService.deleteQualitySupplierDeductionByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/quality/domain/QualitySupplierDeduction.java b/ruoyi-admin/src/main/java/com/ruoyi/quality/domain/QualitySupplierDeduction.java new file mode 100644 index 00000000..07d83620 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/quality/domain/QualitySupplierDeduction.java @@ -0,0 +1,275 @@ +package com.ruoyi.quality.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * qualitySupplierDeduction对象 quality_supplier_deduction + * + * @author ruoyi + * @date 2023-06-19 + */ +public class QualitySupplierDeduction extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** */ + private Long supplierDeductionId; + + /** 供应商代码 */ + @Excel(name = "供应商代码") + private String supplierCode; + + /** 送达方式 */ + @Excel(name = "送达方式") + private String modeOfService; + + /** 受理部门 */ + @Excel(name = "受理部门") + private String acceptanceDepartment; + + /** 受理人 */ + @Excel(name = "受理人") + private String acceptancePerson; + + /** 联络方式 */ + @Excel(name = "联络方式") + private String contactNumber; + + /** 索赔扣款详细原因 */ + @Excel(name = "索赔扣款详细原因") + private String reason; + + /** 返工工时费 */ + @Excel(name = "返工工时费") + private String reworkLaborCost; + + /** 客户扣款 */ + @Excel(name = "客户扣款") + private String customerDeduction; + + /** 惩罚性罚款 */ + @Excel(name = "惩罚性罚款") + private String punitiveDamage; + + /** 物料报废费用 */ + @Excel(name = "物料报废费用") + private String materialScrapCost; + + /** 交通/运输费 */ + @Excel(name = "交通/运输费") + private String transportationExpenses; + + /** 其他名字 */ + @Excel(name = "其他名字") + private String otherName; + + /** 其他金额 */ + @Excel(name = "其他金额") + private String othersCost; + + /** 合计金额 */ + @Excel(name = "合计金额") + private String totalAmount; + + /** 提出人 */ + @Excel(name = "提出人") + private String proposePerson; + + /** 审核人 */ + @Excel(name = "审核人") + private String reviewedPerson; + + /** 复核人 */ + @Excel(name = "复核人") + private String approvalPerson; + + public void setSupplierDeductionId(Long supplierDeductionId) + { + this.supplierDeductionId = supplierDeductionId; + } + + public Long getSupplierDeductionId() + { + return supplierDeductionId; + } + public void setSupplierCode(String supplierCode) + { + this.supplierCode = supplierCode; + } + + public String getSupplierCode() + { + return supplierCode; + } + public void setModeOfService(String modeOfService) + { + this.modeOfService = modeOfService; + } + + public String getModeOfService() + { + return modeOfService; + } + public void setAcceptanceDepartment(String acceptanceDepartment) + { + this.acceptanceDepartment = acceptanceDepartment; + } + + public String getAcceptanceDepartment() + { + return acceptanceDepartment; + } + public void setAcceptancePerson(String acceptancePerson) + { + this.acceptancePerson = acceptancePerson; + } + + public String getAcceptancePerson() + { + return acceptancePerson; + } + public void setContactNumber(String contactNumber) + { + this.contactNumber = contactNumber; + } + + public String getContactNumber() + { + return contactNumber; + } + public void setReason(String reason) + { + this.reason = reason; + } + + public String getReason() + { + return reason; + } + public void setReworkLaborCost(String reworkLaborCost) + { + this.reworkLaborCost = reworkLaborCost; + } + + public String getReworkLaborCost() + { + return reworkLaborCost; + } + public void setCustomerDeduction(String customerDeduction) + { + this.customerDeduction = customerDeduction; + } + + public String getCustomerDeduction() + { + return customerDeduction; + } + public void setPunitiveDamage(String punitiveDamage) + { + this.punitiveDamage = punitiveDamage; + } + + public String getPunitiveDamage() + { + return punitiveDamage; + } + public void setMaterialScrapCost(String materialScrapCost) + { + this.materialScrapCost = materialScrapCost; + } + + public String getMaterialScrapCost() + { + return materialScrapCost; + } + public void setTransportationExpenses(String transportationExpenses) + { + this.transportationExpenses = transportationExpenses; + } + + public String getTransportationExpenses() + { + return transportationExpenses; + } + public void setOtherName(String otherName) + { + this.otherName = otherName; + } + + public String getOtherName() + { + return otherName; + } + public void setOthersCost(String othersCost) + { + this.othersCost = othersCost; + } + + public String getOthersCost() + { + return othersCost; + } + public void setTotalAmount(String totalAmount) + { + this.totalAmount = totalAmount; + } + + public String getTotalAmount() + { + return totalAmount; + } + public void setProposePerson(String proposePerson) + { + this.proposePerson = proposePerson; + } + + public String getProposePerson() + { + return proposePerson; + } + public void setReviewedPerson(String reviewedPerson) + { + this.reviewedPerson = reviewedPerson; + } + + public String getReviewedPerson() + { + return reviewedPerson; + } + public void setApprovalPerson(String approvalPerson) + { + this.approvalPerson = approvalPerson; + } + + public String getApprovalPerson() + { + return approvalPerson; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("supplierDeductionId", getSupplierDeductionId()) + .append("supplierCode", getSupplierCode()) + .append("modeOfService", getModeOfService()) + .append("acceptanceDepartment", getAcceptanceDepartment()) + .append("acceptancePerson", getAcceptancePerson()) + .append("contactNumber", getContactNumber()) + .append("reason", getReason()) + .append("reworkLaborCost", getReworkLaborCost()) + .append("customerDeduction", getCustomerDeduction()) + .append("punitiveDamage", getPunitiveDamage()) + .append("materialScrapCost", getMaterialScrapCost()) + .append("transportationExpenses", getTransportationExpenses()) + .append("otherName", getOtherName()) + .append("othersCost", getOthersCost()) + .append("totalAmount", getTotalAmount()) + .append("proposePerson", getProposePerson()) + .append("reviewedPerson", getReviewedPerson()) + .append("approvalPerson", getApprovalPerson()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/quality/domain/exportDto/QualitySupplierDeductionDto.java b/ruoyi-admin/src/main/java/com/ruoyi/quality/domain/exportDto/QualitySupplierDeductionDto.java new file mode 100644 index 00000000..ac2c2a78 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/quality/domain/exportDto/QualitySupplierDeductionDto.java @@ -0,0 +1,297 @@ +package com.ruoyi.quality.domain.exportDto; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ContentFontStyle; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.enums.BooleanEnum; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * qualitySupplierDeduction对象 quality_supplier_deduction + * + * @author ruoyi + * @date 2023-06-19 + */ +public class QualitySupplierDeductionDto extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** */ + private Long supplierDeductionId; + + /** 供应商代码 */ + @ExcelProperty("供应商代码") + @ContentStyle(borderTop = BorderStyleEnum.THIN , borderBottom = BorderStyleEnum.THIN , horizontalAlignment = HorizontalAlignmentEnum.CENTER , verticalAlignment = VerticalAlignmentEnum.CENTER) + private String supplierCode; + + /** 送达方式 */ + @ExcelProperty("送达方式") + @ContentStyle(borderTop = BorderStyleEnum.THIN , borderBottom = BorderStyleEnum.THIN , horizontalAlignment = HorizontalAlignmentEnum.CENTER , verticalAlignment = VerticalAlignmentEnum.CENTER) + private String modeOfService; + + /** 受理部门 */ + @ExcelProperty("受理部门") + @ContentStyle(borderTop = BorderStyleEnum.THIN , borderBottom = BorderStyleEnum.THIN , horizontalAlignment = HorizontalAlignmentEnum.CENTER , verticalAlignment = VerticalAlignmentEnum.CENTER) + private String acceptanceDepartment; + + /** 受理人 */ + @ExcelProperty("受理人") + @ContentStyle(borderTop = BorderStyleEnum.THIN , borderBottom = BorderStyleEnum.THIN , horizontalAlignment = HorizontalAlignmentEnum.CENTER , verticalAlignment = VerticalAlignmentEnum.CENTER) + private String acceptancePerson; + + /** 联络方式 */ + @ExcelProperty("联络方式") + @ContentStyle(borderTop = BorderStyleEnum.THIN , borderBottom = BorderStyleEnum.THIN , horizontalAlignment = HorizontalAlignmentEnum.CENTER , verticalAlignment = VerticalAlignmentEnum.CENTER) + private String contactNumber; + + /** 索赔扣款详细原因 */ + @ExcelProperty("索赔扣款详细原因") + @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.LEFT , verticalAlignment = VerticalAlignmentEnum.TOP , wrapped = BooleanEnum.TRUE) + private String reason; + + /** 返工工时费 */ + @ExcelProperty("返工工时费") + @ContentStyle(borderTop = BorderStyleEnum.THIN , borderBottom = BorderStyleEnum.THIN , horizontalAlignment = HorizontalAlignmentEnum.CENTER , verticalAlignment = VerticalAlignmentEnum.CENTER) + private String reworkLaborCost; + + /** 客户扣款 */ + @ExcelProperty("客户扣款") + @ContentStyle(borderTop = BorderStyleEnum.THIN , borderBottom = BorderStyleEnum.THIN , horizontalAlignment = HorizontalAlignmentEnum.CENTER , verticalAlignment = VerticalAlignmentEnum.CENTER) + private String customerDeduction; + + /** 惩罚性罚款 */ + @ExcelProperty("惩罚性罚款") + @ContentStyle(borderTop = BorderStyleEnum.THIN , borderBottom = BorderStyleEnum.THIN , horizontalAlignment = HorizontalAlignmentEnum.CENTER , verticalAlignment = VerticalAlignmentEnum.CENTER) + private String punitiveDamage; + + /** 物料报废费用 */ + @ExcelProperty("物料报废费用") + @ContentStyle(borderTop = BorderStyleEnum.THIN , borderBottom = BorderStyleEnum.THIN , horizontalAlignment = HorizontalAlignmentEnum.CENTER , verticalAlignment = VerticalAlignmentEnum.CENTER) + private String materialScrapCost; + + /** 交通/运输费 */ + @ExcelProperty("交通/运输费") + @ContentStyle(borderTop = BorderStyleEnum.THIN , borderBottom = BorderStyleEnum.THIN , horizontalAlignment = HorizontalAlignmentEnum.CENTER , verticalAlignment = VerticalAlignmentEnum.CENTER) + private String transportationExpenses; + + /** 其他名字 */ + @ExcelProperty("其他名字") + @ContentFontStyle(fontName="等线") + private String otherName; + + /** 其他金额 */ + @ExcelProperty("其他金额") + @ContentStyle(borderTop = BorderStyleEnum.THIN , borderBottom = BorderStyleEnum.THIN , horizontalAlignment = HorizontalAlignmentEnum.CENTER , verticalAlignment = VerticalAlignmentEnum.CENTER) + private String othersCost; + + /** 合计金额 */ + @ExcelProperty("合计金额") + @ContentStyle(borderTop = BorderStyleEnum.THIN , borderBottom = BorderStyleEnum.THIN , horizontalAlignment = HorizontalAlignmentEnum.CENTER , verticalAlignment = VerticalAlignmentEnum.CENTER) + private String totalAmount; + + /** 提出人 */ + @ExcelProperty("提出人") + private String proposePerson; + + /** 审核人 */ + @ExcelProperty("审核人") + private String reviewedPerson; + + /** 复核人 */ + @ExcelProperty("复核人") + @ContentStyle(borderRight = BorderStyleEnum.THIN) + private String approvalPerson; + + public void setSupplierDeductionId(Long supplierDeductionId) + { + this.supplierDeductionId = supplierDeductionId; + } + + public Long getSupplierDeductionId() + { + return supplierDeductionId; + } + public void setSupplierCode(String supplierCode) + { + this.supplierCode = supplierCode; + } + + public String getSupplierCode() + { + return supplierCode; + } + public void setModeOfService(String modeOfService) + { + this.modeOfService = modeOfService; + } + + public String getModeOfService() + { + return modeOfService; + } + public void setAcceptanceDepartment(String acceptanceDepartment) + { + this.acceptanceDepartment = acceptanceDepartment; + } + + public String getAcceptanceDepartment() + { + return acceptanceDepartment; + } + public void setAcceptancePerson(String acceptancePerson) + { + this.acceptancePerson = acceptancePerson; + } + + public String getAcceptancePerson() + { + return acceptancePerson; + } + public void setContactNumber(String contactNumber) + { + this.contactNumber = contactNumber; + } + + public String getContactNumber() + { + return contactNumber; + } + public void setReason(String reason) + { + this.reason = reason; + } + + public String getReason() + { + return reason; + } + public void setReworkLaborCost(String reworkLaborCost) + { + this.reworkLaborCost = reworkLaborCost; + } + + public String getReworkLaborCost() + { + return reworkLaborCost; + } + public void setCustomerDeduction(String customerDeduction) + { + this.customerDeduction = customerDeduction; + } + + public String getCustomerDeduction() + { + return customerDeduction; + } + public void setPunitiveDamage(String punitiveDamage) + { + this.punitiveDamage = punitiveDamage; + } + + public String getPunitiveDamage() + { + return punitiveDamage; + } + public void setMaterialScrapCost(String materialScrapCost) + { + this.materialScrapCost = materialScrapCost; + } + + public String getMaterialScrapCost() + { + return materialScrapCost; + } + public void setTransportationExpenses(String transportationExpenses) + { + this.transportationExpenses = transportationExpenses; + } + + public String getTransportationExpenses() + { + return transportationExpenses; + } + public void setOtherName(String otherName) + { + this.otherName = otherName; + } + + public String getOtherName() + { + return otherName; + } + public void setOthersCost(String othersCost) + { + this.othersCost = othersCost; + } + + public String getOthersCost() + { + return othersCost; + } + public void setTotalAmount(String totalAmount) + { + this.totalAmount = totalAmount; + } + + public String getTotalAmount() + { + return totalAmount; + } + public void setProposePerson(String proposePerson) + { + this.proposePerson = proposePerson; + } + + public String getProposePerson() + { + return proposePerson; + } + public void setReviewedPerson(String reviewedPerson) + { + this.reviewedPerson = reviewedPerson; + } + + public String getReviewedPerson() + { + return reviewedPerson; + } + public void setApprovalPerson(String approvalPerson) + { + this.approvalPerson = approvalPerson; + } + + public String getApprovalPerson() + { + return approvalPerson; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("supplierDeductionId", getSupplierDeductionId()) + .append("supplierCode", getSupplierCode()) + .append("modeOfService", getModeOfService()) + .append("acceptanceDepartment", getAcceptanceDepartment()) + .append("acceptancePerson", getAcceptancePerson()) + .append("contactNumber", getContactNumber()) + .append("reason", getReason()) + .append("reworkLaborCost", getReworkLaborCost()) + .append("customerDeduction", getCustomerDeduction()) + .append("punitiveDamage", getPunitiveDamage()) + .append("materialScrapCost", getMaterialScrapCost()) + .append("transportationExpenses", getTransportationExpenses()) + .append("otherName", getOtherName()) + .append("othersCost", getOthersCost()) + .append("totalAmount", getTotalAmount()) + .append("proposePerson", getProposePerson()) + .append("reviewedPerson", getReviewedPerson()) + .append("approvalPerson", getApprovalPerson()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/quality/mapper/QualitySupplierDeductionMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/quality/mapper/QualitySupplierDeductionMapper.java new file mode 100644 index 00000000..5b625a8e --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/quality/mapper/QualitySupplierDeductionMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.quality.mapper; + +import java.util.List; +import com.ruoyi.quality.domain.QualitySupplierDeduction; + +/** + * qualitySupplierDeductionMapper接口 + * + * @author ruoyi + * @date 2023-06-19 + */ +public interface QualitySupplierDeductionMapper +{ + /** + * 查询qualitySupplierDeduction + * + * @param supplierDeductionId qualitySupplierDeductionID + * @return qualitySupplierDeduction + */ + public QualitySupplierDeduction selectQualitySupplierDeductionById(Long supplierDeductionId); + + /** + * 查询qualitySupplierDeduction列表 + * + * @param qualitySupplierDeduction qualitySupplierDeduction + * @return qualitySupplierDeduction集合 + */ + public List selectQualitySupplierDeductionList(QualitySupplierDeduction qualitySupplierDeduction); + + /** + * 新增qualitySupplierDeduction + * + * @param qualitySupplierDeduction qualitySupplierDeduction + * @return 结果 + */ + public int insertQualitySupplierDeduction(QualitySupplierDeduction qualitySupplierDeduction); + + /** + * 修改qualitySupplierDeduction + * + * @param qualitySupplierDeduction qualitySupplierDeduction + * @return 结果 + */ + public int updateQualitySupplierDeduction(QualitySupplierDeduction qualitySupplierDeduction); + + /** + * 删除qualitySupplierDeduction + * + * @param supplierDeductionId qualitySupplierDeductionID + * @return 结果 + */ + public int deleteQualitySupplierDeductionById(Long supplierDeductionId); + + /** + * 批量删除qualitySupplierDeduction + * + * @param supplierDeductionIds 需要删除的数据ID + * @return 结果 + */ + public int deleteQualitySupplierDeductionByIds(String[] supplierDeductionIds); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/quality/service/IQualitySupplierDeductionService.java b/ruoyi-admin/src/main/java/com/ruoyi/quality/service/IQualitySupplierDeductionService.java new file mode 100644 index 00000000..920c9a9b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/quality/service/IQualitySupplierDeductionService.java @@ -0,0 +1,61 @@ +package com.ruoyi.quality.service; + +import java.util.List; +import com.ruoyi.quality.domain.QualitySupplierDeduction; + +/** + * qualitySupplierDeductionService接口 + * + * @author ruoyi + * @date 2023-06-19 + */ +public interface IQualitySupplierDeductionService +{ + /** + * 查询qualitySupplierDeduction + * + * @param supplierDeductionId qualitySupplierDeductionID + * @return qualitySupplierDeduction + */ + public QualitySupplierDeduction selectQualitySupplierDeductionById(Long supplierDeductionId); + + /** + * 查询qualitySupplierDeduction列表 + * + * @param qualitySupplierDeduction qualitySupplierDeduction + * @return qualitySupplierDeduction集合 + */ + public List selectQualitySupplierDeductionList(QualitySupplierDeduction qualitySupplierDeduction); + + /** + * 新增qualitySupplierDeduction + * + * @param qualitySupplierDeduction qualitySupplierDeduction + * @return 结果 + */ + public int insertQualitySupplierDeduction(QualitySupplierDeduction qualitySupplierDeduction); + + /** + * 修改qualitySupplierDeduction + * + * @param qualitySupplierDeduction qualitySupplierDeduction + * @return 结果 + */ + public int updateQualitySupplierDeduction(QualitySupplierDeduction qualitySupplierDeduction); + + /** + * 批量删除qualitySupplierDeduction + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteQualitySupplierDeductionByIds(String ids); + + /** + * 删除qualitySupplierDeduction信息 + * + * @param supplierDeductionId qualitySupplierDeductionID + * @return 结果 + */ + public int deleteQualitySupplierDeductionById(Long supplierDeductionId); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualitySupplierDeductionServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualitySupplierDeductionServiceImpl.java new file mode 100644 index 00000000..7b0cd176 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualitySupplierDeductionServiceImpl.java @@ -0,0 +1,94 @@ +package com.ruoyi.quality.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.quality.mapper.QualitySupplierDeductionMapper; +import com.ruoyi.quality.domain.QualitySupplierDeduction; +import com.ruoyi.quality.service.IQualitySupplierDeductionService; +import com.ruoyi.common.core.text.Convert; + +/** + * qualitySupplierDeductionService业务层处理 + * + * @author ruoyi + * @date 2023-06-19 + */ +@Service +public class QualitySupplierDeductionServiceImpl implements IQualitySupplierDeductionService +{ + @Autowired + private QualitySupplierDeductionMapper qualitySupplierDeductionMapper; + + /** + * 查询qualitySupplierDeduction + * + * @param supplierDeductionId qualitySupplierDeductionID + * @return qualitySupplierDeduction + */ + @Override + public QualitySupplierDeduction selectQualitySupplierDeductionById(Long supplierDeductionId) + { + return qualitySupplierDeductionMapper.selectQualitySupplierDeductionById(supplierDeductionId); + } + + /** + * 查询qualitySupplierDeduction列表 + * + * @param qualitySupplierDeduction qualitySupplierDeduction + * @return qualitySupplierDeduction + */ + @Override + public List selectQualitySupplierDeductionList(QualitySupplierDeduction qualitySupplierDeduction) + { + return qualitySupplierDeductionMapper.selectQualitySupplierDeductionList(qualitySupplierDeduction); + } + + /** + * 新增qualitySupplierDeduction + * + * @param qualitySupplierDeduction qualitySupplierDeduction + * @return 结果 + */ + @Override + public int insertQualitySupplierDeduction(QualitySupplierDeduction qualitySupplierDeduction) + { + return qualitySupplierDeductionMapper.insertQualitySupplierDeduction(qualitySupplierDeduction); + } + + /** + * 修改qualitySupplierDeduction + * + * @param qualitySupplierDeduction qualitySupplierDeduction + * @return 结果 + */ + @Override + public int updateQualitySupplierDeduction(QualitySupplierDeduction qualitySupplierDeduction) + { + return qualitySupplierDeductionMapper.updateQualitySupplierDeduction(qualitySupplierDeduction); + } + + /** + * 删除qualitySupplierDeduction对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteQualitySupplierDeductionByIds(String ids) + { + return qualitySupplierDeductionMapper.deleteQualitySupplierDeductionByIds(Convert.toStrArray(ids)); + } + + /** + * 删除qualitySupplierDeduction信息 + * + * @param supplierDeductionId qualitySupplierDeductionID + * @return 结果 + */ + @Override + public int deleteQualitySupplierDeductionById(Long supplierDeductionId) + { + return qualitySupplierDeductionMapper.deleteQualitySupplierDeductionById(supplierDeductionId); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysBomBcp.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysBomBcp.java index 9b5f7a71..acd0b73d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysBomBcp.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysBomBcp.java @@ -75,7 +75,19 @@ public class SysBomBcp extends BaseEntity /** 备用二 */ private String standbyTwo; - public void setBomBcpId(Long bomBcpId) + public SysBomBcp() { + } + + public SysBomBcp(String finishProductCode) { + this.finishProductCode = finishProductCode; + } + + public SysBomBcp(Long bomBcpId, String finishProductCode) { + this.bomBcpId = bomBcpId; + this.finishProductCode = finishProductCode; + } + + public void setBomBcpId(Long bomBcpId) { this.bomBcpId = bomBcpId; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysBomRawMaterial.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysBomRawMaterial.java index e136bad1..992876eb 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysBomRawMaterial.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysBomRawMaterial.java @@ -73,6 +73,12 @@ public class SysBomRawMaterial extends BaseEntity @Excel(name = "备用二") private String standbyTwo; + public SysBomRawMaterial() { + } + + public SysBomRawMaterial(String finishProductCode) { + this.finishProductCode = finishProductCode; + } public void setRawMaterialId(Long rawMaterialId) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysBomSubsidiaryMaterial.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysBomSubsidiaryMaterial.java index 74c23372..2b909fa2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysBomSubsidiaryMaterial.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysBomSubsidiaryMaterial.java @@ -73,7 +73,14 @@ public class SysBomSubsidiaryMaterial extends BaseEntity @Excel(name = "备用二") private String standbyTwo; - public void setSubsidiaryMaterialId(Long subsidiaryMaterialId) + public SysBomSubsidiaryMaterial() { + } + + public SysBomSubsidiaryMaterial(String finishProductCode) { + this.finishProductCode = finishProductCode; + } + + public void setSubsidiaryMaterialId(Long subsidiaryMaterialId) { this.subsidiaryMaterialId = subsidiaryMaterialId; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysFinishProduct.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysFinishProduct.java index 3176aea4..ba1cb6ea 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysFinishProduct.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysFinishProduct.java @@ -154,7 +154,14 @@ public class SysFinishProduct extends BaseEntity @Excel(name = "修改时间") private String updateInfoTime; - public void setFinishProductId(Long finishProductId) + public SysFinishProduct() { + } + + public SysFinishProduct(String finishProductCode) { + this.finishProductCode = finishProductCode; + } + + public void setFinishProductId(Long finishProductId) { this.finishProductId = finishProductId; } diff --git a/ruoyi-admin/src/main/resources/mapper/manufacture/MaterialRequisitionDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/manufacture/MaterialRequisitionDetailMapper.xml index d4a540be..376b4645 100644 --- a/ruoyi-admin/src/main/resources/mapper/manufacture/MaterialRequisitionDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/manufacture/MaterialRequisitionDetailMapper.xml @@ -35,6 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and material_code like concat('%', #{materialCode}, '%') and material_name like concat('%', #{materialName}, '%') and material_type = #{materialType} + and up_finish_product_code = #{upFinishProductCode} diff --git a/ruoyi-admin/src/main/resources/mapper/quality/QualitySupplierDeductionMapper.xml b/ruoyi-admin/src/main/resources/mapper/quality/QualitySupplierDeductionMapper.xml new file mode 100644 index 00000000..344cfb7c --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/quality/QualitySupplierDeductionMapper.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select supplier_deduction_id, supplier_code, mode_of_service, acceptance_department, acceptance_person, contact_number, reason, rework_labor_cost, customer_deduction, punitive_damage, material_scrap_cost, transportation_expenses, other_name, others_cost, total_amount, propose_person, reviewed_person, approval_person from quality_supplier_deduction + + + + + + + + insert into quality_supplier_deduction + + supplier_deduction_id, + supplier_code, + mode_of_service, + acceptance_department, + acceptance_person, + contact_number, + reason, + rework_labor_cost, + customer_deduction, + punitive_damage, + material_scrap_cost, + transportation_expenses, + other_name, + others_cost, + total_amount, + propose_person, + reviewed_person, + approval_person, + + + #{supplierDeductionId}, + #{supplierCode}, + #{modeOfService}, + #{acceptanceDepartment}, + #{acceptancePerson}, + #{contactNumber}, + #{reason}, + #{reworkLaborCost}, + #{customerDeduction}, + #{punitiveDamage}, + #{materialScrapCost}, + #{transportationExpenses}, + #{otherName}, + #{othersCost}, + #{totalAmount}, + #{proposePerson}, + #{reviewedPerson}, + #{approvalPerson}, + + + + + update quality_supplier_deduction + + supplier_code = #{supplierCode}, + mode_of_service = #{modeOfService}, + acceptance_department = #{acceptanceDepartment}, + acceptance_person = #{acceptancePerson}, + contact_number = #{contactNumber}, + reason = #{reason}, + rework_labor_cost = #{reworkLaborCost}, + customer_deduction = #{customerDeduction}, + punitive_damage = #{punitiveDamage}, + material_scrap_cost = #{materialScrapCost}, + transportation_expenses = #{transportationExpenses}, + other_name = #{otherName}, + others_cost = #{othersCost}, + total_amount = #{totalAmount}, + propose_person = #{proposePerson}, + reviewed_person = #{reviewedPerson}, + approval_person = #{approvalPerson}, + + where supplier_deduction_id = #{supplierDeductionId} + + + + delete from quality_supplier_deduction where supplier_deduction_id = #{supplierDeductionId} + + + + delete from quality_supplier_deduction where supplier_deduction_id in + + #{supplierDeductionId} + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/system/SysBomBcpMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/SysBomBcpMapper.xml index 9e3278ff..8dcd4388 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/SysBomBcpMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/SysBomBcpMapper.xml @@ -123,5 +123,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{bomBcpId} - \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/manufacture/workOrderInfo/add.html b/ruoyi-admin/src/main/resources/templates/manufacture/workOrderInfo/add.html index 37468848..3c68a79e 100644 --- a/ruoyi-admin/src/main/resources/templates/manufacture/workOrderInfo/add.html +++ b/ruoyi-admin/src/main/resources/templates/manufacture/workOrderInfo/add.html @@ -919,13 +919,6 @@ $("#bomMaterialModal").modal("hide"); } - //半成品二阶bom - function bcpList(){ - $.ajax({ - url:ctx+ - }) - } - //添加BOM材料信息 function addBomDetailToTable() { var dataRaw = $("#rawMaterialBomTable").bootstrapTable("getSelections"); diff --git a/ruoyi-admin/src/main/resources/templates/outsource/materialRequisitionOutsource/add.html b/ruoyi-admin/src/main/resources/templates/outsource/materialRequisitionOutsource/add.html index 9932c37c..96749e78 100644 --- a/ruoyi-admin/src/main/resources/templates/outsource/materialRequisitionOutsource/add.html +++ b/ruoyi-admin/src/main/resources/templates/outsource/materialRequisitionOutsource/add.html @@ -390,47 +390,9 @@ // $("#form-MaterialRequisitionOutsource-add select[name='stockName']").val(orderData[i].stockName).trigger("change"); // $("#form-MaterialRequisitionOutsource-add input[name='stockNumber']").val(orderData[i].stockNumber); // $("#form-MaterialRequisitionOutsource-add input[name='stockManager']").val(orderData[i].stockManager); + showMaterial(); } } - $.ajax({ - url: prefixOrderMaterial + '/list', - type: "post", - data: { - outsourceOrderNumber: outsourceOrderNumber - }, - success: function (res) { - // console.log(res) - $('#addMaterialTable').bootstrapTable("refresh") - $('#addMaterialTable').bootstrapTable("removeAll") - // console.log(res.rows) - if (res.rows.length>0) { - let data = res.rows; - var count = $('#addMaterialTable').bootstrapTable('getData').length; - var materialRequisitionNumber = $("#form-MaterialRequisitionOutsource-add input[name='materialRequisitionNumber']").val() - for (let j in data) { - $("#addMaterialTable").bootstrapTable('insertRow', { - index: count + j, - row: { - materialRequisitionNumber: materialRequisitionNumber, - materialCode: data[j].materialCode, - materialName: data[j].materialName, - specificationModel: data[j].specificationModel, - inventoryUnit: data[j].inventoryUnit, - planQuantity: data[j].quantity, - description: data[j].description, - unitUsage: '', - bomRank: '', - upFinishProductCode: '', - storageLocation: '', - materialType: '' - } - }); - } - } else { - $.modal.alertWarning("该订单内无物料,请先添加!") - } - } - }) }) } }, @@ -438,6 +400,48 @@ $.modal.msgError("后台出错啦!"); } }) + function showMaterial() { + $('#addMaterialTable').bootstrapTable("removeAll"); + var outsourceOrderNumber = $("select[name='outsourceOrderNumber']").val(); + $.ajax({ + url: ctx + 'manufacture/materialRequisitionInfo/selectOutsourceDetail/'+ outsourceOrderNumber, + type: "post", + // data: { + // outsourceOrderNumber: outsourceOrderNumber + // }, + success: function (res) { + // console.log(res.rows) + if (res.rows.length>0) { + var count = res.rows.length; + var data = res.rows; + var materialRequisitionNumber = $("#form-MaterialRequisitionOutsource-add input[name='materialRequisitionNumber']").val() + for (let i in data) { + $("#addMaterialTable").bootstrapTable('insertRow', { + index: count + i, + row: { + materialRequisitionNumber: materialRequisitionNumber, + materialCode: data[i].materialCode, + materialName: data[i].materialName, + specificationModel: data[i].specificationModel, + inventoryUnit: data[i].inventoryUnit, + planQuantity: data[i].planQuantity, + description: data[i].description, + unitUsage: data[i].unitUsage, + bomRank: data[i].bomRank, + upFinishProductCode: data[i].upFinishProductCode, + storageLocation: data[i].storageLocation, + materialType: data[i].materialType, + } + }); + } + } else { + $.modal.alertWarning("该订单内无物料,请先添加!") + } + } + }) + } + + //获取单号 $.ajax({ diff --git a/ruoyi-admin/src/main/resources/templates/outsource/materialRequisitionOutsource/materialRequisitionOutsource.html b/ruoyi-admin/src/main/resources/templates/outsource/materialRequisitionOutsource/materialRequisitionOutsource.html index 84be7188..57e8d3e3 100644 --- a/ruoyi-admin/src/main/resources/templates/outsource/materialRequisitionOutsource/materialRequisitionOutsource.html +++ b/ruoyi-admin/src/main/resources/templates/outsource/materialRequisitionOutsource/materialRequisitionOutsource.html @@ -250,7 +250,7 @@ // console.log(data[0].orderNumber) $.modal.confirm("是否确认要导出本条领料单?", function (){ axios({ - url: prefix + '/exportSelectedOutSource/'+data[0].materialRequisitionId, + url: prefix + '/exportOutsource/'+data[0].materialRequisitionId, method: 'POST', responseType: 'blob' }).then(response => { diff --git a/ruoyi-admin/src/main/resources/templates/quality/qualitySupplierDeduction/add.html b/ruoyi-admin/src/main/resources/templates/quality/qualitySupplierDeduction/add.html new file mode 100644 index 00000000..fc6bf28f --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/quality/qualitySupplierDeduction/add.html @@ -0,0 +1,184 @@ + + + + + + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/quality/qualitySupplierDeduction/edit.html b/ruoyi-admin/src/main/resources/templates/quality/qualitySupplierDeduction/edit.html new file mode 100644 index 00000000..d6e4bd0c --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/quality/qualitySupplierDeduction/edit.html @@ -0,0 +1,184 @@ + + + + + + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/quality/qualitySupplierDeduction/qualitySupplierDeduction.html b/ruoyi-admin/src/main/resources/templates/quality/qualitySupplierDeduction/qualitySupplierDeduction.html new file mode 100644 index 00000000..b6478ca9 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/quality/qualitySupplierDeduction/qualitySupplierDeduction.html @@ -0,0 +1,217 @@ + + + + + + + +
+
+
+
+
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/ruoyi-admin/target/classes/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.class b/ruoyi-admin/target/classes/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.class index 7f5a8c50..a8d99a36 100644 Binary files a/ruoyi-admin/target/classes/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.class and b/ruoyi-admin/target/classes/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.class differ diff --git a/ruoyi-admin/target/classes/com/ruoyi/manufacture/domain/MaterialRequisitionDetail.class b/ruoyi-admin/target/classes/com/ruoyi/manufacture/domain/MaterialRequisitionDetail.class index ab06bcbb..590e9e33 100644 Binary files a/ruoyi-admin/target/classes/com/ruoyi/manufacture/domain/MaterialRequisitionDetail.class and b/ruoyi-admin/target/classes/com/ruoyi/manufacture/domain/MaterialRequisitionDetail.class differ diff --git a/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysBomBcp.class b/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysBomBcp.class index b2dd2bf1..281e331f 100644 Binary files a/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysBomBcp.class and b/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysBomBcp.class differ diff --git a/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysBomRawMaterial.class b/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysBomRawMaterial.class index 53315676..0ec9133a 100644 Binary files a/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysBomRawMaterial.class and b/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysBomRawMaterial.class differ diff --git a/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysBomSubsidiaryMaterial.class b/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysBomSubsidiaryMaterial.class index 39eae752..a308792a 100644 Binary files a/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysBomSubsidiaryMaterial.class and b/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysBomSubsidiaryMaterial.class differ diff --git a/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysFinishProduct.class b/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysFinishProduct.class index fed47473..5bc74d84 100644 Binary files a/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysFinishProduct.class and b/ruoyi-admin/target/classes/com/ruoyi/system/domain/SysFinishProduct.class differ diff --git a/ruoyi-admin/target/classes/mapper/manufacture/MaterialRequisitionDetailMapper.xml b/ruoyi-admin/target/classes/mapper/manufacture/MaterialRequisitionDetailMapper.xml index d4a540be..376b4645 100644 --- a/ruoyi-admin/target/classes/mapper/manufacture/MaterialRequisitionDetailMapper.xml +++ b/ruoyi-admin/target/classes/mapper/manufacture/MaterialRequisitionDetailMapper.xml @@ -35,6 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and material_code like concat('%', #{materialCode}, '%') and material_name like concat('%', #{materialName}, '%') and material_type = #{materialType} + and up_finish_product_code = #{upFinishProductCode} diff --git a/ruoyi-admin/target/classes/mapper/system/SysBomBcpMapper.xml b/ruoyi-admin/target/classes/mapper/system/SysBomBcpMapper.xml index 9e3278ff..8dcd4388 100644 --- a/ruoyi-admin/target/classes/mapper/system/SysBomBcpMapper.xml +++ b/ruoyi-admin/target/classes/mapper/system/SysBomBcpMapper.xml @@ -123,5 +123,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{bomBcpId} - \ No newline at end of file diff --git a/ruoyi-admin/target/classes/templates/manufacture/workOrderInfo/add.html b/ruoyi-admin/target/classes/templates/manufacture/workOrderInfo/add.html index 37468848..3c68a79e 100644 --- a/ruoyi-admin/target/classes/templates/manufacture/workOrderInfo/add.html +++ b/ruoyi-admin/target/classes/templates/manufacture/workOrderInfo/add.html @@ -919,13 +919,6 @@ $("#bomMaterialModal").modal("hide"); } - //半成品二阶bom - function bcpList(){ - $.ajax({ - url:ctx+ - }) - } - //添加BOM材料信息 function addBomDetailToTable() { var dataRaw = $("#rawMaterialBomTable").bootstrapTable("getSelections");