|
@@ -1,11 +1,34 @@
|
|
|
package com.management.platform.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.management.platform.entity.CompanyDingding;
|
|
|
import com.management.platform.entity.Device;
|
|
|
+import com.management.platform.entity.User;
|
|
|
+import com.management.platform.entity.WxCorpInfo;
|
|
|
+import com.management.platform.mapper.CompanyDingdingMapper;
|
|
|
import com.management.platform.mapper.DeviceMapper;
|
|
|
+import com.management.platform.mapper.UserMapper;
|
|
|
+import com.management.platform.mapper.WxCorpInfoMapper;
|
|
|
import com.management.platform.service.DeviceService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.management.platform.service.ExcelExportService;
|
|
|
+import com.management.platform.util.HttpRespMsg;
|
|
|
+import com.management.platform.util.MessageUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
* 服务实现类
|
|
@@ -16,5 +39,170 @@ import org.springframework.stereotype.Service;
|
|
|
*/
|
|
|
@Service
|
|
|
public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> implements DeviceService {
|
|
|
+ @Resource
|
|
|
+ private UserMapper userMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private DeviceMapper deviceMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private WxCorpInfoMapper wxCorpInfoMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private CompanyDingdingMapper companyDingdingMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ ExcelExportService excelExportService;
|
|
|
+
|
|
|
+ @Value(value = "${upload.path}")
|
|
|
+ private String path;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg getDevicePage(HttpServletRequest request, Integer pageIndex, Integer pageSize, String deviceCode, String deviceName) {
|
|
|
+ HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
+ String token = request.getHeader("token");
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
+ Page page = new Page(pageIndex, pageSize);
|
|
|
+ QueryWrapper<Device> wrapper = new QueryWrapper<>();
|
|
|
+ wrapper.eq("company_id", user.getCompanyId());
|
|
|
+ if (StringUtils.isNotEmpty(deviceCode)){
|
|
|
+ wrapper.like("device_code", deviceCode);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(deviceName)){
|
|
|
+ wrapper.like("device_name", deviceName);
|
|
|
+ }
|
|
|
+ IPage iPageResult = deviceMapper.selectPage(page, wrapper);
|
|
|
+ HashMap<String, Object> hashMap = new HashMap<>();
|
|
|
+ hashMap.put("total", iPageResult.getTotal());
|
|
|
+ hashMap.put("data", iPageResult.getRecords());
|
|
|
+ httpRespMsg.setData(hashMap);
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg updateOrInsert(HttpServletRequest request, Integer id, String deviceCode,
|
|
|
+ String deviceName, String deviceModel, String manufacturer, LocalDate purchaseDate, LocalDate maintenanceDate) {
|
|
|
+ HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
+ String token = request.getHeader("token");
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
+ if (id==null){
|
|
|
+ if (StringUtils.isNotEmpty(deviceCode)){
|
|
|
+ int count=deviceMapper.selectCount(new QueryWrapper<Device>().eq("device_code", deviceCode));
|
|
|
+ if (count>0){
|
|
|
+ httpRespMsg.setError("设备编码重复");
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ if (StringUtils.isNotEmpty(deviceCode)){
|
|
|
+ int count=deviceMapper.selectCount(new QueryWrapper<Device>().eq("device_code", deviceCode).ne("id", id));
|
|
|
+ if (count>0){
|
|
|
+ httpRespMsg.setError("设备编码重复");
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (id==null){
|
|
|
+ Device device = new Device();
|
|
|
+ device.setDeviceCode(deviceCode);
|
|
|
+ device.setDeviceName(deviceName);
|
|
|
+ device.setDeviceModel(deviceModel);
|
|
|
+ device.setManufacturer(manufacturer);
|
|
|
+ device.setPurchaseDate(purchaseDate);
|
|
|
+ device.setMaintenanceDate(maintenanceDate);
|
|
|
+ device.setCompanyId(user.getCompanyId());
|
|
|
+ deviceMapper.insert(device);
|
|
|
+ }else {
|
|
|
+ UpdateWrapper<Device> updateWrapper = new UpdateWrapper<>();
|
|
|
+ updateWrapper.eq("id", id)
|
|
|
+ .set(StringUtils.isNotEmpty(deviceCode),"device_code", deviceCode)
|
|
|
+ .set(StringUtils.isNotEmpty(deviceName),"device_name", deviceName)
|
|
|
+ .set(StringUtils.isNotEmpty(deviceModel),"device_Model", deviceModel)
|
|
|
+ .set(StringUtils.isNotEmpty(manufacturer),"manufacturer", manufacturer)
|
|
|
+ .set(purchaseDate!=null,"purchase_date", purchaseDate)
|
|
|
+ .set(maintenanceDate!=null,"maintenance_date", maintenanceDate);
|
|
|
+ deviceMapper.update(null, updateWrapper);
|
|
|
+ }
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg delete(HttpServletRequest request, Device device) {
|
|
|
+ HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
+ String token = request.getHeader("token");
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
+ if (device.getId()==null){
|
|
|
+ httpRespMsg.setError("请传递关键信息");
|
|
|
+ return httpRespMsg;
|
|
|
+ }else {
|
|
|
+ deviceMapper.delete(new QueryWrapper<Device>().eq("id", device.getId()).eq("company_id", user.getCompanyId()));
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg getDeviceDetail(HttpServletRequest request, Device device) {
|
|
|
+ HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
+ String token = request.getHeader("token");
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
+ if (device.getId()==null){
|
|
|
+ httpRespMsg.setError("请传递关键信息");
|
|
|
+ return httpRespMsg;
|
|
|
+ }else {
|
|
|
+ Device one = deviceMapper.selectOne(new QueryWrapper<Device>().eq("id", device.getId()).eq("company_id", user.getCompanyId()));
|
|
|
+ httpRespMsg.setData(one);
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg exportDevice(HttpServletRequest request, String deviceCode, String deviceName) {
|
|
|
+ HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
+ String token = request.getHeader("token");
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
+ WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
|
|
|
+ CompanyDingding dingding = companyDingdingMapper.selectOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
|
|
|
+ QueryWrapper<Device> wrapper = new QueryWrapper<>();
|
|
|
+ wrapper.eq("company_id", user.getCompanyId());
|
|
|
+ if (StringUtils.isNotEmpty(deviceCode)){
|
|
|
+ wrapper.like("device_code", deviceCode);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(deviceName)){
|
|
|
+ wrapper.like("device_name", deviceName);
|
|
|
+ }
|
|
|
+ List<Device> deviceList = deviceMapper.selectList(wrapper);
|
|
|
+
|
|
|
+ List<String> headList = new ArrayList<String>();
|
|
|
+ headList.add("序号");
|
|
|
+ headList.add("设备编号");
|
|
|
+ headList.add("设备名称");
|
|
|
+ headList.add("设备型号");
|
|
|
+ headList.add("制造商");
|
|
|
+ headList.add("购置日期");
|
|
|
+ headList.add("维保日期");
|
|
|
+
|
|
|
+ List<List<String>> allList = new ArrayList<>();
|
|
|
+ allList.add(headList);
|
|
|
|
|
|
+ if (!deviceList.isEmpty()){
|
|
|
+ for (int i = 0; i < deviceList.size(); i++) {
|
|
|
+ ArrayList<String> list = new ArrayList<>();
|
|
|
+ list.add((i+1)+"");
|
|
|
+ list.add(StringUtils.isEmpty(deviceList.get(i).getDeviceCode())?"":deviceList.get(i).getDeviceCode());
|
|
|
+ list.add(StringUtils.isEmpty(deviceList.get(i).getDeviceName())?"":deviceList.get(i).getDeviceName());
|
|
|
+ list.add(StringUtils.isEmpty(deviceList.get(i).getDeviceModel())?"":deviceList.get(i).getDeviceModel());
|
|
|
+ list.add(StringUtils.isEmpty(deviceList.get(i).getManufacturer())?"":deviceList.get(i).getManufacturer());
|
|
|
+ list.add(deviceList.get(i).getPurchaseDate()==null?"": deviceList.get(i).getPurchaseDate().toString());
|
|
|
+ list.add(deviceList.get(i).getMaintenanceDate()==null?"": deviceList.get(i).getMaintenanceDate().toString());
|
|
|
+ allList.add(list);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,dingding,"设备信息表",allList,path);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ httpRespMsg.setError(e.getMessage());
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|