From a962c8c1fd9da787c355a63a2e43675f21dd4f25 Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期四, 17 八月 2023 16:09:15 +0800
Subject: [PATCH] #设备导入

---
 server/src/main/java/doumeemes/dao/ext/dto/DeviceImportDTO.java                  |   50 ++++++++++++++++
 server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java |    8 ++
 server/src/main/resources/mappers/WorkorderRecordExtMapper.xml                   |    2 
 server/src/main/java/doumeemes/service/ext/impl/DeviceExtServiceImpl.java        |   36 ++++++++++++
 server/src/main/java/doumeemes/api/ext/DeviceExtController.java                  |   30 +++++++++
 server/src/main/java/doumeemes/service/ext/DeviceExtService.java                 |    7 ++
 6 files changed, 129 insertions(+), 4 deletions(-)

diff --git a/server/src/main/java/doumeemes/api/ext/DeviceExtController.java b/server/src/main/java/doumeemes/api/ext/DeviceExtController.java
index e73cb4a..5d6781e 100644
--- a/server/src/main/java/doumeemes/api/ext/DeviceExtController.java
+++ b/server/src/main/java/doumeemes/api/ext/DeviceExtController.java
@@ -17,15 +17,22 @@
 import doumeemes.service.system.SystemDataPermissionService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.multipart.commons.CommonsMultipartResolver;
+
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.Iterator;
 import java.util.List;
 
 /**
@@ -40,7 +47,7 @@
 
     @Autowired
     private DeviceExtService deviceExtService;
-    
+
     @Autowired
     private DeviceService deviceService;
 
@@ -223,4 +230,25 @@
         return ApiResponse.success(list);
     }
 
+
+    @ApiOperation(value = "鎵归噺瀵煎叆璁″垝", notes = "鎵归噺瀵煎叆璁″垝", httpMethod = "POST", position = 6)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
+    })
+    @PostMapping(value = "/importBatch", headers = "content-type=multipart/form-data")
+//    @RequiresPermissions("business:salaryparam:create")
+    public ApiResponse importBatch(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception {
+        CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
+        if (multipartResovler.isMultipart(request)) {
+            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+            Iterator<String> it = multipartRequest.getFileNames();
+            while (it.hasNext()) {
+                MultipartFile file = multipartRequest.getFile((String) it.next());
+                deviceExtService.importPlans(file);
+                break;
+            }
+        }
+        return ApiResponse.success( null);
+    }
+
 }
diff --git a/server/src/main/java/doumeemes/dao/ext/dto/DeviceImportDTO.java b/server/src/main/java/doumeemes/dao/ext/dto/DeviceImportDTO.java
new file mode 100644
index 0000000..f20cfa6
--- /dev/null
+++ b/server/src/main/java/doumeemes/dao/ext/dto/DeviceImportDTO.java
@@ -0,0 +1,50 @@
+package doumeemes.dao.ext.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author T14
+ */
+@Data
+@ApiModel("璁惧瀵煎叆淇℃伅")
+@ExcelTarget("SalaryParamImportDTO")
+public class DeviceImportDTO {
+
+
+    @Excel(name="璁惧缂栫爜",orderNum ="1")
+    private String deviceCode;
+
+    @Excel(name="璁惧鍚嶇О",orderNum ="2")
+    private String deviceName;
+
+    @Excel(name="璁惧鍨嬪彿",orderNum ="3")
+    private String model;
+
+    @Excel(name="宸ュ巶鍚嶇О",orderNum ="4")
+    private String departName;
+
+    @Excel(name="宸ュ簭鍚嶇О",orderNum ="5")
+    private String procedureName;
+
+    @Excel(name="璁惧绫诲瀷",orderNum ="6")
+    private String type;
+
+    @Excel(name="寰呯敓浜ц揣浣�",orderNum ="7")
+    private String produceWarehouseLocationName;
+
+    @Excel(name="宸插畬宸ヨ揣浣�",orderNum ="8")
+    private String finishWarehouseLocationName;
+
+    @Excel(name="鍏宠仈鍛樺伐",orderNum ="9")
+    private String userIds;
+
+    @Excel(name="宸ヤ綅缂栧彿",orderNum ="10")
+    private String stationCode;
+
+
+}
diff --git a/server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java b/server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java
index f0f2426..2233fcf 100644
--- a/server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java
@@ -117,7 +117,7 @@
 //                .set(SalaryParam::getDepartId,salaryParam.getDepartId())
 //                .set(SalaryParam::getMaterialId,salaryParam.getMaterialId())
 //                .set(SalaryParam::getProcedureId,salaryParam.getProcedureId())
-                .set(SalaryParam::getSalary,salaryParam.getSalary())
+                .set(SalaryParam::getSalary,salaryParam.getSalary().divide(new BigDecimal(100)))
                 .set(SalaryParam::getNum,salaryParam.getNum())
                 .set(SalaryParam::getTimes,salaryParam.getTimes())
                 .set(SalaryParam::getUnqualified,salaryParam.getUnqualified());
@@ -156,7 +156,11 @@
     public PageData<SalaryParamVO> findPage(PageWrap<SalaryParamDTO> pageWrap) {
         IPage<SalaryParam> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         SalaryParamDTO model = pageWrap.getModel();
-        return PageData.from(salaryParamMapper.selectPage(page, model));
+        IPage<SalaryParamVO> salaryParamVOIPage = salaryParamMapper.selectPage(page, model);
+        if (!CollectionUtils.isEmpty(salaryParamVOIPage.getRecords())){
+            salaryParamVOIPage.getRecords().forEach(s->s.setSalary(s.getSalary().divide(new BigDecimal(100))));
+        }
+        return PageData.from(salaryParamVOIPage);
     }
 
     @Override
diff --git a/server/src/main/java/doumeemes/service/ext/DeviceExtService.java b/server/src/main/java/doumeemes/service/ext/DeviceExtService.java
index 9a1ec5a..e1c476a 100644
--- a/server/src/main/java/doumeemes/service/ext/DeviceExtService.java
+++ b/server/src/main/java/doumeemes/service/ext/DeviceExtService.java
@@ -4,6 +4,7 @@
 import doumeemes.core.model.PageWrap;
 import doumeemes.dao.ext.vo.DeviceExtListVO;
 import doumeemes.dao.ext.dto.QueryDeviceExtDTO;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
@@ -28,4 +29,10 @@
     List<DeviceExtListVO> getDeviceByCondition(QueryDeviceExtDTO queryDeviceExtDTO);
 
 
+    /**
+     * 鑾峰彇鎵归噺瀵煎叆璁惧淇℃伅
+     *
+     * @param file
+     */
+    void importPlans(MultipartFile file);
 }
diff --git a/server/src/main/java/doumeemes/service/ext/impl/DeviceExtServiceImpl.java b/server/src/main/java/doumeemes/service/ext/impl/DeviceExtServiceImpl.java
index bca6cbd..e05552d 100644
--- a/server/src/main/java/doumeemes/service/ext/impl/DeviceExtServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/ext/impl/DeviceExtServiceImpl.java
@@ -6,17 +6,23 @@
 import doumeemes.core.model.PageData;
 import doumeemes.core.model.PageWrap;
 import doumeemes.core.utils.Constants;
+import doumeemes.core.utils.excel.EasyExcelUtil;
+import doumeemes.dao.ext.dto.DeviceImportDTO;
 import doumeemes.dao.ext.dto.QueryDeviceExtDTO;
 import doumeemes.dao.ext.dto.QueryUserDeviceExtDTO;
+import doumeemes.dao.ext.dto.SalaryParamImportDTO;
 import doumeemes.dao.ext.vo.DeviceExtListVO;
 import doumeemes.service.ext.DeviceExtService;
 import doumeemes.dao.ext.DeviceExtMapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import doumeemes.service.ext.UserDeviceExtService;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
@@ -84,4 +90,34 @@
         List<DeviceExtListVO> result = deviceExtMapper.getListByCondition(dto);
         return result;
     }
+
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    @Override
+    public void importPlans(MultipartFile file) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝鎮ㄦ棤鏉冮檺杩涜璇ユ搷浣滐紒");
+        }
+        //瑙f瀽excel
+        List<DeviceImportDTO> plansList = EasyExcelUtil.importExcel(file, 1, 1, DeviceImportDTO.class);
+        if(plansList == null || plansList.size()==0){
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵煎叆鏁版嵁鍐呭鏈夎锛�");
+        }
+
+        plansList.forEach(s->{
+
+            if (StringUtils.isBlank(s.getDeviceName())
+                    || s.getDeviceName().length() > 50
+                    || StringUtils.isBlank(s.getDepartName())
+                    || StringUtils.isBlank(s.getProcedureName())
+                    || StringUtils.isBlank(s.getProduceWarehouseLocationName())
+                    || StringUtils.isBlank(s.getFinishWarehouseLocationName())){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵煎叆鏁版嵁鍐呭鏈夎");
+            }
+        });
+
+
+
+
+    }
 }
diff --git a/server/src/main/resources/mappers/WorkorderRecordExtMapper.xml b/server/src/main/resources/mappers/WorkorderRecordExtMapper.xml
index 7317e66..0e802dd 100644
--- a/server/src/main/resources/mappers/WorkorderRecordExtMapper.xml
+++ b/server/src/main/resources/mappers/WorkorderRecordExtMapper.xml
@@ -481,7 +481,7 @@
     <if test="startDate != null and startDate != ''">
       AND  `CREATE_TIME` >= concat(#{startDate},' 00:00:00')
     </if>
-    <if test="endDate != null">
+    <if test="endDate != null and endDate != ''">
       AND   concat(#{endDate},' 23:59:59') >= `CREATE_TIME`
     </if>
     group by  `CREATE_USER`

--
Gitblit v1.9.3