zss
2024-05-30 a26151eff700b514ca92b0ac9207200b866071fc
工时统计+权限+异步处理method+检验样品结果判断
已修改20个文件
已添加17个文件
1717 ■■■■■ 文件已修改
cnas-server/src/main/java/com/yuanchu/mom/pojo/StandardMethod.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/StandardProductList.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryCorrectionHoursController.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOriginalHoursController.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOutputWorkingHoursController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryCorrectionHoursDto.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursLookDto.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOutputWorkingHoursDto.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryWorkingHoursDayDto.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/excel/AuxiliaryCorrectionHoursListener.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryCorrectionHoursMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOriginalHoursMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOutputWorkingHoursMapper.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryWorkingHoursDayMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryCorrectionHours.java 221 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryWorkingHoursDay.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryCorrectionHoursService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOriginalHoursService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOutputWorkingHoursService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryCorrectionHoursServiceImpl.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/utils/StyleYearUtils.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/resources/mapper/AuxiliaryCorrectionHoursMapper.xml 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml 114 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/resources/mapper/AuxiliaryWorkingHoursDayMapper.xml 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/StandardMethod.java
@@ -77,10 +77,12 @@
    @ValueTableShow(7)
    @ApiModelProperty(value = "创建人")
    @TableField(exist = false,select = false)
    private String createUserName;
    @ValueTableShow(9)
    @ApiModelProperty(value = "更新人")
    @TableField(exist = false,select = false)
    private String updateUserName;
    @ValueTableShow(8)
cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java
@@ -9,8 +9,14 @@
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
import com.yuanchu.mom.mapper.StandardMethodMapper;
import com.yuanchu.mom.mapper.StandardProductListMapper;
import com.yuanchu.mom.mapper.StructureItemParameterMapper;
import com.yuanchu.mom.pojo.StandardMethod;
import com.yuanchu.mom.pojo.StandardProductList;
import com.yuanchu.mom.pojo.StructureItemParameter;
import com.yuanchu.mom.service.StandardMethodService;
import com.yuanchu.mom.service.StandardProductListService;
import com.yuanchu.mom.service.StructureItemParameterService;
import com.yuanchu.mom.utils.QueryWrappers;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@@ -19,34 +25,41 @@
import java.io.IOException;
import java.util.*;
import java.util.concurrent.CompletableFuture;
/**
* @author Administrator
* @description é’ˆå¯¹è¡¨ã€standard_method(标准方法)】的数据库操作Service实现
* @createDate 2024-03-03 19:21:41
*/
 * @author Administrator
 * @description é’ˆå¯¹è¡¨ã€standard_method(标准方法)】的数据库操作Service实现
 * @createDate 2024-03-03 19:21:41
 */
@Service
@AllArgsConstructor
public class StandardMethodServiceImpl extends ServiceImpl<StandardMethodMapper, StandardMethod>
    implements StandardMethodService{
        implements StandardMethodService {
    private GetLook getLook;
    private StandardMethodMapper standardMethodMapper;
    StandardProductListMapper standardProductListMapper;
    StandardProductListService standardProductListService;
    StructureItemParameterMapper structureItemParameterMapper;
    StructureItemParameterService structureItemParameterService;
    @Override
    public Map<String, Object> selectStandardMethodList(Page page, StandardMethod standardMethod) {
        Map<String, Object> map = new HashMap<>();
        map.put("head", PrintChina.printChina(StandardMethod.class));
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectStandardMethodList");
        if(map1.get("look")==1) standardMethod.setCreateUser(map1.get("userId"));
        if (map1.get("look") == 1) standardMethod.setCreateUser(map1.get("userId"));
        map.put("body", standardMethodMapper.selectStandardMethodList(page, QueryWrappers.queryWrappers(standardMethod)));
        return map;
    }
    @Override
    public List<StandardMethod> selectStandardMethods() {
        return standardMethodMapper.selectList(Wrappers.<StandardMethod>lambdaQuery().select(StandardMethod::getId,StandardMethod::getCode,StandardMethod::getName).ne(StandardMethod::getId, 0));
        return standardMethodMapper.selectList(Wrappers.<StandardMethod>lambdaQuery().select(StandardMethod::getId, StandardMethod::getCode, StandardMethod::getName).ne(StandardMethod::getId, 0));
    }
    @Override
@@ -63,8 +76,63 @@
    @Override
    public int upStandardMethod(StandardMethod standardMethod) {
        StandardMethod oldStandardMethod = standardMethodMapper.selectById(standardMethod.getId());
        if (!oldStandardMethod.getCode().equals(standardMethod.getCode())) {
            CompletableFuture.supplyAsync(() -> replaceMethod(oldStandardMethod.getCode(), standardMethod.getCode()));
        }
        int i = standardMethodMapper.updateById(standardMethod);
        return i;
    }
    //编辑method后全部替换
    public String replaceMethod(String oldCode, String code) {
        //查询StandardProductList中所有Method如果包含之前的则替换
        List<StandardProductList> standardProductLists = standardProductListMapper.selectList(null);
        for (StandardProductList standardProductList : standardProductLists) {
            if (standardProductList.getMethod().contains(oldCode)) {
                String[] split = standardProductList.getMethod().split(",");
                String a = null;
                for (int i = 0; i < split.length; i++) {
                    String methodName = split[i].substring(1, split[i].length() - 1);
                    if (i == 0) {
                        methodName = split[i].substring(2, split[i].length() - 1);
                    } else if (i == split.length - 1) {
                        methodName = split[i].substring(1, split[i].length() - 2);
                    }
                    if (methodName.equals(oldCode)) {
                        methodName = code;
                    }
                    a += "\"" + methodName + "\",";
                }
                String method = "[\"" + a.substring(0, a.length() - 1) + "\"]";
                standardProductList.setMethod(method);
            }
        }
        standardProductListService.updateBatchById(standardProductLists);
        //查询StructureItemParameter中所有Method如果包含之前的则替换
        List<StructureItemParameter> structureItemParameters = structureItemParameterMapper.selectList(null);
        for (StructureItemParameter structureItemParameter : structureItemParameters) {
            if (structureItemParameter.getMethod().contains(oldCode)) {
                String[] split = structureItemParameter.getMethod().split(",");
                String a = null;
                for (int i = 0; i < split.length; i++) {
                    String methodName = split[i].substring(1, split[i].length() - 1);
                    if (i == 0) {
                        methodName = split[i].substring(2, split[i].length() - 1);
                    } else if (i == split.length - 1) {
                        methodName = split[i].substring(1, split[i].length() - 2);
                    }
                    if (methodName.equals(oldCode)) {
                        methodName = code;
                    }
                    a += "\"" + methodName + "\",";
                }
                String method = "[\"" + a.substring(0, a.length() - 1) + "\"]";
                structureItemParameter.setMethod(method);
            }
        }
        structureItemParameterService.updateBatchById(structureItemParameters);
        return "替换完毕!";
    }
    @Transactional(rollbackFor = Exception.class)
@@ -94,7 +162,7 @@
        standardMethod.setField(list.get(1).toString());
        // é€ æ ¼å¼
        List<List<Object>> structureTestObjectId = new ArrayList<>();
        if (ObjectUtils.isEmpty(list.get(3))){
        if (ObjectUtils.isEmpty(list.get(3))) {
            structureTestObjectId.add(Arrays.asList(list.get(2)));
        } else {
            structureTestObjectId.add(Arrays.asList(list.get(2), list.get(3)));
framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java
@@ -59,8 +59,8 @@
    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(fiferConfig).addPathPatterns("/**");
        registry.addInterceptor(powerConfig).addPathPatterns("/**");
//        registry.addInterceptor(fiferConfig).addPathPatterns("/**");
//        registry.addInterceptor(powerConfig).addPathPatterns("/**");
        registry.addInterceptor(logConfig).addPathPatterns("/**");
        super.addInterceptors(registry);
    }
inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
@@ -49,6 +49,14 @@
        SampleOrderDto sampleOrderDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), SampleOrderDto.class);
        return Result.success(insOrderService.selectInsOrderParameter(page, sampleOrderDto));
    }
    @ValueClassify("检验下单")
    @ApiOperation(value = "是否全部查询")
    @PostMapping("/selectAllInsOrder")
    public Result selectAllInsOrder(){
        return Result.success();
    }
    @ValueClassify("检验下单")
    @ApiOperation(value = "检验分配")
    @PostMapping("/upInsOrder")
inspect-server/src/main/java/com/yuanchu/mom/pojo/StandardProductList.java
@@ -181,5 +181,6 @@
    private String tree;
    @TableField(exist = false,select = false)
    private Integer structureItemParameterId;
}
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -10,6 +10,7 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -266,7 +267,7 @@
                InsOrder insOrder = insOrderMapper.selectById(insSampleMapper.selectById(insProduct.getInsSampleId()).getInsOrderId());
                //校验如果这个人这个检测项目已经添加过了则不需要再新增
                Long count = auxiliaryOutputWorkingHoursMapper.selectCount(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
                        .eq(AuxiliaryOutputWorkingHours::getCheck, userMapper.selectById(userId).getName())
                        .eq(AuxiliaryOutputWorkingHours::getCheck, userId)
                        .eq(AuxiliaryOutputWorkingHours::getInspectProject, insProduct.getInspectionItemSubclass() + insProduct.getInspectionItem())
                        .eq(AuxiliaryOutputWorkingHours::getOrderNo, insOrder.getEntrustCode()));
                if (count == 0) {
@@ -278,14 +279,14 @@
                    auxiliaryOutputWorkingHours.setAmount(1);//非加班数量
                    auxiliaryOutputWorkingHours.setOutputWorkTime(insProduct.getManHour());//产量工时
                    auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//工时分组
                    auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now());//日期
                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
                    DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                    auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().format(formatter));//日期
                    LocalDateTime localDateTime = LocalDateTime.now();
                    DateTime parse = DateUtil.parse(localDateTime.format(formatter));
                    auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//星期
                    auxiliaryOutputWorkingHours.setWeek(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1)));//周次
                    auxiliaryOutputWorkingHours.setCheck(userMapper.selectById(userId).getName());//检测人
                    auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//周次
                    auxiliaryOutputWorkingHours.setCheck(userId);//检测人
                    auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours);
                }
@@ -344,6 +345,18 @@
        List<InsOrderState> insOrderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, orderId));
        long count = insOrderStates.stream().filter(a -> a.getInsState() == 5).count();
        if (count == insOrderStates.size() && num == 5) {
            /*样品下的项目只要有一个项目不合格则检验结果为0,否则为1*/
            List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId));
            for (InsSample insSample : insSamples) {
                List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, insSample.getId()).eq(InsProduct::getState, 1));
                List<Integer> results = insProducts.stream().map(InsProduct::getInsResult).filter(str -> str != null).collect(Collectors.toList());
                if (results.contains(0)) {
                    insSample.setInsResult(0);
                } else {
                    insSample.setInsResult(1);
                }
                insSampleMapper.updateById(insSample);
            }
            InsOrder insOrder = insOrderMapper.selectById(orderId);
            Map<String, String> user = insProductMapper.selectUserById(insOrder.getUserId());
            List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId(orderId);
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
@@ -3,6 +3,7 @@
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -53,17 +54,32 @@
    private InsSampleUserMapper insSampleUserMapper;
    private InsOrderStateMapper insOrderStateMapper;
    UserMapper userMapper;
    PowerMapper powerMapper;
    //获取检验下单数据
    @Override
    public Map<String, Object> selectInsOrderParameter(IPage<InsOrder> page, SampleOrderDto sampleOrderDto) {
        //判断全部,个人,组织的权限
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectInsOrderParameter");
        User user = userMapper.selectById(map1.get("userId"));
        Integer roleId = user.getRoleId();
        //判断是否是全部权限
        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "selectAllInsOrder"));
        if (ObjectUtils.isEmpty(power)) {
            if (map1.get("look") == 1) {
                //个人
                sampleOrderDto.setCreateUser(map1.get("userId"));
            }else {
                //组织
                sampleOrderDto.setCompany(user.getCompany());
            }
        }
        Map<String, Object> map = new HashMap<>();
        map.put("head", PrintChina.printChina(SampleOrderDto.class));
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectInsOrderParameter");
        if (map1.get("look") == 1) sampleOrderDto.setCreateUser(map1.get("userId"));
        map.put("body", insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto)));
        return map;
    }
@@ -77,20 +93,20 @@
        insOrder.setSendTime(LocalDateTime.now());
        insOrderMapper.updateById(insOrder);
        List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId));
        List<Integer> ids = insSamples.stream().map(a-> a.getId()).collect(Collectors.toList());
        List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList());
        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().in(InsProduct::getInsSampleId, ids).eq(InsProduct::getState, 1).select(InsProduct::getSonLaboratory).groupBy(InsProduct::getSonLaboratory));
        for (InsProduct insProduct : insProducts) {
            InsOrderState insOrderState = new InsOrderState();
            insOrderState.setInsOrderId(orderId);
            try {
                insOrderState.setLaboratory(insProduct.getSonLaboratory());
            }catch (NullPointerException e){
            } catch (NullPointerException e) {
                throw new ErrorException("该检验单有未维护实验室的检验项目");
            }
            insOrderState.setInsState(0);
            insOrderStateMapper.insert(insOrderState);
        }
        if(userId!=null){
        if (userId != null) {
            InsSampleUser insSampleUser = new InsSampleUser();
            insSampleUser.setState(0);
            insSampleUser.setUserId(userId);
@@ -110,7 +126,7 @@
        list.forEach(a -> {
            a.setId(null);
            a.setInsOrderId(insOrder.getId());
            if(StrUtil.isEmpty(a.getSampleCode())){
            if (StrUtil.isEmpty(a.getSampleCode())) {
                a.setSampleCode(giveCode.giveCode("", "ins_sample", "", "yyMMdd"));
            }
            insSampleMapper.insert(a);
@@ -122,7 +138,7 @@
                    product.setUpdateTime(null);
                    product.setUpdateUser(null);
                    product.setInsSampleId(a.getId());
                    if(product.getInspectionItemSubclass() == null){
                    if (product.getInspectionItemSubclass() == null) {
                        product.setInspectionItemSubclass("");
                    }
                    insProductMapper.insert(product);
@@ -175,9 +191,10 @@
        map.put("head", PrintChina.printChina(CostStatisticsDto.class));
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("costStatistics");
        if (map1.get("look") == 1) costStatisticsDto.setCreateUser(map1.get("userId"));
        map.put("body", insOrderMapper.selectCostStatistics(page, QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1]+" 23:59:59")));
        map.put("body", insOrderMapper.selectCostStatistics(page, QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59")));
        return map;
    }
    @Override
    public Map<String, Object> selectSampleDefects(Page page, String inspectionItems, String orderNumber) {
        List<SampleDefectsFatherVo> sampleDefectsFatherVos = insOrderMapper.selectSampleDefects(page, inspectionItems, orderNumber);
@@ -190,7 +207,7 @@
    @Override
    public int updateStatus(Integer id) {
   return  insOrderMapper.updateStatus(id);
        return insOrderMapper.updateStatus(id);
    }
}
performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryCorrectionHoursController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
package com.yuanchu.mom.controller;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
import com.yuanchu.mom.excel.AuxiliaryCorrectionHoursListener;
import com.yuanchu.mom.service.AuxiliaryCorrectionHoursService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.Map;
/**
 * <p>
 * å·¥æ—¶ç»Ÿè®¡çš„修正工时 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-05-29 02:38:19
 */
@Api(tags = "工时统计-修正工时")
@AllArgsConstructor
@RestController
@RequestMapping("/auxiliaryCorrectionHours")
public class AuxiliaryCorrectionHoursController {
    @Resource
    AuxiliaryCorrectionHoursService auxiliaryCorrectionHoursService;
    @ValueClassify("工时管理")
    @ApiOperation(value = "查询修正工时")
    @PostMapping("/selectAuxiliaryCorrectionHours")
    public Result selectAuxiliaryCorrectionHours(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        AuxiliaryCorrectionHoursDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryCorrectionHoursDto.class);
        return Result.success(auxiliaryCorrectionHoursService.selectAuxiliaryCorrectionHours(page, entity));
    }
    /**
     * excel上传
     *
     * @return
     */
    @ValueClassify("工时管理")
    @ApiOperation(value = "导入")
    @PostMapping("/upload")
    public Result upload(@RequestParam("file") MultipartFile file) {
        try {
            EasyExcel.read(file.getInputStream(), AuxiliaryCorrectionHoursDto.class, new AuxiliaryCorrectionHoursListener(auxiliaryCorrectionHoursService)).sheet().doRead();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return Result.success();
    }
}
performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOriginalHoursController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
import com.yuanchu.mom.dto.AuxiliaryOriginalHoursDto;
import com.yuanchu.mom.dto.AuxiliaryOriginalHoursLookDto;
import com.yuanchu.mom.service.AuxiliaryOriginalHoursService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Map;
@Api(tags = "工时统计-原始工时")
@AllArgsConstructor
@RestController
@RequestMapping("/auxiliaryOriginalHours")
public class AuxiliaryOriginalHoursController {
    @Resource
    AuxiliaryOriginalHoursService auxiliaryOriginalHoursService;
    @ValueClassify("工时管理")
    @ApiOperation(value = "查询原始工时")
    @PostMapping("/selectAuxiliaryOriginalHours")
    public Result selectAuxiliaryOriginalHours(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        AuxiliaryOriginalHoursLookDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryOriginalHoursLookDto.class);
        return Result.success(auxiliaryOriginalHoursService.selectAuxiliaryOriginalHours(page, entity));
    }
}
performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOutputWorkingHoursController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
import com.yuanchu.mom.service.AuxiliaryOutputWorkingHoursService;
@@ -17,6 +18,8 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
/**
@@ -41,8 +44,30 @@
    @PostMapping("/selectAuxiliaryOutputWorkingHours")
    public Result selectAuxiliaryOutputWorkingHours(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        AuxiliaryOutputWorkingHours entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryOutputWorkingHours.class);
        AuxiliaryOutputWorkingHoursDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryOutputWorkingHoursDto.class);
        return Result.success(auxiliaryOutputWorkingHoursService.selectAuxiliaryOutputWorkingHours(page, entity));
    }
    @ValueClassify("工时管理")
    @ApiOperation(value = "统计产量工时汇总和辅助工时汇总")
    @PostMapping("/collectWorkingHours")
    public Result collectWorkingHours(){
      return Result.success(auxiliaryOutputWorkingHoursService.collectWorkingHours());
    }
    @ValueClassify("工时管理")
    @ApiOperation(value = "导出")
    @PostMapping("/exportWorkingHours")
    public void exportWorkingHours(HttpServletResponse response) throws IOException {
        auxiliaryOutputWorkingHoursService.exportWorkingHours(response);
    }
    @ValueClassify("工时管理")
    @ApiOperation(value = "组长权限")
    @PostMapping("/leader")
    public Result leader() {
        return Result.success();
    }
}
performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHours;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
import com.yuanchu.mom.service.AuxiliaryWorkingHoursDayService;
@@ -10,6 +11,7 @@
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import jdk.nashorn.internal.ir.annotations.Ignore;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -42,7 +44,7 @@
    @PostMapping("/selectAuxiliaryWorkingHoursDay")
    public Result selectAuxiliaryWorkingHoursDay(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        AuxiliaryWorkingHoursDay entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryWorkingHoursDay.class);
        AuxiliaryWorkingHoursDayDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryWorkingHoursDayDto.class);
        return Result.success(auxiliaryWorkingHoursDayService.selectAuxiliaryWorkingHoursDay(page, entity));
    }
@@ -68,13 +70,20 @@
    }
    @ValueClassify("工时管理")
    @ApiOperation(value = "审核/批准")
    @PostMapping("/checkOrApprove")
    public Result checkOrApprove(Integer id, String state) {
    @ApiOperation(value = "批准")
    @PostMapping("/approve")
    public Result approve(Integer id, String state) {
        return Result.success(auxiliaryWorkingHoursDayService.checkOrApprove(id,state));
    }
    @ValueClassify("工时管理")
    @ApiOperation(value = "审核")
    @PostMapping("/check")
    public Result check(@RequestBody AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay ) {
        return Result.success(auxiliaryWorkingHoursDayService.updateAuxiliaryWorkingHoursDay(auxiliaryWorkingHoursDay));
    }
    @ValueClassify("工时管理")
    @ApiOperation(value = "编辑")
    @PostMapping("/updateAuxiliaryWorkingHoursDay")
    public Result updateAuxiliaryWorkingHoursDay(@RequestBody AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) {
performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryCorrectionHoursDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yuanchu.mom.annotation.ValueTableShow;
import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class AuxiliaryCorrectionHoursDto extends AuxiliaryCorrectionHours {
    @ApiModelProperty("姓名")
    @ValueTableShow(2)
    @ExcelProperty(value = "姓名")
    private String name;
}
performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,182 @@
package com.yuanchu.mom.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yuanchu.mom.annotation.ValueTableShow;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
//原始工时
public class AuxiliaryOriginalHoursDto {
    @ApiModelProperty("姓名")
    @ValueTableShow(2)
    @ExcelProperty(value = "姓名")
    private String name;
    @ApiModelProperty("类型")
    @ValueTableShow(3)
    @ExcelProperty(value = "类型")
    private String type;
    @ApiModelProperty("1日工时")
    @ValueTableShow(4)
    @ExcelProperty(value = "1日")
    private Double oneHours;
    @ApiModelProperty("2日工时")
    @ValueTableShow(5)
    @ExcelProperty(value = "2日")
    private Double twoHours;
    @ApiModelProperty("3日工时")
    @ValueTableShow(6)
    @ExcelProperty(value = "3日")
    private Double threeHours;
    @ApiModelProperty("4日工时")
    @ValueTableShow(7)
    @ExcelProperty(value = "4日")
    private Double fourHours;
    @ApiModelProperty("5日工时")
    @ValueTableShow(8)
    @ExcelProperty(value = "5日")
    private Double fiveHours;
    @ApiModelProperty("6日工时")
    @ValueTableShow(9)
    @ExcelProperty(value = "6日")
    private Double sixHours;
    @ApiModelProperty("7日工时")
    @ValueTableShow(10)
    @ExcelProperty(value = "7日")
    private Double sevenHours;
    @ApiModelProperty("8日工时")
    @ValueTableShow(11)
    @ExcelProperty(value = "8日")
    private Double eightHours;
    @ApiModelProperty("9日工时")
    @ValueTableShow(12)
    @ExcelProperty(value = "9日")
    private Double nineHours;
    @ApiModelProperty("10日工时")
    @ValueTableShow(13)
    @ExcelProperty(value = "10日")
    private Double tenHours;
    @ApiModelProperty("11日工时")
    @ValueTableShow(14)
    @ExcelProperty(value = "11日")
    private Double elevenHours;
    @ApiModelProperty("12日工时")
    @ValueTableShow(15)
    @ExcelProperty(value = "12日")
    private Double twelveHours;
    @ApiModelProperty("13日工时")
    @ValueTableShow(16)
    @ExcelProperty(value = "13日")
    private Double thirteenHours;
    @ApiModelProperty("14日工时")
    @ValueTableShow(17)
    @ExcelProperty(value = "14日")
    private Double fourteenHours;
    @ApiModelProperty("15日工时")
    @ValueTableShow(18)
    @ExcelProperty(value = "15日")
    private Double fifteenHours;
    @ApiModelProperty("16日工时")
    @ValueTableShow(19)
    @ExcelProperty(value = "16日")
    private Double sixteenHours;
    @ApiModelProperty("17日工时")
    @ValueTableShow(20)
    @ExcelProperty(value = "17日")
    private Double seventeenHours;
    @ApiModelProperty("18日工时")
    @ValueTableShow(21)
    @ExcelProperty(value = "18日")
    private Double eighteenHours;
    @ApiModelProperty("19日工时")
    @ValueTableShow(22)
    @ExcelProperty(value = "19日")
    private Double nineteenHours;
    @ApiModelProperty("20日工时")
    @ValueTableShow(23)
    @ExcelProperty(value = "20日")
    private Double twentyHours;
    @ApiModelProperty("21日工时")
    @ValueTableShow(24)
    @ExcelProperty(value = "21日")
    private Double twentyOneHours;
    @ApiModelProperty("22日工时")
    @ValueTableShow(25)
    @ExcelProperty(value = "22日")
    private Double twentyTwoHours;
    @ApiModelProperty("23日工时")
    @ValueTableShow(26)
    @ExcelProperty(value = "23日")
    private Double twentyThreeHours;
    @ApiModelProperty("24日工时")
    @ValueTableShow(27)
    @ExcelProperty(value = "24日")
    private Double twentyFourHours;
    @ApiModelProperty("25日工时")
    @ValueTableShow(28)
    @ExcelProperty(value = "25日")
    private Double twentyFiveHours;
    @ApiModelProperty("26日工时")
    @ValueTableShow(29)
    @ExcelProperty(value = "26日")
    private Double twentySixHours;
    @ApiModelProperty("27日工时")
    @ValueTableShow(30)
    @ExcelProperty(value = "27日")
    private Double twentySevenHours;
    @ApiModelProperty("28日工时")
    @ValueTableShow(31)
    @ExcelProperty(value = "28日")
    private Double twentyEightHours;
    @ApiModelProperty("29日工时")
    @ValueTableShow(32)
    @ExcelProperty(value = "29日")
    private Double twentyNineHours;
    @ApiModelProperty("30日工时")
    @ValueTableShow(33)
    @ExcelProperty(value = "30日")
    private Double thirtyHours;
    @ApiModelProperty("31日工时")
    @ValueTableShow(34)
    @ExcelProperty(value = "31日")
    private Double thirtyOneHours;
    @ApiModelProperty("月份")
    @ValueTableShow(35)
    @ExcelProperty(value = "月份")
    private LocalDateTime month;
}
performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursLookDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.yuanchu.mom.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
@Data
//原始工时统计的查询条件
public class AuxiliaryOriginalHoursLookDto {
    @NotNull
    private LocalDateTime startTime;//月初
    @NotNull
    private LocalDateTime endTime;//月末
    private Integer userId;
    private Integer departId;
}
performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOutputWorkingHoursDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yuanchu.mom.annotation.ValueTableShow;
import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class AuxiliaryOutputWorkingHoursDto extends AuxiliaryOutputWorkingHours  {
    @ApiModelProperty("检测人")
    @ValueTableShow(13)
    @ExcelProperty(value = "检测人")
    private String name;
}
performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryWorkingHoursDayDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yuanchu.mom.annotation.ValueTableShow;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class AuxiliaryWorkingHoursDayDto extends AuxiliaryWorkingHoursDay {
    @ApiModelProperty("姓名")
    @ValueTableShow(2)
    @ExcelProperty(value = "姓名")
    private String name;
}
performance-server/src/main/java/com/yuanchu/mom/excel/AuxiliaryCorrectionHoursListener.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.yuanchu.mom.excel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
import com.yuanchu.mom.service.AuxiliaryCorrectionHoursService;
import java.util.ArrayList;
import java.util.List;
public class AuxiliaryCorrectionHoursListener extends AnalysisEventListener<AuxiliaryCorrectionHoursDto> {
    private static final int BATCH_COUNT = 1000;
    List<AuxiliaryCorrectionHoursDto> list = new ArrayList<>();
    private AuxiliaryCorrectionHoursService auxiliaryCorrectionHoursService;
    public AuxiliaryCorrectionHoursListener(AuxiliaryCorrectionHoursService auxiliaryCorrectionHoursService) {
        this.auxiliaryCorrectionHoursService = auxiliaryCorrectionHoursService;
    }
    @Override
    public void invoke(AuxiliaryCorrectionHoursDto data, AnalysisContext analysisContext) {
        list.add(data);
        if (list.size() >= BATCH_COUNT) {
            save();
            list.clear();
        }
    }
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        save();
    }
    private void save() {
        auxiliaryCorrectionHoursService.importExcel(list);
    }
}
performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryCorrectionHoursMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 * å·¥æ—¶ç»Ÿè®¡çš„修正工时 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-05-29 02:38:19
 */
public interface AuxiliaryCorrectionHoursMapper extends BaseMapper<AuxiliaryCorrectionHours> {
    IPage<AuxiliaryCorrectionHoursDto> selectAuxiliaryCorrectionHours(Page page, @Param("ew") QueryWrapper<AuxiliaryCorrectionHoursDto> ew, @Param("ids") List<Integer> ids);
}
performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOriginalHoursMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.AuxiliaryOriginalHoursDto;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface AuxiliaryOriginalHoursMapper {
}
performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOutputWorkingHoursMapper.java
@@ -3,8 +3,16 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.AuxiliaryOriginalHoursDto;
import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/**
 * <p>
@@ -16,5 +24,14 @@
 */
public interface AuxiliaryOutputWorkingHoursMapper extends BaseMapper<AuxiliaryOutputWorkingHours> {
    IPage<AuxiliaryOutputWorkingHours> selectAuxiliaryOutputWorkingHours(Page page, QueryWrapper<AuxiliaryOutputWorkingHours> ew);
    IPage<AuxiliaryOutputWorkingHoursDto> selectAuxiliaryOutputWorkingHours(Page page, @Param("ew") QueryWrapper<AuxiliaryOutputWorkingHoursDto> ew, @Param("ids") List<Integer> ids);
    //查询统计工时导出数据
    List<AuxiliaryOutputWorkingHoursDto> selectDataByUser(@Param("ids") List<Integer> ids);
    //查询该月的产量工时
    List<Map<String, Object>> totalHours(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime, @Param("userId") Integer userId, @Param("departId") Integer departId, @Param("ids") List<Integer> ids);
    List<AuxiliaryOutputWorkingHours> selectListByIds(@Param("ids") List<Integer> ids);
}
performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryWorkingHoursDayMapper.java
@@ -3,9 +3,13 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHours;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
@@ -17,5 +21,10 @@
 */
public interface AuxiliaryWorkingHoursDayMapper extends BaseMapper<AuxiliaryWorkingHoursDay> {
    IPage<AuxiliaryWorkingHoursDay> selectAuxiliaryWorkingHoursDay(Page page, QueryWrapper<AuxiliaryWorkingHoursDay> ew);
    IPage<AuxiliaryWorkingHoursDayDto> selectAuxiliaryWorkingHoursDay(Page page, @Param("ew") QueryWrapper<AuxiliaryWorkingHoursDayDto> ew, @Param("ids") List<Integer> ids);
    //查询辅助工时导出信息
    List<AuxiliaryWorkingHoursDayDto> selectDataByUser(@Param("ids") List<Integer> ids);
    List<AuxiliaryWorkingHoursDay> selectListByIds(@Param("ids") List<Integer> ids);
}
performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryCorrectionHours.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,221 @@
package com.yuanchu.mom.pojo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.yuanchu.mom.annotation.ValueTableShow;
import com.yuanchu.mom.common.OrderBy;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * å·¥æ—¶ç»Ÿè®¡çš„修正工时
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-05-29 02:38:19
 */
@Getter
@Setter
@TableName("auxiliary_correction_hours")
@ApiModel(value = "AuxiliaryCorrectionHours对象", description = "工时统计的修正工时")
public class AuxiliaryCorrectionHours extends OrderBy implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("姓名id")
    private Integer nameUser;
    @ApiModelProperty("类型")
    @ValueTableShow(3)
    @ExcelProperty(value = "类型")
    private String type;
    @ApiModelProperty("1日工时")
    @ValueTableShow(4)
    @ExcelProperty(value = "1日")
    private Double oneHours;
    @ApiModelProperty("2日工时")
    @ValueTableShow(5)
    @ExcelProperty(value = "2日")
    private Double twoHours;
    @ApiModelProperty("3日工时")
    @ValueTableShow(6)
    @ExcelProperty(value = "3日")
    private Double threeHours;
    @ApiModelProperty("4日工时")
    @ValueTableShow(7)
    @ExcelProperty(value = "4日")
    private Double fourHours;
    @ApiModelProperty("5日工时")
    @ValueTableShow(8)
    @ExcelProperty(value = "5日")
    private Double fiveHours;
    @ApiModelProperty("6日工时")
    @ValueTableShow(9)
    @ExcelProperty(value = "6日")
    private Double sixHours;
    @ApiModelProperty("7日工时")
    @ValueTableShow(10)
    @ExcelProperty(value = "7日")
    private Double sevenHours;
    @ApiModelProperty("8日工时")
    @ValueTableShow(11)
    @ExcelProperty(value = "8日")
    private Double eightHours;
    @ApiModelProperty("9日工时")
    @ValueTableShow(12)
    @ExcelProperty(value = "9日")
    private Double nineHours;
    @ApiModelProperty("10日工时")
    @ValueTableShow(13)
    @ExcelProperty(value = "10日")
    private Double tenHours;
    @ApiModelProperty("11日工时")
    @ValueTableShow(14)
    @ExcelProperty(value = "11日")
    private Double elevenHours;
    @ApiModelProperty("12日工时")
    @ValueTableShow(15)
    @ExcelProperty(value = "12日")
    private Double twelveHours;
    @ApiModelProperty("13日工时")
    @ValueTableShow(16)
    @ExcelProperty(value = "13日")
    private Double thirteenHours;
    @ApiModelProperty("14日工时")
    @ValueTableShow(17)
    @ExcelProperty(value = "14日")
    private Double fourteenHours;
    @ApiModelProperty("15日工时")
    @ValueTableShow(18)
    @ExcelProperty(value = "15日")
    private Double fifteenHours;
    @ApiModelProperty("16日工时")
    @ValueTableShow(19)
    @ExcelProperty(value = "16日")
    private Double sixteenHours;
    @ApiModelProperty("17日工时")
    @ValueTableShow(20)
    @ExcelProperty(value = "17日")
    private Double seventeenHours;
    @ApiModelProperty("18日工时")
    @ValueTableShow(21)
    @ExcelProperty(value = "18日")
    private Double eighteenHours;
    @ApiModelProperty("19日工时")
    @ValueTableShow(22)
    @ExcelProperty(value = "19日")
    private Double nineteenHours;
    @ApiModelProperty("20日工时")
    @ValueTableShow(23)
    @ExcelProperty(value = "20日")
    private Double twentyHours;
    @ApiModelProperty("21日工时")
    @ValueTableShow(24)
    @ExcelProperty(value = "21日")
    private Double twentyOneHours;
    @ApiModelProperty("22日工时")
    @ValueTableShow(25)
    @ExcelProperty(value = "22日")
    private Double twentyTwoHours;
    @ApiModelProperty("23日工时")
    @ValueTableShow(26)
    @ExcelProperty(value = "23日")
    private Double twentyThreeHours;
    @ApiModelProperty("24日工时")
    @ValueTableShow(27)
    @ExcelProperty(value = "24日")
    private Double twentyFourHours;
    @ApiModelProperty("25日工时")
    @ValueTableShow(28)
    @ExcelProperty(value = "25日")
    private Double twentyFiveHours;
    @ApiModelProperty("26日工时")
    @ValueTableShow(29)
    @ExcelProperty(value = "26日")
    private Double twentySixHours;
    @ApiModelProperty("27日工时")
    @ValueTableShow(30)
    @ExcelProperty(value = "27日")
    private Double twentySevenHours;
    @ApiModelProperty("28日工时")
    @ValueTableShow(31)
    @ExcelProperty(value = "28日")
    private Double twentyEightHours;
    @ApiModelProperty("29日工时")
    @ValueTableShow(32)
    @ExcelProperty(value = "29日")
    private Double twentyNineHours;
    @ApiModelProperty("30日工时")
    @ValueTableShow(33)
    @ExcelProperty(value = "30日")
    private Double thirtyHours;
    @ApiModelProperty("31日工时")
    @ValueTableShow(34)
    @ExcelProperty(value = "31日")
    private Double thirtyOneHours;
    @ApiModelProperty("月份")
    @ValueTableShow(35)
    @ExcelProperty(value = "月份")
    private LocalDateTime month;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("创建人id")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("修改人id")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
}
performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java
@@ -1,5 +1,6 @@
package com.yuanchu.mom.pojo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
@@ -8,7 +9,9 @@
import java.io.Serializable;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yuanchu.mom.annotation.ValueTableShow;
import com.yuanchu.mom.common.OrderBy;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
@@ -26,67 +29,77 @@
@Setter
@TableName("auxiliary_output_working_hours")
@ApiModel(value = "AuxiliaryOutputWorkingHours对象", description = "日工时管理的产量工时")
public class AuxiliaryOutputWorkingHours implements Serializable {
    private static final long serialVersionUID = 1L;
public class AuxiliaryOutputWorkingHours extends OrderBy implements Serializable {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("检测项目")
    @ExcelProperty(value = "检测项目")
    @ValueTableShow(2)
    private String inspectProject;
    @ApiModelProperty("加班委托单号")
    @ExcelProperty(value = "加班委托单号")
    @ValueTableShow(3)
    private String overtimeOrderNo;
    @ApiModelProperty("加班工时")
    @ExcelProperty(value = "加班工时")
    @ValueTableShow(4)
    private Double overtimeWorkTime;
    @ApiModelProperty("加班数量")
    @ExcelProperty(value = "加班数量")
    @ValueTableShow(5)
    private Integer overtimeAmount;
    @ApiModelProperty("非加班委托单号")
    @ExcelProperty(value = "非加班委托单号")
    @ValueTableShow(6)
    private String orderNo;
    @ApiModelProperty("非加班工时")
    @ExcelProperty(value = "非加班工时")
    @ValueTableShow(7)
    private Double workTime;
    @ApiModelProperty("非加班数量")
    @ExcelProperty(value = "非加班数量")
    @ValueTableShow(8)
    private Integer amount;
    @ApiModelProperty("产量工时")
    @ExcelProperty(value = "产量工时")
    @ValueTableShow(9)
    private Double outputWorkTime;
    @ApiModelProperty("日期")
    @ExcelProperty(value = "日期")
    @ValueTableShow(10)
    private LocalDateTime dateTime;
    private String dateTime;
    @ApiModelProperty("周次")
    @ExcelProperty(value = "周次")
    @ValueTableShow(11)
    private Integer week;
    private String week;
    @ApiModelProperty("星期")
    @ExcelProperty(value = "星期")
    @ValueTableShow(12)
    private String weekDay;
    @ApiModelProperty("检测人")
    @ValueTableShow(13)
    private String check;
    @ApiModelProperty("检测人id")
    private Integer check;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    @ApiModelProperty("创建人id")
performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryWorkingHoursDay.java
@@ -1,5 +1,6 @@
package com.yuanchu.mom.pojo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
@@ -10,8 +11,10 @@
import java.time.LocalDateTime;
import com.yuanchu.mom.annotation.ValueTableShow;
import com.yuanchu.mom.common.OrderBy;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@@ -23,74 +26,84 @@
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-05-28 02:22:19
 */
@Getter
@Setter
@Data
@TableName("auxiliary_working_hours_day")
@ApiModel(value = "AuxiliaryWorkingHoursDay对象", description = "日工时管理的辅助工时")
public class AuxiliaryWorkingHoursDay implements Serializable {
    private static final long serialVersionUID = 1L;
public class AuxiliaryWorkingHoursDay extends OrderBy implements Serializable {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("姓名")
    @ValueTableShow(2)
    private String name;
    @ApiModelProperty("姓名id")
    private Integer nameUser;
    @ApiModelProperty("编号")
    @ExcelProperty(value = "编号")
    @ValueTableShow(3)
    private String number;
    @ApiModelProperty("辅助项目名称")
    @ExcelProperty(value = "辅助项目名称")
    @ValueTableShow(4)
    private String auxiliaryProject;
    @ApiModelProperty("核准工时")
    @ExcelProperty(value = "核准工时")
    @ValueTableShow(5)
    private Double approvedWorkingHour;
    @ApiModelProperty("数量")
    @ExcelProperty(value = "数量")
    @ValueTableShow(6)
    private Integer amount;
    @ApiModelProperty("辅助工时")
    @ExcelProperty(value = "辅助工时")
    @ValueTableShow(7)
    private Double nonproductiveTime;
    @ApiModelProperty("辅助说明")
    @ExcelProperty(value = "辅助说明")
    @ValueTableShow(8)
    private String remarks;
    @ApiModelProperty("复核人")
    @ExcelProperty(value = "复核人")
    @ValueTableShow(9)
    private String reviewer;
    @ApiModelProperty("复核数量")
    @ExcelProperty(value = "复核数量")
    @ValueTableShow(10)
    private Integer reviewerNumber;
    @ApiModelProperty("复核工时")
    @ExcelProperty(value = "复核工时")
    @ValueTableShow(11)
    private Double reviewerNonproductiveTime;
    @ApiModelProperty("复核说明")
    @ExcelProperty(value = "复核说明")
    @ValueTableShow(12)
    private String reviewerRemark;
    @ApiModelProperty("å¹´")
    @ExcelProperty(value = "å¹´")
    @ValueTableShow(13)
    private String year;
    @ApiModelProperty("班次")
    @ExcelProperty(value = "班次")
    @ValueTableShow(14)
    private String shift;
    @ApiModelProperty("周次")
    @ExcelProperty(value = "周次")
    @ValueTableShow(15)
    private Integer week;
    private String week;
    @ApiModelProperty("星期")
    @ExcelProperty(value = "星期")
    @ValueTableShow(16)
    private String weekDay;
@@ -112,11 +125,12 @@
    private Integer updateUser;
    @ApiModelProperty("状态")
    @ExcelProperty(value = "状态")
    @ValueTableShow(18)
    private String state;
    @ApiModelProperty("日期")
    @TableLogic
    @ExcelProperty(value = "日期")
    @ValueTableShow(19)
    private LocalDateTime dateTime;
    private String dateTime;
}
performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryCorrectionHoursService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * å·¥æ—¶ç»Ÿè®¡çš„修正工时 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-05-29 02:38:19
 */
public interface AuxiliaryCorrectionHoursService extends IService<AuxiliaryCorrectionHours> {
    Map<String, Object>  selectAuxiliaryCorrectionHours(Page page, AuxiliaryCorrectionHoursDto auxiliaryCorrectionHoursDto);
    /**
     * å¯¼å…¥ä¸Šä¼ 
     * @param list
     */
    void importExcel(List<AuxiliaryCorrectionHoursDto> list);
}
performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOriginalHoursService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.AuxiliaryOriginalHoursDto;
import com.yuanchu.mom.dto.AuxiliaryOriginalHoursLookDto;
import java.util.Map;
public interface AuxiliaryOriginalHoursService {
    Map<String, Object> selectAuxiliaryOriginalHours(Page page, AuxiliaryOriginalHoursLookDto auxiliaryOriginalHoursLookDto);
}
performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOutputWorkingHoursService.java
@@ -2,9 +2,12 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
/**
@@ -17,5 +20,18 @@
 */
public interface AuxiliaryOutputWorkingHoursService extends IService<AuxiliaryOutputWorkingHours> {
    Map<String, Object> selectAuxiliaryOutputWorkingHours(Page page, AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours);
    Map<String, Object> selectAuxiliaryOutputWorkingHours(Page page, AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto);
    /**
     * ç»Ÿè®¡äº§é‡å·¥æ—¶æ±‡æ€»å’Œè¾…助工时汇总
     * @return
     */
    Map<String,Object> collectWorkingHours();
    /**
     * å¯¼å‡º
     * @param response
     * @throws IOException
     */
    void exportWorkingHours(HttpServletResponse response)throws IOException;
}
performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java
@@ -1,6 +1,7 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHours;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -18,7 +19,7 @@
 */
public interface AuxiliaryWorkingHoursDayService extends IService<AuxiliaryWorkingHoursDay> {
    Map<String, Object> selectAuxiliaryWorkingHoursDay(Page page, AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay);
    Map<String, Object> selectAuxiliaryWorkingHoursDay(Page page, AuxiliaryWorkingHoursDayDto auxiliaryWorkingHoursDayDto);
    int insertAuxiliaryWorkingHoursDay(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay);
performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryCorrectionHoursServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,103 @@
package com.yuanchu.mom.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
import com.yuanchu.mom.mapper.PowerMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours;
import com.yuanchu.mom.mapper.AuxiliaryCorrectionHoursMapper;
import com.yuanchu.mom.pojo.Power;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.AuxiliaryCorrectionHoursService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.utils.QueryWrappers;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
 * å·¥æ—¶ç»Ÿè®¡çš„修正工时 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-05-29 02:38:19
 */
@Service
public class AuxiliaryCorrectionHoursServiceImpl extends ServiceImpl<AuxiliaryCorrectionHoursMapper, AuxiliaryCorrectionHours> implements AuxiliaryCorrectionHoursService {
    @Resource
    AuxiliaryCorrectionHoursMapper auxiliaryCorrectionHoursMapper;
    @Resource
    GetLook getLook;
    @Resource
    UserMapper userMapper;
    @Resource
    PowerMapper powerMapper;
    @Override
    public Map<String, Object> selectAuxiliaryCorrectionHours(Page page, AuxiliaryCorrectionHoursDto auxiliaryCorrectionHoursDto) {
        Map<String, Object> map = new HashMap<>();
        List<Integer> ids = null;
        map.put("head", PrintChina.printChina(AuxiliaryCorrectionHoursDto.class));
        //判断组长,组员,管理员权限
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryCorrectionHours");
        User user = userMapper.selectById(map1.get("userId"));
        Integer roleId = user.getRoleId();
        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "leader"));
        if (ObjectUtils.isEmpty(power)) {
            //不是组长
            if (map1.get("look") == 1) {
                //是组员
                auxiliaryCorrectionHoursDto.setNameUser(map1.get("userId"));
            } else {
                //管理员(不添加限制条件所有人都可以看)
            }
        } else {
            //是组长
            //查询组长下的组员
            List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
            if (ObjectUtils.isNotEmpty(users)) {
                ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
            }
        }
        map.put("body", auxiliaryCorrectionHoursMapper.selectAuxiliaryCorrectionHours(page, QueryWrappers.queryWrappers(auxiliaryCorrectionHoursDto),ids));
        return map;
    }
    //导入上传
    @Override
    public void importExcel(List<AuxiliaryCorrectionHoursDto> list) {
        if (CollectionUtil.isEmpty(list)) {
            return;
        }
        List<AuxiliaryCorrectionHours> auxiliaryCorrectionHoursList = new ArrayList<>();
        for (AuxiliaryCorrectionHoursDto auxiliaryCorrectionHoursDto : list) {
            AuxiliaryCorrectionHours auxiliaryCorrectionHours = new AuxiliaryCorrectionHours();
            User user = userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getName, auxiliaryCorrectionHoursDto.getName()));
            if (ObjectUtils.isEmpty(user)){
                throw new RuntimeException("系统没有查到"+auxiliaryCorrectionHoursDto.getName()+"这个用户信息!");
            }
            BeanUtils.copyProperties(auxiliaryCorrectionHoursDto,auxiliaryCorrectionHours);
            auxiliaryCorrectionHours.setNameUser(user.getId());
            auxiliaryCorrectionHoursList.add(auxiliaryCorrectionHours);
        }
        //批量新增
        saveBatch(auxiliaryCorrectionHoursList);
    }
}
performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
import com.yuanchu.mom.dto.AuxiliaryOriginalHoursDto;
import com.yuanchu.mom.dto.AuxiliaryOriginalHoursLookDto;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.Power;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.AuxiliaryOriginalHoursService;
import com.yuanchu.mom.utils.QueryWrappers;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class AuxiliaryOriginalHoursServiceImpl implements AuxiliaryOriginalHoursService {
    @Resource
    GetLook getLook;
    @Resource
    UserMapper userMapper;
    @Resource
    PowerMapper powerMapper;
    @Resource
    AuxiliaryOriginalHoursMapper auxiliaryOriginalHoursMapper;
    @Resource
    AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper;
    @Resource
    AuxiliaryWorkingHoursDayMapper auxiliaryWorkingHoursDayMapper;
    @Override
    public Map<String, Object> selectAuxiliaryOriginalHours(Page page, AuxiliaryOriginalHoursLookDto auxiliaryOriginalHoursLookDto) {
        Map<String, Object> map = new HashMap<>();
        List<Integer> ids = null;
        map.put("head", PrintChina.printChina(AuxiliaryCorrectionHoursDto.class));
        //判断组长,组员,管理员权限
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOriginalHours");
        User user = userMapper.selectById(map1.get("userId"));
        Integer roleId = user.getRoleId();
        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "leader"));
        if (ObjectUtils.isEmpty(power)) {
            //不是组长
            if (map1.get("look") == 1) {
                //是组员
                ids.add(map1.get("userId"));
            } else {
                //管理员(不添加限制条件所有人都可以看)
            }
        } else {
            //是组长
            //查询组长下的组员
            List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
            if (ObjectUtils.isNotEmpty(users)) {
                ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
            }
        }
        IPage<AuxiliaryOriginalHoursDto> originalHoursDtoIPage = new Page<>();
        originalHoursDtoIPage.setSize(page.getSize());
        originalHoursDtoIPage.setCurrent(page.getCurrent());
        List<AuxiliaryOriginalHoursDto> auxiliaryOriginalHoursDtos = null;
        //产量工时
        List<Map<String, Object>> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getStartTime(), auxiliaryOriginalHoursLookDto.getEndTime(), auxiliaryOriginalHoursLookDto.getUserId(), auxiliaryOriginalHoursLookDto.getDepartId(), ids);
        Map<Object, Map<Object, Double>> collect = maps.stream().collect(
                Collectors.groupingBy(objmap -> objmap.get("name"),
                        Collectors.groupingBy(objmap -> objmap.get("month"),
                                Collectors.summingDouble(objmap -> Double.parseDouble(objmap.get("output_work_time").toString())))));
        //辅助工时
        //辅助工时
        //加班工时
        //总工时
        originalHoursDtoIPage.setRecords(auxiliaryOriginalHoursDtos);
        map.put("body", originalHoursDtoIPage);
        return map;
    }
}
performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java
@@ -1,18 +1,37 @@
package com.yuanchu.mom.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
import com.yuanchu.mom.mapper.AuxiliaryWorkingHoursDayMapper;
import com.yuanchu.mom.mapper.PowerMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
import com.yuanchu.mom.mapper.AuxiliaryOutputWorkingHoursMapper;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
import com.yuanchu.mom.pojo.Power;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.AuxiliaryOutputWorkingHoursService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.utils.QueryWrappers;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
@@ -28,11 +47,171 @@
    @Resource
    AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper;
    @Resource
    GetLook getLook;
    @Resource
    AuxiliaryWorkingHoursDayMapper auxiliaryWorkingHoursDayMapper;
    @Resource
    UserMapper userMapper;
    @Resource
    PowerMapper powerMapper;
    @Override
    public Map<String, Object> selectAuxiliaryOutputWorkingHours(Page page, AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours) {
    public Map<String, Object> selectAuxiliaryOutputWorkingHours(Page page, AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto) {
        String dates = auxiliaryOutputWorkingHoursDto.getDateTime();
        String week = auxiliaryOutputWorkingHoursDto.getWeek();
        auxiliaryOutputWorkingHoursDto.setDateTime(null);
        auxiliaryOutputWorkingHoursDto.setWeek(null);
        Map<String, Object> map = new HashMap<>();
        map.put("head", PrintChina.printChina(AuxiliaryOutputWorkingHours.class));
        map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHours)));
        List<Integer> ids = null;
        map.put("head", PrintChina.printChina(AuxiliaryOutputWorkingHoursDto.class));
        //判断组长,组员,管理员权限
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOutputWorkingHours");
        User user = userMapper.selectById(map1.get("userId"));
        Integer roleId = user.getRoleId();
        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "leader"));
        if (ObjectUtils.isEmpty(power)) {
            //不是组长
            if (map1.get("look") == 1) {
                //是组员
                auxiliaryOutputWorkingHoursDto.setCheck(map1.get("userId"));
            } else {
                //管理员(不添加限制条件所有人都可以看)
            }
        } else {
            //是组长
            //查询组长下的组员
            List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
            if (ObjectUtils.isNotEmpty(users)) {
                ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
            }
        }
        if (ObjectUtils.isNotEmpty(dates)) {
            String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
            if (ObjectUtils.isNotEmpty(week)){
                String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
                map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page,
                        QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto)
                                .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59")
                                .ge("week", weeks[0]).le("week", weeks[1] ), ids));
            }
            map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto).ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids));
        } else {
            map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto), ids));
        }
        return map;
    }
    //统计产量工时汇总和辅助工时汇总
    @Override
    public Map<String, Object> collectWorkingHours() {
        Map<String, Object> map = new HashMap<>();
        Double sumOutputWorkTime = 0.0;
        Double sumApprovedWorkingHour = 0.0;
        List<Integer> ids = null;
        //判断是组长还是组员还是管理员
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOutputWorkingHours");
        User user = userMapper.selectById(map1.get("userId"));
        Integer roleId = user.getRoleId();
        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "leader"));
        if (ObjectUtils.isEmpty(power)) {
            //不是组长
            if (map1.get("look") == 1) {
                //是组员
                ids.add(map1.get("userId"));
            } else {
                //管理员(不添加限制条件所有人都可以看)
            }
        } else {
            //是组长
            //查询组长下的组员
            List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
            if (ObjectUtils.isNotEmpty(users)) {
                ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
            }
        }
        //统计当前用户的产品工时
        List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectListByIds(ids);
        if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours)) {
            Map<String, Double> sumMap = new HashMap<>();
            for (AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHour : auxiliaryOutputWorkingHours) {
                if (!sumMap.containsKey(auxiliaryOutputWorkingHour.getManHourGroup())) {
                    sumMap.put(auxiliaryOutputWorkingHour.getManHourGroup(), auxiliaryOutputWorkingHour.getOutputWorkTime());
                }
            }
            sumOutputWorkTime = sumMap.values().stream().mapToDouble(Double::doubleValue).sum();
        }
        map.put("产量工时汇总", sumOutputWorkTime);
        //统计当前用户的辅助工时
        List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectListByIds(ids);
        if (ObjectUtils.isNotEmpty(auxiliaryWorkingHoursDays)) {
            for (AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay : auxiliaryWorkingHoursDays) {
                sumApprovedWorkingHour += auxiliaryWorkingHoursDay.getNonproductiveTime();
            }
        }
        map.put("辅助工时汇总", sumApprovedWorkingHour);
        return map;
    }
    //导出
    @Override
    public void exportWorkingHours(HttpServletResponse response) throws IOException {
        List<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtos = null;
        List<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtos = null;
        List<Integer> ids = null;
        //判断是组长还是组员还是管理员
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOutputWorkingHours");
        User user = userMapper.selectById(map1.get("userId"));
        Integer roleId = user.getRoleId();
        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "leader"));
        if (ObjectUtils.isEmpty(power)) {
            //不是组长
            if (map1.get("look") == 1) {
                //是组员
                ids.add(map1.get("userId"));
            } else {
                //管理员(不添加限制条件所有人都可以看)
            }
        } else {
            //是组长
            //查询组长下的组员
            List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
            if (ObjectUtils.isNotEmpty(users)) {
                ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
            }
        }
        //查询辅助工时
        auxiliaryWorkingHoursDayDtos = auxiliaryWorkingHoursDayMapper.selectDataByUser(ids);
//        if (auxiliaryWorkingHoursDayDtos == null || auxiliaryWorkingHoursDayDtos.size() == 0) {
//            throw new RuntimeException("暂无数据");
//        }
        //查询统计工时
        auxiliaryOutputWorkingHoursDtos = auxiliaryOutputWorkingHoursMapper.selectDataByUser(ids);
//        if (auxiliaryOutputWorkingHoursDtos == null || auxiliaryOutputWorkingHoursDtos.size() == 0) {
//            throw new RuntimeException("暂无数据");
//        }
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("UTF-8");
        // è¿™é‡ŒURLEncoder.encode可以防止中文乱码 å½“ç„¶å’Œeasyexcel没有关系
        String fileName = URLEncoder.encode("工时管理导出", "UTF-8");
        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
        try {
            // æ–°å»ºExcelWriter
            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
            WriteSheet mainSheet = EasyExcel.writerSheet(0, "辅助工时导出").head(AuxiliaryWorkingHoursDayDto.class).build();
            excelWriter.write(auxiliaryWorkingHoursDayDtos, mainSheet);
            WriteSheet mainSheet1 = EasyExcel.writerSheet(1, "产量工时导出").head(AuxiliaryOutputWorkingHoursDto.class).build();
            excelWriter.write(auxiliaryOutputWorkingHoursDtos, mainSheet1);
            // å…³é—­æµ
            excelWriter.finish();
        } catch (IOException e) {
            throw new RuntimeException("导出失败");
        }
    }
}
performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java
@@ -5,15 +5,10 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.AuxiliaryWorkingHoursMapper;
import com.yuanchu.mom.mapper.PerformanceShiftMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHours;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
import com.yuanchu.mom.mapper.AuxiliaryWorkingHoursDayMapper;
import com.yuanchu.mom.pojo.PerformanceShift;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.service.AuxiliaryWorkingHoursDayService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.utils.MyUtil;
@@ -24,7 +19,9 @@
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
@@ -50,13 +47,59 @@
    UserMapper userMapper;
    @Resource
    RoleMapper roleMapper;
    @Resource
    PowerMapper powerMapper;
    @Resource
    PerformanceShiftMapper performanceShiftMapper;
    @Override
    public Map<String, Object> selectAuxiliaryWorkingHoursDay(Page page, AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) {
        Map<String, Object> map = new HashMap<>();
        map.put("head", PrintChina.printChina(AuxiliaryWorkingHoursDay.class));
        map.put("body", auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDay)));
    public Map<String, Object> selectAuxiliaryWorkingHoursDay(Page page, AuxiliaryWorkingHoursDayDto auxiliaryWorkingHoursDayDto) {
        String dates = auxiliaryWorkingHoursDayDto.getDateTime();
        String week = auxiliaryWorkingHoursDayDto.getWeek();
        auxiliaryWorkingHoursDayDto.setDateTime(null);
        auxiliaryWorkingHoursDayDto.setWeek(null);
            Map<String, Object> map = new HashMap<>();
            List<Integer> ids = null;
            map.put("head", PrintChina.printChina(AuxiliaryWorkingHoursDayDto.class));
            //判断组长,组员,管理员权限
            Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryWorkingHoursDay");
            User user = userMapper.selectById(map1.get("userId"));
            Integer roleId = user.getRoleId();
            Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "leader"));
            if (ObjectUtils.isEmpty(power)) {
                //不是组长
                if (map1.get("look") == 1) {
                    //是组员
                    auxiliaryWorkingHoursDayDto.setNameUser(map1.get("userId"));
                } else {
                    //管理员(不添加限制条件所有人都可以看)
                }
            } else {
                //是组长
                //查询组员
                List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
                if (ObjectUtils.isNotEmpty(users)) {
                    ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
                }
            }
        if (ObjectUtils.isNotEmpty(dates)) {
            String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
            if (ObjectUtils.isNotEmpty(week)) {
                String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
                map.put("body", auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page,
                        QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto)
                                .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59")
                                .ge("week", weeks[0]).le("week", weeks[1] ), ids));
            } else {
                map.put("body", auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto).ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids));
            }
        }
        else {
            map.put("body", auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto), ids));
        }
        return map;
    }
@@ -77,8 +120,7 @@
    @Override
    public int insertAuxiliaryWorkingHoursDay(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) {
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        User user = userMapper.selectById(userId);
        auxiliaryWorkingHoursDay.setName(user.getName());//姓名
        auxiliaryWorkingHoursDay.setNameUser(userId);//姓名id
        auxiliaryWorkingHoursDay.setState("已提交");
        return auxiliaryWorkingHoursDayMapper.insert(auxiliaryWorkingHoursDay);
    }
@@ -87,9 +129,6 @@
    @Override
    public int checkOrApprove(Integer id, String state) {
        AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay = auxiliaryWorkingHoursDayMapper.selectById(id);
        if (auxiliaryWorkingHoursDay.getState().equals("已批准") && state.equals("已审核")) {
            throw new RuntimeException("该数据已经批准无需审核!");
        }
        auxiliaryWorkingHoursDay.setState(state);
        return auxiliaryWorkingHoursDayMapper.updateById(auxiliaryWorkingHoursDay);
    }
@@ -101,8 +140,7 @@
            throw new RuntimeException("该数据已经批准或已审核,无法进行编辑!");
        }
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        User user = userMapper.selectById(userId);
        auxiliaryWorkingHoursDay.setName(user.getName());//姓名
        auxiliaryWorkingHoursDay.setNameUser(userId);//姓名id
        return auxiliaryWorkingHoursDayMapper.updateById(auxiliaryWorkingHoursDay);
    }
@@ -117,8 +155,8 @@
    public String selectshiftByUser(LocalDateTime dateTime) {
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery().eq(PerformanceShift::getUserId, userId).eq(PerformanceShift::getWorkTime, dateTime));
        if (ObjectUtils.isEmpty(performanceShift)){
            throw new RuntimeException("没有查到当前用户选择日期的当班班次信息!!");
        if (ObjectUtils.isEmpty(performanceShift)) {
           return null;
        }
        return performanceShift.getShift();
    }
performance-server/src/main/java/com/yuanchu/mom/utils/StyleYearUtils.java
@@ -2,14 +2,22 @@
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.metadata.style.WriteFont;
import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
import org.apache.poi.ss.usermodel.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class StyleYearUtils {
    /**
     * æ ‡é¢˜æ ·å¼
     *
     * @return
     */
    public static WriteCellStyle getHeadStyle(){
    public static WriteCellStyle getHeadStyle() {
        // å¤´çš„ç­–ç•¥
        WriteCellStyle headWriteCellStyle = new WriteCellStyle();
        // èƒŒæ™¯é¢œè‰²
@@ -19,7 +27,7 @@
        // å­—体
        WriteFont headWriteFont = new WriteFont();
        headWriteFont.setFontName("仿宋");//设置字体名字
        headWriteFont.setFontHeightInPoints((short)9);//设置字体大小
        headWriteFont.setFontHeightInPoints((short) 9);//设置字体大小
        headWriteFont.setBold(true);//字体加粗
        headWriteFont.setColor((short) 1);
        headWriteCellStyle.setWriteFont(headWriteFont); //在样式用应用设置的字体;
@@ -46,9 +54,10 @@
    /**
     * å†…容样式
     *
     * @return
     */
    public static WriteCellStyle getContentStyle(){
    public static WriteCellStyle getContentStyle() {
        // å†…容的策略
        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
@@ -80,4 +89,10 @@
        return contentWriteCellStyle;
    }
    public static void main(String[] args) {
        String a="[\"GB/T 15972.20-2021\",\"IEC 60793-1-20:2014\"]";
        System.out.println(a.contains("GB/T 15972.20-2021"));
    }
}
performance-server/src/main/resources/mapper/AuxiliaryCorrectionHoursMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.AuxiliaryCorrectionHoursMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.AuxiliaryCorrectionHours">
        <id column="id" property="id" />
        <result column="name_user" property="nameUser" />
        <result column="type" property="type" />
        <result column="one_hours" property="oneHours" />
        <result column="two_hours" property="twoHours" />
        <result column="three_hours" property="threeHours" />
        <result column="four_hours" property="fourHours" />
        <result column="five_hours" property="fiveHours" />
        <result column="six_hours" property="sixHours" />
        <result column="seven_hours" property="sevenHours" />
        <result column="eight_hours" property="eightHours" />
        <result column="nine_hours" property="nineHours" />
        <result column="ten_hours" property="tenHours" />
        <result column="eleven_hours" property="elevenHours" />
        <result column="twelve_hours" property="twelveHours" />
        <result column="thirteen_hours" property="thirteenHours" />
        <result column="fourteen_hours" property="fourteenHours" />
        <result column="fifteen_hours" property="fifteenHours" />
        <result column="sixteen_hours" property="sixteenHours" />
        <result column="seventeen_hours" property="seventeenHours" />
        <result column="eighteen_hours" property="eighteenHours" />
        <result column="nineteen_hours" property="nineteenHours" />
        <result column="twenty_hours" property="twentyHours" />
        <result column="twenty_one_hours" property="twentyOneHours" />
        <result column="twenty_two_hours" property="twentyTwoHours" />
        <result column="twenty_three_hours" property="twentyThreeHours" />
        <result column="twenty_four_hours" property="twentyFourHours" />
        <result column="twenty_five_hours" property="twentyFiveHours" />
        <result column="twenty_six_hours" property="twentySixHours" />
        <result column="twenty_seven_hours" property="twentySevenHours" />
        <result column="twenty_eight_hours" property="twentyEightHours" />
        <result column="twenty_nine_hours" property="twentyNineHours" />
        <result column="thirty_hours" property="thirtyHours" />
        <result column="thirty_one_hours" property="thirtyOneHours" />
        <result column="month" property="month" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="create_user" property="createUser" />
        <result column="update_user" property="updateUser" />
    </resultMap>
    <select id="selectAuxiliaryCorrectionHours" resultType="com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto">
        select data.*
        from (
        select ach.*,name
        FROM auxiliary_correction_hours ach
        left join user on user.id=ach.name_user
        <if test="ids !=null and ids != ''">
            WHERE name_user in
            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
                #{val}
            </foreach>
        </if>
        ) data
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yuanchu.mom.mapper.AuxiliaryOriginalHoursMapper">
</mapper>
performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml
@@ -1,35 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.AuxiliaryOutputWorkingHoursMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours">
        <id column="id" property="id" />
        <result column="inspect_project" property="inspectProject" />
        <result column="overtime_order_no" property="overtimeOrderNo" />
        <result column="overtime_work_time" property="overtimeWorkTime" />
        <result column="overtime_amount" property="overtimeAmount" />
        <result column="order_no" property="orderNo" />
        <result column="work_time" property="workTime" />
        <result column="amount" property="amount" />
        <result column="output_work_time" property="outputWorkTime" />
        <result column="date_time" property="dateTime" />
        <result column="week" property="week" />
        <result column="week_day" property="weekDay" />
        <result column="check" property="check" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="create_user" property="createUser" />
        <result column="update_user" property="updateUser" />
        <id column="id" property="id"/>
        <result column="inspect_project" property="inspectProject"/>
        <result column="overtime_order_no" property="overtimeOrderNo"/>
        <result column="overtime_work_time" property="overtimeWorkTime"/>
        <result column="overtime_amount" property="overtimeAmount"/>
        <result column="order_no" property="orderNo"/>
        <result column="work_time" property="workTime"/>
        <result column="amount" property="amount"/>
        <result column="output_work_time" property="outputWorkTime"/>
        <result column="date_time" property="dateTime"/>
        <result column="week" property="week"/>
        <result column="week_day" property="weekDay"/>
        <result column="check" property="check"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="create_user" property="createUser"/>
        <result column="update_user" property="updateUser"/>
    </resultMap>
    <select id="selectAuxiliaryOutputWorkingHours" resultType="com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours">
        select data.*
        from (
    <select id="selectAuxiliaryOutputWorkingHours" resultType="com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto">
        select *
        FROM auxiliary_output_working_hours
        from (
        select aowh.id,
        inspect_project,
        overtime_order_no,
        overtime_work_time,
        overtime_amount,
        order_no,
        work_time,
        amount,
        output_work_time,
        date_time,
        week,
        week_day,
        name
        FROM auxiliary_output_working_hours aowh
        left join user on user.id=aowh.`check`
        <if test="ids !=null and ids != ''">
            WHERE `check` in
            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
                #{val}
            </foreach>
        </if>
        ) data
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="selectDataByUser" resultType="com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto">
        select aowh.*,name
        FROM auxiliary_output_working_hours aowh
        left join user on user.id=aowh.`check`
        <if test="ids !=null and ids != ''">
            WHERE `check` in
            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
                #{val}
            </foreach>
        </if>
    </select>
    <select id="totalHours" resultType="java.util.Map">
        select A.name,
        A.month,
        A.output_work_time
        from(
        select user.name,
        user.id,
        depart_lims_id,
        output_work_time,
        date_time as month
        from auxiliary_output_working_hours aowh
        left join user on user.id=aowh.`check`
        left join department_lims dl on depart_lims_id=dl.id
        where date_time between #{startTime} and #{endTime}
        <if test="ids !=null and ids != ''">
            and `check` in
            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
                #{val}
            </foreach>
        </if>
        order by date_time
        )A
        where 1=1
        <if test="userId !=null and userId != ''">
            and A.user_id=#{userId}
        </if>
        <if test="departId !=null and departId != ''">
            and A.depart_lims_id=#{departId}
        </if>
        group by A.name,A.month
    </select>
    <select id="selectListByIds" resultType="com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours">
        select * from auxiliary_output_working_hours
        where 1=1
        <if test="ids !=null and ids != ''">
            and `check` in
            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
                #{val}
            </foreach>
        </if>
    </select>
</mapper>
performance-server/src/main/resources/mapper/AuxiliaryWorkingHoursDayMapper.xml
@@ -4,7 +4,7 @@
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="nameUser" property="nameUser"/>
        <result column="number" property="number"/>
        <result column="auxiliary_project" property="auxiliaryProject"/>
        <result column="approved_working_hour" property="approvedWorkingHour"/>
@@ -25,14 +25,42 @@
        <result column="update_user" property="updateUser"/>
        <result column="state" property="state"/>
    </resultMap>
    <select id="selectAuxiliaryWorkingHoursDay" resultType="com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay">
    <select id="selectAuxiliaryWorkingHoursDay" resultType="com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto">
        select data.*
        from (
        select *
        FROM auxiliary_working_hours_day
        select awhd.*,name
        FROM auxiliary_working_hours_day awhd
        left join user on name_user=user.id
        <if test="ids !=null and ids != ''">
            WHERE name_user in
            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
                #{val}
            </foreach>
        </if>
        ) data
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="selectDataByUser" resultType="com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto">
        select awhd.*,name
        FROM auxiliary_working_hours_day awhd
        left join user on name_user=user.id
        <if test="ids !=null and ids != ''">
            WHERE name_user in
            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
                #{val}
            </foreach>
        </if>
    </select>
    <select id="selectListByIds" resultType="com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay">
        select * from auxiliary_working_hours_day
        where 1=1
        <if test="ids !=null and ids != ''">
           and name_user in
            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
                #{val}
            </foreach>
        </if>
    </select>
</mapper>