From 644f98b9341e32f69b259eb185eaae8de7bbc95a Mon Sep 17 00:00:00 2001 From: ptt <2403326863@qq.com> Date: Tue, 1 Jul 2025 17:17:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E8=B5=84=E6=96=99=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=AF=BC=E5=85=A5=E5=8A=9F=E8=83=BD=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=AF=BC=E5=85=A5=E5=AE=9E=E7=8E=B0=E7=B1=BB=EF=BC=8C?= =?UTF-8?q?=E7=94=A8=E4=BB=A5=E5=90=8C=E6=AD=A5=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PounddataController.java | 31 +++++ .../com/ruoyi/basedata/domain/Pounddata.java | 21 ++-- .../src/main/java/com/ruoyi/util/Util.java | 60 +++++++++ .../java/com/ruoyi/util/importRunnable.java | 115 ++++++++++++++++++ .../measurement/basedata/PounddataMapper.xml | 1 + .../ruoyi/common/core/domain/BaseEntity.java | 5 - .../measurement/basedata/pounddata/index.vue | 64 ++++++++++ 7 files changed, 285 insertions(+), 12 deletions(-) create mode 100644 measurement/src/main/java/com/ruoyi/util/Util.java create mode 100644 measurement/src/main/java/com/ruoyi/util/importRunnable.java diff --git a/measurement/src/main/java/com/ruoyi/basedata/controller/PounddataController.java b/measurement/src/main/java/com/ruoyi/basedata/controller/PounddataController.java index 19cf3a7..23d088e 100644 --- a/measurement/src/main/java/com/ruoyi/basedata/controller/PounddataController.java +++ b/measurement/src/main/java/com/ruoyi/basedata/controller/PounddataController.java @@ -3,6 +3,10 @@ package com.ruoyi.basedata.controller; import java.util.Arrays; import java.util.List; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.util.importRunnable; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -21,6 +25,7 @@ import com.ruoyi.basedata.domain.Pounddata; import com.ruoyi.basedata.service.IPounddataService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; /** * 计量基础资料Controller @@ -35,6 +40,9 @@ public class PounddataController extends BaseController @Autowired private IPounddataService pounddataService; + @Autowired + private importRunnable importRunnable; + /** * 查询计量基础资料列表 */ @@ -102,4 +110,27 @@ public class PounddataController extends BaseController { return toAjax(pounddataService.removeByIds(Arrays.asList(ids))); } + + /** + * 下载模板 + */ + @PostMapping("/importTemplate") + public void downTemplate(HttpServletResponse response) { + ExcelUtil util = new ExcelUtil<>(Pounddata.class); + util.importTemplateExcel(response, "类别"); + } + + + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception + { + ExcelUtil util = new ExcelUtil(Pounddata.class); + List poundList = util.importExcel(file.getInputStream()); + importRunnable.removeParam(); + importRunnable.setPounddataList(poundList); + importRunnable.setOperName(SecurityUtils.getLoginUser().getUsername()); + Thread thread = new Thread(importRunnable); + thread.start(); + return success("后台导入中..."); + } } diff --git a/measurement/src/main/java/com/ruoyi/basedata/domain/Pounddata.java b/measurement/src/main/java/com/ruoyi/basedata/domain/Pounddata.java index fa47ad4..ff2100a 100644 --- a/measurement/src/main/java/com/ruoyi/basedata/domain/Pounddata.java +++ b/measurement/src/main/java/com/ruoyi/basedata/domain/Pounddata.java @@ -39,7 +39,6 @@ public class Pounddata extends BaseEntity private String type; /** 业务磅点id */ - @Excel(name = "业务磅点id") private Long poundid; /** 助记码 */ @@ -47,29 +46,27 @@ public class Pounddata extends BaseEntity private String helpcode; /** 登记部门 */ - @Excel(name = "登记部门") private Long crtorgid; /** 是否启用 */ - @Excel(name = "是否启用") private String isinuse; + /** 备注 */ + @Excel(name = "备注") + private String remark; + /** 创建时间 */ @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") private Date crtdt; /** 创建人 */ - @Excel(name = "创建人") private String crtopr; /** 最后修改日期 */ @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "最后修改日期", width = 30, dateFormat = "yyyy-MM-dd") private Date lstedtdt; /** 最后修改人 */ - @Excel(name = "最后修改人") private String lstedtopr; public void setId(String id) @@ -192,6 +189,16 @@ public class Pounddata extends BaseEntity return lstedtopr; } + @Override + public String getRemark() { + return remark; + } + + @Override + public void setRemark(String remark) { + this.remark = remark; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/measurement/src/main/java/com/ruoyi/util/Util.java b/measurement/src/main/java/com/ruoyi/util/Util.java new file mode 100644 index 0000000..f8aadca --- /dev/null +++ b/measurement/src/main/java/com/ruoyi/util/Util.java @@ -0,0 +1,60 @@ +package com.ruoyi.util; + +import com.ruoyi.common.core.domain.entity.SysDictData; +import com.ruoyi.common.utils.DictUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.service.ISysDictTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class Util { + @Autowired + private ISysDictTypeService dictTypeService; + + /** + * 根据字典类型获取字典所有标签 + * @param dictType + * @return + */ + public static String getDictLabel(String dictType){ + List bom_wfzbase = DictUtils.getDictCache(dictType); + String strings = ""; + for (int i = 0; i < bom_wfzbase.size(); i++) { + String dictLabel = bom_wfzbase.get(i).getDictLabel(); + strings += ","+dictLabel; + } + return strings; + } + + /** + * 根据字典键值和类型获取字典备注 + * @param dictType + * @return + */ + public String getDictRemark(String dictValue,String dictType){ + List bom_wfzbase1 = dictTypeService.selectDictDataByType(dictType); + for (int i = 0; i < bom_wfzbase1.size(); i++) { + SysDictData sysDictData = bom_wfzbase1.get(i); + if(dictValue.equals(sysDictData.getDictValue())){ + return sysDictData.getRemark(); + } + } + return "虚拟基地"; + } + + /** + * 根据字典类型和字典标签获取对应键值 + * @param dictType + * @return + */ + public static String getDictValue(String dictType,String label){ + if(StringUtils.isBlank(label)){ + return null; + } + String dictValue = DictUtils.getDictValue(dictType, label); + return dictValue; + } +} diff --git a/measurement/src/main/java/com/ruoyi/util/importRunnable.java b/measurement/src/main/java/com/ruoyi/util/importRunnable.java new file mode 100644 index 0000000..c5415ad --- /dev/null +++ b/measurement/src/main/java/com/ruoyi/util/importRunnable.java @@ -0,0 +1,115 @@ +package com.ruoyi.util; + +import com.ruoyi.basedata.domain.Pounddata; +import com.ruoyi.basedata.service.IPounddataService; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.bean.BeanValidators; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Date; +import java.util.List; + +@RestController +public class importRunnable implements Runnable{ + @Autowired + private IPounddataService pounddataService; + + private List pounddataList; + + private String operName; + + public List getPounddataList() { + return pounddataList; + } + + public void setPounddataList(List pounddataList) { + this.pounddataList = pounddataList; + } + + public String getOperName() { + return operName; + } + + public void setOperName(String operName) { + this.operName = operName; + } + + public void removeParam(){ + this.pounddataList = null; + this.operName = null; + } + + @Override + public void run() { + importData(); + } + + private void importData(){ + if(this.pounddataList!=null){ + List importList = this.pounddataList; + for (int i = 0; i < importList.size(); i++) { + Pounddata data = importList.get(i); + try + { + // 验证是否存在这个用户 + Pounddata pounddata = new Pounddata(); + System.out.println( 1); + String usrcode = data.getUsrcode(); + String type = Util.getDictValue("measurement_data_type", data.getType()); + if (StringUtils.isBlank(usrcode)) { + Pounddata pounddata2 = new Pounddata(); + pounddata2.setRemark("第"+(i+1)+"条编码为空"); + pounddata2.setUsrcode(data.getUsrcode()+"+"+data.getType()+":导入失败"); + pounddata2.setName(data.getName()); + pounddata2.setCrtopr(operName); + pounddata2.setLstedtopr(operName); + pounddata2.setCrtdt(new Date()); + pounddata2.setLstedtdt(new Date()); + pounddataService.insertPounddata(pounddata2); + continue; + }else if(StringUtils.isBlank(type)){ + Pounddata pounddata2 = new Pounddata(); + pounddata2.setRemark("第"+(i+1)+"条资料类型为空或资料类型在系统内不存在"); + pounddata2.setUsrcode(data.getUsrcode()+"+"+data.getType()+":导入失败"); + pounddata2.setName(data.getName()); + pounddata2.setCrtopr(operName); + pounddata2.setLstedtopr(operName); + pounddata2.setCrtdt(new Date()); + pounddata2.setLstedtdt(new Date()); + pounddataService.insertPounddata(pounddata2); + continue; + } + pounddata.setUsrcode(usrcode); + pounddata.setType(type); + List pounddata1 = pounddataService.selectPounddataList(pounddata); + if (pounddata1==null||pounddata1.size()==0) + { + data.setType(type); + data.setCrtopr(operName); + data.setLstedtopr(operName); + data.setCrtdt(new Date()); + data.setLstedtdt(new Date()); + pounddataService.insertPounddata(data); + } + else + { + Pounddata pounddata2 = new Pounddata(); + pounddata2.setRemark("已存在编码+资料类型为:"+data.getUsrcode()+data.getType()+"的数据"); + pounddata2.setUsrcode(data.getUsrcode()+"+"+data.getType()+":导入失败"); + pounddata2.setName(data.getName()); + pounddata2.setCrtopr(operName); + pounddata2.setLstedtopr(operName); + pounddata2.setCrtdt(new Date()); + pounddata2.setLstedtdt(new Date()); + pounddataService.insertPounddata(pounddata2); + } + } + catch (Exception e) + { + } + } + } + } +} diff --git a/measurement/src/main/resources/mapper/measurement/basedata/PounddataMapper.xml b/measurement/src/main/resources/mapper/measurement/basedata/PounddataMapper.xml index 887635a..40ea8cc 100644 --- a/measurement/src/main/resources/mapper/measurement/basedata/PounddataMapper.xml +++ b/measurement/src/main/resources/mapper/measurement/basedata/PounddataMapper.xml @@ -33,6 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and poundid = #{poundid} and helpcode like concat('%', #{helpcode}, '%') + order by crtdt desc