liuxiaoxu
1 month ago
13 changed files with 0 additions and 2221 deletions
@ -1,126 +0,0 @@ |
|||
package com.ruoyi.sales.controller; |
|||
|
|||
import java.util.List; |
|||
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.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.sales.domain.ServiceWorkOrderDetail; |
|||
import com.ruoyi.sales.service.IServiceWorkOrderDetailService; |
|||
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; |
|||
|
|||
/** |
|||
* serviceWorkOrderDetailController |
|||
* |
|||
* @author ruoyi |
|||
* @date 2023-08-04 |
|||
*/ |
|||
@Controller |
|||
@RequestMapping("/sales/serviceWorkOrderCount") |
|||
public class ServiceWorkOrderCountController extends BaseController |
|||
{ |
|||
private String prefix = "sales/serviceWorkOrderCount"; |
|||
|
|||
@Autowired |
|||
private IServiceWorkOrderDetailService serviceWorkOrderDetailService; |
|||
|
|||
@RequiresPermissions("sales:serviceWorkOrderCount:view") |
|||
@GetMapping() |
|||
public String serviceWorkOrderDetail() |
|||
{ |
|||
return prefix + "/serviceWorkOrderCount"; |
|||
} |
|||
|
|||
/** |
|||
* 查询serviceWorkOrderDetail列表 |
|||
*/ |
|||
@RequiresPermissions("sales:serviceWorkOrderCount:list") |
|||
@PostMapping("/list") |
|||
@ResponseBody |
|||
public TableDataInfo list(ServiceWorkOrderDetail serviceWorkOrderDetail) |
|||
{ |
|||
startPage(); |
|||
List<ServiceWorkOrderDetail> list = serviceWorkOrderDetailService.selectServiceWorkOrderDetailList(serviceWorkOrderDetail); |
|||
return getDataTable(list); |
|||
} |
|||
|
|||
/** |
|||
* 导出serviceWorkOrderDetail列表 |
|||
*/ |
|||
@RequiresPermissions("sales:serviceWorkOrderCount:export") |
|||
@Log(title = "serviceWorkOrderDetail", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
@ResponseBody |
|||
public AjaxResult export(ServiceWorkOrderDetail serviceWorkOrderDetail) |
|||
{ |
|||
List<ServiceWorkOrderDetail> list = serviceWorkOrderDetailService.selectServiceWorkOrderDetailList(serviceWorkOrderDetail); |
|||
ExcelUtil<ServiceWorkOrderDetail> util = new ExcelUtil<ServiceWorkOrderDetail>(ServiceWorkOrderDetail.class); |
|||
return util.exportExcel(list, "serviceWorkOrderDetail数据"); |
|||
} |
|||
|
|||
/** |
|||
* 新增serviceWorkOrderDetail |
|||
*/ |
|||
@GetMapping("/add") |
|||
public String add() |
|||
{ |
|||
return prefix + "/add"; |
|||
} |
|||
|
|||
/** |
|||
* 新增保存serviceWorkOrderDetail |
|||
*/ |
|||
@RequiresPermissions("sales:serviceWorkOrderCount:add") |
|||
@Log(title = "serviceWorkOrderDetail", businessType = BusinessType.INSERT) |
|||
@PostMapping("/add") |
|||
@ResponseBody |
|||
public AjaxResult addSave(ServiceWorkOrderDetail serviceWorkOrderDetail) |
|||
{ |
|||
return toAjax(serviceWorkOrderDetailService.insertServiceWorkOrderDetail(serviceWorkOrderDetail)); |
|||
} |
|||
|
|||
/** |
|||
* 修改serviceWorkOrderDetail |
|||
*/ |
|||
@GetMapping("/edit/{serviceWorkOrderDetailId}") |
|||
public String edit(@PathVariable("serviceWorkOrderDetailId") Long serviceWorkOrderDetailId, ModelMap mmap) |
|||
{ |
|||
ServiceWorkOrderDetail serviceWorkOrderDetail = serviceWorkOrderDetailService.selectServiceWorkOrderDetailById(serviceWorkOrderDetailId); |
|||
mmap.put("serviceWorkOrderDetail", serviceWorkOrderDetail); |
|||
return prefix + "/edit"; |
|||
} |
|||
|
|||
/** |
|||
* 修改保存serviceWorkOrderDetail |
|||
*/ |
|||
@RequiresPermissions("sales:serviceWorkOrderCount:edit") |
|||
@Log(title = "serviceWorkOrderDetail", businessType = BusinessType.UPDATE) |
|||
@PostMapping("/edit") |
|||
@ResponseBody |
|||
public AjaxResult editSave(ServiceWorkOrderDetail serviceWorkOrderDetail) |
|||
{ |
|||
return toAjax(serviceWorkOrderDetailService.updateServiceWorkOrderDetail(serviceWorkOrderDetail)); |
|||
} |
|||
|
|||
/** |
|||
* 删除serviceWorkOrderDetail |
|||
*/ |
|||
@RequiresPermissions("sales:serviceWorkOrderCount:remove") |
|||
@Log(title = "serviceWorkOrderDetail", businessType = BusinessType.DELETE) |
|||
@PostMapping( "/remove") |
|||
@ResponseBody |
|||
public AjaxResult remove(String ids) |
|||
{ |
|||
return toAjax(serviceWorkOrderDetailService.deleteServiceWorkOrderDetailByIds(ids)); |
|||
} |
|||
} |
@ -1,126 +0,0 @@ |
|||
package com.ruoyi.sales.controller; |
|||
|
|||
import java.util.List; |
|||
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.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.sales.domain.ServiceWorkOrderDetail; |
|||
import com.ruoyi.sales.service.IServiceWorkOrderDetailService; |
|||
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; |
|||
|
|||
/** |
|||
* serviceWorkOrderDetailController |
|||
* |
|||
* @author ruoyi |
|||
* @date 2023-08-04 |
|||
*/ |
|||
@Controller |
|||
@RequestMapping("/sales/serviceWorkOrderDetail") |
|||
public class ServiceWorkOrderDetailController extends BaseController |
|||
{ |
|||
private String prefix = "sales/serviceWorkOrderDetail"; |
|||
|
|||
@Autowired |
|||
private IServiceWorkOrderDetailService serviceWorkOrderDetailService; |
|||
|
|||
@RequiresPermissions("sales:serviceWorkOrderDetail:view") |
|||
@GetMapping() |
|||
public String serviceWorkOrderDetail() |
|||
{ |
|||
return prefix + "/serviceWorkOrderDetail"; |
|||
} |
|||
|
|||
/** |
|||
* 查询serviceWorkOrderDetail列表 |
|||
*/ |
|||
@RequiresPermissions("sales:serviceWorkOrderDetail:list") |
|||
@PostMapping("/list") |
|||
@ResponseBody |
|||
public TableDataInfo list(ServiceWorkOrderDetail serviceWorkOrderDetail) |
|||
{ |
|||
startPage(); |
|||
List<ServiceWorkOrderDetail> list = serviceWorkOrderDetailService.selectServiceWorkOrderDetailList(serviceWorkOrderDetail); |
|||
return getDataTable(list); |
|||
} |
|||
|
|||
/** |
|||
* 导出serviceWorkOrderDetail列表 |
|||
*/ |
|||
@RequiresPermissions("sales:serviceWorkOrderDetail:export") |
|||
@Log(title = "serviceWorkOrderDetail", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
@ResponseBody |
|||
public AjaxResult export(ServiceWorkOrderDetail serviceWorkOrderDetail) |
|||
{ |
|||
List<ServiceWorkOrderDetail> list = serviceWorkOrderDetailService.selectServiceWorkOrderDetailList(serviceWorkOrderDetail); |
|||
ExcelUtil<ServiceWorkOrderDetail> util = new ExcelUtil<ServiceWorkOrderDetail>(ServiceWorkOrderDetail.class); |
|||
return util.exportExcel(list, "serviceWorkOrderDetail数据"); |
|||
} |
|||
|
|||
/** |
|||
* 新增serviceWorkOrderDetail |
|||
*/ |
|||
@GetMapping("/add") |
|||
public String add() |
|||
{ |
|||
return prefix + "/add"; |
|||
} |
|||
|
|||
/** |
|||
* 新增保存serviceWorkOrderDetail |
|||
*/ |
|||
@RequiresPermissions("sales:serviceWorkOrderDetail:add") |
|||
@Log(title = "serviceWorkOrderDetail", businessType = BusinessType.INSERT) |
|||
@PostMapping("/add") |
|||
@ResponseBody |
|||
public AjaxResult addSave(ServiceWorkOrderDetail serviceWorkOrderDetail) |
|||
{ |
|||
return toAjax(serviceWorkOrderDetailService.insertServiceWorkOrderDetail(serviceWorkOrderDetail)); |
|||
} |
|||
|
|||
/** |
|||
* 修改serviceWorkOrderDetail |
|||
*/ |
|||
@GetMapping("/edit/{serviceWorkOrderDetailId}") |
|||
public String edit(@PathVariable("serviceWorkOrderDetailId") Long serviceWorkOrderDetailId, ModelMap mmap) |
|||
{ |
|||
ServiceWorkOrderDetail serviceWorkOrderDetail = serviceWorkOrderDetailService.selectServiceWorkOrderDetailById(serviceWorkOrderDetailId); |
|||
mmap.put("serviceWorkOrderDetail", serviceWorkOrderDetail); |
|||
return prefix + "/edit"; |
|||
} |
|||
|
|||
/** |
|||
* 修改保存serviceWorkOrderDetail |
|||
*/ |
|||
@RequiresPermissions("sales:serviceWorkOrderDetail:edit") |
|||
@Log(title = "serviceWorkOrderDetail", businessType = BusinessType.UPDATE) |
|||
@PostMapping("/edit") |
|||
@ResponseBody |
|||
public AjaxResult editSave(ServiceWorkOrderDetail serviceWorkOrderDetail) |
|||
{ |
|||
return toAjax(serviceWorkOrderDetailService.updateServiceWorkOrderDetail(serviceWorkOrderDetail)); |
|||
} |
|||
|
|||
/** |
|||
* 删除serviceWorkOrderDetail |
|||
*/ |
|||
@RequiresPermissions("sales:serviceWorkOrderDetail:remove") |
|||
@Log(title = "serviceWorkOrderDetail", businessType = BusinessType.DELETE) |
|||
@PostMapping( "/remove") |
|||
@ResponseBody |
|||
public AjaxResult remove(String ids) |
|||
{ |
|||
return toAjax(serviceWorkOrderDetailService.deleteServiceWorkOrderDetailByIds(ids)); |
|||
} |
|||
} |
@ -1,205 +0,0 @@ |
|||
package com.ruoyi.sales.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; |
|||
|
|||
/** |
|||
* serviceWorkOrderDetail对象 service_work_order_detail |
|||
* |
|||
* @author ruoyi |
|||
* @date 2023-08-04 |
|||
*/ |
|||
public class ServiceWorkOrderDetail extends BaseEntity |
|||
{ |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** */ |
|||
private Long serviceWorkOrderDetailId; |
|||
|
|||
/** 服务工单单号 */ |
|||
@Excel(name = "服务工单单号") |
|||
private String serviceWorkOrderDetailNumber; |
|||
|
|||
/** 客户名称 */ |
|||
@Excel(name = "客户名称") |
|||
private String customerName; |
|||
|
|||
/** 设备编号 */ |
|||
@Excel(name = "设备编号") |
|||
private String equipmentNumber; |
|||
|
|||
/** 序列号 */ |
|||
@Excel(name = "序列号") |
|||
private String serialNumber; |
|||
|
|||
/** 出库日期 */ |
|||
@Excel(name = "出库日期") |
|||
private String deliveryDate; |
|||
|
|||
/** 是否在保 */ |
|||
@Excel(name = "是否在保") |
|||
private String isMaintenance; |
|||
|
|||
/** 在保服务类型 */ |
|||
@Excel(name = "在保服务类型") |
|||
private String serviceType; |
|||
|
|||
/** 进度 */ |
|||
@Excel(name = "进度") |
|||
private String schedule; |
|||
|
|||
/** 维修报告 */ |
|||
@Excel(name = "维修报告") |
|||
private String maintenanceReport; |
|||
|
|||
/** 费用明细 */ |
|||
@Excel(name = "费用明细") |
|||
private String expenseDetails; |
|||
|
|||
/** 用户评价内容 */ |
|||
@Excel(name = "用户评价内容") |
|||
private String userEvaluation; |
|||
|
|||
/** 单据日期 */ |
|||
@Excel(name = "单据日期") |
|||
private String documentDate; |
|||
|
|||
public void setServiceWorkOrderDetailId(Long serviceWorkOrderDetailId) |
|||
{ |
|||
this.serviceWorkOrderDetailId = serviceWorkOrderDetailId; |
|||
} |
|||
|
|||
public Long getServiceWorkOrderDetailId() |
|||
{ |
|||
return serviceWorkOrderDetailId; |
|||
} |
|||
public void setServiceWorkOrderDetailNumber(String serviceWorkOrderDetailNumber) |
|||
{ |
|||
this.serviceWorkOrderDetailNumber = serviceWorkOrderDetailNumber; |
|||
} |
|||
|
|||
public String getServiceWorkOrderDetailNumber() |
|||
{ |
|||
return serviceWorkOrderDetailNumber; |
|||
} |
|||
public void setCustomerName(String customerName) |
|||
{ |
|||
this.customerName = customerName; |
|||
} |
|||
|
|||
public String getCustomerName() |
|||
{ |
|||
return customerName; |
|||
} |
|||
public void setEquipmentNumber(String equipmentNumber) |
|||
{ |
|||
this.equipmentNumber = equipmentNumber; |
|||
} |
|||
|
|||
public String getEquipmentNumber() |
|||
{ |
|||
return equipmentNumber; |
|||
} |
|||
public void setSerialNumber(String serialNumber) |
|||
{ |
|||
this.serialNumber = serialNumber; |
|||
} |
|||
|
|||
public String getSerialNumber() |
|||
{ |
|||
return serialNumber; |
|||
} |
|||
public void setDeliveryDate(String deliveryDate) |
|||
{ |
|||
this.deliveryDate = deliveryDate; |
|||
} |
|||
|
|||
public String getDeliveryDate() |
|||
{ |
|||
return deliveryDate; |
|||
} |
|||
public void setIsMaintenance(String isMaintenance) |
|||
{ |
|||
this.isMaintenance = isMaintenance; |
|||
} |
|||
|
|||
public String getIsMaintenance() |
|||
{ |
|||
return isMaintenance; |
|||
} |
|||
public void setServiceType(String serviceType) |
|||
{ |
|||
this.serviceType = serviceType; |
|||
} |
|||
|
|||
public String getServiceType() |
|||
{ |
|||
return serviceType; |
|||
} |
|||
public void setSchedule(String schedule) |
|||
{ |
|||
this.schedule = schedule; |
|||
} |
|||
|
|||
public String getSchedule() |
|||
{ |
|||
return schedule; |
|||
} |
|||
public void setMaintenanceReport(String maintenanceReport) |
|||
{ |
|||
this.maintenanceReport = maintenanceReport; |
|||
} |
|||
|
|||
public String getMaintenanceReport() |
|||
{ |
|||
return maintenanceReport; |
|||
} |
|||
public void setExpenseDetails(String expenseDetails) |
|||
{ |
|||
this.expenseDetails = expenseDetails; |
|||
} |
|||
|
|||
public String getExpenseDetails() |
|||
{ |
|||
return expenseDetails; |
|||
} |
|||
public void setUserEvaluation(String userEvaluation) |
|||
{ |
|||
this.userEvaluation = userEvaluation; |
|||
} |
|||
|
|||
public String getUserEvaluation() |
|||
{ |
|||
return userEvaluation; |
|||
} |
|||
public void setDocumentDate(String documentDate) |
|||
{ |
|||
this.documentDate = documentDate; |
|||
} |
|||
|
|||
public String getDocumentDate() |
|||
{ |
|||
return documentDate; |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) |
|||
.append("serviceWorkOrderDetailId", getServiceWorkOrderDetailId()) |
|||
.append("serviceWorkOrderDetailNumber", getServiceWorkOrderDetailNumber()) |
|||
.append("customerName", getCustomerName()) |
|||
.append("equipmentNumber", getEquipmentNumber()) |
|||
.append("serialNumber", getSerialNumber()) |
|||
.append("deliveryDate", getDeliveryDate()) |
|||
.append("isMaintenance", getIsMaintenance()) |
|||
.append("serviceType", getServiceType()) |
|||
.append("schedule", getSchedule()) |
|||
.append("maintenanceReport", getMaintenanceReport()) |
|||
.append("expenseDetails", getExpenseDetails()) |
|||
.append("userEvaluation", getUserEvaluation()) |
|||
.append("documentDate", getDocumentDate()) |
|||
.toString(); |
|||
} |
|||
} |
@ -1,295 +0,0 @@ |
|||
package com.ruoyi.sales.domain.exportDto; |
|||
|
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import com.ruoyi.common.core.domain.BaseEntity; |
|||
import org.apache.commons.lang3.builder.ToStringBuilder; |
|||
|
|||
/** |
|||
* 销售对账对象 sales_account_reconciliation |
|||
* |
|||
* @author ruoyi |
|||
* @date 2023-02-03 |
|||
*/ |
|||
public class SalesAccountReconciliationDto extends BaseEntity |
|||
{ |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** 销售物料id */ |
|||
@ExcelProperty("销售物料id") |
|||
private String salesFinishId; |
|||
|
|||
/** 发货通知单号 */ |
|||
@ExcelProperty("发货通知单号") |
|||
private String noticeOrderNumber; |
|||
|
|||
/** 发货日期 */ |
|||
@ExcelProperty("发货日期") |
|||
private String deliveryDate; |
|||
|
|||
/** 订单号码 */ |
|||
@ExcelProperty("订单号码") |
|||
private String salesOrderNumber; |
|||
|
|||
/** 客户代码 */ |
|||
@ExcelProperty("客户代码") |
|||
private String enterpriseCode; |
|||
|
|||
/** 客户名称 */ |
|||
@ExcelProperty("客户名称") |
|||
private String enterpriseName; |
|||
|
|||
/** 联系人 */ |
|||
@ExcelProperty("联系人") |
|||
private String customerContact; |
|||
|
|||
/** 成品代码 */ |
|||
@ExcelProperty("成品代码") |
|||
private String finishProductCode; |
|||
|
|||
/** 成品名称 */ |
|||
@ExcelProperty("成品名称") |
|||
private String finishProductName; |
|||
|
|||
/** 规格型号 */ |
|||
@ExcelProperty("规格型号") |
|||
private String specificationModel; |
|||
|
|||
/** 客户料号 */ |
|||
@ExcelProperty("客户料号") |
|||
private String customerNumber; |
|||
|
|||
/** 币别 */ |
|||
@ExcelProperty("币别") |
|||
private String commonCurrency; |
|||
|
|||
/** 单价 */ |
|||
@ExcelProperty("单价") |
|||
private String processPrice; |
|||
|
|||
/** 数量 */ |
|||
@ExcelProperty("数量") |
|||
private String productQuantity; |
|||
|
|||
/** 金额 */ |
|||
@ExcelProperty("金额") |
|||
private String amountMoney; |
|||
|
|||
/** 客户使用否 */ |
|||
@ExcelProperty("客户使用否") |
|||
private String customerUseOrNot; |
|||
|
|||
/** 客户使用数量 */ |
|||
@ExcelProperty("客户使用数量") |
|||
private String customerUseQuantity; |
|||
|
|||
/** 客户使用备注说明 */ |
|||
@ExcelProperty("客户使用备注说明") |
|||
private String customerUseRemarks; |
|||
|
|||
/** 对账否 */ |
|||
@ExcelProperty("对账否") |
|||
private String accountReconciliationOrNot; |
|||
|
|||
/** 对账人 */ |
|||
@ExcelProperty("对账人") |
|||
private String accountReconciliationPerson; |
|||
|
|||
/** 对账时间 */ |
|||
@ExcelProperty("对账时间") |
|||
private String accountReconciliationTime; |
|||
|
|||
public String getSalesFinishId() { |
|||
return salesFinishId; |
|||
} |
|||
|
|||
public void setSalesFinishId(String salesFinishId) { |
|||
this.salesFinishId = salesFinishId; |
|||
} |
|||
|
|||
public String getNoticeOrderNumber() { |
|||
return noticeOrderNumber; |
|||
} |
|||
|
|||
public void setNoticeOrderNumber(String noticeOrderNumber) { |
|||
this.noticeOrderNumber = noticeOrderNumber; |
|||
} |
|||
|
|||
public String getDeliveryDate() { |
|||
return deliveryDate; |
|||
} |
|||
|
|||
public void setDeliveryDate(String deliveryDate) { |
|||
this.deliveryDate = deliveryDate; |
|||
} |
|||
|
|||
public String getSalesOrderNumber() { |
|||
return salesOrderNumber; |
|||
} |
|||
|
|||
public void setSalesOrderNumber(String salesOrderNumber) { |
|||
this.salesOrderNumber = salesOrderNumber; |
|||
} |
|||
|
|||
public String getEnterpriseCode() { |
|||
return enterpriseCode; |
|||
} |
|||
|
|||
public void setEnterpriseCode(String enterpriseCode) { |
|||
this.enterpriseCode = enterpriseCode; |
|||
} |
|||
|
|||
public String getEnterpriseName() { |
|||
return enterpriseName; |
|||
} |
|||
|
|||
public void setEnterpriseName(String enterpriseName) { |
|||
this.enterpriseName = enterpriseName; |
|||
} |
|||
|
|||
public String getCustomerContact() { |
|||
return customerContact; |
|||
} |
|||
|
|||
public void setCustomerContact(String customerContact) { |
|||
this.customerContact = customerContact; |
|||
} |
|||
|
|||
public String getFinishProductCode() { |
|||
return finishProductCode; |
|||
} |
|||
|
|||
public void setFinishProductCode(String finishProductCode) { |
|||
this.finishProductCode = finishProductCode; |
|||
} |
|||
|
|||
public String getFinishProductName() { |
|||
return finishProductName; |
|||
} |
|||
|
|||
public void setFinishProductName(String finishProductName) { |
|||
this.finishProductName = finishProductName; |
|||
} |
|||
|
|||
public String getSpecificationModel() { |
|||
return specificationModel; |
|||
} |
|||
|
|||
public void setSpecificationModel(String specificationModel) { |
|||
this.specificationModel = specificationModel; |
|||
} |
|||
|
|||
public String getCustomerNumber() { |
|||
return customerNumber; |
|||
} |
|||
|
|||
public void setCustomerNumber(String customerNumber) { |
|||
this.customerNumber = customerNumber; |
|||
} |
|||
|
|||
public String getCommonCurrency() { |
|||
return commonCurrency; |
|||
} |
|||
|
|||
public void setCommonCurrency(String commonCurrency) { |
|||
this.commonCurrency = commonCurrency; |
|||
} |
|||
|
|||
public String getProcessPrice() { |
|||
return processPrice; |
|||
} |
|||
|
|||
public void setProcessPrice(String processPrice) { |
|||
this.processPrice = processPrice; |
|||
} |
|||
|
|||
public String getProductQuantity() { |
|||
return productQuantity; |
|||
} |
|||
|
|||
public void setProductQuantity(String productQuantity) { |
|||
this.productQuantity = productQuantity; |
|||
} |
|||
|
|||
public String getAmountMoney() { |
|||
return amountMoney; |
|||
} |
|||
|
|||
public void setAmountMoney(String amountMoney) { |
|||
this.amountMoney = amountMoney; |
|||
} |
|||
|
|||
public String getCustomerUseOrNot() { |
|||
return customerUseOrNot; |
|||
} |
|||
|
|||
public void setCustomerUseOrNot(String customerUseOrNot) { |
|||
this.customerUseOrNot = customerUseOrNot; |
|||
} |
|||
|
|||
public String getCustomerUseQuantity() { |
|||
return customerUseQuantity; |
|||
} |
|||
|
|||
public void setCustomerUseQuantity(String customerUseQuantity) { |
|||
this.customerUseQuantity = customerUseQuantity; |
|||
} |
|||
|
|||
public String getCustomerUseRemarks() { |
|||
return customerUseRemarks; |
|||
} |
|||
|
|||
public void setCustomerUseRemarks(String customerUseRemarks) { |
|||
this.customerUseRemarks = customerUseRemarks; |
|||
} |
|||
|
|||
public String getAccountReconciliationOrNot() { |
|||
return accountReconciliationOrNot; |
|||
} |
|||
|
|||
public void setAccountReconciliationOrNot(String accountReconciliationOrNot) { |
|||
this.accountReconciliationOrNot = accountReconciliationOrNot; |
|||
} |
|||
|
|||
public String getAccountReconciliationPerson() { |
|||
return accountReconciliationPerson; |
|||
} |
|||
|
|||
public void setAccountReconciliationPerson(String accountReconciliationPerson) { |
|||
this.accountReconciliationPerson = accountReconciliationPerson; |
|||
} |
|||
|
|||
public String getAccountReconciliationTime() { |
|||
return accountReconciliationTime; |
|||
} |
|||
|
|||
public void setAccountReconciliationTime(String accountReconciliationTime) { |
|||
this.accountReconciliationTime = accountReconciliationTime; |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
return new ToStringBuilder(this) |
|||
.append("salesFinishId", salesFinishId) |
|||
.append("noticeOrderNumber", noticeOrderNumber) |
|||
.append("deliveryDate", deliveryDate) |
|||
.append("salesOrderNumber", salesOrderNumber) |
|||
.append("enterpriseCode", enterpriseCode) |
|||
.append("enterpriseName", enterpriseName) |
|||
.append("customerContact", customerContact) |
|||
.append("finishProductCode", finishProductCode) |
|||
.append("finishProductName", finishProductName) |
|||
.append("specificationModel", specificationModel) |
|||
.append("customerNumber", customerNumber) |
|||
.append("commonCurrency", commonCurrency) |
|||
.append("processPrice", processPrice) |
|||
.append("productQuantity", productQuantity) |
|||
.append("amountMoney", amountMoney) |
|||
.append("customerUseOrNot", customerUseOrNot) |
|||
.append("customerUseQuantity", customerUseQuantity) |
|||
.append("customerUseRemarks", customerUseRemarks) |
|||
.append("accountReconciliationOrNot", accountReconciliationOrNot) |
|||
.append("accountReconciliationPerson", accountReconciliationPerson) |
|||
.append("accountReconciliationTime", accountReconciliationTime) |
|||
.toString(); |
|||
} |
|||
} |
@ -1,61 +0,0 @@ |
|||
package com.ruoyi.sales.mapper; |
|||
|
|||
import java.util.List; |
|||
import com.ruoyi.sales.domain.ServiceWorkOrderDetail; |
|||
|
|||
/** |
|||
* serviceWorkOrderDetailMapper接口 |
|||
* |
|||
* @author ruoyi |
|||
* @date 2023-08-04 |
|||
*/ |
|||
public interface ServiceWorkOrderDetailMapper |
|||
{ |
|||
/** |
|||
* 查询serviceWorkOrderDetail |
|||
* |
|||
* @param serviceWorkOrderDetailId serviceWorkOrderDetailID |
|||
* @return serviceWorkOrderDetail |
|||
*/ |
|||
public ServiceWorkOrderDetail selectServiceWorkOrderDetailById(Long serviceWorkOrderDetailId); |
|||
|
|||
/** |
|||
* 查询serviceWorkOrderDetail列表 |
|||
* |
|||
* @param serviceWorkOrderDetail serviceWorkOrderDetail |
|||
* @return serviceWorkOrderDetail集合 |
|||
*/ |
|||
public List<ServiceWorkOrderDetail> selectServiceWorkOrderDetailList(ServiceWorkOrderDetail serviceWorkOrderDetail); |
|||
|
|||
/** |
|||
* 新增serviceWorkOrderDetail |
|||
* |
|||
* @param serviceWorkOrderDetail serviceWorkOrderDetail |
|||
* @return 结果 |
|||
*/ |
|||
public int insertServiceWorkOrderDetail(ServiceWorkOrderDetail serviceWorkOrderDetail); |
|||
|
|||
/** |
|||
* 修改serviceWorkOrderDetail |
|||
* |
|||
* @param serviceWorkOrderDetail serviceWorkOrderDetail |
|||
* @return 结果 |
|||
*/ |
|||
public int updateServiceWorkOrderDetail(ServiceWorkOrderDetail serviceWorkOrderDetail); |
|||
|
|||
/** |
|||
* 删除serviceWorkOrderDetail |
|||
* |
|||
* @param serviceWorkOrderDetailId serviceWorkOrderDetailID |
|||
* @return 结果 |
|||
*/ |
|||
public int deleteServiceWorkOrderDetailById(Long serviceWorkOrderDetailId); |
|||
|
|||
/** |
|||
* 批量删除serviceWorkOrderDetail |
|||
* |
|||
* @param serviceWorkOrderDetailIds 需要删除的数据ID |
|||
* @return 结果 |
|||
*/ |
|||
public int deleteServiceWorkOrderDetailByIds(String[] serviceWorkOrderDetailIds); |
|||
} |
@ -1,61 +0,0 @@ |
|||
package com.ruoyi.sales.service; |
|||
|
|||
import java.util.List; |
|||
import com.ruoyi.sales.domain.ServiceWorkOrderDetail; |
|||
|
|||
/** |
|||
* serviceWorkOrderDetailService接口 |
|||
* |
|||
* @author ruoyi |
|||
* @date 2023-08-04 |
|||
*/ |
|||
public interface IServiceWorkOrderDetailService |
|||
{ |
|||
/** |
|||
* 查询serviceWorkOrderDetail |
|||
* |
|||
* @param serviceWorkOrderDetailId serviceWorkOrderDetailID |
|||
* @return serviceWorkOrderDetail |
|||
*/ |
|||
public ServiceWorkOrderDetail selectServiceWorkOrderDetailById(Long serviceWorkOrderDetailId); |
|||
|
|||
/** |
|||
* 查询serviceWorkOrderDetail列表 |
|||
* |
|||
* @param serviceWorkOrderDetail serviceWorkOrderDetail |
|||
* @return serviceWorkOrderDetail集合 |
|||
*/ |
|||
public List<ServiceWorkOrderDetail> selectServiceWorkOrderDetailList(ServiceWorkOrderDetail serviceWorkOrderDetail); |
|||
|
|||
/** |
|||
* 新增serviceWorkOrderDetail |
|||
* |
|||
* @param serviceWorkOrderDetail serviceWorkOrderDetail |
|||
* @return 结果 |
|||
*/ |
|||
public int insertServiceWorkOrderDetail(ServiceWorkOrderDetail serviceWorkOrderDetail); |
|||
|
|||
/** |
|||
* 修改serviceWorkOrderDetail |
|||
* |
|||
* @param serviceWorkOrderDetail serviceWorkOrderDetail |
|||
* @return 结果 |
|||
*/ |
|||
public int updateServiceWorkOrderDetail(ServiceWorkOrderDetail serviceWorkOrderDetail); |
|||
|
|||
/** |
|||
* 批量删除serviceWorkOrderDetail |
|||
* |
|||
* @param ids 需要删除的数据ID |
|||
* @return 结果 |
|||
*/ |
|||
public int deleteServiceWorkOrderDetailByIds(String ids); |
|||
|
|||
/** |
|||
* 删除serviceWorkOrderDetail信息 |
|||
* |
|||
* @param serviceWorkOrderDetailId serviceWorkOrderDetailID |
|||
* @return 结果 |
|||
*/ |
|||
public int deleteServiceWorkOrderDetailById(Long serviceWorkOrderDetailId); |
|||
} |
@ -1,94 +0,0 @@ |
|||
package com.ruoyi.sales.service.impl; |
|||
|
|||
import java.util.List; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import com.ruoyi.sales.mapper.ServiceWorkOrderDetailMapper; |
|||
import com.ruoyi.sales.domain.ServiceWorkOrderDetail; |
|||
import com.ruoyi.sales.service.IServiceWorkOrderDetailService; |
|||
import com.ruoyi.common.core.text.Convert; |
|||
|
|||
/** |
|||
* serviceWorkOrderDetailService业务层处理 |
|||
* |
|||
* @author ruoyi |
|||
* @date 2023-08-04 |
|||
*/ |
|||
@Service |
|||
public class ServiceWorkOrderDetailServiceImpl implements IServiceWorkOrderDetailService |
|||
{ |
|||
@Autowired |
|||
private ServiceWorkOrderDetailMapper serviceWorkOrderDetailMapper; |
|||
|
|||
/** |
|||
* 查询serviceWorkOrderDetail |
|||
* |
|||
* @param serviceWorkOrderDetailId serviceWorkOrderDetailID |
|||
* @return serviceWorkOrderDetail |
|||
*/ |
|||
@Override |
|||
public ServiceWorkOrderDetail selectServiceWorkOrderDetailById(Long serviceWorkOrderDetailId) |
|||
{ |
|||
return serviceWorkOrderDetailMapper.selectServiceWorkOrderDetailById(serviceWorkOrderDetailId); |
|||
} |
|||
|
|||
/** |
|||
* 查询serviceWorkOrderDetail列表 |
|||
* |
|||
* @param serviceWorkOrderDetail serviceWorkOrderDetail |
|||
* @return serviceWorkOrderDetail |
|||
*/ |
|||
@Override |
|||
public List<ServiceWorkOrderDetail> selectServiceWorkOrderDetailList(ServiceWorkOrderDetail serviceWorkOrderDetail) |
|||
{ |
|||
return serviceWorkOrderDetailMapper.selectServiceWorkOrderDetailList(serviceWorkOrderDetail); |
|||
} |
|||
|
|||
/** |
|||
* 新增serviceWorkOrderDetail |
|||
* |
|||
* @param serviceWorkOrderDetail serviceWorkOrderDetail |
|||
* @return 结果 |
|||
*/ |
|||
@Override |
|||
public int insertServiceWorkOrderDetail(ServiceWorkOrderDetail serviceWorkOrderDetail) |
|||
{ |
|||
return serviceWorkOrderDetailMapper.insertServiceWorkOrderDetail(serviceWorkOrderDetail); |
|||
} |
|||
|
|||
/** |
|||
* 修改serviceWorkOrderDetail |
|||
* |
|||
* @param serviceWorkOrderDetail serviceWorkOrderDetail |
|||
* @return 结果 |
|||
*/ |
|||
@Override |
|||
public int updateServiceWorkOrderDetail(ServiceWorkOrderDetail serviceWorkOrderDetail) |
|||
{ |
|||
return serviceWorkOrderDetailMapper.updateServiceWorkOrderDetail(serviceWorkOrderDetail); |
|||
} |
|||
|
|||
/** |
|||
* 删除serviceWorkOrderDetail对象 |
|||
* |
|||
* @param ids 需要删除的数据ID |
|||
* @return 结果 |
|||
*/ |
|||
@Override |
|||
public int deleteServiceWorkOrderDetailByIds(String ids) |
|||
{ |
|||
return serviceWorkOrderDetailMapper.deleteServiceWorkOrderDetailByIds(Convert.toStrArray(ids)); |
|||
} |
|||
|
|||
/** |
|||
* 删除serviceWorkOrderDetail信息 |
|||
* |
|||
* @param serviceWorkOrderDetailId serviceWorkOrderDetailID |
|||
* @return 结果 |
|||
*/ |
|||
@Override |
|||
public int deleteServiceWorkOrderDetailById(Long serviceWorkOrderDetailId) |
|||
{ |
|||
return serviceWorkOrderDetailMapper.deleteServiceWorkOrderDetailById(serviceWorkOrderDetailId); |
|||
} |
|||
} |
@ -1,116 +0,0 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper |
|||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
|||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.ruoyi.sales.mapper.ServiceWorkOrderDetailMapper"> |
|||
|
|||
<resultMap type="ServiceWorkOrderDetail" id="ServiceWorkOrderDetailResult"> |
|||
<result property="serviceWorkOrderDetailId" column="service_work_order_detail_id" /> |
|||
<result property="serviceWorkOrderDetailNumber" column="service_work_order_detail_number" /> |
|||
<result property="customerName" column="customer_name" /> |
|||
<result property="equipmentNumber" column="equipment_number" /> |
|||
<result property="serialNumber" column="serial_number" /> |
|||
<result property="deliveryDate" column="delivery_date" /> |
|||
<result property="isMaintenance" column="is_maintenance" /> |
|||
<result property="serviceType" column="service_type" /> |
|||
<result property="schedule" column="schedule" /> |
|||
<result property="maintenanceReport" column="maintenance_report" /> |
|||
<result property="expenseDetails" column="expense_details" /> |
|||
<result property="userEvaluation" column="user_evaluation" /> |
|||
<result property="documentDate" column="document_date" /> |
|||
</resultMap> |
|||
|
|||
<sql id="selectServiceWorkOrderDetailVo"> |
|||
select service_work_order_detail_id, service_work_order_detail_number, customer_name, equipment_number, serial_number, delivery_date, is_maintenance, service_type, schedule, maintenance_report, expense_details, user_evaluation, document_date from service_work_order_detail |
|||
</sql> |
|||
|
|||
<select id="selectServiceWorkOrderDetailList" parameterType="ServiceWorkOrderDetail" resultMap="ServiceWorkOrderDetailResult"> |
|||
<include refid="selectServiceWorkOrderDetailVo"/> |
|||
<where> |
|||
<if test="serviceWorkOrderDetailNumber != null and serviceWorkOrderDetailNumber != ''"> and service_work_order_detail_number = #{serviceWorkOrderDetailNumber}</if> |
|||
<if test="customerName != null and customerName != ''"> and customer_name like concat('%', #{customerName}, '%')</if> |
|||
<if test="equipmentNumber != null and equipmentNumber != ''"> and equipment_number = #{equipmentNumber}</if> |
|||
<if test="serialNumber != null and serialNumber != ''"> and serial_number = #{serialNumber}</if> |
|||
<if test="deliveryDate != null and deliveryDate != ''"> and delivery_date = #{deliveryDate}</if> |
|||
<if test="params.deliveryTime1 != null and params.deliveryTime1 != ''"> and delivery_date > #{params.deliveryTime1}</if> |
|||
<if test="params.deliveryTime2 != null and params.deliveryTime2 != ''"> and delivery_date <= #{params.deliveryTime2}</if> |
|||
<if test="isMaintenance != null and isMaintenance != ''"> and is_maintenance = #{isMaintenance}</if> |
|||
<if test="serviceType != null and serviceType != ''"> and service_type = #{serviceType}</if> |
|||
<if test="schedule != null and schedule != ''"> and schedule = #{schedule}</if> |
|||
<if test="maintenanceReport != null and maintenanceReport != ''"> and maintenance_report = #{maintenanceReport}</if> |
|||
<if test="expenseDetails != null and expenseDetails != ''"> and expense_details = #{expenseDetails}</if> |
|||
<if test="userEvaluation != null and userEvaluation != ''"> and user_evaluation = #{userEvaluation}</if> |
|||
<if test="params.beginDocumentDate != null and params.beginDocumentDate != '' and params.endDocumentDate != null and params.endDocumentDate != ''"> and document_date between #{params.beginDocumentDate} and #{params.endDocumentDate}</if> |
|||
</where> |
|||
</select> |
|||
|
|||
<select id="selectServiceWorkOrderDetailById" parameterType="Long" resultMap="ServiceWorkOrderDetailResult"> |
|||
<include refid="selectServiceWorkOrderDetailVo"/> |
|||
where service_work_order_detail_id = #{serviceWorkOrderDetailId} |
|||
</select> |
|||
|
|||
<insert id="insertServiceWorkOrderDetail" parameterType="ServiceWorkOrderDetail"> |
|||
insert into service_work_order_detail |
|||
<trim prefix="(" suffix=")" suffixOverrides=","> |
|||
<if test="serviceWorkOrderDetailId != null">service_work_order_detail_id,</if> |
|||
<if test="serviceWorkOrderDetailNumber != null">service_work_order_detail_number,</if> |
|||
<if test="customerName != null">customer_name,</if> |
|||
<if test="equipmentNumber != null">equipment_number,</if> |
|||
<if test="serialNumber != null">serial_number,</if> |
|||
<if test="deliveryDate != null">delivery_date,</if> |
|||
<if test="isMaintenance != null">is_maintenance,</if> |
|||
<if test="serviceType != null">service_type,</if> |
|||
<if test="schedule != null">schedule,</if> |
|||
<if test="maintenanceReport != null">maintenance_report,</if> |
|||
<if test="expenseDetails != null">expense_details,</if> |
|||
<if test="userEvaluation != null">user_evaluation,</if> |
|||
<if test="documentDate != null">document_date,</if> |
|||
</trim> |
|||
<trim prefix="values (" suffix=")" suffixOverrides=","> |
|||
<if test="serviceWorkOrderDetailId != null">#{serviceWorkOrderDetailId},</if> |
|||
<if test="serviceWorkOrderDetailNumber != null">#{serviceWorkOrderDetailNumber},</if> |
|||
<if test="customerName != null">#{customerName},</if> |
|||
<if test="equipmentNumber != null">#{equipmentNumber},</if> |
|||
<if test="serialNumber != null">#{serialNumber},</if> |
|||
<if test="deliveryDate != null">#{deliveryDate},</if> |
|||
<if test="isMaintenance != null">#{isMaintenance},</if> |
|||
<if test="serviceType != null">#{serviceType},</if> |
|||
<if test="schedule != null">#{schedule},</if> |
|||
<if test="maintenanceReport != null">#{maintenanceReport},</if> |
|||
<if test="expenseDetails != null">#{expenseDetails},</if> |
|||
<if test="userEvaluation != null">#{userEvaluation},</if> |
|||
<if test="documentDate != null">#{documentDate},</if> |
|||
</trim> |
|||
</insert> |
|||
|
|||
<update id="updateServiceWorkOrderDetail" parameterType="ServiceWorkOrderDetail"> |
|||
update service_work_order_detail |
|||
<trim prefix="SET" suffixOverrides=","> |
|||
<if test="serviceWorkOrderDetailNumber != null">service_work_order_detail_number = #{serviceWorkOrderDetailNumber},</if> |
|||
<if test="customerName != null">customer_name = #{customerName},</if> |
|||
<if test="equipmentNumber != null">equipment_number = #{equipmentNumber},</if> |
|||
<if test="serialNumber != null">serial_number = #{serialNumber},</if> |
|||
<if test="deliveryDate != null">delivery_date = #{deliveryDate},</if> |
|||
<if test="isMaintenance != null">is_maintenance = #{isMaintenance},</if> |
|||
<if test="serviceType != null">service_type = #{serviceType},</if> |
|||
<if test="schedule != null">schedule = #{schedule},</if> |
|||
<if test="maintenanceReport != null">maintenance_report = #{maintenanceReport},</if> |
|||
<if test="expenseDetails != null">expense_details = #{expenseDetails},</if> |
|||
<if test="userEvaluation != null">user_evaluation = #{userEvaluation},</if> |
|||
<if test="documentDate != null">document_date = #{documentDate},</if> |
|||
</trim> |
|||
where service_work_order_detail_id = #{serviceWorkOrderDetailId} |
|||
</update> |
|||
|
|||
<delete id="deleteServiceWorkOrderDetailById" parameterType="Long"> |
|||
delete from service_work_order_detail where service_work_order_detail_id = #{serviceWorkOrderDetailId} |
|||
</delete> |
|||
|
|||
<delete id="deleteServiceWorkOrderDetailByIds" parameterType="String"> |
|||
delete from service_work_order_detail where service_work_order_detail_id in |
|||
<foreach item="serviceWorkOrderDetailId" collection="array" open="(" separator="," close=")"> |
|||
#{serviceWorkOrderDetailId} |
|||
</foreach> |
|||
</delete> |
|||
|
|||
</mapper> |
@ -1,127 +0,0 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
|||
<head> |
|||
<th:block th:include="include :: header('修改服务工单统计')" /> |
|||
<th:block th:include="include :: datetimepicker-css" /> |
|||
</head> |
|||
<body class="white-bg"> |
|||
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
|||
<form class="form-horizontal m" id="form-serviceWorkOrderDetail-edit" th:object="${serviceWorkOrderDetail}"> |
|||
<input name="serviceWorkOrderDetailId" th:field="*{serviceWorkOrderDetailId}" type="hidden"> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">服务工单单号:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="serviceWorkOrderDetailNumber" th:field="*{serviceWorkOrderDetailNumber}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">客户名称:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="customerName" th:field="*{customerName}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">设备编号:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="equipmentNumber" th:field="*{equipmentNumber}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">序列号:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="serialNumber" th:field="*{serialNumber}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">出库日期:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="input-group date"> |
|||
<input name="deliveryDate" th:field="*{deliveryDate}" class="form-control" placeholder="yyyy-MM-dd" type="text"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">是否在保:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="radio-box" th:each="dict : ${@dict.getType('is_maintenance')}"> |
|||
<input type="radio" th:id="${'isMaintenance_' + dict.dictCode}" name="isMaintenance" th:value="${dict.dictValue}" th:field="*{isMaintenance}"> |
|||
<label th:for="${'isMaintenance_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">在保服务类型:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="radio-box" th:each="dict : ${@dict.getType('service_type')}"> |
|||
<input type="radio" th:id="${'serviceType_' + dict.dictCode}" name="serviceType" th:value="${dict.dictValue}" th:field="*{serviceType}"> |
|||
<label th:for="${'serviceType_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">进度:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="radio-box" th:each="dict : ${@dict.getType('schedule')}"> |
|||
<input type="radio" th:id="${'schedule_' + dict.dictCode}" name="schedule" th:value="${dict.dictValue}" th:field="*{schedule}"> |
|||
<label th:for="${'schedule_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">维修报告:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="maintenanceReport" th:field="*{maintenanceReport}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">费用明细:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="expenseDetails" th:field="*{expenseDetails}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">用户评价内容:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="userEvaluation" th:field="*{userEvaluation}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">单据日期:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="input-group date"> |
|||
<input name="documentDate" th:field="*{documentDate}" class="form-control" placeholder="yyyy-MM-dd" type="text"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
<th:block th:include="include :: footer" /> |
|||
<th:block th:include="include :: datetimepicker-js" /> |
|||
<script th:inline="javascript"> |
|||
var prefix = ctx + "sales/serviceWorkOrderDetail"; |
|||
$("#form-serviceWorkOrderDetail-edit").validate({ |
|||
focusCleanup: true |
|||
}); |
|||
|
|||
function submitHandler() { |
|||
if ($.validate.form()) { |
|||
$.operate.save(prefix + "/edit", $('#form-serviceWorkOrderDetail-edit').serialize()); |
|||
} |
|||
} |
|||
|
|||
$("input[name='deliveryDate']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
|
|||
$("input[name='documentDate']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
</script> |
|||
</body> |
|||
</html> |
@ -1,377 +0,0 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> |
|||
<head> |
|||
<th:block th:include="include :: header('服务工单统计')" /> |
|||
<th:block th:include="include :: datetimepicker-css"/> |
|||
<script type="text/javascript" th:src="@{/js/axios.min.js}"></script> |
|||
<style> |
|||
.a{ |
|||
background-color: #009ED6; |
|||
color: #FFFFFF; |
|||
padding: 5px; |
|||
border-radius:5px; |
|||
} |
|||
input[type="radio"] { |
|||
display: none; |
|||
} |
|||
input[type="radio"]+label { |
|||
padding: 0.2em 1em; |
|||
color: #656464; |
|||
} |
|||
input[type="radio"]:checked+label { |
|||
padding: 0.2em 1em; |
|||
color: #009ED6; |
|||
} |
|||
.body{ |
|||
background-color: #F2F2F2; |
|||
} |
|||
.all{ |
|||
margin: 2% 3%; |
|||
} |
|||
#bootstrap-table>tfoot>tr>th { |
|||
border: 0px solid #ddd; |
|||
font-weight: 400; |
|||
font-size: 13px; |
|||
background-color: #FFFFFF; |
|||
} |
|||
#bootstrap-table>tbody>tr>td{ |
|||
background-color: #FFFFFF; |
|||
} |
|||
.div11{ |
|||
display: inline-block; |
|||
color: #848484; |
|||
font-size: 18px; |
|||
font-weight: bold; |
|||
margin: 10px 0; |
|||
} |
|||
.div12{ |
|||
margin: 15px 0; |
|||
display: inline-block; |
|||
float: right; |
|||
} |
|||
.div2>div{ |
|||
width: auto; |
|||
display: inline-block; |
|||
background-color: #FFFFFF; |
|||
color: #848484; |
|||
font-size: 14px; |
|||
font-weight: bold; |
|||
padding: 10px 20px; |
|||
} |
|||
.div3{ |
|||
background-color: #FFFFFF; |
|||
padding-top: 5px; |
|||
} |
|||
.div3>div{ |
|||
padding: 5px 20px; |
|||
} |
|||
.div4{ |
|||
background-color: #FFFFFF; |
|||
padding-bottom: 10px; |
|||
} |
|||
.div4>div{ |
|||
display: inline-block; |
|||
padding-left: 20px; |
|||
} |
|||
.div4>div>select{ |
|||
min-width: 80px; |
|||
margin-left: 10px; |
|||
} |
|||
.div5{ |
|||
padding-top: 5px; |
|||
} |
|||
.list{ |
|||
background-color: #F2F2F2; |
|||
border: 2px; |
|||
} |
|||
</style> |
|||
</head> |
|||
<body class="gray-bg body"> |
|||
<div class="all"> |
|||
<div class="div1"> |
|||
<div class="div11">服务工单统计</div> |
|||
</div> |
|||
<!-- <div class="div2">--> |
|||
<!-- <div class="">服务工单详细</div>--> |
|||
<!-- <!– <div>销售出库</div>–>--> |
|||
<!-- <!– <div>销售退货</div>–>--> |
|||
<!-- </div>--> |
|||
<form id="formId"> |
|||
<div class="div3"> |
|||
<div class="row"> |
|||
<div class="col-sm-12"> |
|||
<div class="row"> |
|||
<label class="col-sm-5 control-label" style="width: 460px"> |
|||
单据日期: |
|||
<input type="radio" name="documentDateValue" id="documentDate_1" value="" checked><label for="documentDate_1">全部</label> |
|||
<input type="radio" name="documentDateValue" id="documentDate_2" value="今天"><label for="documentDate_2">今天</label> |
|||
<input type="radio" name="documentDateValue" id="documentDate_3" value="昨天"><label for="documentDate_3">昨天</label> |
|||
<input type="radio" name="documentDateValue" id="documentDate_4" value="本周"><label for="documentDate_4">本周</label> |
|||
<input type="radio" name="documentDateValue" id="documentDate_5" value="上周"><label for="documentDate_5">上周</label> |
|||
<input type="radio" name="documentDateValue" id="documentDate_6" value="自定义"><label for="documentDate_6">自定义</label> |
|||
</label> |
|||
<div class="col-sm-7" style="display: none" id="documentDateInput"> |
|||
<div style="width: 200px;display: inline-block"> |
|||
<div class="input-group date"> |
|||
<input id="beginDocumentDate" name="params[beginDocumentDate]" class="form-control" placeholder="开始时间:" type="text"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
</div> |
|||
</div> |
|||
<div style="display: inline-block; width: 10px"></div> |
|||
<div style="width: 200px;display: inline-block"> |
|||
<div class="input-group date"> |
|||
<input id="endDocumentDate" name="params[endDocumentDate]" class="form-control" placeholder="结束时间:" type="text"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<label class="col-sm-12 control-label"> |
|||
进度状态: |
|||
<input type="radio" name="schedule" id="schedule_1" value="" checked><label for="schedule_1">全部</label> |
|||
<input type="radio" name="schedule" id="schedule_2" value="正在维修"><label for="schedule_2">正在维修</label> |
|||
<input type="radio" name="schedule" id="schedule_3" value="维修完成"><label for="schedule_3">维修完成</label> |
|||
</label> |
|||
<label class="col-sm-12 control-label"> |
|||
出库状态: |
|||
<input type="radio" name="outboundStatus" id="outboundStatus_1" value="" checked><label for="outboundStatus_1">全部</label> |
|||
<input type="radio" name="outboundStatus" id="outboundStatus_2" value="未出库"><label for="outboundStatus_2">未出库</label> |
|||
<!-- <input type="radio" name="outboundStatus" id="outboundStatus_3" value="部分出库"><label for="outboundStatus_3">部分出库</label>--> |
|||
<!-- <input type="radio" name="outboundStatus" id="outboundStatus_4" value="完全出库"><label for="outboundStatus_4">完全出库</label>--> |
|||
<input type="radio" name="outboundStatus" id="outboundStatus_4" value="已出库"><label for="outboundStatus_4">已出库</label> |
|||
<input id="deliveryTime" name="deliveryTime" type="text"style="display: none"> |
|||
<input id="deliveryTime1" name="params[deliveryTime1]" type="text"style="display: none"> |
|||
<input id=" deliveryTime2" name="params[deliveryTime2]" type="text"style="display: none"> |
|||
</label> |
|||
<label class="col-sm-12 control-label"> |
|||
是否在保: |
|||
<input type="radio" name="isMaintenance" id="isMaintenance_1" value="" checked><label for="isMaintenance_1">全部</label> |
|||
<input type="radio" name="isMaintenance" id="isMaintenance_2" value="是"><label for="isMaintenance_2">是</label> |
|||
<input type="radio" name="isMaintenance" id="isMaintenance_3" value="否"><label for="isMaintenance_3">否</label> |
|||
</label> |
|||
<label class="col-sm-12 control-label"> |
|||
在保服务类型: |
|||
<input type="radio" name="serviceType" id="serviceType_1" value="" checked><label for="serviceType_1">全部</label> |
|||
<input type="radio" name="serviceType" id="serviceType_2" value="类型1"><label for="serviceType_2">类型1</label> |
|||
<input type="radio" name="serviceType" id="serviceType_3" value="类型2"><label for="serviceType_3">类型2</label> |
|||
<input type="radio" name="serviceType" id="serviceType_4" value="类型3"><label for="serviceType_4">类型3</label> |
|||
</label> |
|||
</div> |
|||
</div> |
|||
<div class="div5"> |
|||
<div style="float: right"> |
|||
<!-- <select>--> |
|||
<!-- <option>产品名称</option>--> |
|||
<!-- </select>--> |
|||
<!-- <input type="text" placeholder="请输入关键词" name="username"/>--> |
|||
<a class="a" href="#" type="button" onclick="searchValue()">搜索</a> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
<div class="div6"> |
|||
<div class="col-sm-12 select-table table-striped list"> |
|||
<table id="bootstrap-table" style="white-space: nowrap;"></table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<th:block th:include="include :: footer" /> |
|||
<th:block th:include="include :: datetimepicker-js"/> |
|||
<script src="https://cdn.bootcdn.net/ajax/libs/moment.js/2.29.1/moment.min.js"></script> |
|||
<script th:inline="javascript"> |
|||
var editFlag = [[${@permission.hasPermi('sales:serviceWorkOrderDetail:edit')}]]; |
|||
var removeFlag = [[${@permission.hasPermi('sales:serviceWorkOrderDetail:remove')}]]; |
|||
var isMaintenanceDatas = [[${@dict.getType('is_maintenance')}]]; |
|||
var serviceTypeDatas = [[${@dict.getType('service_type')}]]; |
|||
var scheduleDatas = [[${@dict.getType('schedule')}]]; |
|||
var prefix = ctx + "sales/serviceWorkOrderCount"; |
|||
|
|||
$(function() { |
|||
var options = { |
|||
modalName: "服务工单详细", |
|||
url: prefix + "/list", |
|||
createUrl: prefix + "/add", |
|||
updateUrl: prefix + "/edit/{id}", |
|||
removeUrl: prefix + "/remove", |
|||
exportUrl: prefix + "/export", |
|||
clickToSelect: true, |
|||
showRefresh:false, |
|||
showToggle:false, |
|||
showSearch:false, |
|||
showColumns:false, |
|||
columns: [ |
|||
{ |
|||
field: 'serviceWorkOrderDetailId', |
|||
title: '', |
|||
visible: false |
|||
}, |
|||
{ |
|||
field: 'serviceWorkOrderDetailNumber', |
|||
title: '服务工单单号' |
|||
}, |
|||
{ |
|||
field: 'customerName', |
|||
title: '客户名称' |
|||
}, |
|||
{ |
|||
field: 'equipmentNumber', |
|||
title: '设备编号' |
|||
}, |
|||
{ |
|||
field: 'serialNumber', |
|||
title: '序列号' |
|||
}, |
|||
{ |
|||
field: 'deliveryDate', |
|||
title: '出库日期' |
|||
}, |
|||
{ |
|||
field: 'isMaintenance', |
|||
title: '是否在保', |
|||
formatter: function(value, row, index) { |
|||
return $.table.selectDictLabel(isMaintenanceDatas, value); |
|||
} |
|||
}, |
|||
{ |
|||
field: 'serviceType', |
|||
title: '在保服务类型', |
|||
formatter: function(value, row, index) { |
|||
return $.table.selectDictLabel(serviceTypeDatas, value); |
|||
} |
|||
}, |
|||
{ |
|||
field: 'schedule', |
|||
title: '进度', |
|||
formatter: function(value, row, index) { |
|||
return $.table.selectDictLabel(scheduleDatas, value); |
|||
} |
|||
}, |
|||
{ |
|||
field: 'maintenanceReport', |
|||
title: '维修报告' |
|||
}, |
|||
{ |
|||
field: 'expenseDetails', |
|||
title: '费用明细', |
|||
visible: false |
|||
}, |
|||
{ |
|||
field: 'userEvaluation', |
|||
title: '用户评价内容' |
|||
}, |
|||
{ |
|||
field: 'documentDate', |
|||
title: '单据日期' |
|||
}, |
|||
{ |
|||
title: '操作', |
|||
align: 'center', |
|||
formatter: function(value, row, index) { |
|||
var actions = []; |
|||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.serviceWorkOrderDetailId + '\')"><i class="fa fa-edit"></i>编辑</a> '); |
|||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.serviceWorkOrderDetailId + '\')"><i class="fa fa-remove"></i>删除</a>'); |
|||
return actions.join(''); |
|||
} |
|||
} |
|||
], |
|||
onPostBody: function () { |
|||
|
|||
} |
|||
// { |
|||
// title: '操作', |
|||
// align: 'center', |
|||
// formatter: function(value, row, index) { |
|||
// var actions = []; |
|||
// actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.salesFinishId + '\')"><i class="fa fa-edit"></i>编辑</a> '); |
|||
// actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.salesFinishId + '\')"><i class="fa fa-remove"></i>删除</a>'); |
|||
// return actions.join(''); |
|||
// } |
|||
// }] |
|||
}; |
|||
$.table.init(options); |
|||
}); |
|||
|
|||
$("#beginDocumentDate").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
|
|||
$("#endDocumentDate").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
|
|||
//自定义 |
|||
$("input[name=documentDateValue]").change(function () { |
|||
var documentDate = $(this).val(); |
|||
if (documentDate == "自定义") { |
|||
$("#documentDateInput").css("display", "block"); |
|||
} else { |
|||
$("#documentDateInput").css("display", "none"); |
|||
$("#beginDocumentDate").val(""); |
|||
$("#endDocumentDate").val(""); |
|||
} |
|||
}); |
|||
|
|||
|
|||
function searchValue(){ |
|||
var documentDate = $("input[name=documentDateValue]:checked").val(); |
|||
var outboundStatus = $("input[name=outboundStatus]:checked").val(); |
|||
searchDocumentDate(documentDate); |
|||
searchDeliveryTime(outboundStatus); |
|||
$.table.search(); |
|||
refreshAll(documentDate); |
|||
} |
|||
|
|||
function searchDocumentDate(documentDate){ |
|||
var today=new Date(); |
|||
var date =""; |
|||
var startDate=""; |
|||
var endDate=""; |
|||
var oneday = 1000 * 60 * 60 * 24; |
|||
if(documentDate=="今天"){ |
|||
date = moment(today).format('YYYY-MM-DD'); |
|||
$("#beginDocumentDate").val(date); |
|||
$("#endDocumentDate").val(date); |
|||
}else if(documentDate=="昨天"){ |
|||
date = moment(new Date(today-oneday)).format('YYYY-MM-DD'); |
|||
$("#beginDocumentDate").val(date); |
|||
$("#endDocumentDate").val(date); |
|||
}else if(documentDate=="本周"){ |
|||
var weekDay = -1+today.getDay()||7; |
|||
startDate = moment(today-oneday*weekDay).format('YYYY-MM-DD'); |
|||
endDate = moment(today-oneday*weekDay+oneday*7).format('YYYY-MM-DD'); |
|||
$("#beginDocumentDate").val(startDate); |
|||
$("#endDocumentDate").val(endDate); |
|||
}else if(documentDate=="上周"){ |
|||
var weekDay = 6+today.getDay()||7; |
|||
startDate = moment(today-oneday*weekDay).format('YYYY-MM-DD'); |
|||
endDate = moment(today-oneday*weekDay+oneday*7).format('YYYY-MM-DD'); |
|||
$("#beginDocumentDate").val(startDate); |
|||
$("#endDocumentDate").val(endDate); |
|||
} |
|||
} |
|||
|
|||
function searchDeliveryTime(outboundStatus){ |
|||
var today=new Date(); |
|||
var date = moment(today).format('YYYY-MM-DD'); |
|||
if(outboundStatus=="未出库"){ |
|||
$("#deliveryTime1").val(date); |
|||
}else if (outboundStatus=="已出库"){ |
|||
$("#deliveryTime2").val(date); |
|||
} |
|||
} |
|||
function refreshAll(documentDate){ |
|||
if(documentDate!="自定义"){ |
|||
$("#beginDocumentDate").val(""); |
|||
$("#endDocumentDate").val(""); |
|||
} |
|||
$("#deliveryTime1").val(""); |
|||
$("#deliveryTime2").val(""); |
|||
} |
|||
</script> |
|||
</body> |
|||
</html> |
@ -1,126 +0,0 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
|||
<head> |
|||
<th:block th:include="include :: header('新增serviceWorkOrderDetail')" /> |
|||
<th:block th:include="include :: datetimepicker-css" /> |
|||
</head> |
|||
<body class="white-bg"> |
|||
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
|||
<form class="form-horizontal m" id="form-serviceWorkOrderDetail-add"> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">服务工单单号:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="serviceWorkOrderDetailNumber" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">客户名称:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="customerName" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">设备编号:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="equipmentNumber" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">序列号:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="serialNumber" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">出库日期:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="input-group date"> |
|||
<input name="deliveryDate" class="form-control" placeholder="yyyy-MM-dd" type="text"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">是否在保:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="radio-box" th:each="dict : ${@dict.getType('is_maintenance')}"> |
|||
<input type="radio" th:id="${'isMaintenance_' + dict.dictCode}" name="isMaintenance" th:value="${dict.dictValue}" th:checked="${dict.default}"> |
|||
<label th:for="${'isMaintenance_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">在保服务类型:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="radio-box" th:each="dict : ${@dict.getType('service_type')}"> |
|||
<input type="radio" th:id="${'serviceType_' + dict.dictCode}" name="serviceType" th:value="${dict.dictValue}" th:checked="${dict.default}"> |
|||
<label th:for="${'serviceType_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">进度:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="radio-box" th:each="dict : ${@dict.getType('schedule')}"> |
|||
<input type="radio" th:id="${'schedule_' + dict.dictCode}" name="schedule" th:value="${dict.dictValue}" th:checked="${dict.default}"> |
|||
<label th:for="${'schedule_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">维修报告:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="maintenanceReport" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">费用明细:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="expenseDetails" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">用户评价内容:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="userEvaluation" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">单据日期:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="input-group date"> |
|||
<input name="documentDate" class="form-control" placeholder="yyyy-MM-dd" type="text"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
<th:block th:include="include :: footer" /> |
|||
<th:block th:include="include :: datetimepicker-js" /> |
|||
<script th:inline="javascript"> |
|||
var prefix = ctx + "sales/serviceWorkOrderDetail" |
|||
$("#form-serviceWorkOrderDetail-add").validate({ |
|||
focusCleanup: true |
|||
}); |
|||
|
|||
function submitHandler() { |
|||
if ($.validate.form()) { |
|||
$.operate.save(prefix + "/add", $('#form-serviceWorkOrderDetail-add').serialize()); |
|||
} |
|||
} |
|||
|
|||
$("input[name='deliveryDate']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
|
|||
$("input[name='documentDate']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
</script> |
|||
</body> |
|||
</html> |
@ -1,127 +0,0 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
|||
<head> |
|||
<th:block th:include="include :: header('修改serviceWorkOrderDetail')" /> |
|||
<th:block th:include="include :: datetimepicker-css" /> |
|||
</head> |
|||
<body class="white-bg"> |
|||
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
|||
<form class="form-horizontal m" id="form-serviceWorkOrderDetail-edit" th:object="${serviceWorkOrderDetail}"> |
|||
<input name="serviceWorkOrderDetailId" th:field="*{serviceWorkOrderDetailId}" type="hidden"> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">服务工单单号:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="serviceWorkOrderDetailNumber" th:field="*{serviceWorkOrderDetailNumber}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">客户名称:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="customerName" th:field="*{customerName}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">设备编号:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="equipmentNumber" th:field="*{equipmentNumber}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">序列号:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="serialNumber" th:field="*{serialNumber}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">出库日期:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="input-group date"> |
|||
<input name="deliveryDate" th:field="*{deliveryDate}" class="form-control" placeholder="yyyy-MM-dd" type="text"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">是否在保:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="radio-box" th:each="dict : ${@dict.getType('is_maintenance')}"> |
|||
<input type="radio" th:id="${'isMaintenance_' + dict.dictCode}" name="isMaintenance" th:value="${dict.dictValue}" th:field="*{isMaintenance}"> |
|||
<label th:for="${'isMaintenance_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">在保服务类型:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="radio-box" th:each="dict : ${@dict.getType('service_type')}"> |
|||
<input type="radio" th:id="${'serviceType_' + dict.dictCode}" name="serviceType" th:value="${dict.dictValue}" th:field="*{serviceType}"> |
|||
<label th:for="${'serviceType_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">进度:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="radio-box" th:each="dict : ${@dict.getType('schedule')}"> |
|||
<input type="radio" th:id="${'schedule_' + dict.dictCode}" name="schedule" th:value="${dict.dictValue}" th:field="*{schedule}"> |
|||
<label th:for="${'schedule_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">维修报告:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="maintenanceReport" th:field="*{maintenanceReport}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">费用明细:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="expenseDetails" th:field="*{expenseDetails}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">用户评价内容:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="userEvaluation" th:field="*{userEvaluation}" class="form-control" type="text"> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">单据日期:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="input-group date"> |
|||
<input name="documentDate" th:field="*{documentDate}" class="form-control" placeholder="yyyy-MM-dd" type="text"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
<th:block th:include="include :: footer" /> |
|||
<th:block th:include="include :: datetimepicker-js" /> |
|||
<script th:inline="javascript"> |
|||
var prefix = ctx + "sales/serviceWorkOrderDetail"; |
|||
$("#form-serviceWorkOrderDetail-edit").validate({ |
|||
focusCleanup: true |
|||
}); |
|||
|
|||
function submitHandler() { |
|||
if ($.validate.form()) { |
|||
$.operate.save(prefix + "/edit", $('#form-serviceWorkOrderDetail-edit').serialize()); |
|||
} |
|||
} |
|||
|
|||
$("input[name='deliveryDate']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
|
|||
$("input[name='documentDate']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
</script> |
|||
</body> |
|||
</html> |
@ -1,380 +0,0 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> |
|||
<head> |
|||
<th:block th:include="include :: header('服务工单详细')" /> |
|||
<th:block th:include="include :: datetimepicker-css"/> |
|||
<script type="text/javascript" th:src="@{/js/axios.min.js}"></script> |
|||
<style> |
|||
.a{ |
|||
background-color: #009ED6; |
|||
color: #FFFFFF; |
|||
padding: 5px; |
|||
border-radius:5px; |
|||
} |
|||
input[type="radio"] { |
|||
display: none; |
|||
} |
|||
input[type="radio"]+label { |
|||
padding: 0.2em 1em; |
|||
color: #656464; |
|||
} |
|||
input[type="radio"]:checked+label { |
|||
padding: 0.2em 1em; |
|||
color: #009ED6; |
|||
} |
|||
.body{ |
|||
background-color: #F2F2F2; |
|||
} |
|||
.all{ |
|||
margin: 2% 3%; |
|||
} |
|||
#bootstrap-table>tfoot>tr>th { |
|||
border: 0px solid #ddd; |
|||
font-weight: 400; |
|||
font-size: 13px; |
|||
background-color: #FFFFFF; |
|||
} |
|||
#bootstrap-table>tbody>tr>td{ |
|||
background-color: #FFFFFF; |
|||
} |
|||
.div11{ |
|||
display: inline-block; |
|||
color: #848484; |
|||
font-size: 18px; |
|||
font-weight: bold; |
|||
margin: 10px 0; |
|||
} |
|||
.div12{ |
|||
margin: 15px 0; |
|||
display: inline-block; |
|||
float: right; |
|||
} |
|||
.div2>div{ |
|||
width: auto; |
|||
display: inline-block; |
|||
background-color: #FFFFFF; |
|||
color: #848484; |
|||
font-size: 14px; |
|||
font-weight: bold; |
|||
padding: 10px 20px; |
|||
} |
|||
.div3{ |
|||
background-color: #FFFFFF; |
|||
padding-top: 5px; |
|||
} |
|||
.div3>div{ |
|||
padding: 5px 20px; |
|||
} |
|||
.div4{ |
|||
background-color: #FFFFFF; |
|||
padding-bottom: 10px; |
|||
} |
|||
.div4>div{ |
|||
display: inline-block; |
|||
padding-left: 20px; |
|||
} |
|||
.div4>div>select{ |
|||
min-width: 80px; |
|||
margin-left: 10px; |
|||
} |
|||
.div5{ |
|||
padding-top: 5px; |
|||
} |
|||
.list{ |
|||
background-color: #F2F2F2; |
|||
border: 2px; |
|||
} |
|||
</style> |
|||
</head> |
|||
<body class="gray-bg body"> |
|||
<div class="all"> |
|||
<div class="div1"> |
|||
<div class="div11">服务工单详细</div> |
|||
<div class="div12"> |
|||
<a class="a" onclick="$.operate.add()" shiro:hasPermission="sales:serviceWorkOrderDetail:add">+ |
|||
新增服务工单</a> |
|||
</div> |
|||
</div> |
|||
<!-- <div class="div2">--> |
|||
<!-- <div class="">服务工单详细</div>--> |
|||
<!-- <!– <div>销售出库</div>–>--> |
|||
<!-- <!– <div>销售退货</div>–>--> |
|||
<!-- </div>--> |
|||
<form id="formId"> |
|||
<div class="div3"> |
|||
<div class="row"> |
|||
<div class="col-sm-12"> |
|||
<div class="row"> |
|||
<label class="col-sm-5 control-label" style="width: 460px"> |
|||
单据日期: |
|||
<input type="radio" name="documentDateValue" id="documentDate_1" value="" checked><label for="documentDate_1">全部</label> |
|||
<input type="radio" name="documentDateValue" id="documentDate_2" value="今天"><label for="documentDate_2">今天</label> |
|||
<input type="radio" name="documentDateValue" id="documentDate_3" value="昨天"><label for="documentDate_3">昨天</label> |
|||
<input type="radio" name="documentDateValue" id="documentDate_4" value="本周"><label for="documentDate_4">本周</label> |
|||
<input type="radio" name="documentDateValue" id="documentDate_5" value="上周"><label for="documentDate_5">上周</label> |
|||
<input type="radio" name="documentDateValue" id="documentDate_6" value="自定义"><label for="documentDate_6">自定义</label> |
|||
</label> |
|||
<div class="col-sm-7" style="display: none" id="documentDateInput"> |
|||
<div style="width: 200px;display: inline-block"> |
|||
<div class="input-group date"> |
|||
<input id="beginDocumentDate" name="params[beginDocumentDate]" class="form-control" placeholder="开始时间:" type="text"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
</div> |
|||
</div> |
|||
<div style="display: inline-block; width: 10px"></div> |
|||
<div style="width: 200px;display: inline-block"> |
|||
<div class="input-group date"> |
|||
<input id="endDocumentDate" name="params[endDocumentDate]" class="form-control" placeholder="结束时间:" type="text"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<label class="col-sm-12 control-label"> |
|||
进度状态: |
|||
<input type="radio" name="schedule" id="schedule_1" value="" checked><label for="schedule_1">全部</label> |
|||
<input type="radio" name="schedule" id="schedule_2" value="正在维修"><label for="schedule_2">正在维修</label> |
|||
<input type="radio" name="schedule" id="schedule_3" value="维修完成"><label for="schedule_3">维修完成</label> |
|||
</label> |
|||
<label class="col-sm-12 control-label"> |
|||
出库状态: |
|||
<input type="radio" name="outboundStatus" id="outboundStatus_1" value="" checked><label for="outboundStatus_1">全部</label> |
|||
<input type="radio" name="outboundStatus" id="outboundStatus_2" value="未出库"><label for="outboundStatus_2">未出库</label> |
|||
<!-- <input type="radio" name="outboundStatus" id="outboundStatus_3" value="部分出库"><label for="outboundStatus_3">部分出库</label>--> |
|||
<!-- <input type="radio" name="outboundStatus" id="outboundStatus_4" value="完全出库"><label for="outboundStatus_4">完全出库</label>--> |
|||
<input type="radio" name="outboundStatus" id="outboundStatus_4" value="已出库"><label for="outboundStatus_4">已出库</label> |
|||
<input id="deliveryTime" name="deliveryTime" type="text"style="display: none"> |
|||
<input id="deliveryTime1" name="params[deliveryTime1]" type="text"style="display: none"> |
|||
<input id="deliveryTime2" name="params[deliveryTime2]" type="text"style="display: none"> |
|||
</label> |
|||
<label class="col-sm-12 control-label"> |
|||
是否在保: |
|||
<input type="radio" name="isMaintenance" id="isMaintenance_1" value="" checked><label for="isMaintenance_1">全部</label> |
|||
<input type="radio" name="isMaintenance" id="isMaintenance_2" value="是"><label for="isMaintenance_2">是</label> |
|||
<input type="radio" name="isMaintenance" id="isMaintenance_3" value="否"><label for="isMaintenance_3">否</label> |
|||
</label> |
|||
<label class="col-sm-12 control-label"> |
|||
在保服务类型: |
|||
<input type="radio" name="serviceType" id="serviceType_1" value="" checked><label for="serviceType_1">全部</label> |
|||
<input type="radio" name="serviceType" id="serviceType_2" value="类型1"><label for="serviceType_2">类型1</label> |
|||
<input type="radio" name="serviceType" id="serviceType_3" value="类型2"><label for="serviceType_3">类型2</label> |
|||
<input type="radio" name="serviceType" id="serviceType_4" value="类型3"><label for="serviceType_4">类型3</label> |
|||
</label> |
|||
</div> |
|||
</div> |
|||
<div class="div5"> |
|||
<div style="float: right"> |
|||
<!-- <select>--> |
|||
<!-- <option>产品名称</option>--> |
|||
<!-- </select>--> |
|||
<!-- <input type="text" placeholder="请输入关键词" name="username"/>--> |
|||
<a class="a" href="#" type="button" onclick="searchValue()">搜索</a> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
<div class="div6"> |
|||
<div class="col-sm-12 select-table table-striped list"> |
|||
<table id="bootstrap-table" style="white-space: nowrap;"></table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<th:block th:include="include :: footer" /> |
|||
<th:block th:include="include :: datetimepicker-js"/> |
|||
<script src="https://cdn.bootcdn.net/ajax/libs/moment.js/2.29.1/moment.min.js"></script> |
|||
<script th:inline="javascript"> |
|||
var editFlag = [[${@permission.hasPermi('sales:serviceWorkOrderDetail:edit')}]]; |
|||
var removeFlag = [[${@permission.hasPermi('sales:serviceWorkOrderDetail:remove')}]]; |
|||
var isMaintenanceDatas = [[${@dict.getType('is_maintenance')}]]; |
|||
var serviceTypeDatas = [[${@dict.getType('service_type')}]]; |
|||
var scheduleDatas = [[${@dict.getType('schedule')}]]; |
|||
var prefix = ctx + "sales/serviceWorkOrderDetail"; |
|||
|
|||
$(function() { |
|||
var options = { |
|||
modalName: "服务工单详细", |
|||
url: prefix + "/list", |
|||
createUrl: prefix + "/add", |
|||
updateUrl: prefix + "/edit/{id}", |
|||
removeUrl: prefix + "/remove", |
|||
exportUrl: prefix + "/export", |
|||
clickToSelect: true, |
|||
showRefresh:false, |
|||
showToggle:false, |
|||
showSearch:false, |
|||
showColumns:false, |
|||
columns: [ |
|||
{ |
|||
field: 'serviceWorkOrderDetailId', |
|||
title: '', |
|||
visible: false |
|||
}, |
|||
{ |
|||
field: 'serviceWorkOrderDetailNumber', |
|||
title: '服务工单单号' |
|||
}, |
|||
{ |
|||
field: 'customerName', |
|||
title: '客户名称' |
|||
}, |
|||
{ |
|||
field: 'equipmentNumber', |
|||
title: '设备编号' |
|||
}, |
|||
{ |
|||
field: 'serialNumber', |
|||
title: '序列号' |
|||
}, |
|||
{ |
|||
field: 'deliveryDate', |
|||
title: '出库日期' |
|||
}, |
|||
{ |
|||
field: 'isMaintenance', |
|||
title: '是否在保', |
|||
formatter: function(value, row, index) { |
|||
return $.table.selectDictLabel(isMaintenanceDatas, value); |
|||
} |
|||
}, |
|||
{ |
|||
field: 'serviceType', |
|||
title: '在保服务类型', |
|||
formatter: function(value, row, index) { |
|||
return $.table.selectDictLabel(serviceTypeDatas, value); |
|||
} |
|||
}, |
|||
{ |
|||
field: 'schedule', |
|||
title: '进度', |
|||
formatter: function(value, row, index) { |
|||
return $.table.selectDictLabel(scheduleDatas, value); |
|||
} |
|||
}, |
|||
{ |
|||
field: 'maintenanceReport', |
|||
title: '维修报告' |
|||
}, |
|||
{ |
|||
field: 'expenseDetails', |
|||
title: '费用明细' |
|||
}, |
|||
{ |
|||
field: 'userEvaluation', |
|||
title: '用户评价内容' |
|||
}, |
|||
{ |
|||
field: 'documentDate', |
|||
title: '单据日期' |
|||
}, |
|||
{ |
|||
title: '操作', |
|||
align: 'center', |
|||
formatter: function(value, row, index) { |
|||
var actions = []; |
|||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.serviceWorkOrderDetailId + '\')"><i class="fa fa-edit"></i>编辑</a> '); |
|||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.serviceWorkOrderDetailId + '\')"><i class="fa fa-remove"></i>删除</a>'); |
|||
return actions.join(''); |
|||
} |
|||
} |
|||
], |
|||
onPostBody: function () { |
|||
|
|||
} |
|||
// { |
|||
// title: '操作', |
|||
// align: 'center', |
|||
// formatter: function(value, row, index) { |
|||
// var actions = []; |
|||
// actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.salesFinishId + '\')"><i class="fa fa-edit"></i>编辑</a> '); |
|||
// actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.salesFinishId + '\')"><i class="fa fa-remove"></i>删除</a>'); |
|||
// return actions.join(''); |
|||
// } |
|||
// }] |
|||
}; |
|||
$.table.init(options); |
|||
}); |
|||
|
|||
$("#beginDocumentDate").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
|
|||
$("#endDocumentDate").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
|
|||
//自定义 |
|||
$("input[name=documentDateValue]").change(function () { |
|||
var documentDate = $(this).val(); |
|||
if (documentDate == "自定义") { |
|||
$("#documentDateInput").css("display", "block"); |
|||
} else { |
|||
$("#documentDateInput").css("display", "none"); |
|||
$("#beginDocumentDate").val(""); |
|||
$("#endDocumentDate").val(""); |
|||
} |
|||
}); |
|||
|
|||
|
|||
function searchValue(){ |
|||
var documentDate = $("input[name=documentDateValue]:checked").val(); |
|||
var outboundStatus = $("input[name=outboundStatus]:checked").val(); |
|||
searchDocumentDate(documentDate); |
|||
searchDeliveryTime(outboundStatus); |
|||
$.table.search(); |
|||
refreshAll(documentDate); |
|||
} |
|||
|
|||
function searchDocumentDate(documentDate){ |
|||
var today=new Date(); |
|||
var date =""; |
|||
var startDate=""; |
|||
var endDate=""; |
|||
var oneday = 1000 * 60 * 60 * 24; |
|||
if(documentDate=="今天"){ |
|||
date = moment(today).format('YYYY-MM-DD'); |
|||
$("#beginDocumentDate").val(date); |
|||
$("#endDocumentDate").val(date); |
|||
}else if(documentDate=="昨天"){ |
|||
date = moment(new Date(today-oneday)).format('YYYY-MM-DD'); |
|||
$("#beginDocumentDate").val(date); |
|||
$("#endDocumentDate").val(date); |
|||
}else if(documentDate=="本周"){ |
|||
var weekDay = -1+today.getDay()||7; |
|||
startDate = moment(today-oneday*weekDay).format('YYYY-MM-DD'); |
|||
endDate = moment(today-oneday*weekDay+oneday*7).format('YYYY-MM-DD'); |
|||
$("#beginDocumentDate").val(startDate); |
|||
$("#endDocumentDate").val(endDate); |
|||
}else if(documentDate=="上周"){ |
|||
var weekDay = 6+today.getDay()||7; |
|||
startDate = moment(today-oneday*weekDay).format('YYYY-MM-DD'); |
|||
endDate = moment(today-oneday*weekDay+oneday*7).format('YYYY-MM-DD'); |
|||
$("#beginDocumentDate").val(startDate); |
|||
$("#endDocumentDate").val(endDate); |
|||
} |
|||
} |
|||
|
|||
function searchDeliveryTime(outboundStatus){ |
|||
var today=new Date(); |
|||
var date = moment(today).format('YYYY-MM-DD'); |
|||
if(outboundStatus=="未出库"){ |
|||
$("#deliveryTime1").val(date); |
|||
}else if (outboundStatus=="已出库"){ |
|||
$("#deliveryTime2").val(date); |
|||
} |
|||
} |
|||
function refreshAll(documentDate){ |
|||
if(documentDate!="自定义"){ |
|||
$("#beginDocumentDate").val(""); |
|||
$("#endDocumentDate").val(""); |
|||
} |
|||
$("#deliveryTime1").val(""); |
|||
$("#deliveryTime2").val(""); |
|||
} |
|||
</script> |
|||
</body> |
|||
</html> |
Loading…
Reference in new issue