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