Browse Source

[feat]售后管理:

出货设备列表
新增生产信息dto类
新增仓库和售后信息dto类
新增出货设备dto类
新增出货设备编辑dto类
新增出货设备编辑页面
dev
liuxiaoxu 5 months ago
parent
commit
311e6a7e04
  1. 38
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AfterSalesShippingDeviceController.java
  2. 98
      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. 141
      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 com.ruoyi.aftersales.domain.dto.*;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.SysCustomer;
import com.ruoyi.system.domain.SysOutGood;
import com.ruoyi.system.service.ISysCustomerService;
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 org.springframework.web.bind.annotation.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.aftersales.domain.AfterSalesShippingDevice;
@ -102,17 +100,24 @@ public class AfterSalesShippingDeviceController extends BaseController
@GetMapping("/edit/{shippingDeviceCode}")
public String edit(@PathVariable("shippingDeviceCode") Long shippingDeviceCode, ModelMap mmap)
{
AfterSalesShippingDevice afterSalesShippingDevice = afterSalesShippingDeviceService.selectAfterSalesShippingDeviceById(shippingDeviceCode);
AfterSalesShippingDeviceDto afterSalesShippingDeviceDto = afterSalesShippingDeviceService.selectAfterSalesShippingDeviceDtoById(shippingDeviceCode);
//查找客户信息
String customerId = afterSalesShippingDevice.getCustomerId();
SysCustomer sysCustomer = customerService.selectSysCustomerByEnterpriseCode(customerId);
if (StringUtils.isNotNull(sysCustomer)){
mmap.put("sysCustomer",sysCustomer);
String customerId = afterSalesShippingDeviceDto.getCustomerId();
CustomerDto customerDto = customerService.selectCustomerDtoByEnterpriseCode(customerId);
if (StringUtils.isNotNull(customerDto)){
mmap.put("customerDto",customerDto);
}
//查找生产信息 后续补充
//查找仓库信息 后续补充
//查找售后信息 后续补充
mmap.put("afterSalesShippingDevice", afterSalesShippingDevice);
//查找生产信息
AfterSalesMakeOrderDto makeOrderDto = afterSalesShippingDeviceService.selectAfterSalesMakeOrderDtoById(shippingDeviceCode);
if (StringUtils.isNotNull(makeOrderDto)){
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);
return prefix + "/edit";
}
@ -124,9 +129,10 @@ public class AfterSalesShippingDeviceController extends BaseController
@Log(title = "出货设备", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(AfterSalesShippingDevice afterSalesShippingDevice)
public AjaxResult editSave(@RequestBody AfterSalesShippingDeviceEditDto dto)
{
return toAjax(afterSalesShippingDeviceService.updateAfterSalesShippingDevice(afterSalesShippingDevice));
return toAjax(afterSalesShippingDeviceService.updateAfterSalesShippingDevice(dto));
}
/**

98
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 com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.domain.SysCustomer;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
@ -87,7 +88,7 @@ public class AfterSalesShippingDevice extends BaseEntity
/** 出厂日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "出厂日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date factoryDate;
private String factoryDate;
/** 保修期 */
@Excel(name = "保修期")
@ -100,7 +101,7 @@ public class AfterSalesShippingDevice extends BaseEntity
/** 锁机时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "锁机时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date lockDate;
private String lockDate;
/** 是否有锁机时间 */
@Excel(name = "是否有锁机时间")
@ -109,7 +110,7 @@ public class AfterSalesShippingDevice extends BaseEntity
/** 损耗品到期时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "损耗品到期时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date wastageExpireDate;
private String wastageExpireDate;
/** 是否过损耗品到期时间 */
@Excel(name = "是否过损耗品到期时间")
@ -118,7 +119,7 @@ public class AfterSalesShippingDevice extends BaseEntity
/** 二次维修后部件质保时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "二次维修后部件质保时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date componentGuaranteeDate;
private String componentGuaranteeDate;
/** 是否过二次维修后部件质保日期 */
@Excel(name = "是否过二次维修后部件质保日期")
@ -132,6 +133,10 @@ public class AfterSalesShippingDevice extends BaseEntity
@Excel(name = "业务员姓名")
private String salesmanName;
/** 生产员姓名 */
@Excel(name = "生产员姓名")
private String makeName;
/** 客户ID */
@Excel(name = "客户ID")
private String customerId;
@ -149,6 +154,7 @@ public class AfterSalesShippingDevice extends BaseEntity
@Excel(name = "维修时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date maintainTime;
public void setShippingDeviceCode(Long shippingDeviceCode)
{
this.shippingDeviceCode = shippingDeviceCode;
@ -302,15 +308,7 @@ public class AfterSalesShippingDevice extends BaseEntity
{
return aftersalesPhotourl;
}
public void setFactoryDate(Date factoryDate)
{
this.factoryDate = factoryDate;
}
public Date getFactoryDate()
{
return factoryDate;
}
public void setGuaranteePeriod(String guaranteePeriod)
{
this.guaranteePeriod = guaranteePeriod;
@ -329,15 +327,7 @@ public class AfterSalesShippingDevice extends BaseEntity
{
return guaranteePeriodFlag;
}
public void setLockDate(Date lockDate)
{
this.lockDate = lockDate;
}
public Date getLockDate()
{
return lockDate;
}
public void setLockDateFlag(String lockDateFlag)
{
this.lockDateFlag = lockDateFlag;
@ -347,15 +337,7 @@ public class AfterSalesShippingDevice extends BaseEntity
{
return lockDateFlag;
}
public void setWastageExpireDate(Date wastageExpireDate)
{
this.wastageExpireDate = wastageExpireDate;
}
public Date getWastageExpireDate()
{
return wastageExpireDate;
}
public void setWastageExpireFlag(String wastageExpireFlag)
{
this.wastageExpireFlag = wastageExpireFlag;
@ -365,15 +347,7 @@ public class AfterSalesShippingDevice extends BaseEntity
{
return wastageExpireFlag;
}
public void setComponentGuaranteeDate(Date componentGuaranteeDate)
{
this.componentGuaranteeDate = componentGuaranteeDate;
}
public Date getComponentGuaranteeDate()
{
return componentGuaranteeDate;
}
public void setComponentGuaranteeFlag(String componentGuaranteeFlag)
{
this.componentGuaranteeFlag = componentGuaranteeFlag;
@ -406,7 +380,15 @@ public class AfterSalesShippingDevice extends BaseEntity
this.customerId = customerId;
}
public String getCustomerId()
public String getMakeName() {
return makeName;
}
public void setMakeName(String makeName) {
this.makeName = makeName;
}
public String getCustomerId()
{
return customerId;
}
@ -428,16 +410,47 @@ public class AfterSalesShippingDevice extends BaseEntity
{
return maintainOrderCode;
}
public void setMaintainTime(Date maintainTime)
{
this.maintainTime = maintainTime;
public String getFactoryDate() {
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;
}
public void setMaintainTime(Date maintainTime) {
this.maintainTime = maintainTime;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -469,6 +482,7 @@ public class AfterSalesShippingDevice extends BaseEntity
.append("componentGuaranteeFlag", getComponentGuaranteeFlag())
.append("engineerName", getEngineerName())
.append("salesmanName", getSalesmanName())
.append("makeName",getMakeName())
.append("customerId", getCustomerId())
.append("customerName", getCustomerName())
.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 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;
/**
@ -20,6 +24,31 @@ public interface IAfterSalesShippingDeviceService
*/
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 出货设备
* @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 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.mapper.AftersalesComplaintNoticeMapper;
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.service.IAfterSalesShippingDeviceService;
import com.ruoyi.common.core.text.Convert;
import org.springframework.transaction.annotation.Transactional;
/**
* 出货设备Service业务层处理
@ -40,7 +45,67 @@ public class AfterSalesShippingDeviceServiceImpl implements IAfterSalesShippingD
@Override
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 结果
*/
@Transactional
@Override
public int updateAfterSalesShippingDevice(AfterSalesShippingDevice afterSalesShippingDevice)
public int updateAfterSalesShippingDevice(AfterSalesShippingDeviceEditDto editDto)
{
AfterSalesShippingDevice afterSalesShippingDevice = new AfterSalesShippingDevice();
String loginName = ShiroUtils.getLoginName();
afterSalesShippingDevice.setUpdateBy(loginName);
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);
}

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

@ -1,5 +1,6 @@
package com.ruoyi.system.service;
import com.ruoyi.aftersales.domain.dto.CustomerDto;
import com.ruoyi.system.domain.SysCustomer;
import com.ruoyi.system.domain.SysCustomerVo;
import org.activiti.engine.runtime.ProcessInstance;
@ -88,4 +89,6 @@ public interface ISysCustomerService
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;
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.page.PageDomain;
import com.ruoyi.common.core.page.TableSupport;
@ -235,6 +236,20 @@ public class SysCustomerServiceImpl implements ISysCustomerService
sysCustomerMapper.updateSysCustomer(sysCustomer);
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
public int deleteSysCustomerByIds(String[] 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="engineerName" column="engineer_name" />
<result property="salesmanName" column="salesman_name" />
<result property="makeName" column="make_name" />
<result property="customerId" column="customer_id" />
<result property="customerName" column="customer_name" />
<result property="maintainOrderCode" column="maintain_order_code" />
@ -44,7 +45,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<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>
<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="updateTime != null">update_time = #{updateTime},</if>
</trim>
where shipping_device_code = #{shippingDeviceCode}
where shipping_device_id= #{shippingDeviceId}
</update>
<delete id="deleteAfterSalesShippingDeviceById" parameterType="Long">

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

@ -6,7 +6,7 @@
</head>
<body class="white-bg">
<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">
<div class="form-group">
<label class="col-sm-3 control-label is-required">出货设备id:</label>
@ -14,49 +14,49 @@
<input name="shippingDeviceId" th:field="*{shippingDeviceId}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<div class="form-group">
<label class="col-sm-3 control-label">关联单号:</label>
<div class="col-sm-8">
<input name="makeNo" th:field="*{makeNo}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<div class="form-group">
<label class="col-sm-3 control-label">料号:</label>
<div class="col-sm-8">
<input name="materialNo" th:field="*{materialNo}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<div class="form-group">
<label class="col-sm-3 control-label">图片:</label>
<div class="col-sm-8">
<input name="materialPhotourl" th:field="*{materialPhotourl}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<div class="form-group">
<label class="col-sm-3 control-label">物料名称:</label>
<div class="col-sm-8">
<input name="materialName" th:field="*{materialName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<div class="form-group">
<label class="col-sm-3 control-label">物料类型:</label>
<div class="col-sm-8">
<input name="materialType" th:field="*{materialType}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<div class="form-group">
<label class="col-sm-3 control-label">物料类别:</label>
<div class="col-sm-8">
<input name="materialClass" th:field="*{materialClass}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<div class="form-group">
<label class="col-sm-3 control-label">单位:</label>
<div class="col-sm-8">
<input name="materialUnit" th:field="*{materialUnit}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<div class="form-group">
<label class="col-sm-3 control-label">物料品牌:</label>
<div class="col-sm-8">
<input name="materialBrand" th:field="*{materialBrand}" class="form-control" type="text">
@ -73,11 +73,11 @@
<div class="mb-4">
<h4 class="font-weight-bold">客户信息</h4>
<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">
<label class="col-sm-3 control-label">客户ID:</label>
<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 class="form-group">
@ -111,8 +111,108 @@
</div>
</div>
</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 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>
<th:block th:include="include :: footer" />
@ -125,7 +225,24 @@
function submitHandler() {
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) {
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-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('');
}
}]

Loading…
Cancel
Save