Browse Source

[feat]售后管理:

出货设备列表
新增生产信息dto类
新增仓库和售后信息dto类
新增出货设备dto类
新增出货设备编辑dto类
新增出货设备编辑页面
dev
liuxiaoxu 10 months ago
parent
commit
311e6a7e04
  1. 38
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AfterSalesShippingDeviceController.java
  2. 96
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AfterSalesShippingDevice.java
  3. 20
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesMakeOrderDto.java
  4. 44
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesShippingDeviceDto.java
  5. 101
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesShippingDeviceEditDto.java
  6. 25
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/CustomerDto.java
  7. 40
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/WarehouseAndAfterSalesDto.java
  8. 33
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAfterSalesShippingDeviceService.java
  9. 87
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AfterSalesShippingDeviceServiceImpl.java
  10. 3
      ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysCustomerService.java
  11. 15
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerServiceImpl.java
  12. 5
      ruoyi-admin/src/main/resources/mapper/aftersales/AfterSalesShippingDeviceMapper.xml
  13. 125
      ruoyi-admin/src/main/resources/templates/aftersales/shippingDevice/edit.html
  14. 6
      ruoyi-admin/src/main/resources/templates/aftersales/shippingDevice/shippingDevice.html

38
ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AfterSalesShippingDeviceController.java

@ -2,18 +2,16 @@ package com.ruoyi.aftersales.controller;
import java.util.List; import java.util.List;
import com.ruoyi.aftersales.domain.dto.*;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.SysCustomer; import com.ruoyi.system.domain.SysCustomer;
import com.ruoyi.system.domain.SysOutGood;
import com.ruoyi.system.service.ISysCustomerService; import com.ruoyi.system.service.ISysCustomerService;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
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.annotation.Log;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.aftersales.domain.AfterSalesShippingDevice; import com.ruoyi.aftersales.domain.AfterSalesShippingDevice;
@ -102,17 +100,24 @@ public class AfterSalesShippingDeviceController extends BaseController
@GetMapping("/edit/{shippingDeviceCode}") @GetMapping("/edit/{shippingDeviceCode}")
public String edit(@PathVariable("shippingDeviceCode") Long shippingDeviceCode, ModelMap mmap) public String edit(@PathVariable("shippingDeviceCode") Long shippingDeviceCode, ModelMap mmap)
{ {
AfterSalesShippingDevice afterSalesShippingDevice = afterSalesShippingDeviceService.selectAfterSalesShippingDeviceById(shippingDeviceCode); AfterSalesShippingDeviceDto afterSalesShippingDeviceDto = afterSalesShippingDeviceService.selectAfterSalesShippingDeviceDtoById(shippingDeviceCode);
//查找客户信息 //查找客户信息
String customerId = afterSalesShippingDevice.getCustomerId(); String customerId = afterSalesShippingDeviceDto.getCustomerId();
SysCustomer sysCustomer = customerService.selectSysCustomerByEnterpriseCode(customerId); CustomerDto customerDto = customerService.selectCustomerDtoByEnterpriseCode(customerId);
if (StringUtils.isNotNull(sysCustomer)){ if (StringUtils.isNotNull(customerDto)){
mmap.put("sysCustomer",sysCustomer); mmap.put("customerDto",customerDto);
} }
//查找生产信息 后续补充 //查找生产信息
//查找仓库信息 后续补充 AfterSalesMakeOrderDto makeOrderDto = afterSalesShippingDeviceService.selectAfterSalesMakeOrderDtoById(shippingDeviceCode);
//查找售后信息 后续补充 if (StringUtils.isNotNull(makeOrderDto)){
mmap.put("afterSalesShippingDevice", afterSalesShippingDevice); mmap.put("makeOrderDto",makeOrderDto);
}
//查找仓库和售后信息 后续补充
WarehouseAndAfterSalesDto warehouseAndAfterSalesDto = afterSalesShippingDeviceService.selectWarehouseAndAfterSalesDtoById(shippingDeviceCode);
if (StringUtils.isNotNull(warehouseAndAfterSalesDto)){
mmap.put("warehouseAndAfterSalesDto",warehouseAndAfterSalesDto);
}
mmap.put("afterSalesShippingDeviceDto", afterSalesShippingDeviceDto);
// mmap.put("sysCustomer",sysCustomer); // mmap.put("sysCustomer",sysCustomer);
return prefix + "/edit"; return prefix + "/edit";
} }
@ -124,9 +129,10 @@ public class AfterSalesShippingDeviceController extends BaseController
@Log(title = "出货设备", businessType = BusinessType.UPDATE) @Log(title = "出货设备", businessType = BusinessType.UPDATE)
@PostMapping("/edit") @PostMapping("/edit")
@ResponseBody @ResponseBody
public AjaxResult editSave(AfterSalesShippingDevice afterSalesShippingDevice) public AjaxResult editSave(@RequestBody AfterSalesShippingDeviceEditDto dto)
{ {
return toAjax(afterSalesShippingDeviceService.updateAfterSalesShippingDevice(afterSalesShippingDevice));
return toAjax(afterSalesShippingDeviceService.updateAfterSalesShippingDevice(dto));
} }
/** /**

96
ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AfterSalesShippingDevice.java

@ -2,6 +2,7 @@ package com.ruoyi.aftersales.domain;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.domain.SysCustomer;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel;
@ -87,7 +88,7 @@ public class AfterSalesShippingDevice extends BaseEntity
/** 出厂日期 */ /** 出厂日期 */
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "出厂日期", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "出厂日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date factoryDate; private String factoryDate;
/** 保修期 */ /** 保修期 */
@Excel(name = "保修期") @Excel(name = "保修期")
@ -100,7 +101,7 @@ public class AfterSalesShippingDevice extends BaseEntity
/** 锁机时间 */ /** 锁机时间 */
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "锁机时间", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "锁机时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date lockDate; private String lockDate;
/** 是否有锁机时间 */ /** 是否有锁机时间 */
@Excel(name = "是否有锁机时间") @Excel(name = "是否有锁机时间")
@ -109,7 +110,7 @@ public class AfterSalesShippingDevice extends BaseEntity
/** 损耗品到期时间 */ /** 损耗品到期时间 */
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "损耗品到期时间", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "损耗品到期时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date wastageExpireDate; private String wastageExpireDate;
/** 是否过损耗品到期时间 */ /** 是否过损耗品到期时间 */
@Excel(name = "是否过损耗品到期时间") @Excel(name = "是否过损耗品到期时间")
@ -118,7 +119,7 @@ public class AfterSalesShippingDevice extends BaseEntity
/** 二次维修后部件质保时间 */ /** 二次维修后部件质保时间 */
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "二次维修后部件质保时间", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "二次维修后部件质保时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date componentGuaranteeDate; private String componentGuaranteeDate;
/** 是否过二次维修后部件质保日期 */ /** 是否过二次维修后部件质保日期 */
@Excel(name = "是否过二次维修后部件质保日期") @Excel(name = "是否过二次维修后部件质保日期")
@ -132,6 +133,10 @@ public class AfterSalesShippingDevice extends BaseEntity
@Excel(name = "业务员姓名") @Excel(name = "业务员姓名")
private String salesmanName; private String salesmanName;
/** 生产员姓名 */
@Excel(name = "生产员姓名")
private String makeName;
/** 客户ID */ /** 客户ID */
@Excel(name = "客户ID") @Excel(name = "客户ID")
private String customerId; private String customerId;
@ -149,6 +154,7 @@ public class AfterSalesShippingDevice extends BaseEntity
@Excel(name = "维修时间", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "维修时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date maintainTime; private Date maintainTime;
public void setShippingDeviceCode(Long shippingDeviceCode) public void setShippingDeviceCode(Long shippingDeviceCode)
{ {
this.shippingDeviceCode = shippingDeviceCode; this.shippingDeviceCode = shippingDeviceCode;
@ -302,15 +308,7 @@ public class AfterSalesShippingDevice extends BaseEntity
{ {
return aftersalesPhotourl; return aftersalesPhotourl;
} }
public void setFactoryDate(Date factoryDate)
{
this.factoryDate = factoryDate;
}
public Date getFactoryDate()
{
return factoryDate;
}
public void setGuaranteePeriod(String guaranteePeriod) public void setGuaranteePeriod(String guaranteePeriod)
{ {
this.guaranteePeriod = guaranteePeriod; this.guaranteePeriod = guaranteePeriod;
@ -329,15 +327,7 @@ public class AfterSalesShippingDevice extends BaseEntity
{ {
return guaranteePeriodFlag; return guaranteePeriodFlag;
} }
public void setLockDate(Date lockDate)
{
this.lockDate = lockDate;
}
public Date getLockDate()
{
return lockDate;
}
public void setLockDateFlag(String lockDateFlag) public void setLockDateFlag(String lockDateFlag)
{ {
this.lockDateFlag = lockDateFlag; this.lockDateFlag = lockDateFlag;
@ -347,15 +337,7 @@ public class AfterSalesShippingDevice extends BaseEntity
{ {
return lockDateFlag; return lockDateFlag;
} }
public void setWastageExpireDate(Date wastageExpireDate)
{
this.wastageExpireDate = wastageExpireDate;
}
public Date getWastageExpireDate()
{
return wastageExpireDate;
}
public void setWastageExpireFlag(String wastageExpireFlag) public void setWastageExpireFlag(String wastageExpireFlag)
{ {
this.wastageExpireFlag = wastageExpireFlag; this.wastageExpireFlag = wastageExpireFlag;
@ -365,15 +347,7 @@ public class AfterSalesShippingDevice extends BaseEntity
{ {
return wastageExpireFlag; return wastageExpireFlag;
} }
public void setComponentGuaranteeDate(Date componentGuaranteeDate)
{
this.componentGuaranteeDate = componentGuaranteeDate;
}
public Date getComponentGuaranteeDate()
{
return componentGuaranteeDate;
}
public void setComponentGuaranteeFlag(String componentGuaranteeFlag) public void setComponentGuaranteeFlag(String componentGuaranteeFlag)
{ {
this.componentGuaranteeFlag = componentGuaranteeFlag; this.componentGuaranteeFlag = componentGuaranteeFlag;
@ -406,6 +380,14 @@ public class AfterSalesShippingDevice extends BaseEntity
this.customerId = customerId; this.customerId = customerId;
} }
public String getMakeName() {
return makeName;
}
public void setMakeName(String makeName) {
this.makeName = makeName;
}
public String getCustomerId() public String getCustomerId()
{ {
return customerId; return customerId;
@ -428,16 +410,47 @@ public class AfterSalesShippingDevice extends BaseEntity
{ {
return maintainOrderCode; return maintainOrderCode;
} }
public void setMaintainTime(Date maintainTime)
{ public String getFactoryDate() {
this.maintainTime = maintainTime; return factoryDate;
} }
public Date getMaintainTime() public void setFactoryDate(String factoryDate) {
{ this.factoryDate = factoryDate;
}
public String getLockDate() {
return lockDate;
}
public void setLockDate(String lockDate) {
this.lockDate = lockDate;
}
public String getWastageExpireDate() {
return wastageExpireDate;
}
public void setWastageExpireDate(String wastageExpireDate) {
this.wastageExpireDate = wastageExpireDate;
}
public String getComponentGuaranteeDate() {
return componentGuaranteeDate;
}
public void setComponentGuaranteeDate(String componentGuaranteeDate) {
this.componentGuaranteeDate = componentGuaranteeDate;
}
public Date getMaintainTime() {
return maintainTime; return maintainTime;
} }
public void setMaintainTime(Date maintainTime) {
this.maintainTime = maintainTime;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -469,6 +482,7 @@ public class AfterSalesShippingDevice extends BaseEntity
.append("componentGuaranteeFlag", getComponentGuaranteeFlag()) .append("componentGuaranteeFlag", getComponentGuaranteeFlag())
.append("engineerName", getEngineerName()) .append("engineerName", getEngineerName())
.append("salesmanName", getSalesmanName()) .append("salesmanName", getSalesmanName())
.append("makeName",getMakeName())
.append("customerId", getCustomerId()) .append("customerId", getCustomerId())
.append("customerName", getCustomerName()) .append("customerName", getCustomerName())
.append("maintainOrderCode", getMaintainOrderCode()) .append("maintainOrderCode", getMaintainOrderCode())

20
ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesMakeOrderDto.java

@ -0,0 +1,20 @@
package com.ruoyi.aftersales.domain.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class AfterSalesMakeOrderDto {
@JsonProperty("deviceModelCode")
private String deviceModelCode;
@JsonProperty("deviceRunningNumber")
private String deviceRunningNumber;
@JsonProperty("makePhotoUrl")
private String makePhotoUrl;
@JsonProperty("makeName")
private String makeName;
}

44
ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesShippingDeviceDto.java

@ -0,0 +1,44 @@
package com.ruoyi.aftersales.domain.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class AfterSalesShippingDeviceDto {
@JsonProperty("shippingDeviceCode")
private Long shippingDeviceCode;
@JsonProperty("shippingDeviceId")
private String shippingDeviceId;
@JsonProperty("makeNo")
private String makeNo;
@JsonProperty("materialNo")
private String materialNo;
@JsonProperty("materialPhotourl")
private String materialPhotourl;
@JsonProperty("materialName")
private String materialName;
@JsonProperty("materialType")
private String materialType;
@JsonProperty("materialClass")
private String materialClass;
@JsonProperty("materialUnit")
private String materialUnit;
@JsonProperty("materialBrand")
private String materialBrand;
@JsonProperty("materialDescribe")
private String materialDescribe;
@JsonProperty("customerId")
private String customerId;
}

101
ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesShippingDeviceEditDto.java

@ -0,0 +1,101 @@
package com.ruoyi.aftersales.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.Date;
@Data
public class AfterSalesShippingDeviceEditDto {
@JsonProperty("shippingDeviceCode")
private Long shippingDeviceCode;
@JsonProperty("shippingDeviceId")
private String shippingDeviceId;
@JsonProperty("materialPhotourl")
private String materialPhotourl;
@JsonProperty("materialName")
private String materialName;
@JsonProperty("materialType")
private String materialType;
@JsonProperty("materialClass")
private String materialClass;
@JsonProperty("materialUnit")
private String materialUnit;
@JsonProperty("materialBrand")
private String materialBrand;
@JsonProperty("materialDescribe")
private String materialDescribe;
/*客户*/
@JsonProperty("enterpriseCode")
private String enterpriseCode;
@JsonProperty("enterpriseName")
private String enterpriseName;
@JsonProperty("customerContact")
private String customerContact;
@JsonProperty("contactNumber")
private String contactNumber;
@JsonProperty("customerAddress")
private String customerAddress;
@JsonProperty("deliveryAddress")
private String deliveryAddress;
/*生产信息*/
@JsonProperty("deviceModelCode")
private String deviceModelCode;
@JsonProperty("deviceRunningNumber")
private String deviceRunningNumber;
@JsonProperty("makePhotoUrl")
private String makePhotoUrl;
@JsonProperty("makeName")
private String makeName;
@JsonProperty("makeNo")
private String makeNo;
@JsonProperty("snCode")
private String snCode;
@JsonProperty("aftersalesPhotourl")
private String aftersalesPhotourl;
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonProperty("factoryDate")
private String factoryDate;
@JsonProperty("guaranteePeriod")
private String guaranteePeriod;
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonProperty("lockDate")
private String lockDate;
@JsonProperty("lockDateFlag")
private String lockDateFlag;
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonProperty("wastageExpireDate")
private String wastageExpireDate;
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonProperty("componentGuaranteeDate")
private String componentGuaranteeDate;
}

25
ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/CustomerDto.java

@ -0,0 +1,25 @@
package com.ruoyi.aftersales.domain.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class CustomerDto {
@JsonProperty("enterpriseCode")
private String enterpriseCode;
@JsonProperty("enterpriseName")
private String enterpriseName;
@JsonProperty("customerContact")
private String customerContact;
@JsonProperty("contactNumber")
private String contactNumber;
@JsonProperty("customerAddress")
private String customerAddress;
@JsonProperty("deliveryAddress")
private String deliveryAddress;
}

40
ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/WarehouseAndAfterSalesDto.java

@ -0,0 +1,40 @@
package com.ruoyi.aftersales.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.Date;
@Data
public class WarehouseAndAfterSalesDto {
@JsonProperty("snCode")
private String snCode;
@JsonProperty("aftersalesPhotourl")
private String aftersalesPhotourl;
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonProperty("factoryDate")
private String factoryDate;
@JsonProperty("guaranteePeriod")
private String guaranteePeriod;
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonProperty("lockDate")
private String lockDate;
@JsonProperty("lockDateFlag")
private String lockDateFlag;
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonProperty("wastageExpireDate")
private String wastageExpireDate;
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonProperty("componentGuaranteeDate")
private String componentGuaranteeDate;
}

33
ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAfterSalesShippingDeviceService.java

@ -2,6 +2,10 @@ package com.ruoyi.aftersales.service;
import java.util.List; import java.util.List;
import com.ruoyi.aftersales.domain.AfterSalesShippingDevice; import com.ruoyi.aftersales.domain.AfterSalesShippingDevice;
import com.ruoyi.aftersales.domain.dto.AfterSalesShippingDeviceDto;
import com.ruoyi.aftersales.domain.dto.AfterSalesMakeOrderDto;
import com.ruoyi.aftersales.domain.dto.AfterSalesShippingDeviceEditDto;
import com.ruoyi.aftersales.domain.dto.WarehouseAndAfterSalesDto;
import com.ruoyi.aftersales.domain.vo.SelectDeviceVO; import com.ruoyi.aftersales.domain.vo.SelectDeviceVO;
/** /**
@ -20,6 +24,31 @@ public interface IAfterSalesShippingDeviceService
*/ */
public AfterSalesShippingDevice selectAfterSalesShippingDeviceById(Long shippingDeviceCode); public AfterSalesShippingDevice selectAfterSalesShippingDeviceById(Long shippingDeviceCode);
/**
* 查询出货设备
*
* @param shippingDeviceCode 出货设备ID
* @return 出货设备Dto
*/
public AfterSalesShippingDeviceDto selectAfterSalesShippingDeviceDtoById(Long shippingDeviceCode);
/**
* 查询出货设备
*
* @param shippingDeviceCode 出货设备ID
* @return 出货设备生产Dto
*/
public AfterSalesMakeOrderDto selectAfterSalesMakeOrderDtoById(Long shippingDeviceCode);
/**
* 查询出货设备
*
* @param shippingDeviceCode 出货设备ID
* @return 出货设备仓库和售后Dto
*/
public WarehouseAndAfterSalesDto selectWarehouseAndAfterSalesDtoById(Long shippingDeviceCode);
/** /**
* 查询出货设备列表 * 查询出货设备列表
* *
@ -42,7 +71,9 @@ public interface IAfterSalesShippingDeviceService
* @param afterSalesShippingDevice 出货设备 * @param afterSalesShippingDevice 出货设备
* @return 结果 * @return 结果
*/ */
public int updateAfterSalesShippingDevice(AfterSalesShippingDevice afterSalesShippingDevice); public int updateAfterSalesShippingDevice(AfterSalesShippingDeviceEditDto afterSalesShippingDeviceEditDto);
/** /**
* 批量删除出货设备 * 批量删除出货设备

87
ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AfterSalesShippingDeviceServiceImpl.java

@ -4,6 +4,10 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.ruoyi.aftersales.domain.AftersalesComplaintNotice; import com.ruoyi.aftersales.domain.AftersalesComplaintNotice;
import com.ruoyi.aftersales.domain.dto.AfterSalesMakeOrderDto;
import com.ruoyi.aftersales.domain.dto.AfterSalesShippingDeviceDto;
import com.ruoyi.aftersales.domain.dto.AfterSalesShippingDeviceEditDto;
import com.ruoyi.aftersales.domain.dto.WarehouseAndAfterSalesDto;
import com.ruoyi.aftersales.domain.vo.SelectDeviceVO; import com.ruoyi.aftersales.domain.vo.SelectDeviceVO;
import com.ruoyi.aftersales.mapper.AftersalesComplaintNoticeMapper; import com.ruoyi.aftersales.mapper.AftersalesComplaintNoticeMapper;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
@ -15,6 +19,7 @@ import com.ruoyi.aftersales.mapper.AfterSalesShippingDeviceMapper;
import com.ruoyi.aftersales.domain.AfterSalesShippingDevice; import com.ruoyi.aftersales.domain.AfterSalesShippingDevice;
import com.ruoyi.aftersales.service.IAfterSalesShippingDeviceService; import com.ruoyi.aftersales.service.IAfterSalesShippingDeviceService;
import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.text.Convert;
import org.springframework.transaction.annotation.Transactional;
/** /**
* 出货设备Service业务层处理 * 出货设备Service业务层处理
@ -40,7 +45,67 @@ public class AfterSalesShippingDeviceServiceImpl implements IAfterSalesShippingD
@Override @Override
public AfterSalesShippingDevice selectAfterSalesShippingDeviceById(Long shippingDeviceCode) public AfterSalesShippingDevice selectAfterSalesShippingDeviceById(Long shippingDeviceCode)
{ {
return afterSalesShippingDeviceMapper.selectAfterSalesShippingDeviceById(shippingDeviceCode); AfterSalesShippingDevice afterSalesShippingDevice = afterSalesShippingDeviceMapper.selectAfterSalesShippingDeviceById(shippingDeviceCode);
return afterSalesShippingDevice;
}
/**
* 查询出货设备
*
* @param shippingDeviceCode 出货设备ID
* @return 出货设备Dto
*/
@Override
public AfterSalesShippingDeviceDto selectAfterSalesShippingDeviceDtoById(Long shippingDeviceCode){
AfterSalesShippingDeviceDto shippingDeviceDto = new AfterSalesShippingDeviceDto();
AfterSalesShippingDevice afterSalesShippingDevice = afterSalesShippingDeviceMapper.selectAfterSalesShippingDeviceById(shippingDeviceCode);
if (StringUtils.isNotNull(afterSalesShippingDevice)){
shippingDeviceDto.setShippingDeviceId(afterSalesShippingDevice.getShippingDeviceId());
// afterSalesShippingDeviceDto.setShippingDeviceCode(afterSalesShippingDevice.getShippingDeviceCode());
shippingDeviceDto.setCustomerId(afterSalesShippingDevice.getCustomerId());
shippingDeviceDto.setMaterialNo(afterSalesShippingDevice.getMaterialNo());
shippingDeviceDto.setMaterialClass(afterSalesShippingDevice.getMaterialClass());
shippingDeviceDto.setMaterialType(afterSalesShippingDevice.getMaterialType());
shippingDeviceDto.setMaterialDescribe(afterSalesShippingDevice.getMaterialDescribe());
shippingDeviceDto.setMaterialBrand(afterSalesShippingDevice.getMaterialBrand());
shippingDeviceDto.setMaterialName(afterSalesShippingDevice.getMaterialName());
shippingDeviceDto.setMaterialUnit(afterSalesShippingDevice.getMaterialUnit());
shippingDeviceDto.setMakeNo(afterSalesShippingDevice.getMakeNo());
}
return shippingDeviceDto;
}
@Override
public AfterSalesMakeOrderDto selectAfterSalesMakeOrderDtoById(Long shippingDeviceCode) {
AfterSalesMakeOrderDto makeOrderDto = new AfterSalesMakeOrderDto();
AfterSalesShippingDevice afterSalesShippingDevice = afterSalesShippingDeviceMapper.selectAfterSalesShippingDeviceById(shippingDeviceCode);
if (StringUtils.isNotNull(afterSalesShippingDevice)){
makeOrderDto.setMakeName(afterSalesShippingDevice.getMakeName());
makeOrderDto.setMakePhotoUrl(afterSalesShippingDevice.getMakePhotourl());
makeOrderDto.setDeviceModelCode(afterSalesShippingDevice.getDeviceModelCode());
makeOrderDto.setDeviceRunningNumber(afterSalesShippingDevice.getDeviceRunningNumber());
}
return makeOrderDto;
}
@Override
public WarehouseAndAfterSalesDto selectWarehouseAndAfterSalesDtoById(Long shippingDeviceCode) {
WarehouseAndAfterSalesDto warehouseAndAfterSalesDto = new WarehouseAndAfterSalesDto();
AfterSalesShippingDevice afterSalesShippingDevice = afterSalesShippingDeviceMapper.selectAfterSalesShippingDeviceById(shippingDeviceCode);
if (StringUtils.isNotNull(afterSalesShippingDevice)){
warehouseAndAfterSalesDto.setFactoryDate(afterSalesShippingDevice.getFactoryDate());
warehouseAndAfterSalesDto.setLockDate(afterSalesShippingDevice.getLockDate());
warehouseAndAfterSalesDto.setAftersalesPhotourl(afterSalesShippingDevice.getAftersalesPhotourl());
warehouseAndAfterSalesDto.setGuaranteePeriod(afterSalesShippingDevice.getGuaranteePeriod());
warehouseAndAfterSalesDto.setLockDateFlag(afterSalesShippingDevice.getLockDateFlag());
warehouseAndAfterSalesDto.setComponentGuaranteeDate(afterSalesShippingDevice.getComponentGuaranteeDate());
warehouseAndAfterSalesDto.setWastageExpireDate(afterSalesShippingDevice.getWastageExpireDate());
warehouseAndAfterSalesDto.setSnCode(afterSalesShippingDevice.getSnCode());
}
return warehouseAndAfterSalesDto;
} }
/** /**
@ -73,15 +138,31 @@ public class AfterSalesShippingDeviceServiceImpl implements IAfterSalesShippingD
/** /**
* 修改出货设备 * 修改出货设备
* *
* @param afterSalesShippingDevice 出货设备 * @param editDto 出货设备
* @return 结果 * @return 结果
*/ */
@Transactional
@Override @Override
public int updateAfterSalesShippingDevice(AfterSalesShippingDevice afterSalesShippingDevice) public int updateAfterSalesShippingDevice(AfterSalesShippingDeviceEditDto editDto)
{ {
AfterSalesShippingDevice afterSalesShippingDevice = new AfterSalesShippingDevice();
String loginName = ShiroUtils.getLoginName(); String loginName = ShiroUtils.getLoginName();
afterSalesShippingDevice.setUpdateBy(loginName); afterSalesShippingDevice.setUpdateBy(loginName);
afterSalesShippingDevice.setUpdateTime(DateUtils.getNowDate()); afterSalesShippingDevice.setUpdateTime(DateUtils.getNowDate());
afterSalesShippingDevice.setShippingDeviceId(editDto.getShippingDeviceId());
afterSalesShippingDevice.setMakeNo(editDto.getMakeNo());
afterSalesShippingDevice.setDeviceModelCode(editDto.getDeviceModelCode());
afterSalesShippingDevice.setDeviceRunningNumber(editDto.getDeviceRunningNumber());
afterSalesShippingDevice.setSnCode(editDto.getSnCode());
afterSalesShippingDevice.setAftersalesPhotourl(editDto.getAftersalesPhotourl());
afterSalesShippingDevice.setFactoryDate(editDto.getFactoryDate());
afterSalesShippingDevice.setComponentGuaranteeDate(editDto.getComponentGuaranteeDate());
afterSalesShippingDevice.setLockDateFlag(editDto.getLockDateFlag());
afterSalesShippingDevice.setLockDate(editDto.getLockDate());
afterSalesShippingDevice.setWastageExpireDate(editDto.getWastageExpireDate());
afterSalesShippingDevice.setGuaranteePeriod(editDto.getGuaranteePeriod());
// afterSalesShippingDevice.setShippingDeviceCode(editDto.getShippingDeviceCode());
return afterSalesShippingDeviceMapper.updateAfterSalesShippingDevice(afterSalesShippingDevice); return afterSalesShippingDeviceMapper.updateAfterSalesShippingDevice(afterSalesShippingDevice);
} }

3
ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysCustomerService.java

@ -1,5 +1,6 @@
package com.ruoyi.system.service; package com.ruoyi.system.service;
import com.ruoyi.aftersales.domain.dto.CustomerDto;
import com.ruoyi.system.domain.SysCustomer; import com.ruoyi.system.domain.SysCustomer;
import com.ruoyi.system.domain.SysCustomerVo; import com.ruoyi.system.domain.SysCustomerVo;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -88,4 +89,6 @@ public interface ISysCustomerService
ProcessInstance updateSysCustomerVo(SysCustomer sysCustomer); ProcessInstance updateSysCustomerVo(SysCustomer sysCustomer);
CustomerDto selectCustomerDtoByEnterpriseCode(String customerId);
} }

15
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerServiceImpl.java

@ -1,6 +1,7 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import com.ruoyi.aftersales.domain.dto.CustomerDto;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.PageDomain; import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableSupport; import com.ruoyi.common.core.page.TableSupport;
@ -235,6 +236,20 @@ public class SysCustomerServiceImpl implements ISysCustomerService
sysCustomerMapper.updateSysCustomer(sysCustomer); sysCustomerMapper.updateSysCustomer(sysCustomer);
return processInstance; return processInstance;
} }
@Override
public CustomerDto selectCustomerDtoByEnterpriseCode(String customerId) {
CustomerDto customerDto = new CustomerDto();
SysCustomer sysCustomer = sysCustomerMapper.selectSysCustomerByEnterpriseCode(customerId);
customerDto.setContactNumber(sysCustomer.getContactNumber());
customerDto.setCustomerAddress(sysCustomer.getCustomerAddress());
customerDto.setEnterpriseCode(sysCustomer.getEnterpriseCode());
customerDto.setEnterpriseName(sysCustomer.getEnterpriseName());
customerDto.setDeliveryAddress(sysCustomer.getDeliveryAddress());
customerDto.setCustomerContact(sysCustomer.getCustomerContact());
return customerDto;
}
@Override @Override
public int deleteSysCustomerByIds(String[] ids) { public int deleteSysCustomerByIds(String[] ids) {
return sysCustomerMapper.deleteSysCustomerByIds(ids); return sysCustomerMapper.deleteSysCustomerByIds(ids);

5
ruoyi-admin/src/main/resources/mapper/aftersales/AfterSalesShippingDeviceMapper.xml

@ -33,6 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="componentGuaranteeFlag" column="component_guarantee_flag" /> <result property="componentGuaranteeFlag" column="component_guarantee_flag" />
<result property="engineerName" column="engineer_name" /> <result property="engineerName" column="engineer_name" />
<result property="salesmanName" column="salesman_name" /> <result property="salesmanName" column="salesman_name" />
<result property="makeName" column="make_name" />
<result property="customerId" column="customer_id" /> <result property="customerId" column="customer_id" />
<result property="customerName" column="customer_name" /> <result property="customerName" column="customer_name" />
<result property="maintainOrderCode" column="maintain_order_code" /> <result property="maintainOrderCode" column="maintain_order_code" />
@ -44,7 +45,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectAfterSalesShippingDeviceVo"> <sql id="selectAfterSalesShippingDeviceVo">
select shipping_device_code, shipping_device_id, make_no, material_no, material_photoUrl, material_name, material_type, material_class, material_model_code, material_unit, material_brand, material_describe, device_model_code, device_running_number, make_photoUrl, sn_code, aftersales_photoUrl, factory_date, guarantee_period, guarantee_period_flag, lock_date, lock_date_flag, wastage_expire_date, wastage_expire_flag, component_guarantee_date, component_guarantee_flag, engineer_name, salesman_name, customer_id, customer_name, maintain_order_code, maintain_time, create_by, create_time, update_by, update_time from aftersales_shipping_device select shipping_device_code, shipping_device_id, make_no, material_no, material_photoUrl, material_name, material_type, material_class, material_model_code, material_unit, material_brand, material_describe, device_model_code, device_running_number, make_photoUrl, sn_code, aftersales_photoUrl, factory_date, guarantee_period, guarantee_period_flag, lock_date, lock_date_flag, wastage_expire_date, wastage_expire_flag, component_guarantee_date, component_guarantee_flag, engineer_name, salesman_name, make_name,customer_id, customer_name, maintain_order_code, maintain_time, create_by, create_time, update_by, update_time from aftersales_shipping_device
</sql> </sql>
<select id="selectAfterSalesShippingDeviceList" parameterType="AfterSalesShippingDevice" resultMap="AfterSalesShippingDeviceResult"> <select id="selectAfterSalesShippingDeviceList" parameterType="AfterSalesShippingDevice" resultMap="AfterSalesShippingDeviceResult">
@ -197,7 +198,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
</trim> </trim>
where shipping_device_code = #{shippingDeviceCode} where shipping_device_id= #{shippingDeviceId}
</update> </update>
<delete id="deleteAfterSalesShippingDeviceById" parameterType="Long"> <delete id="deleteAfterSalesShippingDeviceById" parameterType="Long">

125
ruoyi-admin/src/main/resources/templates/aftersales/shippingDevice/edit.html

@ -6,7 +6,7 @@
</head> </head>
<body class="white-bg"> <body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> <div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-shippingDevice-edit" th:object="${afterSalesShippingDevice}"> <form class="form-horizontal m" id="form-shippingDevice-edit" th:object="${afterSalesShippingDeviceDto}">
<input name="shippingDeviceCode" th:field="*{shippingDeviceCode}" type="hidden"> <input name="shippingDeviceCode" th:field="*{shippingDeviceCode}" type="hidden">
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label is-required">出货设备id:</label> <label class="col-sm-3 control-label is-required">出货设备id:</label>
@ -73,11 +73,11 @@
<div class="mb-4"> <div class="mb-4">
<h4 class="font-weight-bold">客户信息</h4> <h4 class="font-weight-bold">客户信息</h4>
<hr> <hr>
<form class="form-horizontal m" id="form-customer-edit" th:object="${sysCustomer}"> <form class="form-horizontal m" id="form-customer-edit" th:object="${customerDto}">
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">客户ID:</label> <label class="col-sm-3 control-label">客户ID:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="enterpriseCode" th:field="*{enterpriseCode}" class="form-control" type="number" required > <input name="enterpriseCode" th:field="*{enterpriseCode}" class="form-control" type="text" required >
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -111,8 +111,108 @@
</div> </div>
</div> </div>
</form> </form>
</div>
<!--生产信息-->
<div class="mb-4">
<h4 class="font-weight-bold">生产信息</h4>
<hr>
<form class="form-horizontal m" id="form-makeOrderDto-edit" th:object="${makeOrderDto}">
<div class="form-group">
<label class="col-sm-3 control-label">设备型号:</label>
<div class="col-sm-8">
<input name="deviceModelCode" th:field="*{deviceModelCode}" class="form-control" type="number" required >
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">流水号:</label>
<div class="col-sm-8">
<input name="deviceRunningNumber" th:field="*{deviceRunningNumber}" class="form-control" type="number" required>
</div>
</div>
<div class="form-group" >
<label class="col-sm-3 control-label is-required is-required" >图片:</label>
<div class="col-sm-8">
<input name="makePhotoUrl" th:field="*{makePhotoUrl}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">生产员:</label>
<div class="col-sm-8">
<input name="makeName" th:field="*{makeName}" class="form-control" type="text" required>
</div>
</div>
</form>
</div> </div>
<!--仓库和售后信息-->
<div class="mb-4">
<h4 class="font-weight-bold">仓库和售后信息</h4>
<hr>
<form class="form-horizontal m" id="form-warehouseAndAfterSalesDto-edit" th:object="${warehouseAndAfterSalesDto}">
<div class="form-group">
<label class="col-sm-3 control-label">SN号:</label>
<div class="col-sm-8">
<input name="snCode" th:field="*{snCode}" 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="aftersalesPhotourl" th:field="*{aftersalesPhotourl}" 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="factoryDate" th:value="*{factoryDate}" 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">
<input name="guaranteePeriod" th:field="*{guaranteePeriod}" 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="lockDate" th:value="*{lockDate}" 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">
<select name="lockDateFlag" class="form-control m-b" th:with="type=${@dict.getType('lock_date_flag')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{lockDateFlag}"></option>
</select>
</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="wastageExpireDate" th:value="*{wastageExpireDate}" 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="input-group date">
<input name="componentGuaranteeDate" th:value="*{componentGuaranteeDate}" 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>
</div> </div>
<th:block th:include="include :: footer" /> <th:block th:include="include :: footer" />
@ -125,7 +225,24 @@
function submitHandler() { function submitHandler() {
if ($.validate.form()) { if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-shippingDevice-edit').serialize());
// 获取表单数据
const shippingDeviceData = $("#form-shippingDevice-edit").serializeArray();
console.log(shippingDeviceData);
const customerData = $("#form-customer-edit").serializeArray();
const makeOrderData= $("#form-makeOrderDto-edit").serializeArray();
const warehouseAndAfterSalesData= $("#form-warehouseAndAfterSalesDto-edit").serializeArray();
// 合并表单数据为一个 JSON 对象
const combinedData = shippingDeviceData.concat(customerData, makeOrderData,warehouseAndAfterSalesData).reduce((acc, curr) => {
acc[curr.name] = curr.value;
return acc;
}, {});
// 使用 JSON.stringify() 序列化数据
const jsonData = JSON.stringify(combinedData);
// 发送 AJAX 请求到后端接口
$.operate.saveJson(prefix + "/edit", jsonData);
} }
} }

6
ruoyi-admin/src/main/resources/templates/aftersales/shippingDevice/shippingDevice.html

@ -313,12 +313,6 @@
formatter: function(value, row, index) { formatter: function(value, row, index) {
var actions = []; var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.shippingDeviceCode + '\')"><i class="fa fa-edit"></i>编辑</a> '); actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.shippingDeviceCode + '\')"><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.shippingDeviceCode + '\')"><i class="fa fa-remove"></i>删除</a> ');
if(row.delFlag == '0'){
actions.push('<a class="btn btn-danger btn-xs ' + cancelFlag + '" href="javascript:void(0)" onclick="$.operate.cancel(\'' + row.id + '\')"><i class="fa fa-remove"></i>作废</a> ');
}else{
actions.push('<a class="btn btn-success btn-xs ' + restoreFlag + '" href="javascript:void(0)" onclick="$.operate.restore(\'' + row.id + '\')"><i class="fa fa-window-restore"></i>恢复</a> ');
}
return actions.join(''); return actions.join('');
} }
}] }]

Loading…
Cancel
Save