package com.doumee.service.business.impl;
|
|
import com.doumee.core.annotation.excel.ExcelImporter;
|
import com.doumee.core.constants.ResponseStatus;
|
import com.doumee.core.exception.BusinessException;
|
import com.doumee.core.model.PageData;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.Utils;
|
import com.doumee.dao.business.InsuranceMapper;
|
import com.doumee.dao.business.WorktypeMapper;
|
import com.doumee.dao.business.dto.WorkTypeQueryDTO;
|
import com.doumee.dao.business.dto.WorktypeImport;
|
import com.doumee.dao.business.model.Worktype;
|
import com.doumee.service.business.WorktypeService;
|
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 org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* 工种信息表Service实现
|
* @author 江蹄蹄
|
* @date 2024/01/16 10:03
|
*/
|
@Service
|
public class WorktypeServiceImpl implements WorktypeService {
|
|
@Autowired
|
private WorktypeMapper worktypeMapper;
|
@Autowired
|
private InsuranceMapper insuranceMapper;
|
|
@Override
|
public Integer create(Worktype worktype) {
|
worktypeMapper.insert(worktype);
|
return worktype.getId();
|
}
|
|
@Override
|
public void deleteById(Integer id) {
|
worktypeMapper.deleteById(id);
|
}
|
|
@Override
|
public void delete(Worktype worktype) {
|
UpdateWrapper<Worktype> deleteWrapper = new UpdateWrapper<>(worktype);
|
worktypeMapper.delete(deleteWrapper);
|
}
|
|
@Override
|
public void deleteByIdInBatch(List<Integer> ids) {
|
if (CollectionUtils.isEmpty(ids)) {
|
return;
|
}
|
worktypeMapper.deleteBatchIds(ids);
|
}
|
|
@Override
|
public void updateById(Worktype worktype) {
|
worktypeMapper.updateById(worktype);
|
}
|
|
@Override
|
public void updateByIdInBatch(List<Worktype> worktypes) {
|
if (CollectionUtils.isEmpty(worktypes)) {
|
return;
|
}
|
for (Worktype worktype: worktypes) {
|
this.updateById(worktype);
|
}
|
}
|
|
@Override
|
public Worktype findById(Integer id) {
|
return worktypeMapper.selectById(id);
|
}
|
|
@Override
|
public Worktype findOne(Worktype worktype) {
|
QueryWrapper<Worktype> wrapper = new QueryWrapper<>(worktype);
|
return worktypeMapper.selectOne(wrapper);
|
}
|
|
@Override
|
public List<Worktype> findList(Worktype worktype) {
|
worktype.setIsdeleted(Constants.ZERO);
|
QueryWrapper<Worktype> wrapper = new QueryWrapper<>(worktype);
|
return worktypeMapper.selectList(wrapper);
|
}
|
|
@Override
|
public List<Worktype> findListByDTO(WorkTypeQueryDTO workTypeQueryDTO){
|
List<Worktype> list = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda()
|
.eq(Worktype::getIsdeleted,Constants.ZERO)
|
.apply(workTypeQueryDTO.getQueryType().equals(Constants.ZERO),
|
"id in ( select sw.worktype_id from solution_worktype sw where sw.SOLUTION_ID = "+workTypeQueryDTO.getId()+" )")
|
.apply(workTypeQueryDTO.getQueryType().equals(Constants.ONE),
|
"id in ( select dw.work_type_id from du_worktype dw where dw.du_solution_id = "+workTypeQueryDTO.getId()+" )")
|
.apply(workTypeQueryDTO.getQueryType().equals(Constants.TWO),
|
"id in ( select dw.WORKTYPE_ID from apply_detail dw where dw.APPLY_ID = "+workTypeQueryDTO.getId()+" )")
|
);
|
return list;
|
}
|
|
@Override
|
public PageData<Worktype> findPage(PageWrap<Worktype> pageWrap) {
|
IPage<Worktype> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
|
QueryWrapper<Worktype> queryWrapper = new QueryWrapper<>();
|
Utils.MP.blankToNull(pageWrap.getModel());
|
if (pageWrap.getModel().getId() != null) {
|
queryWrapper.lambda().eq(Worktype::getId, pageWrap.getModel().getId());
|
}
|
if (pageWrap.getModel().getCreator() != null) {
|
queryWrapper.lambda().eq(Worktype::getCreator, pageWrap.getModel().getCreator());
|
}
|
if (pageWrap.getModel().getCreateDate() != null) {
|
queryWrapper.lambda().ge(Worktype::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
|
queryWrapper.lambda().le(Worktype::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
|
}
|
if (pageWrap.getModel().getEditor() != null) {
|
queryWrapper.lambda().eq(Worktype::getEditor, pageWrap.getModel().getEditor());
|
}
|
if (pageWrap.getModel().getEditDate() != null) {
|
queryWrapper.lambda().ge(Worktype::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
|
queryWrapper.lambda().le(Worktype::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
|
}
|
if (pageWrap.getModel().getIsdeleted() != null) {
|
queryWrapper.lambda().eq(Worktype::getIsdeleted, pageWrap.getModel().getIsdeleted());
|
}
|
if (pageWrap.getModel().getName() != null) {
|
queryWrapper.lambda().eq(Worktype::getName, pageWrap.getModel().getName());
|
}
|
if (pageWrap.getModel().getRemark() != null) {
|
queryWrapper.lambda().eq(Worktype::getRemark, pageWrap.getModel().getRemark());
|
}
|
if (pageWrap.getModel().getStatus() != null) {
|
queryWrapper.lambda().eq(Worktype::getStatus, pageWrap.getModel().getStatus());
|
}
|
if (pageWrap.getModel().getSortnum() != null) {
|
queryWrapper.lambda().eq(Worktype::getSortnum, pageWrap.getModel().getSortnum());
|
}
|
if (pageWrap.getModel().getInsuranceId() != null) {
|
queryWrapper.lambda().eq(Worktype::getInsuranceId, pageWrap.getModel().getInsuranceId());
|
}
|
if (pageWrap.getModel().getVersion() != null) {
|
queryWrapper.lambda().eq(Worktype::getVersion, pageWrap.getModel().getVersion());
|
}
|
if (pageWrap.getModel().getDataType() != null) {
|
queryWrapper.lambda().eq(Worktype::getDataType, pageWrap.getModel().getDataType());
|
}
|
if (pageWrap.getModel().getBaseId() != null) {
|
queryWrapper.lambda().eq(Worktype::getBaseId, pageWrap.getModel().getBaseId());
|
}
|
for(PageWrap.SortData sortData: pageWrap.getSorts()) {
|
if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
|
queryWrapper.orderByDesc(sortData.getProperty());
|
} else {
|
queryWrapper.orderByAsc(sortData.getProperty());
|
}
|
}
|
return PageData.from(worktypeMapper.selectPage(page, queryWrapper));
|
}
|
|
@Override
|
public long count(Worktype worktype) {
|
QueryWrapper<Worktype> wrapper = new QueryWrapper<>(worktype);
|
return worktypeMapper.selectCount(wrapper);
|
}
|
@Override
|
public List<String> importBatch(MultipartFile file ){
|
/* List<Worktype> list = new ArrayList<>();
|
if(id!=null){
|
Worktype param = new Worktype();
|
param.setIsdeleted(Constants.ZERO);
|
param.setDataType(Constants.ZERO);
|
param.setInsuranceId(id);
|
list = findList(param);
|
}*/
|
ExcelImporter ie = null;
|
List<WorktypeImport> dataList =null;
|
try {
|
ie = new ExcelImporter(file,0,0);
|
dataList = ie.getDataList(WorktypeImport.class,null);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
if(dataList == null || dataList.size() ==0){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,录入数据为空!");
|
}
|
List<String> result = new ArrayList<>();
|
for(WorktypeImport model : dataList){
|
// if(StringUtils.isNotBlank(model.getName()) && !isNewWorkTypeByName(model.getName(),list)){
|
result.add(model.getName());
|
// }
|
}
|
return result;
|
}
|
|
private boolean isNewWorkTypeByName(String name, List<Worktype> list) {
|
if( list!=null && list.size()>0){
|
for(Worktype m : list){
|
if(StringUtils.equals(name,m.getName())){
|
return true;
|
}
|
}
|
}
|
return false;
|
}
|
}
|