diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourcePlanController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourcePlanController.java new file mode 100644 index 00000000..79fdf8ce --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourcePlanController.java @@ -0,0 +1,159 @@ +package com.ruoyi.system.controller; + +import java.util.List; + +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.domain.OutsourcePlan; +import com.ruoyi.system.domain.OutsourcePlanDetail; +import com.ruoyi.system.service.IOutsourcePlanService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 委外计划Controller + * + * @author ruoyi + * @date 2024-07-05 + */ +@Controller +@RequestMapping("/system/outsource_plan") +public class OutsourcePlanController extends BaseController +{ + private String prefix = "system/outsource_plan"; + + @Autowired + private IOutsourcePlanService outsourcePlanService; + + @RequiresPermissions("system:outsource_plan:view") + @GetMapping() + public String outsource_plan() + { + return prefix + "/outsource_plan"; + } + + /** + * 查询委外计划列表 + */ + @RequiresPermissions("system:outsource_plan:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(OutsourcePlan outsourcePlan) + { + startPage(); + List list = outsourcePlanService.selectOutsourcePlanList(outsourcePlan); + return getDataTable(list); + } + + /** + * 查询委外计划详情 + */ + @GetMapping("/sublist") + @ResponseBody + public TableDataInfo subList(@RequestParam("outsourcePlanId") Long outsourcePlanId, ModelMap mmap) + { + OutsourcePlan outsourcePlan = outsourcePlanService.selectOutsourcePlanByOutsourcePlanId(outsourcePlanId); + List list = outsourcePlan.getOutsourcePlanDetailList(); + return getDataTable(list); + } + /** + * 导出委外计划列表 + */ + @RequiresPermissions("system:outsource_plan:export") + @Log(title = "委外计划", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public AjaxResult export(OutsourcePlan outsourcePlan) + { + List list = outsourcePlanService.selectOutsourcePlanList(outsourcePlan); + ExcelUtil util = new ExcelUtil(OutsourcePlan.class); + return util.exportExcel(list, "委外计划数据"); + } + /** + * 添加委外订单 + */ + @GetMapping("/addOutsourceOrder/{outsourcePlanCodes}") + + public String addOutsourceOrder(@PathVariable("outsourcePlanCodes") String outsourcePlanCodes, ModelMap mmap) + { + List outsourcePlan = outsourcePlanService.selectOutsourcePlanByCodes(outsourcePlanCodes); + mmap.put("outsourcePlanList", outsourcePlan); +// System.out.println(outsourcePlan); + return prefix + "/addOutsourceOrder"; + } + + /** + * 新增委外计划 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存委外计划 + */ + @RequiresPermissions("system:outsource_plan:add") + @Log(title = "委外计划", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(OutsourcePlan outsourcePlan) + { + return toAjax(outsourcePlanService.insertOutsourcePlan(outsourcePlan)); + } + + /** + * 修改委外计划 + */ + @RequiresPermissions("system:outsource_plan:edit") + @GetMapping("/edit/{outsourcePlanId}") + public String edit(@PathVariable("outsourcePlanId") Long outsourcePlanId, ModelMap mmap) + { + OutsourcePlan outsourcePlan = outsourcePlanService.selectOutsourcePlanByOutsourcePlanId(outsourcePlanId); + mmap.put("outsourcePlan", outsourcePlan); + return prefix + "/edit"; + } + /** + * 修改委外计划 + */ + @RequiresPermissions("system:outsource_plan:detail") + @GetMapping("/detail/{outsourcePlanId}") + public String detail(@PathVariable("outsourcePlanId") Long outsourcePlanId, ModelMap mmap) + { + OutsourcePlan outsourcePlan = outsourcePlanService.selectOutsourcePlanByOutsourcePlanId(outsourcePlanId); + mmap.put("outsourcePlan", outsourcePlan); + return prefix + "/detail"; + } + + /** + * 修改保存委外计划 + */ + @RequiresPermissions("system:outsource_plan:edit") + @Log(title = "委外计划", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(OutsourcePlan outsourcePlan) + { + return toAjax(outsourcePlanService.updateOutsourcePlan(outsourcePlan)); + } + + /** + * 删除委外计划 + */ + @RequiresPermissions("system:outsource_plan:remove") + @Log(title = "委外计划", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(outsourcePlanService.deleteOutsourcePlanByOutsourcePlanIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceMaterial.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceMaterial.java new file mode 100644 index 00000000..624ec24f --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceMaterial.java @@ -0,0 +1,269 @@ +package com.ruoyi.system.domain; + +import com.ruoyi.common.core.domain.BaseEntity; +import com.ruoyi.system.domain.Vo.OutsourceProcessVo; +import org.apache.poi.hpsf.Decimal; + +import java.util.Date; +import java.util.List; + +/** + * 委外物料对象 outsource_material + * + * @author ruoyi + * @date 2024-07-06 + */ +public class OutsourceMaterial extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 委外物料表id */ + private Long outsourceMaterialId; + + /** 委外物料表编号 */ + private String materialNo; + + /** 物料名称 */ + private String materialName; + + /** 物料类型 */ + private String materialType; + + /** 物料图片 */ + private String materialPhotourl; + + /** 单位 */ + private String unit; + + /** 描述 */ + private String description; + + /** 品牌 */ + private String brand; + + /** 加工方式 */ + private String processMethod; + + /** 计划委外数 */ + private int plannedOutsourceAmount; + + /** 委外工序列表 */ + private List outsourceProcessList; + + + /** 委外工序编号 */ + private String outsourceProcessNo; + + /** 委外工序名称 */ + private String outsourceProcessName; + + /** 计价单位 */ + private String chargeUnit; + + /** 每个物料规格 */ + private Decimal singleMterial; + + /** 供应商编码 */ + private String supplierQuoteCode; + + /** 供应商名称 */ + private String supplierName; + + /** 交付时间 */ + private Date deliveryTime; + + private String correlationCodes; + + private List orderDetails; + + public List getOrderDetails() { + return orderDetails; + } + + public void setOrderDetails(List orderDetails) { + this.orderDetails = orderDetails; + } + + public String getCorrelationCodes() { + return correlationCodes; + } + + public void setCorrelationCodes(String correlationCodes) { + this.correlationCodes = correlationCodes; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getProcessMethod() { + return processMethod; + } + + public void setProcessMethod(String processMethod) { + this.processMethod = processMethod; + } + + public int getPlannedOutsourceAmount() { + return plannedOutsourceAmount; + } + + public void setPlannedOutsourceAmount(int plannedOutsourceAmount) { + this.plannedOutsourceAmount = plannedOutsourceAmount; + } + + public String getMaterialType() { + return materialType; + } + + public void setMaterialType(String materialType) { + this.materialType = materialType; + } + + public String getMaterialPhotourl() { + return materialPhotourl; + } + + public void setMaterialPhotourl(String materialPhotourl) { + this.materialPhotourl = materialPhotourl; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getMaterialNo() { + return materialNo; + } + + public void setMaterialNo(String materialNo) { + this.materialNo = materialNo; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public String getProcess_method() { + return processMethod; + } + + public void setProcess_method(String processMethod) { + this.processMethod = processMethod; + } + + public List getOutsourceProcessList() { + return outsourceProcessList; + } + + public void setOutsourceProcessList(List outsourceProcessList) { + this.outsourceProcessList = outsourceProcessList; + } + + public Long getOutsourceMaterialId() { + return outsourceMaterialId; + } + + public void setOutsourceMaterialId(Long outsourceMaterialId) { + this.outsourceMaterialId = outsourceMaterialId; + } + + + public String getOutsourceProcessNo() { + return outsourceProcessNo; + } + + public void setOutsourceProcessNo(String outsourceProcessNo) { + this.outsourceProcessNo = outsourceProcessNo; + } + + public String getOutsourceProcessName() { + return outsourceProcessName; + } + + public void setOutsourceProcessName(String outsourceProcessName) { + this.outsourceProcessName = outsourceProcessName; + } + + public String getChargeUnit() { + return chargeUnit; + } + + public void setChargeUnit(String chargeUnit) { + this.chargeUnit = chargeUnit; + } + + public Decimal getSingleMterial() { + return singleMterial; + } + + public void setSingleMterial(Decimal singleMterial) { + this.singleMterial = singleMterial; + } + + public String getSupplierQuoteCode() { + return supplierQuoteCode; + } + + public void setSupplierQuoteCode(String supplierQuoteCode) { + this.supplierQuoteCode = supplierQuoteCode; + } + + public String getSupplierName() { + return supplierName; + } + + public void setSupplierName(String supplierName) { + this.supplierName = supplierName; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + @Override + public String toString() { + return "OutsourceMaterial{" + + "outsourceMaterialId=" + outsourceMaterialId + + ", materialNo='" + materialNo + '\'' + + ", materialName='" + materialName + '\'' + + ", materialType='" + materialType + '\'' + + ", materialPhotourl='" + materialPhotourl + '\'' + + ", description='" + description + '\'' + + ", brand='" + brand + '\'' + + ", processMethod='" + processMethod + '\'' + + ", outsourceProcessList=" + outsourceProcessList + + ", outsourceProcessNo='" + outsourceProcessNo + '\'' + + ", outsourceProcessName='" + outsourceProcessName + '\'' + + ", chargeUnit='" + chargeUnit + '\'' + + ", singleMterial=" + singleMterial + + ", supplierQuoteCode='" + supplierQuoteCode + '\'' + + ", supplierName='" + supplierName + '\'' + + ", deliveryTime=" + deliveryTime + + '}'; + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrder.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrder.java new file mode 100644 index 00000000..640d1bf1 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrder.java @@ -0,0 +1,410 @@ +package com.ruoyi.system.domain; + +import java.math.BigDecimal; +import java.util.List; +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; + +/** + * 委外订单对象 outsource_order + * + * @author ruoyi + * @date 2024-07-12 + */ +public class OutsourceOrder extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 委外订单表id */ + private Long outsourceOrderId; + + /** 委外订单编号 */ + @Excel(name = "委外订单编号") + private String outsourceOrderNo; + + /** 委外计划单号 */ + private String outsourcePlanCode; + + /** 委外员 */ + @Excel(name = "委外员") + private String outsourceStaff; + + /** 供应商数 */ + private Long supplierAmount; + + /** 物料合计 */ + @Excel(name = "物料合计") + private Long materialAmount; + + /** 委外物料数量合计 */ + @Excel(name = "委外物料数量合计") + private Long outsourceMaterialAmount; + + /** 委外工序种类 */ + @Excel(name = "委外工序种类") + private Long outsourceProcessType; + + /** 委外工序合计 */ + @Excel(name = "委外工序合计") + private Long outsourceProcessAmount; + + /** 含税委外总价 */ + @Excel(name = "含税委外总价") + private BigDecimal outsourceTotalPrice; + + /** 不含税委外总价 */ + @Excel(name = "不含税委外总价") + private BigDecimal outsourceNoPrice; + + /** 使用状态 */ + @Excel(name = "使用状态") + private String useStatus; + + /** 收货状态 */ + @Excel(name = "收货状态") + private String receiveStatus; + + /** 入库状态 */ + @Excel(name = "入库状态") + private String warehouseStatus; + + /** 结案状态 */ + @Excel(name = "结案状态") + private String closedStatus; + + /** 打款状态 */ + @Excel(name = "打款状态") + private String remitStatus; + + /** 审核状态 */ + @Excel(name = "审核状态") + private String auditStatus; + + /** 实际委外物料合计 */ + @Excel(name = "实际委外物料合计") + private Long actualMaterialAmount; + + /** 实际委外工序合计 */ + @Excel(name = "实际委外工序合计") + private Long actualProcessAmount; + + /** 仓库ID */ + @Excel(name = "仓库ID") + private String stockNo; + + /** 仓库名称 */ + @Excel(name = "仓库名称") + private String stockName; + + /** 收货人 */ + @Excel(name = "收货人") + private String receivePerson; + + /** 收货电话 */ + @Excel(name = "收货电话") + private String receiveTelephone; + + /** 详细地址 */ + @Excel(name = "详细地址") + private String receiveAddress; + + /** 委外订单详情信息 */ + private List outsourceOrderDetailList; + + private List materials; + + public List getMaterials() { + return materials; + } + + public void setMaterials(List materials) { + this.materials = materials; + } + + public void setOutsourceOrderId(Long outsourceOrderId) + { + this.outsourceOrderId = outsourceOrderId; + } + + public Long getOutsourceOrderId() + { + return outsourceOrderId; + } + + public void setOutsourceOrderNo(String outsourceOrderNo) + { + this.outsourceOrderNo = outsourceOrderNo; + } + + public String getOutsourceOrderNo() + { + return outsourceOrderNo; + } + + public void setOutsourcePlanCode(String outsourcePlanCode) + { + this.outsourcePlanCode = outsourcePlanCode; + } + + public String getOutsourcePlanCode() + { + return outsourcePlanCode; + } + + public void setOutsourceStaff(String outsourceStaff) + { + this.outsourceStaff = outsourceStaff; + } + + public String getOutsourceStaff() + { + return outsourceStaff; + } + + public void setSupplierAmount(Long supplierAmount) + { + this.supplierAmount = supplierAmount; + } + + public Long getSupplierAmount() + { + return supplierAmount; + } + + public void setMaterialAmount(Long materialAmount) + { + this.materialAmount = materialAmount; + } + + public Long getMaterialAmount() + { + return materialAmount; + } + + public void setOutsourceMaterialAmount(Long outsourceMaterialAmount) + { + this.outsourceMaterialAmount = outsourceMaterialAmount; + } + + public Long getOutsourceMaterialAmount() + { + return outsourceMaterialAmount; + } + + public void setOutsourceProcessType(Long outsourceProcessType) + { + this.outsourceProcessType = outsourceProcessType; + } + + public Long getOutsourceProcessType() + { + return outsourceProcessType; + } + + public void setOutsourceProcessAmount(Long outsourceProcessAmount) + { + this.outsourceProcessAmount = outsourceProcessAmount; + } + + public Long getOutsourceProcessAmount() + { + return outsourceProcessAmount; + } + + public void setOutsourceTotalPrice(BigDecimal outsourceTotalPrice) + { + this.outsourceTotalPrice = outsourceTotalPrice; + } + + public BigDecimal getOutsourceTotalPrice() + { + return outsourceTotalPrice; + } + + public void setOutsourceNoPrice(BigDecimal outsourceNoPrice) + { + this.outsourceNoPrice = outsourceNoPrice; + } + + public BigDecimal getOutsourceNoPrice() + { + return outsourceNoPrice; + } + + public void setUseStatus(String useStatus) + { + this.useStatus = useStatus; + } + + public String getUseStatus() + { + return useStatus; + } + + public void setReceiveStatus(String receiveStatus) + { + this.receiveStatus = receiveStatus; + } + + public String getReceiveStatus() + { + return receiveStatus; + } + + public void setWarehouseStatus(String warehouseStatus) + { + this.warehouseStatus = warehouseStatus; + } + + public String getWarehouseStatus() + { + return warehouseStatus; + } + + public void setClosedStatus(String closedStatus) + { + this.closedStatus = closedStatus; + } + + public String getClosedStatus() + { + return closedStatus; + } + + public void setRemitStatus(String remitStatus) + { + this.remitStatus = remitStatus; + } + + public String getRemitStatus() + { + return remitStatus; + } + + public void setAuditStatus(String auditStatus) + { + this.auditStatus = auditStatus; + } + + public String getAuditStatus() + { + return auditStatus; + } + + public void setActualMaterialAmount(Long actualMaterialAmount) + { + this.actualMaterialAmount = actualMaterialAmount; + } + + public Long getActualMaterialAmount() + { + return actualMaterialAmount; + } + + public void setActualProcessAmount(Long actualProcessAmount) + { + this.actualProcessAmount = actualProcessAmount; + } + + public Long getActualProcessAmount() + { + return actualProcessAmount; + } + + public void setStockNo(String stockNo) + { + this.stockNo = stockNo; + } + + public String getStockNo() + { + return stockNo; + } + + public void setStockName(String stockName) + { + this.stockName = stockName; + } + + public String getStockName() + { + return stockName; + } + + public void setReceivePerson(String receivePerson) + { + this.receivePerson = receivePerson; + } + + public String getReceivePerson() + { + return receivePerson; + } + + public void setReceiveTelephone(String receiveTelephone) + { + this.receiveTelephone = receiveTelephone; + } + + public String getReceiveTelephone() + { + return receiveTelephone; + } + + public void setReceiveAddress(String receiveAddress) + { + this.receiveAddress = receiveAddress; + } + + public String getReceiveAddress() + { + return receiveAddress; + } + + public List getOutsourceOrderDetailList() + { + return outsourceOrderDetailList; + } + + public void setOutsourceOrderDetailList(List outsourceOrderDetailList) + { + this.outsourceOrderDetailList = outsourceOrderDetailList; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("outsourceOrderId", getOutsourceOrderId()) + .append("outsourceOrderNo", getOutsourceOrderNo()) + .append("outsourcePlanCode", getOutsourcePlanCode()) + .append("outsourceStaff", getOutsourceStaff()) + .append("supplierAmount", getSupplierAmount()) + .append("materialAmount", getMaterialAmount()) + .append("outsourceMaterialAmount", getOutsourceMaterialAmount()) + .append("outsourceProcessType", getOutsourceProcessType()) + .append("outsourceProcessAmount", getOutsourceProcessAmount()) + .append("outsourceTotalPrice", getOutsourceTotalPrice()) + .append("outsourceNoPrice", getOutsourceNoPrice()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("useStatus", getUseStatus()) + .append("receiveStatus", getReceiveStatus()) + .append("warehouseStatus", getWarehouseStatus()) + .append("closedStatus", getClosedStatus()) + .append("remitStatus", getRemitStatus()) + .append("auditStatus", getAuditStatus()) + .append("actualMaterialAmount", getActualMaterialAmount()) + .append("actualProcessAmount", getActualProcessAmount()) + .append("stockNo", getStockNo()) + .append("stockName", getStockName()) + .append("receivePerson", getReceivePerson()) + .append("receiveTelephone", getReceiveTelephone()) + .append("receiveAddress", getReceiveAddress()) + .append("outsourceOrderDetailList", getOutsourceOrderDetailList()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrderDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrderDetail.java new file mode 100644 index 00000000..3e70cd01 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrderDetail.java @@ -0,0 +1,241 @@ +package com.ruoyi.system.domain; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +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; + +/** + * 委外订单详情对象 outsource_order_detail + * + * @author ruoyi + * @date 2024-07-12 + */ +public class OutsourceOrderDetail extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 委外订单详情id */ + private Long outsourceOrderDetailId; + + /** 委外订单编号 */ + @Excel(name = "委外订单编号") + private String outsourceOrderNo; + + /** 料号 */ + @Excel(name = "料号") + private String materialNo; + + /** 委外工序编号 */ + @Excel(name = "委外工序编号") + private String outsourceProcessNo; + + /** 委外工序名称 */ + @Excel(name = "委外工序名称") + private String outsourceProcessName; + + /** 计价单位(0按重量计数,1按数量计,2按面积计) */ + @Excel(name = "计价单位", readConverterExp = "0=按重量计数,1按数量计,2按面积计") + private String chargeUnit; + + /** 每个物料规格 */ + @Excel(name = "每个物料规格") + private BigDecimal singleMaterial; + + /** 交付时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "交付时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date deliveryTime; + + /** 实际委外数 */ + @Excel(name = "实际委外数") + private Long actualOutsourceAmount; + + /** 含税委外总价(RMB) */ + @Excel(name = "含税委外总价(RMB) ") + private BigDecimal materialRmb; + + /** 不含税委外总价(RMB) */ + @Excel(name = "不含税委外总价(RMB)") + private BigDecimal materialNoRmb; + + /** 供应商编号 */ + @Excel(name = "供应商编号") + private String supplierCode; + + /** 供应商名称 */ + @Excel(name = "供应商名称") + private String supplierName; + + /** 结案状态 */ + @Excel(name = "结案状态") + private String closedStatus; + + /** 打款状态 */ + @Excel(name = "打款状态") + private String remitStatus; + + + + public void setOutsourceOrderDetailId(Long outsourceOrderDetailId) + { + this.outsourceOrderDetailId = outsourceOrderDetailId; + } + + public Long getOutsourceOrderDetailId() + { + return outsourceOrderDetailId; + } + public void setOutsourceOrderNo(String outsourceOrderNo) + { + this.outsourceOrderNo = outsourceOrderNo; + } + + public String getOutsourceOrderNo() + { + return outsourceOrderNo; + } + public void setMaterialNo(String materialNo) + { + this.materialNo = materialNo; + } + + public String getMaterialNo() + { + return materialNo; + } + public void setOutsourceProcessNo(String outsourceProcessNo) + { + this.outsourceProcessNo = outsourceProcessNo; + } + + public String getOutsourceProcessNo() + { + return outsourceProcessNo; + } + public void setOutsourceProcessName(String outsourceProcessName) + { + this.outsourceProcessName = outsourceProcessName; + } + + public String getOutsourceProcessName() + { + return outsourceProcessName; + } + public void setChargeUnit(String chargeUnit) + { + this.chargeUnit = chargeUnit; + } + + public String getChargeUnit() + { + return chargeUnit; + } + public void setSingleMaterial(BigDecimal singleMaterial) + { + this.singleMaterial = singleMaterial; + } + + public BigDecimal getSingleMaterial() + { + return singleMaterial; + } + public void setDeliveryTime(Date deliveryTime) + { + this.deliveryTime = deliveryTime; + } + + public Date getDeliveryTime() + { + return deliveryTime; + } + public void setActualOutsourceAmount(Long actualOutsourceAmount) + { + this.actualOutsourceAmount = actualOutsourceAmount; + } + + public Long getActualOutsourceAmount() + { + return actualOutsourceAmount; + } + public void setMaterialRmb(BigDecimal materialRmb) + { + this.materialRmb = materialRmb; + } + + public BigDecimal getMaterialRmb() + { + return materialRmb; + } + public void setMaterialNoRmb(BigDecimal materialNoRmb) + { + this.materialNoRmb = materialNoRmb; + } + + public BigDecimal getMaterialNoRmb() + { + return materialNoRmb; + } + public void setSupplierCode(String supplierCode) + { + this.supplierCode = supplierCode; + } + + public String getSupplierCode() + { + return supplierCode; + } + public void setSupplierName(String supplierName) + { + this.supplierName = supplierName; + } + + public String getSupplierName() + { + return supplierName; + } + public void setClosedStatus(String closedStatus) + { + this.closedStatus = closedStatus; + } + + public String getClosedStatus() + { + return closedStatus; + } + public void setRemitStatus(String remitStatus) + { + this.remitStatus = remitStatus; + } + + public String getRemitStatus() + { + return remitStatus; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("outsourceOrderDetailId", getOutsourceOrderDetailId()) + .append("outsourceOrderNo", getOutsourceOrderNo()) + .append("materialNo", getMaterialNo()) + .append("outsourceProcessNo", getOutsourceProcessNo()) + .append("outsourceProcessName", getOutsourceProcessName()) + .append("chargeUnit", getChargeUnit()) + .append("singleMaterial", getSingleMaterial()) + .append("deliveryTime", getDeliveryTime()) + .append("actualOutsourceAmount", getActualOutsourceAmount()) + .append("materialRmb", getMaterialRmb()) + .append("materialNoRmb", getMaterialNoRmb()) + .append("supplierCode", getSupplierCode()) + .append("supplierName", getSupplierName()) + .append("closedStatus", getClosedStatus()) + .append("remitStatus", getRemitStatus()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourcePlan.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourcePlan.java new file mode 100644 index 00000000..a783bd83 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourcePlan.java @@ -0,0 +1,191 @@ +package com.ruoyi.system.domain; + +import java.util.List; +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; + +/** + * 委外计划对象 outsource_plan + * + * @author ruoyi + * @date 2024-07-05 + */ +public class OutsourcePlan extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 委外计划id */ + private Long outsourcePlanId; + + /** 委外计划单号 */ + @Excel(name = "委外计划单号") + private String outsourcePlanCode; + + /** 关联单号(生产/请购) */ + @Excel(name = "关联单号", readConverterExp = "生产/请购") + private String associateOrderNo; + + /** 申请人 */ + @Excel(name = "申请人") + private String applicant; + + /** 状态 */ + @Excel(name = "状态") + private String status; + + /** 物料总计 */ + @Excel(name = "物料总计") + private Long materialAmount; + + /** 数量总计 */ + @Excel(name = "数量总计") + private Long totalAmount; + + /** 委外工序种类 */ + @Excel(name = "委外工序种类") + private Long outsourceProcessType; + + /** 委外工序合计 */ + @Excel(name = "委外工序合计") + private Long outsourceProcessAmount; + + /** 来源 */ + @Excel(name = "来源") + private String source; + + /** 委外计划详情信息 */ + private List outsourcePlanDetailList; + + public void setOutsourcePlanId(Long outsourcePlanId) + { + this.outsourcePlanId = outsourcePlanId; + } + + public Long getOutsourcePlanId() + { + return outsourcePlanId; + } + + public void setOutsourcePlanCode(String outsourcePlanCode) + { + this.outsourcePlanCode = outsourcePlanCode; + } + + public String getOutsourcePlanCode() + { + return outsourcePlanCode; + } + + public void setAssociateOrderNo(String associateOrderNo) + { + this.associateOrderNo = associateOrderNo; + } + + public String getAssociateOrderNo() + { + return associateOrderNo; + } + + public void setApplicant(String applicant) + { + this.applicant = applicant; + } + + public String getApplicant() + { + return applicant; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + public void setMaterialAmount(Long materialAmount) + { + this.materialAmount = materialAmount; + } + + public Long getMaterialAmount() + { + return materialAmount; + } + + public void setTotalAmount(Long totalAmount) + { + this.totalAmount = totalAmount; + } + + public Long getTotalAmount() + { + return totalAmount; + } + + public void setOutsourceProcessType(Long outsourceProcessType) + { + this.outsourceProcessType = outsourceProcessType; + } + + public Long getOutsourceProcessType() + { + return outsourceProcessType; + } + + public void setOutsourceProcessAmount(Long outsourceProcessAmount) + { + this.outsourceProcessAmount = outsourceProcessAmount; + } + + public Long getOutsourceProcessAmount() + { + return outsourceProcessAmount; + } + + public void setSource(String source) + { + this.source = source; + } + + public String getSource() + { + return source; + } + + public List getOutsourcePlanDetailList() + { + return outsourcePlanDetailList; + } + + public void setOutsourcePlanDetailList(List outsourcePlanDetailList) + { + this.outsourcePlanDetailList = outsourcePlanDetailList; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("outsourcePlanId", getOutsourcePlanId()) + .append("outsourcePlanCode", getOutsourcePlanCode()) + .append("associateOrderNo", getAssociateOrderNo()) + .append("applicant", getApplicant()) + .append("status", getStatus()) + .append("materialAmount", getMaterialAmount()) + .append("totalAmount", getTotalAmount()) + .append("outsourceProcessType", getOutsourceProcessType()) + .append("outsourceProcessAmount", getOutsourceProcessAmount()) + .append("source", getSource()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("outsourcePlanDetailList", getOutsourcePlanDetailList()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourcePlanDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourcePlanDetail.java new file mode 100644 index 00000000..12ee58fc --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourcePlanDetail.java @@ -0,0 +1,217 @@ +package com.ruoyi.system.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; + +import java.util.List; + +/** + * 委外计划详情对象 outsource_plan_detail + * + * @author ruoyi + * @date 2024-07-05 + */ +public class OutsourcePlanDetail extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 委外计划详情id */ + private Long outsourcePlanDetailId; + + /** 委外计划单号 */ + @Excel(name = "委外计划单号") + private String outsourcePlanCode; + + /** 料号 */ + @Excel(name = "料号") + private String materialNo; + + /** 物料名称 */ + @Excel(name = "物料名称") + private String materialName; + + /** 物料类型 */ + @Excel(name = "物料类型") + private String materialType; + + /** 物料图片 */ + @Excel(name = "物料图片") + private String materialPhotourl; + + /** 描述 */ + @Excel(name = "描述") + private String description; + + public OutsourceMaterial getMaterial() { + return material; + } + + public void setMaterial(OutsourceMaterial material) { + this.material = material; + } + + /** 品牌 */ + @Excel(name = "品牌") + private String brand; + + /** 加工方式 */ + @Excel(name = "加工方式") + private String processMethod; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 计划委外数 */ + @Excel(name = "计划委外数") + private Long plannedOutsourceAmount; + + /** 委外工序种类 */ + @Excel(name = "委外工序种类") + private Long outsourceProcessType; + + /** 委外工序合计 */ + @Excel(name = "委外工序合计") + private Long outsourceProcessAmount; + + private OutsourceMaterial material; + + public void setOutsourcePlanDetailId(Long outsourcePlanDetailId) + { + this.outsourcePlanDetailId = outsourcePlanDetailId; + } + + public Long getOutsourcePlanDetailId() + { + return outsourcePlanDetailId; + } + public void setOutsourcePlanCode(String outsourcePlanCode) + { + this.outsourcePlanCode = outsourcePlanCode; + } + + public String getOutsourcePlanCode() + { + return outsourcePlanCode; + } + public void setMaterialNo(String materialNo) + { + this.materialNo = materialNo; + } + + public String getMaterialNo() + { + return materialNo; + } + public void setMaterialName(String materialName) + { + this.materialName = materialName; + } + + public String getMaterialName() + { + return materialName; + } + public void setMaterialType(String materialType) + { + this.materialType = materialType; + } + + public String getMaterialType() + { + return materialType; + } + public void setMaterialPhotourl(String materialPhotourl) + { + this.materialPhotourl = materialPhotourl; + } + + public String getMaterialPhotourl() + { + return materialPhotourl; + } + public void setDescription(String description) + { + this.description = description; + } + + public String getDescription() + { + return description; + } + public void setBrand(String brand) + { + this.brand = brand; + } + + public String getBrand() + { + return brand; + } + public void setProcessMethod(String processMethod) + { + this.processMethod = processMethod; + } + + public String getProcessMethod() + { + return processMethod; + } + public void setUnit(String unit) + { + this.unit = unit; + } + + public String getUnit() + { + return unit; + } + public void setPlannedOutsourceAmount(Long plannedOutsourceAmount) + { + this.plannedOutsourceAmount = plannedOutsourceAmount; + } + + public Long getPlannedOutsourceAmount() + { + return plannedOutsourceAmount; + } + public void setOutsourceProcessType(Long outsourceProcessType) + { + this.outsourceProcessType = outsourceProcessType; + } + + public Long getOutsourceProcessType() + { + return outsourceProcessType; + } + public void setOutsourceProcessAmount(Long outsourceProcessAmount) + { + this.outsourceProcessAmount = outsourceProcessAmount; + } + + public Long getOutsourceProcessAmount() + { + return outsourceProcessAmount; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("outsourcePlanDetailId", getOutsourcePlanDetailId()) + .append("outsourcePlanCode", getOutsourcePlanCode()) + .append("materialNo", getMaterialNo()) + .append("materialName", getMaterialName()) + .append("materialType", getMaterialType()) + .append("materialPhotourl", getMaterialPhotourl()) + .append("description", getDescription()) + .append("brand", getBrand()) + .append("processMethod", getProcessMethod()) + .append("unit", getUnit()) + .append("plannedOutsourceAmount", getPlannedOutsourceAmount()) + .append("outsourceProcessType", getOutsourceProcessType()) + .append("outsourceProcessAmount", getOutsourceProcessAmount()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceQuote.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceQuote.java new file mode 100644 index 00000000..466677d6 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceQuote.java @@ -0,0 +1,162 @@ +package com.ruoyi.system.domain; + +import java.util.Date; +import java.util.List; +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; + +/** + * 委外报价对象 outsource_quote + * + * @author ruoyi + * @date 2024-07-01 + */ +public class OutsourceQuote extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 委外报价ID */ + private Integer outsourceQuoteId; + + /** 委外报价单号 */ + @Excel(name = "委外报价单号") + private String outsourceQuoteCode; + + /** 供应商编号 */ + @Excel(name = "供应商编号") + private String supplierQuoteCode; + + /** 供应商名称 */ + @Excel(name = "供应商名称") + private String supplierName; + + /** 工序合计 */ + @Excel(name = "工序合计") + private int processAmount; + + /** 税率 */ + @Excel(name = "税率") + private Long taxRate; + + /** 定价日期 */ + @Excel(name = "定价日期") + private Date pricingDate; + + /** 审核状态 */ + @Excel(name = "审核状态") + private String auditStatus; + + + /** 委外报价工序信息信息 */ + private List outsourceQuoteChildList; + + public void setOutsourceQuoteId(Integer outsourceQuoteId) + { + this.outsourceQuoteId = outsourceQuoteId; + } + + public Integer getOutsourceQuoteId() + { + return outsourceQuoteId; + } + + public void setOutsourceQuoteCode(String outsourceQuoteCode) + { + this.outsourceQuoteCode = outsourceQuoteCode; + } + + public String getOutsourceQuoteCode() + { + return outsourceQuoteCode; + } + + public void setSupplierQuoteCode(String supplierQuoteCode) + { + this.supplierQuoteCode = supplierQuoteCode; + } + + public String getSupplierQuoteCode() + { + return supplierQuoteCode; + } + + public void setSupplierName(String supplierName) + { + this.supplierName = supplierName; + } + + public String getSupplierName() + { + return supplierName; + } + + public void setProcessAmount(int processAmount) + { + this.processAmount = processAmount; + } + + public int getProcessAmount() + { + return processAmount; + } + + public void setTaxRate(Long taxRate) + { + this.taxRate = taxRate; + } + + public Long getTaxRate() + { + return taxRate; + } + + public Date getPricingDate() { + return pricingDate; + } + + public void setPricingDate(Date pricingDate) { + this.pricingDate = pricingDate; + } + + public void setAuditStatus(String auditStatus) + { + this.auditStatus = auditStatus; + } + + public String getAuditStatus() + { + return auditStatus; + } + + public List getOutsourceQuoteChildList() + { + return outsourceQuoteChildList; + } + + public void setOutsourceQuoteChildList(List outsourceQuoteChildList) + { + this.outsourceQuoteChildList = outsourceQuoteChildList; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("outsourceQuoteId", getOutsourceQuoteId()) + .append("outsourceQuoteCode", getOutsourceQuoteCode()) + .append("supplierQuoteCode", getSupplierQuoteCode()) + .append("supplierName", getSupplierName()) + .append("processAmount", getProcessAmount()) + .append("taxRate", getTaxRate()) + .append("pricingDate", getPricingDate()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("auditStatus", getAuditStatus()) + .append("remark", getRemark()) + .append("outsourceQuoteChildList", getOutsourceQuoteChildList()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceQuoteChild.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceQuoteChild.java new file mode 100644 index 00000000..3f6decd7 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceQuoteChild.java @@ -0,0 +1,195 @@ +package com.ruoyi.system.domain; + +import java.math.BigDecimal; +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; + +/** + * 委外报价工序信息对象 outsource_quote_child + * + * @author ruoyi + * @date 2024-07-01 + */ +public class OutsourceQuoteChild extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 采购报价单工序索引 */ + private Long outsourceQuoteChildId; + + /** 关联报价编号字段 */ + @Excel(name = "关联报价编号字段") + private String outsourceQuoteCode; + + /** 委外工序ID */ + @Excel(name = "委外工序ID") + private String outsourceProcessCode; + + /** 委外工序编号 */ + @Excel(name = "委外工序编号") + private String outsourceProcessNo; + + /** 委外工序名称 */ + @Excel(name = "委外工序名称") + private String outsourceProcessName; + + /** 税率 */ + @Excel(name = "税率") + private BigDecimal taxRate; + + /** 工序的不含税单价(RMB) */ + @Excel(name = "工序的不含税单价(RMB) ") + private BigDecimal materialRmb; + + /** 工序的含税单价(RMB) */ + @Excel(name = "工序的含税单价(RMB)") + private BigDecimal materialNormb; + + /** 供应商编号 */ + @Excel(name = "供应商编号") + private String supplierCode; + + /** 供应商名称 */ + @Excel(name = "供应商名称") + private String supplierName; + + /** 审核状态 */ + @Excel(name = "审核状态") + private String auditStatus; + + /** 计价单位 */ + @Excel(name = "计价单位") + private String chargeUnit; + + public String getChargeUnit() { + return chargeUnit; + } + + public void setChargeUnit(String chargeUnit) { + this.chargeUnit = chargeUnit; + } + + public void setOutsourceQuoteChildId(Long outsourceQuoteChildId) + { + this.outsourceQuoteChildId = outsourceQuoteChildId; + } + + public Long getOutsourceQuoteChildId() + { + return outsourceQuoteChildId; + } + public void setOutsourceQuoteCode(String outsourceQuoteCode) + { + this.outsourceQuoteCode = outsourceQuoteCode; + } + + public String getOutsourceQuoteCode() + { + return outsourceQuoteCode; + } + public void setOutsourceProcessCode(String outsourceProcessCode) + { + this.outsourceProcessCode = outsourceProcessCode; + } + + public String getOutsourceProcessCode() + { + return outsourceProcessCode; + } + public void setOutsourceProcessNo(String outsourceProcessNo) + { + this.outsourceProcessNo = outsourceProcessNo; + } + + public String getOutsourceProcessNo() + { + return outsourceProcessNo; + } + public void setOutsourceProcessName(String outsourceProcessName) + { + this.outsourceProcessName = outsourceProcessName; + } + + public String getOutsourceProcessName() + { + return outsourceProcessName; + } + public void setTaxRate(BigDecimal taxRate) + { + this.taxRate = taxRate; + } + + public BigDecimal getTaxRate() + { + return taxRate; + } + public void setMaterialRmb(BigDecimal materialRmb) + { + this.materialRmb = materialRmb; + } + + public BigDecimal getMaterialRmb() + { + return materialRmb; + } + public void setMaterialNormb(BigDecimal materialNormb) + { + this.materialNormb = materialNormb; + } + + public BigDecimal getMaterialNormb() + { + return materialNormb; + } + public void setSupplierCode(String supplierCode) + { + this.supplierCode = supplierCode; + } + + public String getSupplierCode() + { + return supplierCode; + } + public void setSupplierName(String supplierName) + { + this.supplierName = supplierName; + } + + public String getSupplierName() + { + return supplierName; + } + public void setAuditStatus(String auditStatus) + { + this.auditStatus = auditStatus; + } + + public String getAuditStatus() + { + return auditStatus; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("outsourceQuoteChildId", getOutsourceQuoteChildId()) + .append("outsourceQuoteCode", getOutsourceQuoteCode()) + .append("outsourceProcessCode", getOutsourceProcessCode()) + .append("outsourceProcessNo", getOutsourceProcessNo()) + .append("outsourceProcessName", getOutsourceProcessName()) + .append("remark", getRemark()) + .append("taxRate", getTaxRate()) + .append("materialRmb", getMaterialRmb()) + .append("materialNormb", getMaterialNormb()) + .append("supplierCode", getSupplierCode()) + .append("supplierName", getSupplierName()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("auditStatus", getAuditStatus()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/OutsourceQuoteVO.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/OutsourceQuoteVO.java new file mode 100644 index 00000000..1dea845c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/OutsourceQuoteVO.java @@ -0,0 +1,115 @@ +package com.ruoyi.system.domain.Vo; + +import com.ruoyi.common.core.domain.BaseEntity; +import com.ruoyi.system.domain.OutsourceQuoteChild; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +public class OutsourceQuoteVO extends BaseEntity { + + /** 委外报价单号 */ + private String outsourceQuoteCode; + + /** 供应商编号 */ + private String supplierQuoteCode; + + /** 供应商名称 */ + private String supplierName; + + /** 工序合计 */ + private String processAmount; + + /** 税率 */ + private BigDecimal taxRate; + + /** 定价日期 */ + private Date pricingDate; + + /** 审核状态 */ + private String auditStatus; + + + /** 委外报价工序信息 */ + private List outsourceQuoteChildList; + + + public String getOutsourceQuoteCode() { + return outsourceQuoteCode; + } + + public void setOutsourceQuoteCode(String outsourceQuoteCode) { + this.outsourceQuoteCode = outsourceQuoteCode; + } + + public String getSupplierQuoteCode() { + return supplierQuoteCode; + } + + public void setSupplierQuoteCode(String supplierQuoteCode) { + this.supplierQuoteCode = supplierQuoteCode; + } + + public String getSupplierName() { + return supplierName; + } + + public void setSupplierName(String supplierName) { + this.supplierName = supplierName; + } + + public String getProcessAmount() { + return processAmount; + } + + public void setProcessAmount(String processAmount) { + this.processAmount = processAmount; + } + + public BigDecimal getTaxRate() { + return taxRate; + } + + public void setTaxRate(BigDecimal taxRate) { + this.taxRate = taxRate; + } + + public Date getPricingDate() { + return pricingDate; + } + + public void setPricingDate(Date pricingDate) { + this.pricingDate = pricingDate; + } + + public String getAuditStatus() { + return auditStatus; + } + + public void setAuditStatus(String auditStatus) { + this.auditStatus = auditStatus; + } + + public List getOutsourceQuoteChildList() { + return outsourceQuoteChildList; + } + + public void setOutsourceQuoteChildList(List outsourceQuoteChildList) { + this.outsourceQuoteChildList = outsourceQuoteChildList; + } + + @Override + public String toString() { + return "OutsourceQuoteChildVO{" + + "outsourceQuoteCode='" + outsourceQuoteCode + '\'' + + ", supplierQuoteCode='" + supplierQuoteCode + '\'' + + ", supplierName='" + supplierName + '\'' + + ", processAmount='" + processAmount + '\'' + + ", taxRate=" + taxRate + + ", pricingDate='" + pricingDate + '\'' + + ", auditStatus='" + auditStatus + '\'' + + ", outsourceQuoteChildList=" + outsourceQuoteChildList + + '}'; + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourcePlanMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourcePlanMapper.java new file mode 100644 index 00000000..87a92e96 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourcePlanMapper.java @@ -0,0 +1,126 @@ +package com.ruoyi.system.mapper; + +import com.ruoyi.system.domain.OutsourceMaterial; +import com.ruoyi.system.domain.OutsourcePlan; +import com.ruoyi.system.domain.OutsourcePlanDetail; + +import java.util.List; + + + +/** + * 委外计划Mapper接口 + * + * @author ruoyi + * @date 2024-07-05 + */ +public interface OutsourcePlanMapper +{ + /** + * 查询委外计划 + * + * @param outsourcePlanId 委外计划主键 + * @return 委外计划 + */ + public OutsourcePlan selectOutsourcePlanByOutsourcePlanId(Long outsourcePlanId); + + /** + * 查询委外计划列表 + * + * @param outsourcePlan 委外计划 + * @return 委外计划集合 + */ + public List selectOutsourcePlanList(OutsourcePlan outsourcePlan); + + /** + * 查询委外计划详情列表 + * + * @param outsourcePlanCode 委外计划编号 + * @return 委外计划集合 + */ + public List selectOutsourcePlanDetailList(String outsourcePlanCode); + + /** + * 新增委外计划 + * + * @param outsourcePlan 委外计划 + * @return 结果 + */ + public int insertOutsourcePlan(OutsourcePlan outsourcePlan); + + /** + * 修改委外计划 + * + * @param outsourcePlan 委外计划 + * @return 结果 + */ + public int updateOutsourcePlan(OutsourcePlan outsourcePlan); + + /** + * 删除委外计划 + * + * @param outsourcePlanId 委外计划主键 + * @return 结果 + */ + public int deleteOutsourcePlanByOutsourcePlanId(Long outsourcePlanId); + + /** + * 批量删除委外计划 + * + * @param outsourcePlanIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteOutsourcePlanByOutsourcePlanIds(String[] outsourcePlanIds); + + /** + * 批量查询委外计划详情 + * + * @param outsourcePlanCodes 需要查询的数据编码集合 + * @return 结果 + */ + public List selectOutsourcePlanDetailByCodes(String[] outsourcePlanCodes); + + /** + * 批量查询委外计划详情 + * + * @param outsourcePlanCodes 需要查询的数据编码集合 + * @return 结果 + */ + public List selectOutsourcePlanByCodes(String[] outsourcePlanCodes); + + /** + * 查询委外物料 + * + * @param materialNo 需要查询的数据编码 + * @return 结果 + */ + public OutsourceMaterial selectMaterialByCode(String materialNo); + + + public List selectProcessNoByNo (String materialNo); + + /** + * 批量删除委外计划详情 + * + * @param outsourcePlanIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteOutsourcePlanDetailByOutsourcePlanCodes(String[] outsourcePlanIds); + + /** + * 批量新增委外计划详情 + * + * @param outsourcePlanDetailList 委外计划详情列表 + * @return 结果 + */ + public int batchOutsourcePlanDetail(List outsourcePlanDetailList); + + + /** + * 通过委外计划主键删除委外计划详情信息 + * + * @param outsourcePlanId 委外计划ID + * @return 结果 + */ + public int deleteOutsourcePlanDetailByOutsourcePlanCode(Long outsourcePlanId); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceQuoteMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceQuoteMapper.java new file mode 100644 index 00000000..9a080884 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceQuoteMapper.java @@ -0,0 +1,104 @@ +package com.ruoyi.system.mapper; + +import com.ruoyi.system.domain.OutsourceQuote; +import com.ruoyi.system.domain.OutsourceQuoteChild; + +import java.util.List; + + +/** + * 委外报价Mapper接口 + * + * @author ruoyi + * @date 2024-07-01 + */ +public interface OutsourceQuoteMapper +{ + /** + * 查询委外报价 + * + * @param outsourceQuoteId 委外报价主键 + * @return 委外报价 + */ + public OutsourceQuote selectOutsourceQuoteByOutsourceQuoteId(Integer outsourceQuoteId); + + /** + * 查询委外报价列表 + * + * @param outsourceQuote 委外报价 + * @return 委外报价集合 + */ + public List selectOutsourceQuoteList(OutsourceQuote outsourceQuote); + /** + * 查询委外报价工序信息列表 + * + * @param outsourceQuoteCode 委外报价工序信息 + * @return 委外报价工序信息集合 + */ + public List selectOutsourceQuoteChildList(String outsourceQuoteCode); + + /** + * 新增委外报价 + * + * @param outsourceQuote 委外报价 + * @return 结果 + */ + public int insertOutsourceQuote(OutsourceQuote outsourceQuote); + + /** + * 修改委外报价 + * + * @param outsourceQuote 委外报价 + * @return 结果 + */ + public int updateOutsourceQuote(OutsourceQuote outsourceQuote); + + /** + * 删除委外报价 + * + * @param outsourceQuoteId 委外报价主键 + * @return 结果 + */ + public int deleteOutsourceQuoteByOutsourceQuoteId(Integer outsourceQuoteId); + + /** + * 批量删除委外报价 + * + * @param outsourceQuoteIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteOutsourceQuoteByOutsourceQuoteIds(String[] outsourceQuoteIds); + + /** + * 批量删除委外报价工序信息 + * + * @param outsourceQuoteIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteOutsourceQuoteChildByOutsourceProcessCodes(String[] outsourceQuoteIds); + + /** + * 批量新增委外报价工序信息 + * + * @param outsourceQuoteChildList 委外报价工序信息列表 + * @return 结果 + */ + public int batchOutsourceQuoteChild(List outsourceQuoteChildList); + + + /** + * 通过委外报价主键删除委外报价工序信息 + * + * @param outsourceQuoteId 委外报价ID + * @return 结果 + */ + public int deleteOutsourceQuoteChildByOutsourceProcessCode(Integer outsourceQuoteId); + + /** + * 通过委外工序编号查询委外报价工序信息 + * + * @param outsourceProcessNo 委外报价ID + * @return 结果 + */ + public List selectQuoteChildListByProcessNo(String outsourceProcessNo); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourcePlanService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourcePlanService.java new file mode 100644 index 00000000..3b0d9a24 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourcePlanService.java @@ -0,0 +1,94 @@ +package com.ruoyi.system.service; + +import com.ruoyi.system.domain.OutsourceMaterial; +import com.ruoyi.system.domain.OutsourcePlan; +import com.ruoyi.system.domain.OutsourcePlanDetail; + +import java.util.List; + + + +/** + * 委外计划Service接口 + * + * @author ruoyi + * @date 2024-07-05 + */ +public interface IOutsourcePlanService +{ + /** + * 查询委外计划 + * + * @param outsourcePlanId 委外计划主键 + * @return 委外计划 + */ + public OutsourcePlan selectOutsourcePlanByOutsourcePlanId(Long outsourcePlanId); + + /** + * 查询委外计划列表 + * + * @param outsourcePlan 委外计划 + * @return 委外计划集合 + */ + public List selectOutsourcePlanList(OutsourcePlan outsourcePlan); + + + + /** + * 新增委外计划 + * + * @param outsourcePlan 委外计划 + * @return 结果 + */ + public int insertOutsourcePlan(OutsourcePlan outsourcePlan); + + /** + * 修改委外计划 + * + * @param outsourcePlan 委外计划 + * @return 结果 + */ + public int updateOutsourcePlan(OutsourcePlan outsourcePlan); + + /** + * 批量删除委外计划 + * + * @param outsourcePlanIds 需要删除的委外计划主键集合 + * @return 结果 + */ + public int deleteOutsourcePlanByOutsourcePlanIds(String outsourcePlanIds); + + /** + * 删除委外计划信息 + * + * @param outsourcePlanId 委外计划主键 + * @return 结果 + */ + public int deleteOutsourcePlanByOutsourcePlanId(Long outsourcePlanId); + + /** + * 查询委外计划详情列表 + * + * @param outsourcePlanCodes 委外计划 + * @return 委外计划详情集合 + */ + public List selectOutsourcePlanDetailByCodes(String outsourcePlanCodes); + + /** + * 查询委外计划列表 + * + * @param outsourcePlanCodes 委外计划 + * @return 委外计划集合 + */ + public List selectOutsourcePlanByCodes(String outsourcePlanCodes); + + /** + * 查询委外物料列表 + * + * @param materialNo 委外计划详情中包含的料号 + * @return 委外物料集合 + */ + public OutsourceMaterial selectMaterialByCode(String materialNo); + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourcePlanServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourcePlanServiceImpl.java new file mode 100644 index 00000000..f22d83b7 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourcePlanServiceImpl.java @@ -0,0 +1,265 @@ +package com.ruoyi.system.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; + +import com.ruoyi.system.domain.OutsourceMaterial; +import com.ruoyi.system.domain.OutsourcePlan; +import com.ruoyi.system.domain.OutsourcePlanDetail; +import com.ruoyi.system.domain.OutsourceQuoteChild; +import com.ruoyi.system.domain.Vo.OutsourceProcessVo; +import com.ruoyi.system.domain.Vo.Supplier; +import com.ruoyi.system.mapper.OutsourcePlanMapper; +import com.ruoyi.system.mapper.OutsourceProcessMapper; +import com.ruoyi.system.mapper.OutsourceQuoteMapper; +import com.ruoyi.system.service.IOutsourcePlanService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.stream.Collectors; + +import com.ruoyi.common.utils.StringUtils; +import org.springframework.transaction.annotation.Transactional; + +import com.ruoyi.common.core.text.Convert; + +/** + * 委外计划Service业务层处理 + * + * @author ruoyi + * @date 2024-07-05 + */ +@Service +public class OutsourcePlanServiceImpl implements IOutsourcePlanService +{ + @Autowired + private OutsourcePlanMapper outsourcePlanMapper; + + @Autowired + private OutsourceProcessMapper outsourceProcessMapper; + + @Autowired + private OutsourceQuoteMapper outsourceQuoteMapper; + /** + * 查询委外计划 + * + * @param outsourcePlanId 委外计划主键 + * @return 委外计划 + */ + @Override + public OutsourcePlan selectOutsourcePlanByOutsourcePlanId(Long outsourcePlanId) + { + OutsourcePlan outsourcePlan = new OutsourcePlan(); + outsourcePlan = outsourcePlanMapper.selectOutsourcePlanByOutsourcePlanId(outsourcePlanId); + List details = outsourcePlanMapper.selectOutsourcePlanDetailList(outsourcePlan.getOutsourcePlanCode()); + + if(details.size()!=0){ + outsourcePlan.setOutsourcePlanDetailList(details); + } + return outsourcePlan; + } + + /** + * 查询委外计划列表 + * + * @param outsourcePlan 委外计划 + * @return 委外计划 + */ + @Override + public List selectOutsourcePlanList(OutsourcePlan outsourcePlan) + { +// List outsourcePlanList = +// for (OutsourcePlan plan:outsourcePlanList +// ) { +// List details = outsourcePlanMapper.selectOutsourcePlanDetailList(plan.getOutsourcePlanCode()); +// if(details.size()!=0){ +// plan.setOutsourcePlanDetailList(details); +// } +// System.out.println(plan); +// } + + return outsourcePlanMapper.selectOutsourcePlanList(outsourcePlan); + } + + /** + * 查询委外计划详情列表 + * + * @param outsourcePlanCodes 委外计划编号 + * @return 结果 + */ + @Override + public List selectOutsourcePlanDetailByCodes(String outsourcePlanCodes) { + return outsourcePlanMapper.selectOutsourcePlanDetailByCodes(Convert.toStrArray(outsourcePlanCodes)); + } + /** + * 查询委外计划列表 + * + * @param outsourcePlanCodes 委外计划编号 + * @return 结果 + */ + @Override + public List selectOutsourcePlanByCodes(String outsourcePlanCodes) { + List outsourcePlans = outsourcePlanMapper.selectOutsourcePlanByCodes(Convert.toStrArray(outsourcePlanCodes)); + for (OutsourcePlan plan:outsourcePlans) { + List details = outsourcePlanMapper.selectOutsourcePlanDetailByCodes(Convert.toStrArray(plan.getOutsourcePlanCode())); + if(details.size()!=0){ + for (OutsourcePlanDetail planDetail:details) { + OutsourceMaterial materials = selectMaterialByCode(planDetail.getMaterialNo()); + materials.setCorrelationCodes(plan.getAssociateOrderNo()); + planDetail.setMaterial(materials); + } + plan.setOutsourcePlanDetailList(details); + } + } + System.out.println(outsourcePlans); + return outsourcePlans; + } + +// 获取物料信息 + @Override + public OutsourceMaterial selectMaterialByCode(String materialNo) { + OutsourceMaterial material = outsourcePlanMapper.selectMaterialByCode(materialNo); + +// 获取委外计划表中的物料信息中的工序编号,以查询同料号的所有工序 + List materials = outsourcePlanMapper.selectProcessNoByNo(material.getMaterialNo()); + List noList = materials.stream().map(OutsourceMaterial::getOutsourceProcessNo).collect(Collectors.toList()); + List processVoS = supplierClassification(noList); + +// 将查到的同料号所有工序赋给该物料的工序列表; + material.setOutsourceProcessList(processVoS); + + return material; + } + + public List supplierClassification(List outsourceProcessNo){ + + List processVoS = outsourceProcessMapper.selectOutsourceProcessListByNos(outsourceProcessNo); + for (OutsourceProcessVo processvo:processVoS) { +// 通过委外工序编号查找报价信息; + List children = outsourceQuoteMapper.selectQuoteChildListByProcessNo(processvo.getOutsourceProcessNo()); + for (OutsourceQuoteChild child:children) { +// 将查找到的报价信息按报价单位不同分类供应商信息,赋给对应工序 + String unit = child.getChargeUnit(); + if (unit != null && child != null && processvo != null) { + Supplier supplier = new Supplier(); + supplier.setSupplierCode(child.getSupplierCode()); + supplier.setSupplierName(child.getSupplierName()); + supplier.setMaterialNormb(child.getMaterialNormb()); + supplier.setMaterialRmb(child.getMaterialRmb()); + + switch (unit) { + case "0": + List weightSuppliers = processvo.getWeightSupplier(); + if (weightSuppliers == null) { + weightSuppliers = new ArrayList<>(); + processvo.setWeightSupplier(weightSuppliers); + } + weightSuppliers.add(supplier); + break; + case "1": + List quantitySuppliers = processvo.getQuantitySupplier(); + if (quantitySuppliers == null) { + quantitySuppliers = new ArrayList<>(); + processvo.setQuantitySupplier(quantitySuppliers); + } + quantitySuppliers.add(supplier); + break; + case "2": + List areaSuppliers = processvo.getAreaSupplier(); + if (areaSuppliers == null) { + areaSuppliers = new ArrayList<>(); + processvo.setAreaSupplier(areaSuppliers); + } + areaSuppliers.add(supplier); + break; + } + } + } + } + return processVoS; + } + + /** + * 新增委外计划 + * + * @param outsourcePlan 委外计划 + * @return 结果 + */ + @Transactional + @Override + public int insertOutsourcePlan(OutsourcePlan outsourcePlan) + { + outsourcePlan.setCreateTime(DateUtils.getNowDate()); + int rows = outsourcePlanMapper.insertOutsourcePlan(outsourcePlan); + insertOutsourcePlanDetail(outsourcePlan); + return rows; + } + + /** + * 修改委外计划 + * + * @param outsourcePlan 委外计划 + * @return 结果 + */ + @Transactional + @Override + public int updateOutsourcePlan(OutsourcePlan outsourcePlan) + { + outsourcePlan.setUpdateTime(DateUtils.getNowDate()); + outsourcePlanMapper.deleteOutsourcePlanDetailByOutsourcePlanCode(outsourcePlan.getOutsourcePlanId()); + insertOutsourcePlanDetail(outsourcePlan); + return outsourcePlanMapper.updateOutsourcePlan(outsourcePlan); + } + + /** + * 批量删除委外计划 + * + * @param outsourcePlanIds 需要删除的委外计划主键 + * @return 结果 + */ + @Transactional + @Override + public int deleteOutsourcePlanByOutsourcePlanIds(String outsourcePlanIds) + { + outsourcePlanMapper.deleteOutsourcePlanDetailByOutsourcePlanCodes(Convert.toStrArray(outsourcePlanIds)); + return outsourcePlanMapper.deleteOutsourcePlanByOutsourcePlanIds(Convert.toStrArray(outsourcePlanIds)); + } + + /** + * 删除委外计划信息 + * + * @param outsourcePlanId 委外计划主键 + * @return 结果 + */ + @Transactional + @Override + public int deleteOutsourcePlanByOutsourcePlanId(Long outsourcePlanId) + { + outsourcePlanMapper.deleteOutsourcePlanDetailByOutsourcePlanCode(outsourcePlanId); + return outsourcePlanMapper.deleteOutsourcePlanByOutsourcePlanId(outsourcePlanId); + } + + /** + * 新增委外计划详情信息 + * + * @param outsourcePlan 委外计划对象 + */ + public void insertOutsourcePlanDetail(OutsourcePlan outsourcePlan) + { + List outsourcePlanDetailList = outsourcePlan.getOutsourcePlanDetailList(); + Long outsourcePlanId = outsourcePlan.getOutsourcePlanId(); + if (StringUtils.isNotNull(outsourcePlanDetailList)) + { + List list = new ArrayList(); + for (OutsourcePlanDetail outsourcePlanDetail : outsourcePlanDetailList) + { + outsourcePlanDetail.setOutsourcePlanCode(outsourcePlan.getOutsourcePlanCode()); + list.add(outsourcePlanDetail); + } + if (list.size() > 0) + { + outsourcePlanMapper.batchOutsourcePlanDetail(list); + } + } + } +} diff --git a/ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml new file mode 100644 index 00000000..a907aa02 --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select outsource_plan_id, outsource_plan_code, associate_order_no, applicant, status, material_amount, total_amount, outsource_process_type, outsource_process_amount, source, create_by, create_time, update_by, update_time from outsource_plan + + + + + + + + + + insert into outsource_plan + + outsource_plan_code, + associate_order_no, + applicant, + status, + material_amount, + total_amount, + outsource_process_type, + outsource_process_amount, + source, + create_by, + create_time, + update_by, + update_time, + + + #{outsourcePlanCode}, + #{associateOrderNo}, + #{applicant}, + #{status}, + #{materialAmount}, + #{totalAmount}, + #{outsourceProcessType}, + #{outsourceProcessAmount}, + #{source}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update outsource_plan + + outsource_plan_code = #{outsourcePlanCode}, + associate_order_no = #{associateOrderNo}, + applicant = #{applicant}, + status = #{status}, + material_amount = #{materialAmount}, + total_amount = #{totalAmount}, + outsource_process_type = #{outsourceProcessType}, + outsource_process_amount = #{outsourceProcessAmount}, + source = #{source}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where outsource_plan_id = #{outsourcePlanId} + + + + delete from outsource_plan where outsource_plan_id = #{outsourcePlanId} + + + + delete from outsource_plan where outsource_plan_id in + + #{outsourcePlanId} + + + + + + + + + + + + + + + delete from outsource_plan_detail where outsource_plan_code in + + #{outsourcePlanCode} + + + + + delete from outsource_plan_detail where outsource_plan_code = #{outsourcePlanCode} + + + + insert into outsource_plan_detail( outsource_plan_detail_id, outsource_plan_code, material_no, material_name, material_type, material_photoUrl, description, brand, process_method, unit, planned_outsource_amount, outsource_process_type, outsource_process_amount) values + + ( #{item.outsourcePlanDetailId}, #{item.outsourcePlanCode}, #{item.materialNo}, #{item.materialName}, #{item.materialType}, #{item.materialPhotourl}, #{item.description}, #{item.brand}, #{item.processMethod}, #{item.unit}, #{item.plannedOutsourceAmount}, #{item.outsourceProcessType}, #{item.outsourceProcessAmount}) + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/system/outsource_plan/addOutsourceOrder.html b/ruoyi-admin/src/main/resources/templates/system/outsource_plan/addOutsourceOrder.html new file mode 100644 index 00000000..880005ba --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/system/outsource_plan/addOutsourceOrder.html @@ -0,0 +1,581 @@ + + + + + + + + + +
+
+
+ +
+ +
+
+
+ +
+
+ +
+

收货地址:

+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+

订单合计:

+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/system/outsource_plan/detail.html b/ruoyi-admin/src/main/resources/templates/system/outsource_plan/detail.html new file mode 100644 index 00000000..557c0997 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/system/outsource_plan/detail.html @@ -0,0 +1,238 @@ + + + + + + +
+
+

委外计划信息

+ +
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+

委外计划详情信息

+
+
+
+
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/system/outsource_plan/outsource_plan.html b/ruoyi-admin/src/main/resources/templates/system/outsource_plan/outsource_plan.html new file mode 100644 index 00000000..91724ddd --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/system/outsource_plan/outsource_plan.html @@ -0,0 +1,232 @@ + + + + + + +
+
+
+
+
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file