cnas-server/src/main/java/com/yuanchu/mom/mapper/DepartmentMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
cnas-server/src/main/resources/mapper/DepartmentMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
inspect-server/src/main/java/com/yuanchu/mom/controller/ReportController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
inspect-server/src/main/java/com/yuanchu/mom/dto/CostStatisticsDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
inspect-server/src/main/java/com/yuanchu/mom/service/ReportService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
inspect-server/src/main/java/com/yuanchu/mom/service/impl/ReportServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
inspect-server/src/main/resources/mapper/InsOrderMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
cnas-server/src/main/java/com/yuanchu/mom/mapper/DepartmentMapper.java
@@ -26,7 +26,7 @@ List<Department> selectDepartment(); //æ ¹æ®éæ©çæ å±ç¤ºç¸å ³ç人å IPage<UserDto> showUserById(@Param("page") IPage<UserDto> page, @Param("ids") String ids, @Param("ew") QueryWrapper<UserDto> ew); IPage<UserDto> showUserById(@Param("page") IPage<UserDto> page, @Param("ids") List<String> ids, @Param("ew") QueryWrapper<UserDto> ew); //æ ¹æ®é¨é¨id,æ¥è¯¢ä»çææåç±»id List<Integer> selectSonById(Integer id); cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java
@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.utils.QueryWrappers; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import lombok.var; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -40,6 +41,7 @@ @Service @AllArgsConstructor @Transactional(rollbackFor = Exception.class) @Slf4j public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Department> implements DepartmentService { DepartmentMapper departmentMapper; @@ -90,9 +92,11 @@ public Map<String, Object> showUserById(Page page, UserDto user) { //æ ¹æ®é¨é¨id,æ¥è¯¢ä»çææåç±»id List<Integer> list = departmentMapper.selectSonById(Integer.parseInt(user.getDepartId())); String ids = list.stream() List<String> ids = list.stream() .map(Object::toString) .collect(Collectors.joining(",")); //.collect(Collectors.joining(",")); .collect(Collectors.toList()); log.info(ids+"\n"); Map<String, Object> map = new HashMap<>(); map.put("head", PrintChina.printChina(UserDto.class)); map.put("body", departmentMapper.showUserById(page, ids, QueryWrappers.queryWrappers(user))); cnas-server/src/main/resources/mapper/DepartmentMapper.xml
@@ -18,7 +18,10 @@ </select> <select id="showUserById" resultType="com.yuanchu.mom.dto.UserDto"> select * from (select id, name, age, email, phone,depart_id from user where FIND_IN_SET( SUBSTRING_INDEX(depart_id, ',', -1) ,#{ids}) > 0 ) a from user where state=1 and SUBSTRING_INDEX(depart_id, ',', -1) in <foreach collection="ids" item="id" separator="," open="(" close=")"> #{id} </foreach> ) a <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> @@ -34,6 +37,7 @@ JOIN DepartmentHierarchy dh ON d.father_id = dh.id ) SELECT id FROM DepartmentHierarchy; FROM DepartmentHierarchy order by id desc; </select> </mapper> inspect-server/src/main/java/com/yuanchu/mom/controller/ReportController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ package com.yuanchu.mom.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.dto.SampleOrderDto; import com.yuanchu.mom.service.ReportService; 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 java.util.Map; @RestController @AllArgsConstructor @RequestMapping("/report") @Api("æ¥è¡¨æ¨¡å") public class ReportController { private ReportService reportService; @ApiOperation(value = "æ¯æ¥ä¸å¡ç»è®¡") @GetMapping("/businessStatisticsByDay") public Result businessStatisticsByDay(){ return Result.success(reportService.businessStatisticsByDay()); } @ApiOperation(value = "æ£æµé¡¹ç®ç»è®¡") @GetMapping("/testProductByDay") public Result testProductByDay(){ return Result.success(reportService.testProductByDay()); } } inspect-server/src/main/java/com/yuanchu/mom/dto/CostStatisticsDto.java
@@ -44,6 +44,8 @@ private Integer insSampleId; private Double cost;//å·¥æ¶ public Integer getNum() { return num = 1; } inspect-server/src/main/java/com/yuanchu/mom/service/ReportService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.yuanchu.mom.service; import java.util.Map; public interface ReportService { //æ¯æ¥ä¸å¡ç»è®¡ Map<String,Object> businessStatisticsByDay(); //æ£æµé¡¹ç®ç»è®¡ Map<String,Object> testProductByDay(); } inspect-server/src/main/java/com/yuanchu/mom/service/impl/ReportServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,160 @@ package com.yuanchu.mom.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.dto.CostStatisticsDto; import com.yuanchu.mom.mapper.InsOrderMapper; import com.yuanchu.mom.mapper.InsProductMapper; import com.yuanchu.mom.mapper.InsProductUserMapper; import com.yuanchu.mom.pojo.InsOrder; import com.yuanchu.mom.pojo.InsProduct; import com.yuanchu.mom.pojo.InsProductUser; import com.yuanchu.mom.service.ReportService; import com.yuanchu.mom.utils.QueryWrappers; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service @AllArgsConstructor public class ReportServiceImpl implements ReportService { private InsOrderMapper insOrderMapper; private InsProductUserMapper insProductUserMapper; private InsProductMapper insProductMapper; //æ¯æ¥ä¸å¡ç»è®¡ @Override public Map<String, Object> businessStatisticsByDay() { Map<String, Object> map = new HashMap<>(); /*任塿¥æ¶*/ //仿¥ä»»å¡æ¥æ¶ Long receive = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 1).apply("DATE(create_time) = CURDATE()")); map.put("RECEIVE", receive); //æ¨æ¥ä»»å¡æ¥æ¶ Long received = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 1).apply("DATE(create_time) = CURDATE() - INTERVAL 1 DAY")); received = received == 0 ? 1 : received; //æ¯ä¾=(ä»å¤©-æ¨å¤©)/æ¨å¤© BigDecimal ratio = new BigDecimal(receive - received).divide(new BigDecimal(received), 2, BigDecimal.ROUND_HALF_UP); map.put("RECEIVE_RATIO", ratio); /*ä»»å¡å·²å®æ*/ //仿¥ä»»å¡å®æ Long finishe = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 4).apply("DATE(create_time) = CURDATE()")); map.put("FINISHE", finishe); //æ¨æ¥ä»»å¡å®æ Long finished = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 4).apply("DATE(create_time) = CURDATE() - INTERVAL 1 DAY")); finished = finished == 0 ? 1 : finished; //ä»»å¡å®ææ¯ä¾=(ä»å¤©-æ¨å¤©)/æ¨å¤© BigDecimal finishedRatio = new BigDecimal(finishe - finished).divide(new BigDecimal(finished), 2, BigDecimal.ROUND_HALF_UP); map.put("FINISHE_RATIO", finishedRatio); /*ä»»å¡å©ä½*/ //仿¥ä»»å¡å©ä½ long surplus = receive - finishe; map.put("SURPLUS", surplus); //æ¨æ¥ä»»å¡å©ä½ long surplused = received - finished; surplused = surplused == 0 ? 1 : surplused; //å©ä½æ¯ä¾=(ä»å¤©-æ¨å¤©)/æ¨å¤© BigDecimal surplusRatio = new BigDecimal(surplus - surplused).divide(new BigDecimal(surplused), 2, BigDecimal.ROUND_HALF_UP); map.put("SURPLUS_RATIO", surplusRatio); /*æ£æµè´¹ç¨*/ //仿¥æ£æµè´¹ç¨ QueryWrapper<CostStatisticsDto> costStatisticsDtoQueryWrappers = new QueryWrapper<>(); costStatisticsDtoQueryWrappers.eq("create_time", LocalDateTime.now()); IPage<CostStatisticsDto> page = new Page<>(); page.setSize(-1); page.setCurrent(-1); IPage<CostStatisticsDto> iPage = insOrderMapper.selectCostStatistics(page, costStatisticsDtoQueryWrappers); BigDecimal price = BigDecimal.ZERO; for (CostStatisticsDto record : iPage.getRecords()) { price.add(record.getPrice()); } map.put("PRICE", price); //æ¨æ¥æ£æµè´¹ç¨ QueryWrapper<CostStatisticsDto> costWrappers = new QueryWrapper<>(); costWrappers.eq("create_time", LocalDateTime.now().minusDays(1)); IPage<CostStatisticsDto> dtoIPage = insOrderMapper.selectCostStatistics(page, costWrappers); BigDecimal priced = BigDecimal.ZERO; for (CostStatisticsDto record : dtoIPage.getRecords()) { priced.add(record.getPrice()); } priced = priced.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ONE : priced; //æ¯ä¾=(仿¥-æ¨æ¥)/æ¨æ¥ BigDecimal priceRatio = (price.subtract(priced)).divide(priced, 2, BigDecimal.ROUND_HALF_UP); map.put("PRICE_RATIO", priceRatio); /*æ£æµå·¥æ¶*/ //仿¥æ£æµå·¥æ¶ Double cost = 0.0; for (CostStatisticsDto record : iPage.getRecords()) { cost += record.getCost(); } map.put("COST", cost); //æ¨æ¥æ£æµå·¥æ¶ Double costed = 0.0; for (CostStatisticsDto record : dtoIPage.getRecords()) { costed += record.getCost(); } costed = costed == 0 ? 1 : costed; //æ¯ä¾=(仿¥-æ¨æ¥)/æ¨æ¥ BigDecimal costRatio = new BigDecimal(cost - costed).divide(new BigDecimal(costed), 2, BigDecimal.ROUND_HALF_UP); map.put("COST_RATIO", costRatio); /*æ£æµäººå*/ //仿¥æ£æµäººå Long person = insProductUserMapper.selectCount(Wrappers.<InsProductUser>lambdaQuery().apply("DATE(create_time) = CURDATE()")); map.put("PERSON", person); //æ¨æ¥æ£æµäººå Long persons = insProductUserMapper.selectCount(Wrappers.<InsProductUser>lambdaQuery().apply("DATE(create_time) = CURDATE() - INTERVAL 1 DAY")); persons = persons == 0 ? 1 : persons; //æ¯ä¾=(ä»å¤©-æ¨å¤©)/æ¨å¤© BigDecimal personRatio = new BigDecimal(person - persons).divide(new BigDecimal(persons), 2, BigDecimal.ROUND_HALF_UP); map.put("PERSON_RATIO", personRatio); /*è¿åæ¥ä»»å¡æ¥æ¶éä¸å®æé*/ //è·åè¿åæ¥çæ¨ªåæ LocalDate currentDate = LocalDate.now(); List<LocalDate> lastTenDays = new ArrayList<>(); List<Long> receTenDays = new ArrayList<>(); List<Long> finTenDays = new ArrayList<>(); for (int i = 9; i > -1; i--) { lastTenDays.add(currentDate.minusDays(i)); receTenDays.add(insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 1).apply("DATE(create_time) = CURDATE() - INTERVAL " + i + " DAY"))); finTenDays.add(insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 4).apply("DATE(create_time) = CURDATE() - INTERVAL " + i + " DAY"))); } map.put("DAYS", lastTenDays); map.put("RECETENDAYS", receTenDays); map.put("FINISHTENDAYS", finTenDays); return map; } //æ£æµé¡¹ç®ç»è®¡ @Override public Map<String, Object> testProductByDay() { Map<String, Object> map = new HashMap<>(); /*é¡¹ç®æ¥æ¶*/ //仿¥é¡¹ç®æ¥æ¶é Long receive = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).apply("DATE(create_time) = CURDATE()")); /*项ç®å®æ*/ /*项ç®å©ä½*/ /*仿¥é¡¹ç®åæ ¼ç*/ /*仿¥é¡¹ç®å®æç*/ /*仿¥é¡¹ç®å»¶æç*/ /*è¿åæ¥çé¡¹ç®æ¥æ¶éä¸å®æé*/ return map; } } inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -125,6 +125,7 @@ isa.sample, isa.model, c.price, c.cost, c.inspection_item, u.company, u.`name`, @@ -134,7 +135,7 @@ ins_order i LEFT JOIN ins_sample isa ON isa.ins_order_id = i.id LEFT JOIN `user` u ON u.id = i.user_id LEFT JOIN (select SUM(b.price) price,b.ins_sample_id,GROUP_CONCAT(b.inspection_item SEPARATOR ',') LEFT JOIN (select SUM(b.price) price, sum(b.man_hour) cost,b.ins_sample_id,GROUP_CONCAT(b.inspection_item SEPARATOR ',') inspection_item from (select * from ins_product where state = 1 GROUP BY ins_sample_id,man_hour_group) b GROUP BY b.ins_sample_id) c ON c.ins_sample_id = isa.id ) a user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java
@@ -70,11 +70,13 @@ @Override public int updateUser(User user) { user.setDepartId("1,"+user.getDepartId()); return userMapper.updateById(user); } @Override public int addUser(User user) { user.setDepartId("1,"+user.getDepartId()); return userMapper.insert(user); }