Browse Source

adfadfadf

zhouli 10 months ago
parent
commit
b03cd39452

+ 8 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/controller/XmLeaseController.java

@@ -1,6 +1,7 @@
 
 
 package org.sky.scientific.controller;
 package org.sky.scientific.controller;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -81,4 +82,11 @@ public class XmLeaseController extends KdController {
 		ExcelUtil.export(response, "研发租赁资产使用记录和费用汇总表" + DateUtil.time(), "研发租赁资产使用记录和费用汇总表", list, XmLeaseExcel.class);
 		ExcelUtil.export(response, "研发租赁资产使用记录和费用汇总表" + DateUtil.time(), "研发租赁资产使用记录和费用汇总表", list, XmLeaseExcel.class);
 	}
 	}
 
 
+	@GetMapping("yfzlzcfyfpb")
+	@ApiOperationSupport(order = 15)
+	@Operation(summary = "研发租赁资产费用分配表")
+	public R<List<JSONObject>> yanfalingliaodan(XmLeaseEntity dto){
+		return R.data(service.yanfazulinzichanfeiyongfenpeibiao(dto));
+	}
+
 }
 }

+ 2 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmLeaseMapper.java

@@ -42,4 +42,6 @@ public interface XmLeaseMapper extends BaseMapper<XmLeaseEntity> {
      * @return
      * @return
 	 */
 	 */
 	int physicalDeleteByIds(List<Long> ids);
 	int physicalDeleteByIds(List<Long> ids);
+
+    List<XmLeaseEntity> yanfazulinzichanfeiyongfenpeibiao(XmLeaseEntity dto);
 }
 }

+ 17 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmLeaseMapper.xml

@@ -59,4 +59,21 @@
         <if test="ew.model!=null and ew.model!=''">and kxl.model like concat('%',#{ew.model},'%')</if>
         <if test="ew.model!=null and ew.model!=''">and kxl.model like concat('%',#{ew.model},'%')</if>
     </select>
     </select>
 
 
+    <select id="yanfazulinzichanfeiyongfenpeibiao" resultMap="ResultMap">
+        SELECT
+            xm.xmbh,xm.xmmc,xl.*
+        FROM kd_xm_lease xl
+        LEFT JOIN
+        (
+            SELECT
+                temp.id,xmbh,
+                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS xmmc
+            FROM kd_xm temp
+        ) xm on xm.id = xl.xm_id
+        WHERE  xl.year_and_month = #{yearAndMonth}
+        <if test="xmmc!=null">and xm.xmmc like concat('%',#{xmmc},'%')</if>
+        <if test="type!=null">and xl.type like concat('%',#{type},'%')</if>
+        <if test="name!=null">and xl.name like concat('%',#{name},'%')</if>
+     </select>
+
 </mapper>
 </mapper>

+ 8 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/IXmLeaseService.java

@@ -1,6 +1,7 @@
 
 
 package org.sky.scientific.service;
 package org.sky.scientific.service;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.sky.core.mp.base.BaseService;
 import org.sky.core.mp.base.BaseService;
@@ -55,4 +56,11 @@ public interface IXmLeaseService extends BaseService<XmLeaseEntity> {
      * @return
      * @return
 	 */
 	 */
 	boolean submit(XmLeaseEntity xmLease);
 	boolean submit(XmLeaseEntity xmLease);
+
+	/**
+	 * 研发租赁资产费用分配表
+	 * @param dto
+	 * @return
+	 */
+    List<JSONObject> yanfazulinzichanfeiyongfenpeibiao(XmLeaseEntity dto);
 }
 }

+ 47 - 9
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/XmLeaseServiceImpl.java

@@ -1,16 +1,14 @@
 
 
 package org.sky.scientific.service.impl;
 package org.sky.scientific.service.impl;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import jakarta.annotation.Resource;
 import jakarta.annotation.Resource;
 import org.sky.core.excel.util.ExcelUtil;
 import org.sky.core.excel.util.ExcelUtil;
 import org.sky.core.log.exception.ServiceException;
 import org.sky.core.log.exception.ServiceException;
 import org.sky.core.mp.base.BaseServiceImpl;
 import org.sky.core.mp.base.BaseServiceImpl;
-import org.sky.core.tool.utils.BeanUtil;
-import org.sky.core.tool.utils.CollectionUtil;
-import org.sky.core.tool.utils.DateUtil;
-import org.sky.core.tool.utils.StringUtil;
+import org.sky.core.tool.utils.*;
 import org.sky.scientific.excel.XmLeaseExcel;
 import org.sky.scientific.excel.XmLeaseExcel;
 import org.sky.scientific.mapper.XmLeaseMapper;
 import org.sky.scientific.mapper.XmLeaseMapper;
 import org.sky.scientific.mapper.XmMapper;
 import org.sky.scientific.mapper.XmMapper;
@@ -19,10 +17,8 @@ import org.sky.scientific.service.IXmLeaseService;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * 研发项目租赁清单 服务实现类
  * 研发项目租赁清单 服务实现类
@@ -95,7 +91,49 @@ public class XmLeaseServiceImpl extends BaseServiceImpl<XmLeaseMapper, XmLeaseEn
 		return this.saveOrUpdate(xmLease);
 		return this.saveOrUpdate(xmLease);
 	}
 	}
 
 
-	private void judgeLeaseDate(Date date, String yearAndMonth) {
+    @Override
+    public List<JSONObject> yanfazulinzichanfeiyongfenpeibiao(XmLeaseEntity dto) {
+		if(Func.isBlank(dto.getYearAndMonth())){
+			throw new ServiceException("参数yearAndMonth不能为空");
+		}
+
+		List<XmLeaseEntity> list = baseMapper.yanfazulinzichanfeiyongfenpeibiao(dto);
+
+		List<JSONObject> result = new ArrayList<>();
+		if(CollectionUtil.isEmpty(list)){
+			return result;
+		}
+		Map<Long, List<XmLeaseEntity>> mapByXmId = list.stream().collect(Collectors.groupingBy(XmLeaseEntity::getXmId));
+		for (Long xmId : mapByXmId.keySet()) {
+			List<XmLeaseEntity> listByXmId = mapByXmId.get(xmId);
+
+			for (XmLeaseEntity vo : listByXmId) {
+				String key = xmId+":"+ DateUtil.format(vo.getLeaseDate(), DateUtil.PATTERN_DATE);
+
+				if(result.isEmpty()){
+					ArrayList<XmLeaseEntity> vos = new ArrayList<>();
+					vos.add(vo);
+					JSONObject o = new JSONObject();
+					o.put(key, vos);
+					result.add(o);
+				}else {
+					for (JSONObject o : result) {
+						List<XmLeaseEntity> voList= null;
+						if(o.containsKey(key)){
+							voList= o.getJSONArray(key).toJavaList(XmLeaseEntity.class);
+						}else {
+							voList = new ArrayList<>();
+						}
+						voList.add(vo);
+						o.put(key, voList);
+					}
+				}
+			}
+		}
+		return result;
+    }
+
+    private void judgeLeaseDate(Date date, String yearAndMonth) {
 		//日期,必须时当月日期
 		//日期,必须时当月日期
 		if (date != null) {
 		if (date != null) {
 			String format = DateUtil.format(date, DateUtil.PATTERN_YYYYMM);
 			String format = DateUtil.format(date, DateUtil.PATTERN_YYYYMM);