From cf81f9e63666bf9fa9a698885d915ec9338c0a10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?yinjinlu-pc=5C=E5=B0=B9=E9=87=91=E8=B7=AF?= <411641505@qq.com> Date: Thu, 5 Sep 2024 18:49:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E5=92=8C=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=87=BA=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ktg/common/constant/UserConstants.java | 2 + .../mes/md/controller/MdClientController.java | 39 ++++++++++ .../mes/md/controller/MdVendorController.java | 13 +++- .../java/com/ktg/mes/md/domain/MdClient.java | 4 - .../java/com/ktg/mes/md/domain/MdVendor.java | 4 - .../ktg/mes/md/service/IMdClientService.java | 12 +++ .../md/service/impl/MdClientServiceImpl.java | 74 +++++++++++++++++++ .../md/service/impl/MdVendorServiceImpl.java | 13 +++- .../mes/pro/controller/ProTaskController.java | 2 +- .../wm/controller/WmBarcodeController.java | 15 ++++ 10 files changed, 167 insertions(+), 11 deletions(-) diff --git a/ktg-common/src/main/java/com/ktg/common/constant/UserConstants.java b/ktg-common/src/main/java/com/ktg/common/constant/UserConstants.java index 146f80f..436b411 100644 --- a/ktg-common/src/main/java/com/ktg/common/constant/UserConstants.java +++ b/ktg-common/src/main/java/com/ktg/common/constant/UserConstants.java @@ -85,6 +85,8 @@ public class UserConstants /** * 各种业务单据的内定自动编码规则标识 */ + public static final String VENDOR_CODE = "VENDOR_CODE"; + public static final String CLIENT_CODE = "CLIENT_CODE"; public static final String ITEM_TYPE_CODE ="ITEM_TYPE_CODE"; public static final String ITEM_CODE ="ITEM_CODE"; public static final String MACHINERY_TYPE_CODE="MACHINERY_TYPE_CODE"; diff --git a/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdClientController.java b/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdClientController.java index 5ed3609..88093ad 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdClientController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdClientController.java @@ -4,6 +4,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.ktg.common.constant.UserConstants; +import com.ktg.mes.md.domain.MdVendor; import com.ktg.mes.wm.utils.WmBarCodeUtil; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; @@ -23,6 +24,7 @@ import com.ktg.mes.md.domain.MdClient; import com.ktg.mes.md.service.IMdClientService; import com.ktg.common.utils.poi.ExcelUtil; import com.ktg.common.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; /** * 客户Controller @@ -64,6 +66,39 @@ public class MdClientController extends BaseController util.exportExcel(response, list, "客户数据"); } + + /** + * 下载导入模板 + * @param response + */ + @PostMapping("/importTemplate") + public void importTemplate(HttpServletResponse response) + { + ExcelUtil util = new ExcelUtil(MdClient.class); + util.importTemplateExcel(response, "客户数据"); + } + + + /** + * 从模板导入客户数据 + * @param file + * @param updateSupport + * @return + * @throws Exception + */ + @Log(title = "客户", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('mes:md:client:import')") + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception + { + ExcelUtil util = new ExcelUtil(MdClient.class); + List clientList = util.importExcel(file.getInputStream()); + String operName = getUsername(); + String message = mdClientService.importClient(clientList,updateSupport,operName); + return AjaxResult.success(message); + } + + /** * 获取客户详细信息 */ @@ -132,4 +167,8 @@ public class MdClientController extends BaseController { return toAjax(mdClientService.deleteMdClientByClientIds(clientIds)); } + + + + } diff --git a/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdVendorController.java b/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdVendorController.java index a4d359c..30653c4 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdVendorController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdVendorController.java @@ -66,6 +66,10 @@ public class MdVendorController extends BaseController util.exportExcel(response, list, "供应商数据"); } + /** + * 下载导入模板 + * @param response + */ @PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { @@ -74,8 +78,15 @@ public class MdVendorController extends BaseController } + /** + * 从模板导入供应商数据 + * @param file + * @param updateSupport + * @return + * @throws Exception + */ @Log(title = "供应商", businessType = BusinessType.IMPORT) - @PreAuthorize("@ss.hasPermi('system:user:import')") + @PreAuthorize("@ss.hasPermi('mes:md:vendor:import')") @PostMapping("/importData") public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { diff --git a/ktg-mes/src/main/java/com/ktg/mes/md/domain/MdClient.java b/ktg-mes/src/main/java/com/ktg/mes/md/domain/MdClient.java index 3799e79..84bc9ef 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/md/domain/MdClient.java +++ b/ktg-mes/src/main/java/com/ktg/mes/md/domain/MdClient.java @@ -39,11 +39,9 @@ public class MdClient extends BaseEntity private String clientDes; /** 客户LOGO地址 */ - @Excel(name = "客户LOGO地址") private String clientLogo; /** 客户类型 */ - @Excel(name = "客户类型") private String clientType; /** 客户地址 */ @@ -91,11 +89,9 @@ public class MdClient extends BaseEntity private String creditCode; /** 是否启用 */ - @Excel(name = "是否启用") private String enableFlag; /** 预留字段1 */ - @Excel(name = "预留字段1") private String attr1; /** 预留字段2 */ diff --git a/ktg-mes/src/main/java/com/ktg/mes/md/domain/MdVendor.java b/ktg-mes/src/main/java/com/ktg/mes/md/domain/MdVendor.java index 3f9d9c7..62472d2 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/md/domain/MdVendor.java +++ b/ktg-mes/src/main/java/com/ktg/mes/md/domain/MdVendor.java @@ -39,15 +39,12 @@ public class MdVendor extends BaseEntity private String vendorDes; /** 供应商LOGO地址 */ - @Excel(name = "供应商LOGO地址") private String vendorLogo; /** 供应商等级 */ - @Excel(name = "供应商等级") private String vendorLevel; /** 供应商评分 */ - @Excel(name = "供应商评分") private Long vendorScore; /** 供应商地址 */ @@ -95,7 +92,6 @@ public class MdVendor extends BaseEntity private String creditCode; /** 是否启用 */ - @Excel(name = "是否启用") private String enableFlag; /** 预留字段1 */ diff --git a/ktg-mes/src/main/java/com/ktg/mes/md/service/IMdClientService.java b/ktg-mes/src/main/java/com/ktg/mes/md/service/IMdClientService.java index de5e504..3c5ca0c 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/md/service/IMdClientService.java +++ b/ktg-mes/src/main/java/com/ktg/mes/md/service/IMdClientService.java @@ -2,6 +2,7 @@ package com.ktg.mes.md.service; import java.util.List; import com.ktg.mes.md.domain.MdClient; +import com.ktg.mes.md.domain.MdVendor; /** * 客户Service接口 @@ -64,4 +65,15 @@ public interface IMdClientService * @return 结果 */ public int deleteMdClientByClientId(Long clientId); + + + /** + * 导入客户信息 + * @param clientList + * @param isUpdateSupport + * @param operName + * @return + */ + public String importClient(List clientList, Boolean isUpdateSupport, String operName); + } diff --git a/ktg-mes/src/main/java/com/ktg/mes/md/service/impl/MdClientServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/md/service/impl/MdClientServiceImpl.java index 999b9d8..35853a6 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/md/service/impl/MdClientServiceImpl.java +++ b/ktg-mes/src/main/java/com/ktg/mes/md/service/impl/MdClientServiceImpl.java @@ -3,8 +3,12 @@ package com.ktg.mes.md.service.impl; import java.util.List; import com.ktg.common.constant.UserConstants; +import com.ktg.common.exception.ServiceException; import com.ktg.common.utils.DateUtils; import com.ktg.common.utils.StringUtils; +import com.ktg.common.utils.bean.BeanValidators; +import com.ktg.mes.wm.utils.WmBarCodeUtil; +import com.ktg.system.strategy.AutoCodeUtil; import org.apache.catalina.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -12,6 +16,8 @@ import com.ktg.mes.md.mapper.MdClientMapper; import com.ktg.mes.md.domain.MdClient; import com.ktg.mes.md.service.IMdClientService; +import javax.validation.Validator; + /** * 客户Service业务层处理 * @@ -24,6 +30,15 @@ public class MdClientServiceImpl implements IMdClientService @Autowired private MdClientMapper mdClientMapper; + @Autowired + protected Validator validator; + + @Autowired + private WmBarCodeUtil barCodeUtil; + + @Autowired + private AutoCodeUtil autoCodeUtil; + /** * 查询客户 * @@ -127,4 +142,63 @@ public class MdClientServiceImpl implements IMdClientService { return mdClientMapper.deleteMdClientByClientId(clientId); } + + + /** + * 导入客户信息 + * @param clientList + * @param isUpdateSupport + * @param operName + * @return + */ + @Override + public String importClient(List clientList, Boolean isUpdateSupport, String operName) { + if (StringUtils.isNull(clientList) || clientList.size() == 0) + { + throw new ServiceException("导入客户数据不能为空!"); + } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + for (MdClient client : clientList) + { + try{ + //是否存在 + MdClient v = mdClientMapper.checkClientCodeUnique(client); + if(StringUtils.isNull(v)){ + BeanValidators.validateWithException(validator, client); + String clientCode = autoCodeUtil.genSerialCode(UserConstants.CLIENT_CODE,""); + client.setClientCode(clientCode); + this.insertMdClient(client); + barCodeUtil.generateBarCode(UserConstants.BARCODE_TYPE_CLIENT,client.getClientId(),client.getClientCode(),client.getClientName()); + successNum++; + }else if (isUpdateSupport){ + BeanValidators.validateWithException(validator, client); + client.setUpdateBy(operName); + client.setClientId(v.getClientId()); + this.updateMdClient(client); + successNum++; + }else { + failureNum++; + failureMsg.append("
" + failureNum + "、客户 " + client.getClientName() + " 已存在"); + } + + }catch (Exception e){ + failureNum++; + String msg = "
" + failureNum + "、客户 " + client.getClientName() + " 导入失败:"; + failureMsg.append(msg + e.getMessage()); + } + if (failureNum > 0) + { + failureMsg.insert(0, "导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } + else + { + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条"); + } + } + return successMsg.toString(); + } } diff --git a/ktg-mes/src/main/java/com/ktg/mes/md/service/impl/MdVendorServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/md/service/impl/MdVendorServiceImpl.java index 96101e6..1d53bfa 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/md/service/impl/MdVendorServiceImpl.java +++ b/ktg-mes/src/main/java/com/ktg/mes/md/service/impl/MdVendorServiceImpl.java @@ -8,6 +8,8 @@ import com.ktg.common.exception.ServiceException; import com.ktg.common.utils.DateUtils; import com.ktg.common.utils.StringUtils; import com.ktg.common.utils.bean.BeanValidators; +import com.ktg.mes.wm.utils.WmBarCodeUtil; +import com.ktg.system.strategy.AutoCodeUtil; import org.apache.catalina.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -32,6 +34,12 @@ public class MdVendorServiceImpl implements IMdVendorService @Autowired protected Validator validator; + @Autowired + private WmBarCodeUtil barCodeUtil; + + @Autowired + private AutoCodeUtil autoCodeUtil; + /** * 查询供应商 * @@ -103,7 +111,10 @@ public class MdVendorServiceImpl implements IMdVendorService MdVendor v = mdVendorMapper.checkVendorCodeUnique(vendor); if(StringUtils.isNull(v)){ BeanValidators.validateWithException(validator, vendor); + String vendorCode = autoCodeUtil.genSerialCode(UserConstants.VENDOR_CODE,""); + vendor.setVendorCode(vendorCode); this.insertMdVendor(vendor); + barCodeUtil.generateBarCode(UserConstants.BARCODE_TYPE_VENDOR,vendor.getVendorId(),vendor.getVendorCode(),vendor.getVendorName()); successNum++; }else if (isUpdateSupport){ BeanValidators.validateWithException(validator, vendor); @@ -128,7 +139,7 @@ public class MdVendorServiceImpl implements IMdVendorService } else { - successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条"); } } return successMsg.toString(); diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProTaskController.java b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProTaskController.java index ea78298..6c4f589 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProTaskController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProTaskController.java @@ -149,7 +149,7 @@ public class ProTaskController extends BaseController data.setWorkstation(task.getWorkstationName()); BigDecimal taskproduced = task.getQuantityProduced(); BigDecimal taskquantitiy = task.getQuantity(); - data.setProgress(taskproduced.divide(taskquantitiy,BigDecimal.ROUND_HALF_UP).floatValue()); + data.setProgress(taskproduced.divide(taskquantitiy).setScale(4,BigDecimal.ROUND_HALF_UP).floatValue()); data.setType(UserConstants.GANTT_TASK_TYPE_TASK); ganttData.add(data); } diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmBarcodeController.java b/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmBarcodeController.java index 0ec0561..67e80b7 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmBarcodeController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmBarcodeController.java @@ -11,6 +11,7 @@ import com.ktg.mes.wm.domain.WmBarcode; import com.ktg.mes.wm.service.IWmBarcodeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; @@ -106,4 +107,18 @@ public class WmBarcodeController extends BaseController { return toAjax(wmBarcodeService.deleteWmBarcodeByBarcodeIds(barcodeIds)); } + + /** + * 获取某个对象的二维码地址 + * @return + */ + @GetMapping("/getBarcodeUrl") + public AjaxResult getBarcodeUrl(WmBarcode wmBarcode){ + List list = wmBarcodeService.selectWmBarcodeList(wmBarcode); + if(!CollectionUtils.isEmpty(list)){ + return AjaxResult.success(list.get(0)); + } + return AjaxResult.success(); + } + }