From 12e7858d4ad7088072547b82f2b3fbf607de8490 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E8=BF=AA?= <2596750866@qq.com> Date: Thu, 5 Dec 2024 10:12:29 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E5=94=AE=E5=90=8E=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E5=87=BA=E8=B4=A7=E8=AE=BE=E5=A4=87=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=87=BA=E8=B4=A7=E8=AE=BE=E5=A4=87=E7=B1=BB=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=94=9F=E4=BA=A7=E5=BC=80=E5=A7=8B=E5=92=8C=E7=BB=93?= =?UTF-8?q?=E6=9D=9F=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5=EF=BC=9B=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=87=BA=E8=B4=A7=E8=AE=BE=E5=A4=87dto?= =?UTF-8?q?=E7=B1=BB=EF=BC=8C=E6=B7=BB=E5=8A=A0=E7=89=A9=E6=96=99=E5=9E=8B?= =?UTF-8?q?=E5=8F=B7=E3=80=81=E7=94=9F=E4=BA=A7=E5=BC=80=E5=A7=8B=E3=80=81?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4=E3=80=81=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E5=91=98=E5=AD=97=E6=AE=B5=EF=BC=9B=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=87=BA=E8=B4=A7=E8=AE=BE=E5=A4=87=E7=BC=96=E8=BE=91dto?= =?UTF-8?q?=E7=B1=BB=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=B7=A5=E5=BA=8F=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=88=97=E8=A1=A8=EF=BC=9B=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=87=BA=E8=B4=A7=E8=AE=BE=E5=A4=87=E8=8E=B7=E5=8F=96=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E8=AE=B0=E5=BD=95=E5=88=97=E8=A1=A8=E3=80=81=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF=E3=80=81=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=AF=BC=E5=85=A5=E6=95=B0=E6=8D=AEcontroller?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=9B=20=E4=BF=AE=E6=94=B9=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=87=BA=E8=B4=A7=E8=AE=BE=E5=A4=87service=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=B7=A5=E5=BA=8F=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E8=AE=B0=E5=BD=95=E7=9A=84=E4=BF=9D=E5=AD=98=EF=BC=9B?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E5=87=BA=E8=B4=A7=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=92=8C=E6=9B=B4=E6=96=B0=E6=96=B9=E6=B3=95?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E7=94=9F=E4=BA=A7=E5=91=98=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E7=9A=84=E4=BF=9D=E5=AD=98=EF=BC=9B=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=B7=A5=E5=BA=8F=E9=97=AE=E9=A2=98=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=87=BA=E8=B4=A7=E8=AE=BE=E5=A4=87id?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=97=AE=E9=A2=98=E8=AE=B0=E5=BD=95mapper?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AfterSalesShippingDeviceController.java | 42 ++++++++++++++++++- .../domain/AfterSalesShippingDevice.java | 2 + .../dto/AfterSalesShippingDeviceDto.java | 14 +++++++ .../dto/AfterSalesShippingDeviceEditDto.java | 9 +++- .../AfterSalesShippingDeviceServiceImpl.java | 42 +++++++++++++++---- .../mapper/ProcessIssueRecordMapper.java | 4 ++ .../AfterSalesShippingDeviceMapper.xml | 4 ++ .../system/ProcessIssueRecordMapper.xml | 4 ++ 8 files changed, 108 insertions(+), 13 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AfterSalesShippingDeviceController.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AfterSalesShippingDeviceController.java index 9d35457f..9a796e79 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AfterSalesShippingDeviceController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AfterSalesShippingDeviceController.java @@ -1,16 +1,20 @@ package com.ruoyi.aftersales.controller; +import java.io.IOException; import java.util.List; import com.ruoyi.aftersales.domain.AftersalesOrder; import com.ruoyi.aftersales.domain.dto.*; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.domain.ProcessIssueRecord; import com.ruoyi.system.domain.SysCustomer; import com.ruoyi.system.domain.SysOutGood; +import com.ruoyi.system.service.IProcessIssueRecordService; 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.transaction.annotation.Transactional; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; 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.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; /** * 出货设备Controller @@ -40,6 +45,9 @@ public class AfterSalesShippingDeviceController extends BaseController @Autowired private ISysCustomerService customerService; + @Autowired + private IProcessIssueRecordService processIssueRecordService; + @RequiresPermissions("aftersales:shippingDevice:view") @GetMapping() public String shippingDevice() @@ -132,8 +140,7 @@ public class AfterSalesShippingDeviceController extends BaseController @ResponseBody 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)); } + /* + * 显示工序问题列表*/ + @PostMapping("/showRecords") + @ResponseBody + public TableDataInfo showRecords(ProcessIssueRecord processIssueRecord) + { + startPage(); + List processIssueRecordList = processIssueRecordService.selectProcessIssueRecordList(processIssueRecord); + return getDataTable(processIssueRecordList); + } + /** + * 下载导入模板 + */ + @GetMapping("/importTemplate") + @ResponseBody + public AjaxResult importTemplate() + { + ExcelUtil util = new ExcelUtil(ProcessIssueRecord.class); + return util.importTemplateExcel("工序问题记录模板"); + } + /* + * 导入工序问题列表*/ + @Transactional(rollbackFor = Exception.class) + @PostMapping("/importRecords") + @ResponseBody + public TableDataInfo handleFileUpload(@RequestParam("file") MultipartFile file) throws IOException { + // 处理文件上传 + ExcelUtil excelUtil = new ExcelUtil(ProcessIssueRecord.class); + List processIssueRecords = excelUtil.importExcel(file.getInputStream()); + return getDataTable(processIssueRecords); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AfterSalesShippingDevice.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AfterSalesShippingDevice.java index ccd2c7fe..32019084 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AfterSalesShippingDevice.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AfterSalesShippingDevice.java @@ -174,9 +174,11 @@ public class AfterSalesShippingDevice extends BaseEntity private String isConfirmCheckFlag; //生产开始时间 + @JsonFormat(pattern = "yyyy-MM-dd") private Date startMakeTime; //生产结束时间 + @JsonFormat(pattern = "yyyy-MM-dd") private Date endMakeTime; /** 是否添加工序问题记录(0代表未添加 1代表是) */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesShippingDeviceDto.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesShippingDeviceDto.java index 988691d1..cbb9a74a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesShippingDeviceDto.java +++ b/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 lombok.Data; +import java.util.Date; + @Data public class AfterSalesShippingDeviceDto { @@ -41,4 +43,16 @@ public class AfterSalesShippingDeviceDto { @JsonProperty("customerId") private String customerId; + + //物料型号 + private String materialModel; + + //生产开始时间 + private Date startMakeTime; + + //生产结束时间 + private Date endMakeTime; + + //生产员 + private String makeName; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesShippingDeviceEditDto.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesShippingDeviceEditDto.java index 8009985e..5b9a3e5a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/dto/AfterSalesShippingDeviceEditDto.java +++ b/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.JsonProperty; +import com.ruoyi.aftersales.domain.AfterSalesShippingDevice; +import com.ruoyi.system.domain.ProcessIssueRecord; import lombok.Data; import java.util.Date; +import java.util.List; @Data -public class AfterSalesShippingDeviceEditDto { +public class AfterSalesShippingDeviceEditDto extends AfterSalesShippingDevice { @JsonProperty("shippingDeviceCode") private Long shippingDeviceCode; @@ -18,7 +21,7 @@ public class AfterSalesShippingDeviceEditDto { @JsonProperty("materialPhotourl") private String materialPhotourl; - @JsonProperty("materialName") +// @JsonProperty("materialName") private String materialName; @JsonProperty("materialType") @@ -98,4 +101,6 @@ public class AfterSalesShippingDeviceEditDto { @JsonFormat(pattern = "yyyy-MM-dd") @JsonProperty("componentGuaranteeDate") private Date componentGuaranteeDate; + + private List processIssueRecordList; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AfterSalesShippingDeviceServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AfterSalesShippingDeviceServiceImpl.java index b4c0bc9e..3e0bfcb0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AfterSalesShippingDeviceServiceImpl.java +++ b/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.SalesAftersalesNoticeDetail; import com.ruoyi.sales.mapper.SalesAftersalesNoticeDetailMapper; +import com.ruoyi.system.domain.ProcessIssueRecord; import com.ruoyi.system.dto.SysEquipDetailDto; +import com.ruoyi.system.mapper.ProcessIssueRecordMapper; import com.ruoyi.warehouse.domain.WarehouseOutOrder; import com.ruoyi.warehouse.mapper.WarehouseOutOrderMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -49,6 +51,9 @@ public class AfterSalesShippingDeviceServiceImpl implements IAfterSalesShippingD @Autowired private WarehouseOutOrderMapper warehouseOutOrderMapper; + @Autowired + private ProcessIssueRecordMapper issueRecordMapper; + /** * 查询出货设备 * @@ -85,6 +90,10 @@ public class AfterSalesShippingDeviceServiceImpl implements IAfterSalesShippingD shippingDeviceDto.setMaterialName(afterSalesShippingDevice.getMaterialName()); shippingDeviceDto.setMaterialUnit(afterSalesShippingDevice.getMaterialUnit()); shippingDeviceDto.setMakeNo(afterSalesShippingDevice.getMakeNo()); + shippingDeviceDto.setMaterialModel(afterSalesShippingDevice.getMaterialModelCode()); + shippingDeviceDto.setStartMakeTime(afterSalesShippingDevice.getStartMakeTime()); + shippingDeviceDto.setEndMakeTime(afterSalesShippingDevice.getEndMakeTime()); + shippingDeviceDto.setMakeName(afterSalesShippingDevice.getMakeName()); } return shippingDeviceDto; } @@ -108,7 +117,7 @@ public class AfterSalesShippingDeviceServiceImpl implements IAfterSalesShippingD WarehouseAndAfterSalesDto warehouseAndAfterSalesDto = new WarehouseAndAfterSalesDto(); AfterSalesShippingDevice afterSalesShippingDevice = afterSalesShippingDeviceMapper.selectAfterSalesShippingDeviceById(shippingDeviceCode); //查找仓库信息 - WarehouseOutOrder warehouseOutOrder = warehouseOutOrderMapper.selectWarehouseOutOrderByShippingDeviceId(afterSalesShippingDevice.getShippingDeviceId()); + WarehouseOutOrder warehouseOutOrder = warehouseOutOrderMapper.selectWarehouseOutOrderByCode(afterSalesShippingDevice.getOutOrderCode()); if (StringUtils.isNotNull(warehouseOutOrder)){ warehouseAndAfterSalesDto.setOutOrderCode(warehouseOutOrder.getOutOrderCode()); warehouseAndAfterSalesDto.setWarehouseName(warehouseOutOrder.getWarehouseName()); @@ -175,15 +184,30 @@ public class AfterSalesShippingDeviceServiceImpl implements IAfterSalesShippingD 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.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()); + List 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); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/ProcessIssueRecordMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/ProcessIssueRecordMapper.java index ab97a04c..588c24db 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/ProcessIssueRecordMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/ProcessIssueRecordMapper.java @@ -51,6 +51,10 @@ public interface ProcessIssueRecordMapper */ public int deleteProcessIssueRecordById(Long id); + /* + * 根据出货设备id删除问题记录*/ + public int deleteProcessIssueRecordByShippingDeviceId(String shippingDeviceId); + /** * 批量删除设备履历-问题清单列 * diff --git a/ruoyi-admin/src/main/resources/mapper/aftersales/AfterSalesShippingDeviceMapper.xml b/ruoyi-admin/src/main/resources/mapper/aftersales/AfterSalesShippingDeviceMapper.xml index a1d3c25f..57180420 100644 --- a/ruoyi-admin/src/main/resources/mapper/aftersales/AfterSalesShippingDeviceMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/aftersales/AfterSalesShippingDeviceMapper.xml @@ -83,6 +83,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and quality_status =#{qualityStatus} and create_time between #{params.beginCreateTime} and #{params.endCreateTime} + order by create_time desc