| 
					
				 | 
			
			
				@@ -0,0 +1,112 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package org.jeecg.modules.report.controller; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.core.metadata.IPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import lombok.extern.log4j.Log4j2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.jeecg.common.api.vo.Result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.jeecg.common.system.base.controller.JeecgController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.jeecg.common.util.oConvertUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.jeecg.modules.report.entity.FullSetRate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.jeecg.modules.report.service.IFullSetRateService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.jeecg.modules.report.service.impl.FullSetRateServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.stereotype.Controller; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.GetMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.RequestMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.RequestParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.RestController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.text.ParseException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.text.SimpleDateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@Log4j2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@RestController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@RequestMapping("/report/fullSetRate") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class FullSetRateController extends JeecgController<FullSetRate, IFullSetRateService> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private FullSetRateServiceImpl fullSetRateService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 齐套率列表查询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param fullSetRate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping(value = "/queryListInfo") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Result<IPage<FullSetRate>> queryListInfo(FullSetRate fullSetRate, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) throws ParseException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Result<IPage<FullSetRate>> result = new Result<IPage<FullSetRate>>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Page<FullSetRate> page = new Page<FullSetRate>(pageNo,pageSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        QueryWrapper<FullSetRate> queryWrapper = new QueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(oConvertUtils.isNotEmpty(fullSetRate.getPlanNo())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            queryWrapper.like("a.cCode",fullSetRate.getPlanNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        queryWrapper.groupBy("a.MOID"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IPage<FullSetRate> pageList = fullSetRateService.queryListInfo(page,queryWrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //最晚最早出库日期集合 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> moDeilsIDList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //累计准时出库数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal cumulativeOnTimeDeliveryQuantity = BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //累计延迟出库数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal cumulativeDelayedDeliveryQty = BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(FullSetRate li:pageList.getRecords()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //查询委外订单子表与发货或日期信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<FullSetRate> queryMomain = fullSetRateService.queryMOMain(li.getMoID()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //循环子表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(FullSetRate momian:queryMomain){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                moDeilsIDList.add(momian.getMODetailsID()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //查询销售出库单获取累计准时出库数量,获取累计延迟出库数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              List<FullSetRate> salesIssueList = fullSetRateService.querySalesIssue(momian.getMODetailsID()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for(FullSetRate sa:salesIssueList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Long saTime = sf.parse(sa.getDeliveryDate()).getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Long moTime = sf.parse(momian.getDeliveryDate()).getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //大于就是延迟出库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(saTime > moTime){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        cumulativeDelayedDeliveryQty = cumulativeDelayedDeliveryQty.add(sa.getCumulativeOnTimeDeliveryQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //小于等于就是准时出库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(saTime <= moTime){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        cumulativeOnTimeDeliveryQuantity = cumulativeOnTimeDeliveryQuantity.add(sa.getCumulativeOnTimeDeliveryQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //累计准时出库数量赋值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            li.setCumulativeOnTimeDeliveryQuantity(cumulativeOnTimeDeliveryQuantity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //累计延迟出库数量赋值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            li.setCumulativeDelayedDeliveryQty(cumulativeDelayedDeliveryQty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //预计发货日期(最早)赋值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            li.setEstimatedDeliveryDate(queryMomain.get(0).getDeliveryDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //最早出库日期赋值,最晚出库日期赋值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<FullSetRate> dateTimeList = fullSetRateService.querySalesIssueDate(moDeilsIDList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            li.setEarliestIssueDate(dateTimeList.get(dateTimeList.size()-1).getDeliveryDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            li.setLatestIssueDate(dateTimeList.get(0).getDeliveryDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //出库率赋值(销售订单累计出库数量/销售订单数量) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BigDecimal deliveryRate = li.getCumulativeIssueQuantity().divide(li.getSalesOrderQuantity(),2,BigDecimal.ROUND_FLOOR); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            li.setDeliveryRate(deliveryRate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        result.setMessage("查询成功!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        result.setSuccess(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        result.setResult(pageList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |