Browse Source

[fix]

售后管理 出货设备
修改出货设备类,添加生产开始和结束时间字段;
修改出货设备dto类,添加物料型号、生产开始、结束时间、生产员字段;
修改出货设备编辑dto类,添加工序问题列表;
新增出货设备获取问题记录列表、下载导入模板、处理导入数据controller方法;
修改编辑出货设备service方法,添加工序问题记录的保存;
修改出货设备新增和更新方法,添加生产员字段的保存;
新增工序问题记录根据出货设备id删除问题记录mapper方法;
dev
王晓迪 3 months ago
parent
commit
12e7858d4a
  1. 42
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AfterSalesShippingDeviceController.java
  2. 2
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AfterSalesShippingDevice.java
  3. 14
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesShippingDeviceDto.java
  4. 9
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesShippingDeviceEditDto.java
  5. 42
      ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AfterSalesShippingDeviceServiceImpl.java
  6. 4
      ruoyi-admin/src/main/java/com/ruoyi/system/mapper/ProcessIssueRecordMapper.java
  7. 4
      ruoyi-admin/src/main/resources/mapper/aftersales/AfterSalesShippingDeviceMapper.xml
  8. 4
      ruoyi-admin/src/main/resources/mapper/system/ProcessIssueRecordMapper.xml

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

@ -1,16 +1,20 @@
package com.ruoyi.aftersales.controller; package com.ruoyi.aftersales.controller;
import java.io.IOException;
import java.util.List; import java.util.List;
import com.ruoyi.aftersales.domain.AftersalesOrder; import com.ruoyi.aftersales.domain.AftersalesOrder;
import com.ruoyi.aftersales.domain.dto.*; import com.ruoyi.aftersales.domain.dto.*;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.ProcessIssueRecord;
import com.ruoyi.system.domain.SysCustomer; import com.ruoyi.system.domain.SysCustomer;
import com.ruoyi.system.domain.SysOutGood; import com.ruoyi.system.domain.SysOutGood;
import com.ruoyi.system.service.IProcessIssueRecordService;
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.transaction.annotation.Transactional;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
@ -21,6 +25,7 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
/** /**
* 出货设备Controller * 出货设备Controller
@ -40,6 +45,9 @@ public class AfterSalesShippingDeviceController extends BaseController
@Autowired @Autowired
private ISysCustomerService customerService; private ISysCustomerService customerService;
@Autowired
private IProcessIssueRecordService processIssueRecordService;
@RequiresPermissions("aftersales:shippingDevice:view") @RequiresPermissions("aftersales:shippingDevice:view")
@GetMapping() @GetMapping()
public String shippingDevice() public String shippingDevice()
@ -132,8 +140,7 @@ public class AfterSalesShippingDeviceController extends BaseController
@ResponseBody @ResponseBody
public AjaxResult editSave(@RequestBody AfterSalesShippingDeviceEditDto dto) public AjaxResult editSave(@RequestBody AfterSalesShippingDeviceEditDto dto)
{ {
return toAjax(afterSalesShippingDeviceService.updateAfterSalesShippingDevice(dto));
return toAjax(afterSalesShippingDeviceService.updateAfterSalesShippingDevice(dto));
} }
/** /**
@ -199,5 +206,36 @@ public class AfterSalesShippingDeviceController extends BaseController
return toAjax(afterSalesShippingDeviceService.restoreAfterSalesShippingDeviceById(id)); return toAjax(afterSalesShippingDeviceService.restoreAfterSalesShippingDeviceById(id));
} }
/*
* 显示工序问题列表*/
@PostMapping("/showRecords")
@ResponseBody
public TableDataInfo showRecords(ProcessIssueRecord processIssueRecord)
{
startPage();
List<ProcessIssueRecord> processIssueRecordList = processIssueRecordService.selectProcessIssueRecordList(processIssueRecord);
return getDataTable(processIssueRecordList);
}
/**
* 下载导入模板
*/
@GetMapping("/importTemplate")
@ResponseBody
public AjaxResult importTemplate()
{
ExcelUtil<ProcessIssueRecord> util = new ExcelUtil<ProcessIssueRecord>(ProcessIssueRecord.class);
return util.importTemplateExcel("工序问题记录模板");
}
/*
* 导入工序问题列表*/
@Transactional(rollbackFor = Exception.class)
@PostMapping("/importRecords")
@ResponseBody
public TableDataInfo handleFileUpload(@RequestParam("file") MultipartFile file) throws IOException {
// 处理文件上传
ExcelUtil<ProcessIssueRecord> excelUtil = new ExcelUtil<ProcessIssueRecord>(ProcessIssueRecord.class);
List<ProcessIssueRecord> processIssueRecords = excelUtil.importExcel(file.getInputStream());
return getDataTable(processIssueRecords);
}
} }

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

@ -174,9 +174,11 @@ public class AfterSalesShippingDevice extends BaseEntity
private String isConfirmCheckFlag; private String isConfirmCheckFlag;
//生产开始时间 //生产开始时间
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startMakeTime; private Date startMakeTime;
//生产结束时间 //生产结束时间
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endMakeTime; private Date endMakeTime;
/** 是否添加工序问题记录(0代表未添加 1代表是) */ /** 是否添加工序问题记录(0代表未添加 1代表是) */

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

@ -3,6 +3,8 @@ package com.ruoyi.aftersales.domain.dto;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.util.Date;
@Data @Data
public class AfterSalesShippingDeviceDto { public class AfterSalesShippingDeviceDto {
@ -41,4 +43,16 @@ public class AfterSalesShippingDeviceDto {
@JsonProperty("customerId") @JsonProperty("customerId")
private String customerId; private String customerId;
//物料型号
private String materialModel;
//生产开始时间
private Date startMakeTime;
//生产结束时间
private Date endMakeTime;
//生产员
private String makeName;
} }

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

@ -2,12 +2,15 @@ package com.ruoyi.aftersales.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.aftersales.domain.AfterSalesShippingDevice;
import com.ruoyi.system.domain.ProcessIssueRecord;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.List;
@Data @Data
public class AfterSalesShippingDeviceEditDto { public class AfterSalesShippingDeviceEditDto extends AfterSalesShippingDevice {
@JsonProperty("shippingDeviceCode") @JsonProperty("shippingDeviceCode")
private Long shippingDeviceCode; private Long shippingDeviceCode;
@ -18,7 +21,7 @@ public class AfterSalesShippingDeviceEditDto {
@JsonProperty("materialPhotourl") @JsonProperty("materialPhotourl")
private String materialPhotourl; private String materialPhotourl;
@JsonProperty("materialName") // @JsonProperty("materialName")
private String materialName; private String materialName;
@JsonProperty("materialType") @JsonProperty("materialType")
@ -98,4 +101,6 @@ public class AfterSalesShippingDeviceEditDto {
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@JsonProperty("componentGuaranteeDate") @JsonProperty("componentGuaranteeDate")
private Date componentGuaranteeDate; private Date componentGuaranteeDate;
private List<ProcessIssueRecord> processIssueRecordList;
} }

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

@ -16,7 +16,9 @@ import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.sales.domain.SalesAftersalesNotice; import com.ruoyi.sales.domain.SalesAftersalesNotice;
import com.ruoyi.sales.domain.SalesAftersalesNoticeDetail; import com.ruoyi.sales.domain.SalesAftersalesNoticeDetail;
import com.ruoyi.sales.mapper.SalesAftersalesNoticeDetailMapper; import com.ruoyi.sales.mapper.SalesAftersalesNoticeDetailMapper;
import com.ruoyi.system.domain.ProcessIssueRecord;
import com.ruoyi.system.dto.SysEquipDetailDto; import com.ruoyi.system.dto.SysEquipDetailDto;
import com.ruoyi.system.mapper.ProcessIssueRecordMapper;
import com.ruoyi.warehouse.domain.WarehouseOutOrder; import com.ruoyi.warehouse.domain.WarehouseOutOrder;
import com.ruoyi.warehouse.mapper.WarehouseOutOrderMapper; import com.ruoyi.warehouse.mapper.WarehouseOutOrderMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -49,6 +51,9 @@ public class AfterSalesShippingDeviceServiceImpl implements IAfterSalesShippingD
@Autowired @Autowired
private WarehouseOutOrderMapper warehouseOutOrderMapper; private WarehouseOutOrderMapper warehouseOutOrderMapper;
@Autowired
private ProcessIssueRecordMapper issueRecordMapper;
/** /**
* 查询出货设备 * 查询出货设备
* *
@ -85,6 +90,10 @@ public class AfterSalesShippingDeviceServiceImpl implements IAfterSalesShippingD
shippingDeviceDto.setMaterialName(afterSalesShippingDevice.getMaterialName()); shippingDeviceDto.setMaterialName(afterSalesShippingDevice.getMaterialName());
shippingDeviceDto.setMaterialUnit(afterSalesShippingDevice.getMaterialUnit()); shippingDeviceDto.setMaterialUnit(afterSalesShippingDevice.getMaterialUnit());
shippingDeviceDto.setMakeNo(afterSalesShippingDevice.getMakeNo()); shippingDeviceDto.setMakeNo(afterSalesShippingDevice.getMakeNo());
shippingDeviceDto.setMaterialModel(afterSalesShippingDevice.getMaterialModelCode());
shippingDeviceDto.setStartMakeTime(afterSalesShippingDevice.getStartMakeTime());
shippingDeviceDto.setEndMakeTime(afterSalesShippingDevice.getEndMakeTime());
shippingDeviceDto.setMakeName(afterSalesShippingDevice.getMakeName());
} }
return shippingDeviceDto; return shippingDeviceDto;
} }
@ -108,7 +117,7 @@ public class AfterSalesShippingDeviceServiceImpl implements IAfterSalesShippingD
WarehouseAndAfterSalesDto warehouseAndAfterSalesDto = new WarehouseAndAfterSalesDto(); WarehouseAndAfterSalesDto warehouseAndAfterSalesDto = new WarehouseAndAfterSalesDto();
AfterSalesShippingDevice afterSalesShippingDevice = afterSalesShippingDeviceMapper.selectAfterSalesShippingDeviceById(shippingDeviceCode); AfterSalesShippingDevice afterSalesShippingDevice = afterSalesShippingDeviceMapper.selectAfterSalesShippingDeviceById(shippingDeviceCode);
//查找仓库信息 //查找仓库信息
WarehouseOutOrder warehouseOutOrder = warehouseOutOrderMapper.selectWarehouseOutOrderByShippingDeviceId(afterSalesShippingDevice.getShippingDeviceId()); WarehouseOutOrder warehouseOutOrder = warehouseOutOrderMapper.selectWarehouseOutOrderByCode(afterSalesShippingDevice.getOutOrderCode());
if (StringUtils.isNotNull(warehouseOutOrder)){ if (StringUtils.isNotNull(warehouseOutOrder)){
warehouseAndAfterSalesDto.setOutOrderCode(warehouseOutOrder.getOutOrderCode()); warehouseAndAfterSalesDto.setOutOrderCode(warehouseOutOrder.getOutOrderCode());
warehouseAndAfterSalesDto.setWarehouseName(warehouseOutOrder.getWarehouseName()); warehouseAndAfterSalesDto.setWarehouseName(warehouseOutOrder.getWarehouseName());
@ -175,15 +184,30 @@ public class AfterSalesShippingDeviceServiceImpl implements IAfterSalesShippingD
afterSalesShippingDevice.setMakeNo(editDto.getMakeNo()); afterSalesShippingDevice.setMakeNo(editDto.getMakeNo());
afterSalesShippingDevice.setDeviceModelCode(editDto.getDeviceModelCode()); afterSalesShippingDevice.setDeviceModelCode(editDto.getDeviceModelCode());
afterSalesShippingDevice.setDeviceRunningNumber(editDto.getDeviceRunningNumber()); afterSalesShippingDevice.setDeviceRunningNumber(editDto.getDeviceRunningNumber());
afterSalesShippingDevice.setSnCode(editDto.getSnCode()); afterSalesShippingDevice.setSnCode(editDto.getSnCode());
afterSalesShippingDevice.setAftersalesPhotourl(editDto.getAftersalesPhotourl()); afterSalesShippingDevice.setAftersalesPhotourl(editDto.getAftersalesPhotourl());
afterSalesShippingDevice.setFactoryDate(editDto.getFactoryDate()); afterSalesShippingDevice.setFactoryDate(editDto.getFactoryDate());
afterSalesShippingDevice.setComponentGuaranteeDate(editDto.getComponentGuaranteeDate()); afterSalesShippingDevice.setComponentGuaranteeDate(editDto.getComponentGuaranteeDate());
afterSalesShippingDevice.setLockDateFlag(editDto.getLockDateFlag()); afterSalesShippingDevice.setLockDateFlag(editDto.getLockDateFlag());
afterSalesShippingDevice.setLockDate(editDto.getLockDate()); afterSalesShippingDevice.setLockDate(editDto.getLockDate());
afterSalesShippingDevice.setWastageExpireDate(editDto.getWastageExpireDate()); afterSalesShippingDevice.setWastageExpireDate(editDto.getWastageExpireDate());
afterSalesShippingDevice.setGuaranteePeriod(editDto.getGuaranteePeriod()); afterSalesShippingDevice.setGuaranteePeriod(editDto.getGuaranteePeriod());
// afterSalesShippingDevice.setShippingDeviceCode(editDto.getShippingDeviceCode()); // afterSalesShippingDevice.setShippingDeviceCode(editDto.getShippingDeviceCode());
List<ProcessIssueRecord> processIssueRecords = editDto.getProcessIssueRecordList();
if(StringUtils.isNotEmpty(processIssueRecords)){
afterSalesShippingDevice.setAddProcessIssueRecordFlag("1");//添加问题记录
issueRecordMapper.deleteProcessIssueRecordByShippingDeviceId(editDto.getShippingDeviceId());
for (ProcessIssueRecord record : processIssueRecords) {
record.setShippingDeviceId(editDto.getShippingDeviceId());
record.setSerialNo(editDto.getDeviceRunningNumber());
record.setMaterialNo(editDto.getMaterialNo());
record.setMakeNo(editDto.getMakeNo());
record.setCreateTime(DateUtils.getNowDate());
issueRecordMapper.insertProcessIssueRecord(record);
}
}
return afterSalesShippingDeviceMapper.updateAfterSalesShippingDevice(afterSalesShippingDevice); return afterSalesShippingDeviceMapper.updateAfterSalesShippingDevice(afterSalesShippingDevice);
} }

4
ruoyi-admin/src/main/java/com/ruoyi/system/mapper/ProcessIssueRecordMapper.java

@ -51,6 +51,10 @@ public interface ProcessIssueRecordMapper
*/ */
public int deleteProcessIssueRecordById(Long id); public int deleteProcessIssueRecordById(Long id);
/*
* 根据出货设备id删除问题记录*/
public int deleteProcessIssueRecordByShippingDeviceId(String shippingDeviceId);
/** /**
* 批量删除设备履历-问题清单列 * 批量删除设备履历-问题清单列
* *

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

@ -83,6 +83,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="qualityStatus != null and qualityStatus != ''"> and quality_status =#{qualityStatus}</if> <if test="qualityStatus != null and qualityStatus != ''"> and quality_status =#{qualityStatus}</if>
<if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''"> and create_time between #{params.beginCreateTime} and #{params.endCreateTime}</if> <if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''"> and create_time between #{params.beginCreateTime} and #{params.endCreateTime}</if>
</where> </where>
order by create_time desc
</select> </select>
<select id="selectAfterSalesShippingDeviceById" parameterType="Long" resultMap="AfterSalesShippingDeviceResult"> <select id="selectAfterSalesShippingDeviceById" parameterType="Long" resultMap="AfterSalesShippingDeviceResult">
@ -215,6 +216,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="componentGuaranteeFlag != null">component_guarantee_flag,</if> <if test="componentGuaranteeFlag != null">component_guarantee_flag,</if>
<if test="engineerName != null">engineer_name,</if> <if test="engineerName != null">engineer_name,</if>
<if test="salesmanName != null">salesman_name,</if> <if test="salesmanName != null">salesman_name,</if>
<if test="makeName != null">make_name,</if>
<if test="customerId != null">customer_id,</if> <if test="customerId != null">customer_id,</if>
<if test="customerName != null">customer_name,</if> <if test="customerName != null">customer_name,</if>
<if test="maintainOrderCode != null">maintain_order_code,</if> <if test="maintainOrderCode != null">maintain_order_code,</if>
@ -261,6 +263,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="componentGuaranteeFlag != null">#{componentGuaranteeFlag},</if> <if test="componentGuaranteeFlag != null">#{componentGuaranteeFlag},</if>
<if test="engineerName != null">#{engineerName},</if> <if test="engineerName != null">#{engineerName},</if>
<if test="salesmanName != null">#{salesmanName},</if> <if test="salesmanName != null">#{salesmanName},</if>
<if test="makeName != null">#{makeName},</if>
<if test="customerId != null">#{customerId},</if> <if test="customerId != null">#{customerId},</if>
<if test="customerName != null">#{customerName},</if> <if test="customerName != null">#{customerName},</if>
<if test="maintainOrderCode != null">#{maintainOrderCode},</if> <if test="maintainOrderCode != null">#{maintainOrderCode},</if>
@ -311,6 +314,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="componentGuaranteeFlag != null">component_guarantee_flag = #{componentGuaranteeFlag},</if> <if test="componentGuaranteeFlag != null">component_guarantee_flag = #{componentGuaranteeFlag},</if>
<if test="engineerName != null">engineer_name = #{engineerName},</if> <if test="engineerName != null">engineer_name = #{engineerName},</if>
<if test="salesmanName != null">salesman_name = #{salesmanName},</if> <if test="salesmanName != null">salesman_name = #{salesmanName},</if>
<if test="makeName != null">make_name = #{makeName},</if>
<if test="customerId != null">customer_id = #{customerId},</if> <if test="customerId != null">customer_id = #{customerId},</if>
<if test="customerName != null">customer_name = #{customerName},</if> <if test="customerName != null">customer_name = #{customerName},</if>
<if test="maintainOrderCode != null">maintain_order_code = #{maintainOrderCode},</if> <if test="maintainOrderCode != null">maintain_order_code = #{maintainOrderCode},</if>

4
ruoyi-admin/src/main/resources/mapper/system/ProcessIssueRecordMapper.xml

@ -104,6 +104,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
delete from process_issue_record where id = #{id} delete from process_issue_record where id = #{id}
</delete> </delete>
<delete id="deleteProcessIssueRecordByShippingDeviceId" parameterType="String">
delete from process_issue_record where shipping_device_id = #{shippingDeviceId}
</delete>
<delete id="deleteProcessIssueRecordByIds" parameterType="String"> <delete id="deleteProcessIssueRecordByIds" parameterType="String">
delete from process_issue_record where id in delete from process_issue_record where id in
<foreach item="id" collection="array" open="(" separator="," close=")"> <foreach item="id" collection="array" open="(" separator="," close=")">

Loading…
Cancel
Save