server/src/main/java/doumeemes/api/business/SalaryParamController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/src/main/java/doumeemes/api/ext/SalaryParamExtController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/src/main/java/doumeemes/dao/business/SalaryParamMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/src/main/java/doumeemes/dao/business/vo/SalaryParamVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/src/main/java/doumeemes/dao/ext/dto/SalaryParamDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/src/main/java/doumeemes/dao/ext/dto/SalaryParamImportDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/src/main/java/doumeemes/service/business/SalaryParamService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/src/main/resources/mappers/SalaryParamMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
server/src/main/java/doumeemes/api/business/SalaryParamController.java
@@ -7,6 +7,7 @@ import doumeemes.core.model.PageWrap; import doumeemes.core.model.PageData; import doumeemes.dao.business.model.SalaryParam; import doumeemes.dao.business.vo.SalaryParamVO; import doumeemes.dao.ext.dto.SalaryParamDTO; import doumeemes.service.business.SalaryParamService; import io.swagger.annotations.Api; @@ -70,8 +71,8 @@ @ApiOperation("å页æ¥è¯¢") @PostMapping("/page") @RequiresPermissions("business:salaryparam:query") public ApiResponse<PageData<SalaryParam>> findPage (@RequestBody PageWrap<SalaryParamDTO> pageWrap) { // @RequiresPermissions("business:salaryparam:query") public ApiResponse<PageData<SalaryParamVO>> findPage (@RequestBody PageWrap<SalaryParamDTO> pageWrap) { return ApiResponse.success(salaryParamService.findPage(pageWrap)); } @@ -79,7 +80,7 @@ @PostMapping("/exportExcel") @RequiresPermissions("business:salaryparam:exportExcel") public void exportExcel (@RequestBody PageWrap<SalaryParamDTO> pageWrap, HttpServletResponse response) { ExcelExporter.build(SalaryParam.class).export(salaryParamService.findPage(pageWrap).getRecords(), "设置类-绩æå·¥èµé 置表", response); ExcelExporter.build(SalaryParamVO.class).export(salaryParamService.findPage(pageWrap).getRecords(), "设置类-绩æå·¥èµé 置表", response); } @ApiOperation("æ ¹æ®IDæ¥è¯¢") server/src/main/java/doumeemes/api/ext/SalaryParamExtController.java
@@ -7,16 +7,24 @@ import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.dao.business.model.SalaryParam; import doumeemes.dao.business.vo.SalaryParamVO; import doumeemes.dao.ext.dto.SalaryParamDTO; import doumeemes.service.business.SalaryParamService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; 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.Iterator; import java.util.List; /** @@ -71,7 +79,7 @@ @ApiOperation("å页æ¥è¯¢") @PostMapping("/page") @RequiresPermissions("business:salaryparam:query") public ApiResponse<PageData<SalaryParam>> findPage (@RequestBody PageWrap<SalaryParamDTO> pageWrap) { public ApiResponse<PageData<SalaryParamVO>> findPage (@RequestBody PageWrap<SalaryParamDTO> pageWrap) { return ApiResponse.success(salaryParamService.findPage(pageWrap)); } @@ -79,7 +87,7 @@ @PostMapping("/exportExcel") @RequiresPermissions("business:salaryparam:exportExcel") public void exportExcel (@RequestBody PageWrap<SalaryParamDTO> pageWrap, HttpServletResponse response) { ExcelExporter.build(SalaryParam.class).export(salaryParamService.findPage(pageWrap).getRecords(), "设置类-绩æå·¥èµé 置表", response); ExcelExporter.build(SalaryParamVO.class).export(salaryParamService.findPage(pageWrap).getRecords(), "设置类-绩æå·¥èµé 置表", response); } @ApiOperation("æ ¹æ®IDæ¥è¯¢") @@ -88,4 +96,24 @@ public ApiResponse findById(@PathVariable Integer id) { return ApiResponse.success(salaryParamService.findById(id)); } @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()); salaryParamService.importPlans(file); break; } } return ApiResponse.success( null); } } server/src/main/java/doumeemes/dao/business/SalaryParamMapper.java
@@ -3,7 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import doumeemes.dao.business.model.SalaryParam; import doumeemes.dao.business.vo.SalaryParamVO; import doumeemes.dao.ext.dto.SalaryParamDTO; import org.apache.ibatis.annotations.Param; /** * @author æ±è¹è¹ @@ -12,6 +14,6 @@ public interface SalaryParamMapper extends BaseMapper<SalaryParam> { IPage<SalaryParam> selectPage(IPage<SalaryParam> page, SalaryParamDTO model); IPage<SalaryParamVO> selectPage(IPage<SalaryParam> page, @Param("model") SalaryParamDTO model); } server/src/main/java/doumeemes/dao/business/vo/SalaryParamVO.java
@@ -7,6 +7,7 @@ import lombok.Data; import javax.validation.constraints.NotEmpty; import java.math.BigDecimal; import java.util.Date; @Data @ApiModel("") @@ -15,6 +16,14 @@ @ApiModelProperty(value = "主é®") private Integer id; @ApiModelProperty(value = "å建人ç¼ç ") @ExcelColumn(name="å建人ç¼ç ") private String createUserName; @ApiModelProperty(value = "å建æ¶é´") @ExcelColumn(name="å建æ¶é´") private Date createTime; @ApiModelProperty(value = "主ç»ç»ç¼ç ï¼å ³èdepartmentè¡¨æ ¹ç»ç»ï¼") @ExcelColumn(name="主ç»ç»ç¼ç ï¼å ³èdepartmentè¡¨æ ¹ç»ç»ï¼") private Integer rootDepartId; server/src/main/java/doumeemes/dao/ext/dto/SalaryParamDTO.java
@@ -18,7 +18,7 @@ @ApiModelProperty(value = "å·¥åºåç§°") private String procedureName; @ApiModelProperty(value = "计价æ¹å¼") private String type; @ApiModelProperty(value = "计价æ¹å¼ 0计件 1计æ¶") private Integer type; } server/src/main/java/doumeemes/dao/ext/dto/SalaryParamImportDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ package doumeemes.dao.ext.dto; import cn.afterturn.easypoi.excel.annotation.Excel; import io.swagger.annotations.ApiModel; import lombok.Data; import java.math.BigDecimal; /** * @author æ±è¹è¹ * @date 2022/04/20 10:56 */ @Data @ApiModel("绩æå·¥èµé ç½®å¯¼å ¥") public class SalaryParamImportDTO { @Excel(name="计价æ¹å¼",orderNum ="1") private String type; @Excel(name="å·¥ååç§°",orderNum ="2") private String departName; @Excel(name="产ååç§°",orderNum ="3") private String materialName; @Excel(name="产åç¼ç ",orderNum ="4") private String materialCode; @Excel(name="å·¥åºåç§°",orderNum ="5") private String procedureName; @Excel(name="å·¥èµåä»·(å )",orderNum ="6") private BigDecimal salary; @Excel(name="æ å产åº",orderNum ="7") private Integer NUM; @Excel(name="æ åå·¥æ¶",orderNum ="8") private String timesName; @Excel(name="ä¸è¯æ¯å¦è®¡å ¥",orderNum ="9") private String unqualified; } server/src/main/java/doumeemes/service/business/SalaryParamService.java
@@ -3,7 +3,9 @@ import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.dao.business.model.SalaryParam; import doumeemes.dao.business.vo.SalaryParamVO; import doumeemes.dao.ext.dto.SalaryParamDTO; import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -95,7 +97,7 @@ * @param pageWrap å页对象 * @return PageData<SalaryParam> */ PageData<SalaryParam> findPage(PageWrap<SalaryParamDTO> pageWrap); PageData<SalaryParamVO> findPage(PageWrap<SalaryParamDTO> pageWrap); /** * æ¡ä»¶ç»è®¡ @@ -104,4 +106,10 @@ * @return long */ long count(SalaryParam salaryParam); /** * * @param file */ void importPlans(MultipartFile file); } server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java
@@ -1,13 +1,22 @@ package doumeemes.service.business.impl; import doumeemes.core.constants.ResponseStatus; import doumeemes.core.exception.BusinessException; import doumeemes.core.model.LoginUserInfo; import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.core.utils.Constants; import doumeemes.core.utils.Utils; import doumeemes.core.utils.excel.EasyExcelUtil; import doumeemes.dao.business.DepartmentMapper; import doumeemes.dao.business.MaterialMapper; import doumeemes.dao.business.ProceduresMapper; import doumeemes.dao.business.SalaryParamMapper; import doumeemes.dao.business.model.SalaryParam; import doumeemes.dao.business.model.*; import doumeemes.dao.business.vo.SalaryParamVO; import doumeemes.dao.ext.dto.SalaryParamDTO; import doumeemes.dao.ext.dto.SalaryParamImportDTO; import doumeemes.service.business.DepartmentService; import doumeemes.service.business.SalaryParamService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -16,10 +25,14 @@ 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.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; /** * 设置类-绩æå·¥èµé 置表Serviceå®ç° @@ -31,6 +44,15 @@ @Autowired private SalaryParamMapper salaryParamMapper; @Autowired private DepartmentMapper departmentMapper; @Autowired private MaterialMapper materialMapper; @Autowired private ProceduresMapper proceduresMapper; @Override public Integer create(SalaryParam salaryParam) { @@ -127,7 +149,7 @@ } @Override public PageData<SalaryParam> findPage(PageWrap<SalaryParamDTO> pageWrap) { 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)); @@ -138,4 +160,81 @@ QueryWrapper<SalaryParam> wrapper = new QueryWrapper<>(salaryParam); return salaryParamMapper.selectCount(wrapper); } @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<SalaryParamImportDTO> plansList = EasyExcelUtil.importExcel(file, 1, 1, SalaryParamImportDTO.class); if(plansList == null || plansList.size()==0){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "å¯¼å ¥æ°æ®å 容æè¯¯ï¼"); } plansList.forEach(s->{ if (Objects.isNull(s.getType()) || Objects.isNull(s.getDepartName()) || Objects.isNull(s.getMaterialCode()) || Objects.isNull(s.getProcedureName()) || Objects.isNull(s.getNUM())){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "å¯¼å ¥æ°æ®å 容æè¯¯ï¼"); } }); for (int i = 0; i < plansList.size(); i++) { SalaryParamImportDTO salaryParamImportDTO = plansList.get(i); QueryWrapper<Department> wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(Department::getName,salaryParamImportDTO.getDepartName()) .eq(Department::getType,Constants.DEPART_TYPE.factory) .last("limit 1"); Department department = departmentMapper.selectOne(wrapper); if (Objects.isNull(department)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "å¯¼å ¥æ°æ®å 容ãå ¬å¸åç§°ãæè¯¯ï¼"); } QueryWrapper<Material> materialWrapper = new QueryWrapper<>(); materialWrapper.lambda() .eq(Material::getCode,salaryParamImportDTO.getMaterialCode()) .eq(Material::getRootDepartId,department.getRootId()) .last("limit 1"); Material material = materialMapper.selectOne(materialWrapper); if (Objects.isNull(material)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "å¯¼å ¥æ°æ®å 容ã产åç¼ç ãæè¯¯ï¼"); } if (Objects.nonNull(material) && Objects.equals(material.getName(),salaryParamImportDTO.getMaterialName())){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "å¯¼å ¥æ°æ®å 容ã产ååç§°ãæè¯¯ï¼"); } QueryWrapper<Procedures> proceduresWrapper = new QueryWrapper<>(); proceduresWrapper.lambda() .eq(Procedures::getName,salaryParamImportDTO.getProcedureName()) .eq(Procedures::getRootDepartId,department.getRootId()) .eq(Procedures::getDepartId,department.getId()) .last("limit 1"); Procedures procedures = proceduresMapper.selectOne(proceduresWrapper); if (Objects.isNull(procedures)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "å¯¼å ¥æ°æ®å 容ãå·¥åºåç§°ãæè¯¯ï¼"); } SalaryParam salaryParam = new SalaryParam(); salaryParam.setRootDepartId(department.getRootId()); salaryParam.setDepartId(department.getId()); salaryParam.setProcedureId(procedures.getId()); salaryParam.setMaterialId(material.getId()); salaryParam.setSalary(salaryParamImportDTO.getSalary()); salaryParam.setNum(salaryParamImportDTO.getNUM()); //todo // salaryParam.setTimes(); // salaryParam.setUnqualified(salaryParamImportDTO.getUnqualified() ); // salaryParam.setType(salaryParamImportDTO.getType()); create(salaryParam); } } } server/src/main/resources/mappers/SalaryParamMapper.xml
@@ -3,21 +3,24 @@ <mapper namespace="doumeemes.dao.business.SalaryParamMapper"> <select id="selectPage" resultType="doumeemes.dao.business.model.SalaryParam"> <select id="selectPage" resultType="doumeemes.dao.business.vo.SalaryParamVO"> SELECT sp.*, m.`NAME` as materialName, p.`NAME` as proceduresName m.`CODE` as materialCode, p.`NAME` as procedureName, su.REALNAME as createUserName from salary_param sp LEFT JOIN procedures p on p.ID = sp.PROCEDURE_ID LEFT JOIN material m on m.ID = bom.MATERIAL_ID <where> <if test="keyWord != null and keyWord != ''"> p`NAME` like concat('%',#{keyWord},'%') or p.`CODE` = #{keyWord}</if> <if test="procedureName != null and procedureName = ''"> and p.`NAME` like concat('%',#{procedureName},'%')</if> <if test="type != null"> and sp.`TYPE` = #{type}</if> </where> LEFT JOIN material m on m.ID = sp.MATERIAL_ID LEFT JOIN `system_user` su on su.ID = sp.CREATE_USER where sp.DELETED = 0 <if test="model.keyWord != null and model.keyWord != ''"> ( and p`NAME` like concat('%',#{model.keyWord},'%') or p.`CODE` = #{model.keyWord})</if> <if test="model.procedureName != null and model.procedureName != ''"> and p.`NAME` like concat('%',#{model.procedureName},'%')</if> <if test="model.type != null"> and sp.`TYPE` = #{model.type}</if> </select> </mapper>