server/src/main/java/doumeemes/api/ext/StatisticsController.java
@@ -2,14 +2,18 @@ import doumeemes.api.BaseController; import doumeemes.core.model.ApiResponse; import doumeemes.dao.business.dto.statistics.StatisticsPlanDataModel; import doumeemes.dao.business.dto.statistics.Unqualified7DayModel; import doumeemes.dao.business.dto.statistics.UserProduceTopModel; import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.dao.business.dto.statistics.*; import doumeemes.dao.ext.dto.*; import doumeemes.dao.ext.vo.DeviceCheckExtListVO; import doumeemes.dao.ext.vo.PlansExtListVO; import doumeemes.service.ext.StatisticsService; import doumeemes.service.ext.WorkorderExtService; import doumeemes.service.ext.WorkorderRecordExtService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -28,21 +32,60 @@ @Autowired private StatisticsService statisticsService; @ApiOperation("æ°æ®ç»è®¡ï¼æ§è¡ä¸ãå»¶æè®¡åæ°ã仿¥ç产人æ°ã仿¥çäº§è®¾å¤æ°ã仿¥ä¸è¯å") @ApiOperation("æ°æ®ç»è®¡-æå计åï¼æ§è¡ä¸ãå»¶æè®¡åæ°ã仿¥ç产人æ°ã仿¥çäº§è®¾å¤æ°ã仿¥ä¸è¯å") @GetMapping("/getPlanData/{companyId}/{departId}") public ApiResponse<StatisticsPlanDataModel> getPlansData(@PathVariable Integer companyId, @PathVariable Integer departId) { return ApiResponse.success(statisticsService.getPlansData(companyId,departId)); } @ApiOperation("æ°æ®ç»è®¡-å·¥åºè®¡åï¼æ§è¡ä¸ãå»¶æè®¡åæ°ã仿¥ç产人æ°ã仿¥çäº§è®¾å¤æ°ã仿¥ä¸è¯å") @GetMapping("/getProcedurePlanData/{companyId}/{departId}") public ApiResponse<StatisticsPlanDataModel> getProcedurePlanData(@PathVariable Integer companyId, @PathVariable Integer departId,@RequestParam Integer procedureId) { return ApiResponse.success(statisticsService.getProcedurePlanData(companyId,departId,procedureId)); } @ApiOperation("å工产åç»è®¡TOP10") @GetMapping("/userProduceTop/{companyId}/{departId}") public ApiResponse<List<UserProduceTopModel>> getUserProducceTop(@PathVariable Integer companyId, @PathVariable Integer departId) { return ApiResponse.success(statisticsService.getUserProduceTopData(companyId,departId)); public ApiResponse<List<UserProduceTopModel>> getUserProducceTop(@PathVariable Integer companyId, @PathVariable Integer departId,@RequestParam Integer procedureId) { return ApiResponse.success(statisticsService.getUserProduceTopData(companyId,departId,procedureId)); } @ApiOperation("è¿7天ä¸è¯ååå¸-ä¸è¯åæ°éç»è®¡") @GetMapping("/getUnqualified7DayData/{companyId}/{departId}") public ApiResponse<List<Unqualified7DayModel>> getUnqualified7DayData(@PathVariable Integer companyId, @PathVariable Integer departId) { return ApiResponse.success(statisticsService.getUnqualified7DayData(companyId,departId)); public ApiResponse<List<Unqualified7DayModel>> getUnqualified7DayData(@PathVariable Integer companyId, @PathVariable Integer departId,@RequestParam Integer procedureId) { return ApiResponse.success(statisticsService.getUnqualified7DayData(companyId,departId,procedureId)); } @ApiOperation("è¿7天ä¸è¯ååå¸-ä¸è¯åæ°é-æä¸è¯é¡¹ç»è®¡") @GetMapping("/getUnqualifiedCateData/{companyId}/{departId}") public ApiResponse<List<UnqualifiedCateModel>> getUnqualifiedCateData(@PathVariable Integer companyId, @PathVariable Integer departId,@RequestParam Integer procedureId) { return ApiResponse.success(statisticsService.getUnqualifiedCateData(companyId,departId,procedureId)); } @ApiOperation("æ¥å·¥æ¥å¿å页æ¥è¯¢") @PostMapping("/getRecordLogPage/{companyId}/{departId}") public ApiResponse<PageData<RecordLogModel>> getRecordLogPage(@PathVariable Integer companyId, @PathVariable Integer departId , @RequestBody PageWrap<QueryWorkorderRecordExtDTO> pageWrap) { return ApiResponse.success(statisticsService.getRecordLogPage(companyId,departId,pageWrap)); } @ApiOperation("å·¡æ£è®°å½å页æ¥è¯¢") @PostMapping("/getDeviceCheckPage/{companyId}/{departId}") public ApiResponse<PageData<DeviceCheckExtListVO>> getDeviceCheckPage (@PathVariable Integer companyId, @PathVariable Integer departId ,@RequestBody PageWrap<QueryDeviceCheckExtDTO> pageWrap) { return ApiResponse.success(statisticsService.getDeviceCheckPage(companyId,departId,pageWrap)); } @ApiOperation("å·¥åºè®¡åè¿åº¦æ¥è¯¢") @GetMapping("/getProcedurePlansList/{companyId}/{departId}") public ApiResponse<List<ProcedurePlansPageModel>> getProcedurePlansList (@PathVariable Integer companyId, @PathVariable Integer departId,@RequestParam Integer procedureId) { return ApiResponse.success(statisticsService.getProcedurePlansPage(companyId,departId,procedureId)); } @ApiOperation("æå计åè¿åº¦æ¥è¯¢") @GetMapping("/getWorkPlansList/{companyId}/{departId}") public ApiResponse<List<WorkPlansPageModel>> getWorkPlansList (@PathVariable Integer companyId, @PathVariable Integer departId ) { return ApiResponse.success(statisticsService.getWorkPlansList(companyId,departId)); } @ApiOperation("æå计å-å·¥åºè¿åº¦æ¥è¯¢") @GetMapping("/getProcedureProcessList/{companyId}/{departId}") public ApiResponse<List<ProcedureProcessModel>> getProcedureProcessList (@PathVariable Integer companyId, @PathVariable Integer departId ) { return ApiResponse.success(statisticsService.getProcedureProcessList(companyId,departId)); } server/src/main/java/doumeemes/dao/business/dto/statistics/CheckRecordModel.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package doumeemes.dao.business.dto.statistics; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; @Data @ApiModel("大屿°æ®çæ¿- 设å¤å·¡æ£") /** * æ»å¨å±ç¤ºææ°20æ¡è®¾å¤å·¡æ£è®°å½ï¼æç §æ¶é´ååºæåï¼ */ public class CheckRecordModel { @ApiModelProperty(value = "å·¡æ£æ¶é´") private Date createTime; @ApiModelProperty(value = "åå·¥å§å") private String userName; @ApiModelProperty(value = "设å¤åç§°") private String materialCode; @ApiModelProperty(value = "å·¡æ£ç»æ 0åæ ¼ 1ä¸è¯",example = "1") private Integer doneType; } server/src/main/java/doumeemes/dao/business/dto/statistics/ProcedurePlansPageModel.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,38 @@ package doumeemes.dao.business.dto.statistics; import doumeemes.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; @Data @ApiModel("大屿°æ®çæ¿- ãå·¥åºè®¡åè¿åº¦ï¼ï¼ä¸å页ï¼å±ç¤ºæææ°æ®ï¼") /** * 以å½åå·¥åºç»´åº¦å±ç¤ºå·¥åºè®¡åçæ åµï¼ * ç»è®¡èå´ï¼ãå·²åå¸ãããå·²åé ãæè [ãå·²å®å·¥ãä¸å½å¤©ææ¥å·¥è®°å½çå·¥åºè®¡å]ï¼ * å±ç¤ºç©æåç§°ãç¼ç ãè®¡åæ°éã宿çè¯åæ°ãä¸è¯åæ°ãæªå®å·¥æ°=è®¡åæ°-è¯åæ°-ä¸è¯åæ°ãä¸è¯ç=ä¸è¯åæ°/æ»å®å·¥æ°*100%ï¼ * æç §å建æ¶é´æ£åºå±ç¤ºï¼ */ public class ProcedurePlansPageModel { @ApiModelProperty(value = "å·¥åºåç§°", example = "1") private String procedureName; @ApiModelProperty(value = "å·¥åºç¼ç ", example = "1") private Integer procedureId; @ApiModelProperty(value = "ä¸è¯åç", example = "1") private BigDecimal unqualifiedRate; @ApiModelProperty(value = "ä¸è¯åæ°", example = "1") private BigDecimal unqualifiedNum; @ApiModelProperty(value = "è¯åæ°", example = "1") private BigDecimal qualifiedNum; @ApiModelProperty(value = "æªå®å·¥æ°é", example = "1") private BigDecimal undoneNum; @ApiModelProperty(value = "计åç产æ°é", example = "1") private BigDecimal num; @ApiModelProperty(value = "计å个æ°", example = "1") private Integer planCount; } server/src/main/java/doumeemes/dao/business/dto/statistics/ProcedureProcessModel.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,37 @@ package doumeemes.dao.business.dto.statistics; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data @ApiModel("大屿°æ®çæ¿- æå计åè¿åº¦-å·¥åºå表 ") /** * ç»è®¡èå´ä¸ºãå·²æ¥å·¥ãç¶æçå·¥åçæ¥å·¥æ°éï¼ * å表å±ç¤ºç¶æä¸ºãæ§è¡ä¸ãæè ã已宿ãä¸å½å¤©ææ¥å·¥è®°å½çæå计åï¼æç §å建æ¶é´æ£åºå±ç¤ºï¼ * åå·¥åºå®ææ åµï¼æç §å·¥èºè·¯çº¿ä¸çå·¥åºé¡ºåºå±ç¤ºï¼å¹¶å±ç¤ºå½åå·¥åºç宿æ åµï¼å®ææ åµ=è¯åæ°/è®¡åæ°ï¼ç¹å»å·¥åºå称跳转å°å·¥åºå¤§å± * æåä¸åçè¯åæ°/å®å·¥æ°ï¼ä¸ºå½å产åæåä¸éå·¥åºçè¯åæ°/å®å·¥æ°ï¼ */ public class ProcedureProcessModel { @ApiModelProperty(value = "ä¸è¯åæ°", example = "1") private BigDecimal unqualifiedNum; @ApiModelProperty(value = "è¯åæ°", example = "1") private BigDecimal qualifiedNum; @ApiModelProperty(value = "æªå®å·¥æ°é", example = "1") private BigDecimal undoneNum; @ApiModelProperty(value = "è®¡åæ°é", example = "1") private BigDecimal num; @ApiModelProperty(value = "ä¸è¯åç%", example = "1") private BigDecimal unqualifiedRate; @ApiModelProperty(value = "ç©æç¼ç ") private String materialCode; @ApiModelProperty(value = "å·¥åºåç§°") private String procedureName; @ApiModelProperty(value = "ç¶æ 0å·²çæã1å·²åå¸ã2å·²æ¤åã3已忶ã4å·²åé ã5å·²æåã6å·²å®å·¥ã7å·²å ¥åºã8å·²å ³é", example = "1") private Integer status; } server/src/main/java/doumeemes/dao/business/dto/statistics/RecordLogModel.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,30 @@ package doumeemes.dao.business.dto.statistics; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; @Data @ApiModel("大屿°æ®çæ¿- æ¥å·¥æ¥å¿") /** * æ»å¨å±ç¤ºåå·¥ææ°20æ¡æ¥å·¥æ°æ®ï¼ç»è®¡èå´ä¸ºå·¥åç¶æä¸ºãå·²æ¥å·¥ãï¼ */ public class RecordLogModel { @ApiModelProperty(value = "ä¸è¯åæ°", example = "1") private BigDecimal unqualifiedNum; @ApiModelProperty(value = "è¯åæ°", example = "1") private BigDecimal qualifiedNum; @ApiModelProperty(value = "æ¥å·¥æ¶é´") private Date createTime; @ApiModelProperty(value = "ä¸è¯åç%") private BigDecimal unqualifiedRate; @ApiModelProperty(value = "åå·¥å§å") private String userName; @ApiModelProperty(value = "ç©æç¼ç ") private String materialCode; @ApiModelProperty(value = "ç©æåç§°") private String materialName; } server/src/main/java/doumeemes/dao/business/dto/statistics/Unqualified7DayModel.java
@@ -8,10 +8,10 @@ import java.util.Date; @Data @ApiModel("大屿°æ®çæ¿-å工产åç»è®¡TOP10") @ApiModel("大屿°æ®çæ¿-è¿7天ä¸è¯ååå¸ ä¸è¯åæ°éç»è®¡") /** * ç»è®¡èå´ä¸ºå½æ¥ï¼å·¥åç¶æä¸ºãå·²æ¥å·¥ãï¼ * æ ¹æ®åå·¥æ¥å·¥è¯åæ°ç»è®¡æåºï¼ * æç §å½å¤©æ¶é´å¾åç»è®¡7å¤©çæ°æ®ï¼å å«å½å¤©ï¼ * ç»è®¡æ¯å¤©æ¥å·¥çä¸è¯åæ°ï¼å·¥å为已æ¥å·¥ç¶æï¼ï¼ */ public class Unqualified7DayModel { @ApiModelProperty(value = "ä¸è¯åæ°", example = "1") server/src/main/java/doumeemes/dao/business/dto/statistics/UnqualifiedCateModel.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package doumeemes.dao.business.dto.statistics; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; @Data @ApiModel("大屿°æ®çæ¿- è¿7天ä¸è¯ååå¸ ä¸è¯é¡¹åå¸") /** * æç §å½å¤©æ¶é´å¾åç»è®¡7å¤©çæ°æ®ï¼å å«å½å¤©ï¼ * ç»è®¡æ¯å¤©æ¥å·¥çä¸è¯é¡¹çä¸è¯åæ°éï¼å·¥å为已æ¥å·¥ç¶æï¼ï¼ * æç §ä¸è¯é¡¹ç»è®¡å±ç¤ºå个ä¸è¯é¡¹ä¸ä¸è¯åçæ°éï¼ * å±ç¤ºæåå6çä¸è¯é¡¹çå叿 åµï¼ */ public class UnqualifiedCateModel { @ApiModelProperty(value = "ä¸è¯åæ°", example = "1") private BigDecimal unqualifiedNum; @ApiModelProperty(value = "ä¸è¯é¡¹") private String categoryName; } server/src/main/java/doumeemes/dao/business/dto/statistics/WorkPlansPageModel.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ package doumeemes.dao.business.dto.statistics; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.List; @Data @ApiModel("大屿°æ®çæ¿- æå计åè¿åº¦ï¼ï¼ä¸å页ï¼å±ç¤ºæææ°æ®ï¼") /** * ç»è®¡èå´ä¸ºãå·²æ¥å·¥ãç¶æçå·¥åçæ¥å·¥æ°éï¼ * å表å±ç¤ºç¶æä¸ºãæ§è¡ä¸ãæè ã已宿ãä¸å½å¤©ææ¥å·¥è®°å½çæå计åï¼æç §å建æ¶é´æ£åºå±ç¤ºï¼ * åå·¥åºå®ææ åµï¼æç §å·¥èºè·¯çº¿ä¸çå·¥åºé¡ºåºå±ç¤ºï¼å¹¶å±ç¤ºå½åå·¥åºç宿æ åµï¼å®ææ åµ=è¯åæ°/è®¡åæ°ï¼ç¹å»å·¥åºå称跳转å°å·¥åºå¤§å± * æåä¸åçè¯åæ°/å®å·¥æ°ï¼ä¸ºå½å产åæåä¸éå·¥åºçè¯åæ°/å®å·¥æ°ï¼ */ public class WorkPlansPageModel { @ApiModelProperty(value = "è¯åæ°", example = "1") private BigDecimal qualifiedNum; @ApiModelProperty(value = "å®å·¥æ°é", example = "1") private BigDecimal doneNum; @ApiModelProperty(value = "è®¡åæ°é", example = "1") private BigDecimal num; @ApiModelProperty(value = "计åç¼ç ", example = "1") private String code; @ApiModelProperty(value = "ç©æç¼ç ") private String materialCode; @ApiModelProperty(value = "ç©æåç§°") private String materialName; @ApiModelProperty(value = "ç©æµç¼ç ", example = "1") private Integer materialId; @ApiModelProperty(value = "计åç¼ç ", example = "1") private Integer id; @ApiModelProperty(value = "å·¥èºè·¯çº¿ç¼ç ", example = "1") private Integer routeId; @ApiModelProperty(value = "ç¶æ 0å·²çæã1å·²åå¸ã2å·²æ¤åã3已忶ã4å·²åé ã5å·²æåã6å·²å®å·¥ã7å·²å ¥åºã8å·²å ³é", example = "1") private Integer status; @ApiModelProperty(value = "å·¥åºéå", example = "1") private List<WorkPlansProcedureModel> procedureList; } server/src/main/java/doumeemes/dao/business/dto/statistics/WorkPlansProcedureModel.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ package doumeemes.dao.business.dto.statistics; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data @ApiModel("大屿°æ®çæ¿- æå计åè¿åº¦-å·¥åºè¿åº¦è¯¦æ ") /** * ç»è®¡èå´ä¸ºãå·²æ¥å·¥ãç¶æçå·¥åçæ¥å·¥æ°éï¼ * å表å±ç¤ºç¶æä¸ºãæ§è¡ä¸ãæè ã已宿ãä¸å½å¤©ææ¥å·¥è®°å½çæå计åï¼æç §å建æ¶é´æ£åºå±ç¤ºï¼ * åå·¥åºå®ææ åµï¼æç §å·¥èºè·¯çº¿ä¸çå·¥åºé¡ºåºå±ç¤ºï¼å¹¶å±ç¤ºå½åå·¥åºç宿æ åµï¼å®ææ åµ=è¯åæ°/è®¡åæ°ï¼ç¹å»å·¥åºå称跳转å°å·¥åºå¤§å± * æåä¸åçè¯åæ°/å®å·¥æ°ï¼ä¸ºå½å产åæåä¸éå·¥åºçè¯åæ°/å®å·¥æ°ï¼ */ public class WorkPlansProcedureModel { @ApiModelProperty(value = "å·¥åºåç§°", example = "1") private String procedureName; @ApiModelProperty(value = "å®å·¥ç", example = "1") private BigDecimal rate; @ApiModelProperty(value = "å·¥åºç¼ç ", example = "1") private Integer procedureId; } server/src/main/java/doumeemes/dao/business/model/Plans.java
@@ -134,22 +134,18 @@ @ApiModelProperty(value = "å¯¼å ¥æ¹å·ï¼å ³èplan_import表)", example = "1") @ExcelColumn(name="å¯¼å ¥æ¹å·ï¼å ³èplan_import表)") private Integer importId; @ApiModelProperty(value = "计ååç¼ç ï¼ä¸system_userè¡¨å ³èï¼", example = "1") @ExcelColumn(name="计ååç¼ç ï¼ä¸system_userè¡¨å ³èï¼") private Integer userId; @ApiModelProperty(value = "ç¶æ 0å·²çæã1å·²åå¸ã2å·²æ¤åã3已忶ã4å·²åé ã5å·²æåã6å·²å®å·¥ã7å·²å ¥åºã8å·²å ³é", example = "1") @ExcelColumn(name="ç¶æ 0å·²çæã1å·²åå¸ã2å·²æ¤åã3已忶ã4å·²åé ã5å·²æåã6å·²å®å·¥ã7å·²å ¥åºã8å·²å ³é") private Integer status; @ApiModelProperty(value = "计åç±»å 0æ£å¸¸1å¼å¸¸2è¿å·¥", example = "1") @ExcelColumn(name="计åç±»å 0æ£å¸¸1å¼å¸¸2è¿å·¥") private Integer type; @ApiModelProperty(value = "å·²æ¥å·¥æ°é", example = "1",hidden = true) @TableField(exist = false) private Integer baogongNum; @ApiModelProperty(value = "计åå叿¶é´") @ExcelColumn(name="计åå叿¶é´") @JsonFormat(pattern = "yyyy-MM-dd") server/src/main/java/doumeemes/dao/business/model/Workorder.java
server/src/main/java/doumeemes/dao/ext/PlansExtMapper.java
@@ -1,5 +1,8 @@ package doumeemes.dao.ext; import doumeemes.dao.business.dto.statistics.ProcedurePlansPageModel; import doumeemes.dao.business.dto.statistics.ProcedureProcessModel; import doumeemes.dao.business.dto.statistics.StatisticsPlanDataModel; import doumeemes.dao.business.model.Plans; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import doumeemes.dao.ext.dto.QueryWOutboundExtDTO; @@ -16,6 +19,8 @@ * @date 2022/04/20 11:01 */ List<PlansExtListVO> selectList(QueryPlansExtDTO dto); List<ProcedureProcessModel> selectProcedureProcessList(QueryPlansExtDTO dto); List<ProcedurePlansPageModel> selectStatisticsList(QueryPlansExtDTO dto); int selectCount(QueryPlansExtDTO dto); void insertBatch(List<Plans> plansList); @@ -24,4 +29,5 @@ Integer selectCountToday(QueryPlansExtDTO w); StatisticsPlanDataModel getPlansStaticticsData(QueryPlansExtDTO param); } server/src/main/java/doumeemes/dao/ext/RouteProcedureExtMapper.java
@@ -21,4 +21,6 @@ List<RouteProcedureExtListVO> selectListByNext(QueryRouteProcedureExtDTO dto); List<RouteProcedureExtListVO> selectStatisticsList(QueryRouteProcedureExtDTO r); } server/src/main/java/doumeemes/dao/ext/WorkPlansExtMapper.java
@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import doumeemes.dao.business.dto.statistics.ProcedurePlansPageModel; import doumeemes.dao.business.dto.statistics.StatisticsPlanDataModel; import doumeemes.dao.business.dto.statistics.WorkPlansPageModel; import doumeemes.dao.business.model.WorkPlans; import doumeemes.dao.business.vo.WorkPlansVO; import doumeemes.dao.ext.dto.QueryWorkPlansDTO; @@ -32,6 +34,8 @@ StatisticsPlanDataModel getPlansStaticticsData(QueryWorkPlansDTO workPlans); List<WorkPlansPageModel> selectStatisticsList(QueryWorkPlansExtDTO param); // @Select(" SELECT" + // " `a`.*, mmodel.CODE as materialCode, mmodel.NAME as materialName , fmodel.NAME as factoryName,usermodel.REALNAME as userName , usermodel.mobile as userMobile " + // " FROM `work_plans` `a`" + server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java
@@ -1,6 +1,8 @@ package doumeemes.dao.ext; import doumeemes.dao.business.dto.statistics.RecordLogModel; import doumeemes.dao.business.dto.statistics.Unqualified7DayModel; import doumeemes.dao.business.dto.statistics.UnqualifiedCateModel; import doumeemes.dao.business.dto.statistics.UserProduceTopModel; import doumeemes.dao.business.model.WorkorderRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -42,4 +44,6 @@ List<UserProduceTopModel> getUserProduceTopData(QueryWorkorderRecordExtDTO param); List<Unqualified7DayModel> getUnqualified7DayData(QueryWorkorderRecordExtDTO param); List<UnqualifiedCateModel> getUnqualifiedCateData(QueryWorkorderRecordExtDTO param); List<RecordLogModel> getRecordLog(QueryWorkorderRecordExtDTO param); } server/src/main/java/doumeemes/dao/ext/dto/QueryPlansExtDTO.java
@@ -428,6 +428,8 @@ @ApiModelProperty(value = "ç³»ç»ç¨æ·ä¿¡æ¯è¡¨ç¨æ·ç±»å 0å¹³å°ç¨æ· 1ä¼ä¸ç¨æ·", example = "1") private Integer usermodelType; @ApiModelProperty(value = "æ¥è¯¢æ è¯ 0大屿¥è¯¢", example = "1") private Integer queryType; @ApiModelProperty(value = "å·¥åºç¼ç éå", example = "1",hidden = true) private List<Integer> procedureIds; server/src/main/java/doumeemes/dao/ext/dto/QueryRouteProcedureExtDTO.java
@@ -197,5 +197,7 @@ @ApiModelProperty(value = "å·¥åºä¿¡æ¯è¡¨è®¾å¤æ¶é屿¬¡ 0è®¾å¤ 1ç»", example = "1") private Integer pmodelLevel; @ApiModelProperty(value = "æå计åç¼ç ", example = "1") private Integer workPlanId; } server/src/main/java/doumeemes/dao/ext/vo/RouteProcedureExtListVO.java
@@ -8,6 +8,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import java.math.BigDecimal; import java.util.Date; import java.io.Serializable; @@ -68,6 +70,15 @@ @ApiModelProperty(value = "å·¥åºæ°é", example = "1") @ExcelColumn(name="å·¥åºæ°é") private Integer procedureNum; @ApiModelProperty(value = "å·¥åºåç§°", example = "1") @ExcelColumn(name="å·¥åºåç§°") private String procedureName; @ApiModelProperty(value = "æå计åå·¥åºå®å·¥æ°é", example = "1") private BigDecimal doneNum; @ApiModelProperty(value = "æå计åå·¥åºè®¡åæ°é", example = "1") private BigDecimal planNum; @ApiModelProperty(value = "æå计åå·¥åºå®æè¯åæ°", example = "1") private BigDecimal qualifiedNum; @ApiModelProperty(value = "ç¶æ0.æ æ 1.ææ", example = "1") @ExcelColumn(name="ç¶æ0.æ æ 1.ææ") server/src/main/java/doumeemes/service/ext/StatisticsService.java
@@ -1,20 +1,12 @@ package doumeemes.service.ext; import doumeemes.core.model.ApiResponse; import doumeemes.core.model.LoginUserInfo; import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.dao.business.dto.statistics.StatisticsPlanDataModel; import doumeemes.dao.business.dto.statistics.Unqualified7DayModel; import doumeemes.dao.business.dto.statistics.UserProduceTopModel; import doumeemes.dao.business.model.Workorder; import doumeemes.dao.ext.bean.FinishedInBean; import doumeemes.dao.ext.bean.FinishedInNewBean; import doumeemes.dao.ext.dto.QueryWorkorderExtDTO; import doumeemes.dao.ext.vo.PlansExtListH5VO; import doumeemes.dao.ext.vo.WorkorderExtListCountVO; import doumeemes.dao.ext.vo.WorkorderExtListVO; import doumeemes.dao.ext.vo.WorkorderListModelVO; import doumeemes.dao.business.dto.statistics.*; import doumeemes.dao.ext.dto.QueryDeviceCheckExtDTO; import doumeemes.dao.ext.dto.QueryPlansExtDTO; import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO; import doumeemes.dao.ext.vo.*; import org.springframework.stereotype.Service; import java.util.List; @@ -30,6 +22,19 @@ StatisticsPlanDataModel getPlansData(Integer companyId, Integer departId); List<UserProduceTopModel> getUserProduceTopData(Integer companyId, Integer departId); List<Unqualified7DayModel> getUnqualified7DayData(Integer companyId, Integer departId); List<UserProduceTopModel> getUserProduceTopData(Integer companyId, Integer departId, Integer procedureId); List<Unqualified7DayModel> getUnqualified7DayData(Integer companyId, Integer departId, Integer procedureId); List<UnqualifiedCateModel> getUnqualifiedCateData(Integer companyId, Integer departId, Integer procedureId); PageData<RecordLogModel> getRecordLogPage(Integer companyId, Integer departId, PageWrap<QueryWorkorderRecordExtDTO> pageWrap); PageData<DeviceCheckExtListVO> getDeviceCheckPage(Integer companyId, Integer departId,PageWrap<QueryDeviceCheckExtDTO> pageWrap); StatisticsPlanDataModel getProcedurePlanData(Integer companyId, Integer departId, Integer procedureId); List<ProcedurePlansPageModel> getProcedurePlansPage(Integer companyId, Integer departId, Integer procedureId); List<WorkPlansPageModel> getWorkPlansList(Integer companyId, Integer departId); List<ProcedureProcessModel> getProcedureProcessList(Integer companyId, Integer departId); } server/src/main/java/doumeemes/service/ext/impl/StatisticsServiceImpl.java
@@ -14,28 +14,19 @@ import doumeemes.dao.business.WOutboundMapper; import doumeemes.dao.business.WTransferMapper; import doumeemes.dao.business.WorkorderMapper; import doumeemes.dao.business.dto.statistics.StatisticsPlanDataModel; import doumeemes.dao.business.dto.statistics.Unqualified7DayModel; import doumeemes.dao.business.dto.statistics.UserProduceTopModel; import doumeemes.dao.business.dto.statistics.*; import doumeemes.dao.business.model.*; import doumeemes.dao.ext.*; import doumeemes.dao.ext.dto.QueryBarcodeParamExtDTO; import doumeemes.dao.ext.dto.QueryCompanyExtDTO; import doumeemes.dao.ext.dto.QueryWorkPlansDTO; import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO; import doumeemes.dao.ext.vo.BarcodeParamContent; import doumeemes.dao.ext.vo.BarcodeParamExtListVO; import doumeemes.dao.ext.vo.CompanyExtListVO; import doumeemes.dao.ext.vo.DepartmentExtListVO; import doumeemes.service.ext.BarcodeParamExtService; import doumeemes.service.ext.DepartmentExtService; import doumeemes.service.ext.StatisticsService; import doumeemes.dao.ext.dto.*; import doumeemes.dao.ext.vo.*; import doumeemes.service.ext.*; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.time.LocalDate; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -54,9 +45,17 @@ @Autowired private WorkPlansExtMapper workPlansExtMapper; @Autowired private RouteProcedureExtMapper routeProcedureExtMapper; @Autowired private PlansExtMapper plansExtMapper; @Autowired private WorkorderRecordExtMapper workorderRecordExtMapper; @Autowired private DepartmentExtService departmentExtService; @Autowired private DeviceCheckExtService deviceCheckExtService; @Autowired private PlansExtService plansExtService; @Override public StatisticsPlanDataModel getPlansData(Integer companyId, Integer departId) { @@ -69,7 +68,7 @@ workPlans.setDepartId(departId); //æ¥è¯¢ç»è®¡ç»æ StatisticsPlanDataModel model = workPlansExtMapper.getPlansStaticticsData(workPlans); model.setUnqualifiedNum(new BigDecimal(0)); model.setUnqualifiedRate(new BigDecimal(0)); if(model.getDoneNUm() !=null && model.getDoneNUm().compareTo(new BigDecimal(0)) != 0){ //ä¸è¯åç model.setUnqualifiedRate(model.getUnqualifiedNum().divide(model.getDoneNUm(),4).multiply(new BigDecimal(100))); @@ -77,13 +76,33 @@ return model; } @Override public List<UserProduceTopModel> getUserProduceTopData(Integer companyId, Integer departId) { public StatisticsPlanDataModel getProcedurePlanData(Integer companyId, Integer departId, Integer procedureId){ DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼ä¼ä¸æè é¨é¨ä¿¡æ¯ä¸åæ³ï¼å¦æçé®ï¼è¯·è系系ç»ç®¡çå"); } QueryPlansExtDTO param = new QueryPlansExtDTO(); param.setRootDepartId(department.getRootId()); param.setDepartId(departId); param.setProcedureId(procedureId); //æ¥è¯¢ç»è®¡ç»æ StatisticsPlanDataModel model = plansExtMapper.getPlansStaticticsData(param); model.setUnqualifiedRate(new BigDecimal(0)); if(model.getDoneNUm() !=null && model.getDoneNUm().compareTo(new BigDecimal(0)) != 0){ //ä¸è¯åç model.setUnqualifiedRate(model.getUnqualifiedNum().divide(model.getDoneNUm(),4).multiply(new BigDecimal(100))); } return model; } @Override public List<UserProduceTopModel> getUserProduceTopData(Integer companyId, Integer departId, Integer procedureId) { DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼ä¼ä¸æè é¨é¨ä¿¡æ¯ä¸åæ³ï¼å¦æçé®ï¼è¯·è系系ç»ç®¡çå"); } QueryWorkorderRecordExtDTO param = new QueryWorkorderRecordExtDTO(); param.setRootDepartId(department.getRootId()); param.setProcedureId(procedureId); param.setDepartId(departId); //æ¥è¯¢ç»è®¡ç»æ List<UserProduceTopModel> model = workorderRecordExtMapper.getUserProduceTopData(param); @@ -91,7 +110,30 @@ return model; } @Override public List<Unqualified7DayModel> getUnqualified7DayData(Integer companyId, Integer departId) { public List<ProcedureProcessModel> getProcedureProcessList(Integer companyId, Integer departId) { DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼ä¼ä¸æè é¨é¨ä¿¡æ¯ä¸åæ³ï¼å¦æçé®ï¼è¯·è系系ç»ç®¡çå"); } QueryPlansExtDTO param = new QueryPlansExtDTO(); param.setRootDepartId(department.getRootId()); param.setDepartId(departId); //æ¥è¯¢ç»è®¡ç»æ List<ProcedureProcessModel> result = plansExtMapper.selectProcedureProcessList(param); if(result !=null){ for(ProcedureProcessModel model : result){ //æªå®ææ° BigDecimal doneNum =Constants.formatBigdecimal(model.getUnqualifiedNum()) .add(Constants.formatBigdecimal(model.getQualifiedNum())); model.setUndoneNum(Constants.formatBigdecimal(model.getNum()).subtract(doneNum); //ä¸è¯åç model.set } } return result; } @Override public List<Unqualified7DayModel> getUnqualified7DayData(Integer companyId, Integer departId, Integer procedureId) { DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼ä¼ä¸æè é¨é¨ä¿¡æ¯ä¸åæ³ï¼å¦æçé®ï¼è¯·è系系ç»ç®¡çå"); @@ -99,6 +141,7 @@ QueryWorkorderRecordExtDTO param = new QueryWorkorderRecordExtDTO(); param.setRootDepartId(department.getRootId()); param.setDepartId(departId); param.setProcedureId(procedureId); //æ¥è¯¢ç»è®¡ç»æ List<Unqualified7DayModel> model = workorderRecordExtMapper.getUnqualified7DayData(param); List<Unqualified7DayModel> result = new ArrayList<>(); @@ -114,8 +157,129 @@ result.add(m); } return result; } @Override public List<UnqualifiedCateModel> getUnqualifiedCateData(Integer companyId, Integer departId, Integer procedureId) { DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼ä¼ä¸æè é¨é¨ä¿¡æ¯ä¸åæ³ï¼å¦æçé®ï¼è¯·è系系ç»ç®¡çå"); } QueryWorkorderRecordExtDTO param = new QueryWorkorderRecordExtDTO(); param.setRootDepartId(department.getRootId()); param.setDepartId(departId); param.setProcedureId(procedureId); //æ¥è¯¢ç»è®¡ç»æ List<UnqualifiedCateModel> model = workorderRecordExtMapper.getUnqualifiedCateData(param); return model; } @Override public PageData<RecordLogModel> getRecordLogPage(Integer companyId, Integer departId, PageWrap<QueryWorkorderRecordExtDTO> pageWrap){ DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼ä¼ä¸æè é¨é¨ä¿¡æ¯ä¸åæ³ï¼å¦æçé®ï¼è¯·è系系ç»ç®¡çå"); } //åªè½æ¥çå½åæ ¹ç»ç»çæ°æ® pageWrap.getModel().setRootDepartId(department.getRootId()); pageWrap.getModel().setDepartId(departId); PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); List<RecordLogModel> result = workorderRecordExtMapper.getRecordLog(pageWrap.getModel()); if(result!=null){ for(RecordLogModel model : result){ model.setUnqualifiedNum(new BigDecimal(0)); BigDecimal doneNum = Constants.formatBigdecimal(model.getUnqualifiedNum()).add(Constants.formatBigdecimal(model.getQualifiedNum())); if(model.getUnqualifiedNum() !=null && doneNum.compareTo(new BigDecimal(0)) != 0){ //ä¸è¯åç model.setUnqualifiedRate(model.getUnqualifiedNum().divide(doneNum,4).multiply(new BigDecimal(100))); } } } return PageData.from(new PageInfo<>(result)); } @Override public PageData<DeviceCheckExtListVO> getDeviceCheckPage(Integer companyId, Integer departId,PageWrap<QueryDeviceCheckExtDTO> pageWrap){ DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼ä¼ä¸æè é¨é¨ä¿¡æ¯ä¸åæ³ï¼å¦æçé®ï¼è¯·è系系ç»ç®¡çå"); } //åªè½æ¥çå½åæ ¹ç»ç»çæ°æ® pageWrap.getModel().setRootDepartId(department.getRootId()); pageWrap.getModel().setComDepartId(departId); PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); return deviceCheckExtService.findPage(pageWrap); } @Override public List<ProcedurePlansPageModel> getProcedurePlansPage(Integer companyId, Integer departId,Integer procedureId){ DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼ä¼ä¸æè é¨é¨ä¿¡æ¯ä¸åæ³ï¼å¦æçé®ï¼è¯·è系系ç»ç®¡çå"); } if(procedureId == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"å·¥åºç¼ç ä¸è½ä¸ºç©ºï¼"); } QueryPlansExtDTO param = new QueryPlansExtDTO(); param.setRootDepartId(department.getRootId()); param.setDepartId(departId); param.setProcedureId(procedureId); List<ProcedurePlansPageModel> result = plansExtMapper.selectStatisticsList(param); if(result != null){ for(ProcedurePlansPageModel model :result){ model.setUnqualifiedRate(new BigDecimal(0)); BigDecimal doneNum = Constants.formatBigdecimal(model.getQualifiedNum()).add(Constants.formatBigdecimal(model.getUnqualifiedNum())); if(model.getUnqualifiedNum() !=null && doneNum.compareTo(new BigDecimal(0)) != 0){ //ä¸è¯åç model.setUnqualifiedRate(model.getUnqualifiedNum().divide(doneNum,4).multiply(new BigDecimal(100))); model.setUndoneNum(Constants.formatBigdecimal(model.getNum()).subtract(doneNum)); } } } return result; } @Override public List<WorkPlansPageModel> getWorkPlansList(Integer companyId, Integer departId){ DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼ä¼ä¸æè é¨é¨ä¿¡æ¯ä¸åæ³ï¼å¦æçé®ï¼è¯·è系系ç»ç®¡çå"); } QueryWorkPlansExtDTO param = new QueryWorkPlansExtDTO(); param.setRootDepartId(department.getRootId()); param.setDepartId(departId); List<WorkPlansPageModel> result = workPlansExtMapper.selectStatisticsList(param); if(result != null){ for(WorkPlansPageModel model :result){ if(model.getRouteId() ==null){ continue; } //æ¥è¯¢å·¥åºéåå宿æ åµ QueryRouteProcedureExtDTO r = new QueryRouteProcedureExtDTO(); r.setRouteId(model.getRouteId()); r.setDeleted(Constants.ZERO); List<RouteProcedureExtListVO> list = routeProcedureExtMapper.selectStatisticsList(r); List<WorkPlansProcedureModel> rList = new ArrayList<>(); if(list != null){ for(RouteProcedureExtListVO t : list){ WorkPlansProcedureModel tt = new WorkPlansProcedureModel(); tt.setProcedureName(t.getProcedureName()); tt.setProcedureId(t.getProcedureId()); tt.setRate(new BigDecimal(0)); if( Constants.formatBigdecimal(t.getPlanNum()).compareTo(new BigDecimal(0)) >0){ //宿ç tt.setRate(Constants.formatBigdecimal(t.getDoneNum()).divide(t.getPlanNum(),4).subtract(new BigDecimal(100))); } rList.add(tt); //æåä¸åçè¯åæ°/å®å·¥æ°ï¼ä¸ºå½å产åæåä¸éå·¥åºçè¯åæ°/å®å·¥æ° model.setNum(t.getPlanNum()); model.setQualifiedNum(t.getDoneNum()); } } model.setProcedureList(rList); } } return result; } private Unqualified7DayModel getReusltModelByDate(Date td, List<Unqualified7DayModel> model ) { if(model !=null){ server/src/main/resources/mappers/PlansExtMapper.xml
@@ -287,6 +287,32 @@ and to_days(`a`.`CREATE_TIME`)=to_days(now()) </where> </select> <select id="selectProcedureProcessList" parameterType="doumeemes.dao.ext.dto.QueryPlansExtDTO" resultType="doumeemes.dao.business.dto.statistics.ProcedureProcessModel"> select a.PROCEDURE_ID as procedureId, b.name as procedureName, sum(a.num) as num, count(DISTINCT(a.id)) as planCount, (select sum(d.QUALIFIED_NUM) from workorder_record d where d.DELETED=0 and d.PLAN_ID=a.id and d.TYPE=1) as qualifiedNum , (select sum(d.UNQUALIFIED_NUM) from workorder_record d where d.DELETED=0 and d.PLAN_ID=a.id and d.TYPE=1) as unqualifiedNum from plans a left join procedures b on a.PROCEDURE_ID =b.ID where ( a.`STATUS` in (1,4) or a.`STATUS`=6 and EXISTS(select e.id from workorder_record e where e.PLAN_ID = a.id and TO_DAYS(now())=TO_DAYS(e.CREATE_TIME))) and a.ROOT_DEPART_ID=#{rootDepartId} and a.DEPART_ID=#{departId} and b.DELETED=0 and a.ROOT_DEPART_ID=132 GROUP BY a.PROCEDURE_ID order by b.SORTNUM </select> <select id="selectStatisticsList" parameterType="doumeemes.dao.ext.dto.QueryPlansExtDTO" resultType="doumeemes.dao.business.dto.statistics.ProcedurePlansPageModel"> select a.status,a.NUM,m.name as categoryName,m.code as materialCode ,(select sum(b.UNQUALIFIED_NUM) from workorder_record b where b.type=1 and b.DELETED=0 and b.PLAN_ID=a.id) as unqualifiedNum ,(select sum(b.QUALIFIED_NUM) from workorder_record b where b.type=1 and b.DELETED=0 and b.PLAN_ID=a.id) as qualifiedNum FROM `plans` `a` LEFT JOIN `material_distribute` c ON a.MATERIAL_ID=c.ID LEFT JOIN `material` m ON c.MATERIAL_ID=m.ID where (a.status in (1,4) or (a.status=6 and EXISTS(select b.id from workorder_record b where b.type=1 and b.DELETED=0 and b.PLAN_ID=a.id) )) and a.deleted=0 and a.ROOT_DEPART_ID=#{rootDepartId} and a.DEPART_ID=#{departId} order by a.CREATE_TIME </select> <select id="selectList" parameterType="doumeemes.dao.ext.dto.QueryPlansExtDTO" resultMap="PlansExtListVO"> SELECT `a`.*, @@ -1328,4 +1354,15 @@ ) </foreach> </insert> <select id="getPlansStaticticsData" parameterType="doumeemes.dao.ext.dto.QueryPlansExtDTO" resultType="doumeemes.dao.business.dto.statistics.StatisticsPlanDataModel"> SELECT count(a.id) as ingNum, (select count(b.id) FROM `plans` b where b.DELETED = 0 and b.PROCEDURE_ID=#{procedureId} AND b.ROOT_DEPART_ID = #{rootDepartId} AND b.DEPART_ID = #{departId} AND (b.`STATUS` in (1,4) and now() > b.plan_Date )) as delayNum, (select count(distinct(b.CREATE_USER)) FROM `workorder_record` b left join workorder c on b.workorder_id =c.id where b.PROCEDURE_ID=#{procedureId} AND b.DELETED = 0 AND b.ROOT_DEPART_ID = #{rootDepartId} AND b.DEPART_ID = #{departId} AND c.status in (0,1,2,3,4,7)) as prouserNum, (select count(distinct(b.PRO_DEVICE_ID)) FROM `workorder_record` b left join workorder c on b.workorder_id =c.id where b.PROCEDURE_ID=#{procedureId} AND b.DELETED = 0 AND b.ROOT_DEPART_ID = #{rootDepartId} AND b.DEPART_ID = #{departId} AND c.status in (0,1,2,3,4,7)) as deviceNum, (select sum(ifnull(b.UNQUALIFIED_NUM,0)) FROM `workorder_record` b left join workorder c on b.workorder_id =c.id where b.PROCEDURE_ID=#{procedureId} AND b.DELETED = 0 AND b.ROOT_DEPART_ID = #{rootDepartId} AND b.DEPART_ID = #{departId} AND c.status=4) as unqualifiedNum, (select sum(ifnull(b.NUM,0)) FROM `workorder_record` b left join workorder c on b.workorder_id =c.id where b.PROCEDURE_ID=#{procedureId} AND b.DELETED = 0 AND b.ROOT_DEPART_ID = #{rootDepartId} AND b.DEPART_ID = #{departId} AND c.status=4) as doneNum FROM `plans` `a` where a.DELETED = 0 AND a.ROOT_DEPART_ID = #{rootDepartId} AND a.DEPART_ID = #{departId} and a.PROCEDURE_ID=#{procedureId} AND a.`STATUS` in (1,4) </select> </mapper> server/src/main/resources/mappers/RouteProcedureExtMapper.xml
@@ -453,4 +453,14 @@ </where> order by `a`.`SORTNUM` asc </select> <select id="selectStatisticsList" parameterType="doumeemes.dao.ext.dto.QueryRouteProcedureExtDTO" resultMap="RouteProcedureExtListVO"> SELECT a.*,p.`NAME` AS procedureName ,(select sum(b.num) from workorder_record b left join workorder d on b.workorder_id=d.id left join plans c on b.plan_id=c.id where d.status=4 and b.type=1 and b.deleted=0 and c.deleted=0 and b.procedure_id=p.id and c.work_plans_id=#{workPlanId}) as doneNum ,(select sum(b.qualified_num) from workorder_record b left join workorder d on b.workorder_id=d.id left join plans c on b.plan_id=c.id where d.status=4 and b.type=1 and b.deleted=0 and c.deleted=0 and b.procedure_id=p.id and c.work_plans_id=#{workPlanId}) as qualifiedNum ,(select sum(b.num) from plans b where b.deleted=0 and b.work_plans_id=#{workPlanId} and b.procedure_id=p.id) as plansNum FROM `route_procedure` `a` LEFT JOIN `procedures` `p` ON a.PROCEDURE_ID=p.ID where a.ROUTE_ID = #{routeId} order by `a`.`SORTNUM` asc </select> </mapper> server/src/main/resources/mappers/WorkPlansExtMapper.xml
@@ -175,12 +175,26 @@ (select count(b.id) FROM `work_plans` b where b.DELETED = 0 AND b.ROOT_DEPART_ID = #{rootDepartId} AND b.DEPART_ID = #{departId} AND (b.`STATUS` = 1 and now() > b.plan_Date )) as delayNum, (select count(distinct(b.CREATE_USER)) FROM `workorder_record` b left join workorder c on b.workorder_id =c.id where b.DELETED = 0 AND b.ROOT_DEPART_ID = #{rootDepartId} AND b.DEPART_ID = #{departId} AND c.status in (0,1,2,3,4,7)) as prouserNum, (select count(distinct(b.PRO_DEVICE_ID)) FROM `workorder_record` b left join workorder c on b.workorder_id =c.id where b.DELETED = 0 AND b.ROOT_DEPART_ID = #{rootDepartId} AND b.DEPART_ID = #{departId} AND c.status in (0,1,2,3,4,7)) as deviceNum, (select sum(ifnull(b.UNQUALIFIED_NUM,0)) FROM `workorder_record` b left join workorder c on b.workorder_id =c.id where b.DELETED = 0 AND b.ROOT_DEPART_ID = #{rootDepartId} AND b.DEPART_ID = #{departId} AND c.status=4) as unqualifiedRate, (select sum(ifnull(b.UNQUALIFIED_NUM,0)) FROM `workorder_record` b left join workorder c on b.workorder_id =c.id where b.DELETED = 0 AND b.ROOT_DEPART_ID = #{rootDepartId} AND b.DEPART_ID = #{departId} AND c.status=4) as unqualifiedNum, (select sum(ifnull(b.NUM,0)) FROM `workorder_record` b left join workorder c on b.workorder_id =c.id where b.DELETED = 0 AND b.ROOT_DEPART_ID = #{rootDepartId} AND b.DEPART_ID = #{departId} AND c.status=4) as doneNum FROM `work_plans` `a` where a.DELETED = 0 AND a.ROOT_DEPART_ID = #{rootDepartId} AND a.DEPART_ID = #{departId} AND a.`STATUS` = 1 </select> <select id="selectStatisticsList" parameterType="doumeemes.dao.ext.dto.QueryWorkPlansDTO" resultType="doumeemes.dao.business.dto.statistics.WorkPlansPageModel"> select a.status,a.code,a.id,a.NUM,m.id as materialId,m.name as categoryName,m.code as materialCode <!-- ,(select sum(b.num) from workorder_record b left join plans c on b.PLAN_ID=c.id where b.type=1 and b.DELETED=0 and c.WORK_PLANS_ID=a.id) as doneNum ,(select sum(b.QUALIFIED_NUM) from workorder_record b left join plans c on b.PLAN_ID=c.id where b.type=1 and b.DELETED=0 and c.WORK_PLANS_ID=a.id) as qualifiedNum -->,(select b.route_id from bom b where b.MATERIAL_ID=c.id and b.ROOT_DEPART_ID=a.ROOT_DEPART_ID) as routeId FROM `work_plans` `a` LEFT JOIN `material_distribute` c ON a.MATERIAL_ID=c.ID LEFT JOIN `material` m ON c.MATERIAL_ID=m.ID where ( a.status = or (a.status=6 and EXISTS(select b.id from workorder_record b left join plans c on b.PLAN_ID=c.id where b.type=1 and b.DELETED=0 and c.WORK_PLANS_ID=a.id) )) and a.deleted=0 and a.ROOT_DEPART_ID=#{rootDepartId} and a.DEPART_ID=#{departId} order by a.CREATE_TIME </select> <select id="getWorkPlansVODetail" parameterType="doumeemes.dao.ext.dto.QueryWorkPlansDTO" resultMap="WorkPlansVO"> server/src/main/resources/mappers/WorkorderRecordExtMapper.xml
@@ -469,7 +469,7 @@ <select id="salaryStatistic" parameterType="doumeemes.dao.ext.dto.QuerySalaryStatisticDTO" resultType="doumeemes.dao.ext.vo.SalaryStatisticsListVO"> select `CREATE_USER` as userId ,sum(CASE WHEN salary_type=0 THEN salary ELSE 0 END ) as jijianSalary ,sum(CASE WHEN salary_type=0 THEN 0 ELSE salary END ) as jishiSalary ,count(id) as num ,count(distinct(a.workorder_id)) as num ,sum(salary) as totalSalary from `workorder_record` where `DELETED` =0 and `SALARY` >0 @@ -495,6 +495,9 @@ left join company_user b on b.DELETED=0 and b.user_id=a.CREATE_USER left join workorder c on a.WORKORDER_ID=c.id where a.deleted=0 and a.ROOT_DEPART_ID=#{rootDepartId} and a.DEPART_ID=#{departId} and s.status=4 <if test="procedureId != null"> AND a.`PROCEDURE_ID` = #{procedureId} </if> GROUP BY a.CREATE_USER ORDER By doneNum desc limit 10 @@ -506,7 +509,41 @@ left join workorder c on a.WORKORDER_ID=c.id where a.ROOT_DEPART_ID=#{rootDepartId} and a.DEPART_ID=#{departId} and c.`STATUS`=4 and 7 > (TO_DAYS(now()) - TO_DAYS(a.CREATE_TIME) ) <if test="procedureId != null"> AND a.`PROCEDURE_ID` = #{procedureId} </if> GROUP BY TO_DAYS(a.CREATE_TIME ) </select> <select id="getUnqualifiedCateData" parameterType="doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO" resultType="doumeemes.dao.business.dto.statistics.UnqualifiedCateModel"> SELECT sum(b.UNQUALIFIED_NUM) as unqualifiedNum,d.`NAME` as categoryName from unqualified_record b left join workorder_record a on b.RECORD_ID=a.id left join workorder c on a.WORKORDER_ID=c.id left join category d on b.CATEGORY_ID=d.id where a.ROOT_DEPART_ID=#{rootDepartId} and a.DEPART_ID=#{departId} and c.`STATUS`=4 and a.deleted=0 and 7>TO_DAYS(now()) - TO_DAYS(a.CREATE_TIME ) <if test="procedureId != null"> AND a.`PROCEDURE_ID` = #{procedureId} </if> GROUP BY TO_DAYS(d.ID ) order by unqualifiedNum desc limit 6 </select> <select id="getRecordLog" parameterType="doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO" resultType="doumeemes.dao.business.dto.statistics.RecordLogModel"> select a.CREATE_TIME as createTime,a.UNQUALIFIED_NUM as unqualifiedNum,a.QUALIFIED_NUM as qualifiedNum, d.name as userName,c.name as materialName,c.code as materialCode from workorder_record a left join material_distribute b on a.MATERIAL_ID=b.ID left join material c on b.MATERIAL_ID=c.ID left join company_user d on d.DELETED=0 and d.user_id=a.CREATE_USER left JOIN workorder e on e.id=a.WORKORDER_ID where a.DELETED = 0 AND a.ROOT_DEPART_ID=#{rootDepartId} and a.DEPART_ID=#{departId} AND e.`STATUS` = 4 <if test="procedureId != null"> AND a.`PROCEDURE_ID` = #{procedureId} </if> ORDER BY a.CREATE_TIME desc </select> <select id="selectListNew" parameterType="doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO" resultMap="WorkorderRecordExtListVO">