jiaosong
2023-08-17 a962c8c1fd9da787c355a63a2e43675f21dd4f25
#设备导入
已添加1个文件
已修改5个文件
131 ■■■■■ 文件已修改
server/src/main/java/doumeemes/api/ext/DeviceExtController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/ext/dto/DeviceImportDTO.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/DeviceExtService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/impl/DeviceExtServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/mappers/WorkorderRecordExtMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
/**
@@ -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);
    }
}
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;
}
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
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);
}
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(), "对不起,您无权限进行该操作!");
        }
        //解析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(),"导入数据内容有误");
            }
        });
    }
}
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`