Explorar o código

1、收入页面加合计

2、当月到账可能填错,在当月到账明细中添加修改功能

3、到账金额可能大于预算,大于时用负数表示溢出部分,但汇总时溢出部分不参与

4、导出报表添加合计

5、模板生成后,会对项目名称或项目进行增加,调整后不需要重新生成模板,功能参考调整模板预算金额
yanliming hai 11 meses
pai
achega
d3e72a3e0f
Modificáronse 15 ficheiros con 359 adicións e 75 borrados
  1. 6 0
      common/src/main/java/com/jpsoft/employment/modules/base/dao/IncomeModifyRecordDAO.java
  2. 1 0
      common/src/main/java/com/jpsoft/employment/modules/base/dao/TemplateOptionDAO.java
  3. 2 2
      common/src/main/java/com/jpsoft/employment/modules/base/entity/IncomeModifyRecord.java
  4. 4 0
      common/src/main/java/com/jpsoft/employment/modules/base/service/IncomeModifyRecordService.java
  5. 4 0
      common/src/main/java/com/jpsoft/employment/modules/base/service/TemplateOptionService.java
  6. 85 50
      common/src/main/java/com/jpsoft/employment/modules/base/service/impl/IncomeModifyRecordServiceImpl.java
  7. 95 2
      common/src/main/java/com/jpsoft/employment/modules/base/service/impl/TemplateOptionServiceImpl.java
  8. 2 2
      common/src/main/resources/mapper/base/DepartmentInfo.xml
  9. 15 0
      common/src/main/resources/mapper/base/IncomeModifyRecord.xml
  10. 7 0
      common/src/main/resources/mapper/base/TemplateOption.xml
  11. 1 0
      web/src/main/java/com/jpsoft/employment/modules/base/controller/BudgetModifyRecordController.java
  12. 3 3
      web/src/main/java/com/jpsoft/employment/modules/base/controller/DepartmentInfoController.java
  13. 9 9
      web/src/main/java/com/jpsoft/employment/modules/base/controller/FundIncomeInfoController.java
  14. 15 7
      web/src/main/java/com/jpsoft/employment/modules/base/controller/IncomeModifyRecordController.java
  15. 110 0
      web/src/main/java/com/jpsoft/employment/modules/base/controller/TemplateOptionController.java

+ 6 - 0
common/src/main/java/com/jpsoft/employment/modules/base/dao/IncomeModifyRecordDAO.java

@@ -1,6 +1,10 @@
 package com.jpsoft.employment.modules.base.dao;
 
+import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 import com.jpsoft.employment.modules.base.entity.IncomeModifyRecord;
 import java.util.Map;
@@ -14,5 +18,7 @@ public interface IncomeModifyRecordDAO {
 	IncomeModifyRecord get(String id);
 	int delete(String id);
 	List<IncomeModifyRecord> list();
+	BigDecimal sumByIncomeId(String incomeId);
+	BigDecimal findCurLastAmount(@Param(value = "createTime") String createTime, @Param("incomeId")String incomeId);
 	List<IncomeModifyRecord> search(Map<String, Object> searchParams, List<Sort> sortList);
 }

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/base/dao/TemplateOptionDAO.java

@@ -18,5 +18,6 @@ public interface TemplateOptionDAO {
 	List<TemplateOption> list();
 	List<TemplateOption> findByTemplateId(String templateId);
 	List<TemplateOption> findByConditions(@Param("searchParams") Map<String, Object> searchParams);
+	String findLastIndexByTemplateId(String templateId);
 	List<TemplateOption> search(Map<String, Object> searchParams, List<Sort> sortList);
 }

+ 2 - 2
common/src/main/java/com/jpsoft/employment/modules/base/entity/IncomeModifyRecord.java

@@ -32,12 +32,12 @@ public class IncomeModifyRecord {
 	
 					@ApiModelProperty(value = "创建时间")
 	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone ="GMT+8")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone ="GMT+8")
 	private Date createTime;
 	
 				@ApiModelProperty(value = "更新时间")
 	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone ="GMT+8")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone ="GMT+8")
 	private Date updateTime;
 	
 			@ApiModelProperty(value = "创建人")

+ 4 - 0
common/src/main/java/com/jpsoft/employment/modules/base/service/IncomeModifyRecordService.java

@@ -1,5 +1,7 @@
 package com.jpsoft.employment.modules.base.service;
 
+import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import com.jpsoft.employment.modules.base.entity.IncomeModifyRecord;
@@ -11,7 +13,9 @@ public interface IncomeModifyRecordService {
 	boolean exist(String id);
 	int insert(IncomeModifyRecord model);
 	int update(IncomeModifyRecord model);
+	int updateAndIncomeAmount(IncomeModifyRecord model);
 	int delete(String id);
 	List<IncomeModifyRecord> list();
+	BigDecimal findCurLastAmount(String createTime,String incomeId);
 	Page<IncomeModifyRecord> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
 }

+ 4 - 0
common/src/main/java/com/jpsoft/employment/modules/base/service/TemplateOptionService.java

@@ -1,5 +1,6 @@
 package com.jpsoft.employment.modules.base.service;
 
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -13,11 +14,14 @@ public interface TemplateOptionService {
 	TemplateOption get(String id);
 	boolean exist(String id);
 	int insert(TemplateOption model);
+	int insertAndFundIncome(TemplateOption model)throws ParseException;
 	int update(TemplateOption model);
 	int updateList(TemplateOptionDTO dto,String subject);
+	int updateNameAndFundIncome(TemplateOption model);
 	int delete(String id);
 	List<TemplateOption> list();
 	List<TemplateOption> findByTemplateId(String templateId);
 	List<TemplateOption> findByConditions(Map<String, Object> searchParams);
+	String findLastIndexByTemplateId(String templateId);
 	Page<TemplateOption> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
 }

+ 85 - 50
common/src/main/java/com/jpsoft/employment/modules/base/service/impl/IncomeModifyRecordServiceImpl.java

@@ -1,9 +1,14 @@
 package com.jpsoft.employment.modules.base.service.impl;
 
+import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 import javax.annotation.Resource;
+
+import com.jpsoft.employment.modules.base.dao.FundIncomeInfoDAO;
+import com.jpsoft.employment.modules.base.entity.FundIncomeInfo;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 import com.jpsoft.employment.modules.base.dao.IncomeModifyRecordDAO;
@@ -14,57 +19,87 @@ import com.jpsoft.employment.modules.common.dto.Sort;
 import com.github.pagehelper.PageHelper;
 
 @Transactional
-@Component(value="incomeModifyRecordService")
+@Component(value = "incomeModifyRecordService")
 public class IncomeModifyRecordServiceImpl implements IncomeModifyRecordService {
-	@Resource(name="incomeModifyRecordDAO")
-	private IncomeModifyRecordDAO incomeModifyRecordDAO;
-
-	@Override
-	public IncomeModifyRecord get(String id) {
-		// TODO Auto-generated method stub
-		return incomeModifyRecordDAO.get(id);
-	}
-
-	@Override
-	public int insert(IncomeModifyRecord model) {
-		// TODO Auto-generated method stub
-		//model.setId(UUID.randomUUID().toString());
-		
-		return incomeModifyRecordDAO.insert(model);
-	}
-
-	@Override
-	public int update(IncomeModifyRecord model) {
-		// TODO Auto-generated method stub
-		return incomeModifyRecordDAO.update(model);		
-	}
-
-	@Override
-	public int delete(String id) {
-		// TODO Auto-generated method stub
-		return incomeModifyRecordDAO.delete(id);
-	}
-
-	@Override
-	public boolean exist(String id) {
-		// TODO Auto-generated method stub
-		int count = incomeModifyRecordDAO.exist(id);
-		
-		return count > 0 ? true : false;
-	}
-	
-	@Override
-	public List<IncomeModifyRecord> list() {
-		// TODO Auto-generated method stub
-		return incomeModifyRecordDAO.list();
-	}
-		
-	@Override
-	public Page<IncomeModifyRecord> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
-        Page<IncomeModifyRecord> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
-            incomeModifyRecordDAO.search(searchParams,sortList);
+    @Resource(name = "incomeModifyRecordDAO")
+    private IncomeModifyRecordDAO incomeModifyRecordDAO;
+
+    @Resource(name = "fundIncomeInfoDAO")
+    private FundIncomeInfoDAO fundIncomeInfoDAO;
+
+    @Override
+    public IncomeModifyRecord get(String id) {
+        // TODO Auto-generated method stub
+        return incomeModifyRecordDAO.get(id);
+    }
+
+    @Override
+    public int insert(IncomeModifyRecord model) {
+        // TODO Auto-generated method stub
+        //model.setId(UUID.randomUUID().toString());
+
+        return incomeModifyRecordDAO.insert(model);
+    }
+
+    @Override
+    public int update(IncomeModifyRecord model) {
+        // TODO Auto-generated method stub
+        return incomeModifyRecordDAO.update(model);
+    }
+
+    @Override
+    public int updateAndIncomeAmount(IncomeModifyRecord model) {
+        // TODO Auto-generated method stub
+        int count = incomeModifyRecordDAO.update(model);
+
+        if (count > 0) {
+            FundIncomeInfo fundIncomeInfo = fundIncomeInfoDAO.get(model.getIncomeId());
+            if(fundIncomeInfo!=null){
+                BigDecimal totalMonthAmount = incomeModifyRecordDAO.sumByIncomeId(model.getIncomeId());
+
+                fundIncomeInfo.setCurMonthReceived(totalMonthAmount);
+                fundIncomeInfo.setUpdateBy(model.getUpdateBy());
+                fundIncomeInfo.setUpdateTime(model.getUpdateTime());
+
+                fundIncomeInfoDAO.update(fundIncomeInfo);
+            }
+        }
+
+        return count;
+    }
+
+    @Override
+    public int delete(String id) {
+        // TODO Auto-generated method stub
+        return incomeModifyRecordDAO.delete(id);
+    }
+
+    @Override
+    public boolean exist(String id) {
+        // TODO Auto-generated method stub
+        int count = incomeModifyRecordDAO.exist(id);
+
+        return count > 0 ? true : false;
+    }
+
+    @Override
+    public List<IncomeModifyRecord> list() {
+        // TODO Auto-generated method stub
+        return incomeModifyRecordDAO.list();
+    }
+
+
+    @Override
+    public BigDecimal findCurLastAmount(String createTime, String incomeId) {
+        return incomeModifyRecordDAO.findCurLastAmount(createTime, incomeId);
+    }
+
+    @Override
+    public Page<IncomeModifyRecord> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, boolean count, List<Sort> sortList) {
+        Page<IncomeModifyRecord> page = PageHelper.startPage(pageNumber, pageSize, count).doSelectPage(() -> {
+            incomeModifyRecordDAO.search(searchParams, sortList);
         });
-        
+
         return page;
-	}
+    }
 }

+ 95 - 2
common/src/main/java/com/jpsoft/employment/modules/base/service/impl/TemplateOptionServiceImpl.java

@@ -1,12 +1,18 @@
 package com.jpsoft.employment.modules.base.service.impl;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 import javax.annotation.Resource;
 
+import com.jpsoft.employment.modules.base.dao.FundIncomeInfoDAO;
+import com.jpsoft.employment.modules.base.dao.TemplateInfoDAO;
 import com.jpsoft.employment.modules.base.dto.TemplateOptionDTO;
+import com.jpsoft.employment.modules.base.entity.FundIncomeInfo;
+import com.jpsoft.employment.modules.base.entity.TemplateInfo;
 import com.jpsoft.employment.modules.common.utils.StringUtils;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
@@ -23,6 +29,12 @@ public class TemplateOptionServiceImpl implements TemplateOptionService {
     @Resource(name = "templateOptionDAO")
     private TemplateOptionDAO templateOptionDAO;
 
+    @Resource(name = "fundIncomeInfoDAO")
+    private FundIncomeInfoDAO fundIncomeInfoDAO;
+
+    @Resource(name = "templateInfoDAO")
+    private TemplateInfoDAO templateInfoDAO;
+
     @Override
     public TemplateOption get(String id) {
         // TODO Auto-generated method stub
@@ -37,12 +49,88 @@ public class TemplateOptionServiceImpl implements TemplateOptionService {
         return templateOptionDAO.insert(model);
     }
 
+    @Override
+    public int insertAndFundIncome(TemplateOption model) throws ParseException {
+        // TODO Auto-generated method stub
+        int count = templateOptionDAO.insert(model);
+
+        TemplateInfo templateInfo = templateInfoDAO.get(model.getTemplateId());
+
+        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
+
+        if (count > 0) {
+            //生成一年的数据
+            for (int i = 1; i <= 12; i++) {
+                String yearMonth = templateInfo.getYear();
+                if (i < 10) {
+                    yearMonth += "-0" + String.valueOf(i) + "-01";
+                } else {
+                    yearMonth += "-" + String.valueOf(i) + "-01";
+                }
+
+                FundIncomeInfo fundIncomeInfo = new FundIncomeInfo();
+                fundIncomeInfo.setId(UUID.randomUUID().toString());
+                fundIncomeInfo.setName(model.getName());
+                fundIncomeInfo.setDelFlag(false);
+                fundIncomeInfo.setCreateBy(model.getCreateBy());
+                fundIncomeInfo.setCreateTime(model.getCreateTime());
+                fundIncomeInfo.setSerialNumber(model.getSerialNum());
+                fundIncomeInfo.setYear(sdf2.parse(yearMonth));
+                fundIncomeInfo.setIndex(model.getIndex());
+                fundIncomeInfo.setBudgetRevenue(model.getBudgetRevenue());
+                fundIncomeInfo.setCurBudgetRevenue(model.getBudgetRevenue());
+                fundIncomeInfo.setTemplateId(model.getTemplateId());
+                fundIncomeInfo.setIncomeTimeRange(model.getIncomeTimeRange());
+                fundIncomeInfo.setEndDate(model.getEndDate());
+                fundIncomeInfo.setIncomeType(model.getIncomeType());
+                fundIncomeInfo.setChargePerson(model.getChargePerson());
+                fundIncomeInfo.setTemplateOptionId(model.getId());
+
+                if (StringUtils.isNotEmpty(templateInfo.getAttachment())) {
+                    fundIncomeInfo.setAttachment(templateInfo.getAttachment());
+                }
+
+                if (model.getIsSum() != null) {
+                    fundIncomeInfo.setIsSum(model.getIsSum());
+                }
+
+                if (StringUtils.isNotEmpty(model.getDepartmentIds())) {
+                    fundIncomeInfo.setIncomeDepartment(model.getDepartmentIds());
+                }
+
+                count += fundIncomeInfoDAO.insert(fundIncomeInfo);
+            }
+
+        }
+
+        return count;
+    }
+
+
     @Override
     public int update(TemplateOption model) {
         // TODO Auto-generated method stub
         return templateOptionDAO.update(model);
     }
 
+
+    @Override
+    public int updateNameAndFundIncome(TemplateOption model) {
+        int count = templateOptionDAO.update(model);
+        if (count > 0) {
+            List<FundIncomeInfo> fundIncomeInfoList = fundIncomeInfoDAO.findByTemplateOptionId(model.getId());
+
+            for (FundIncomeInfo fundIncomeInfo:fundIncomeInfoList) {
+                fundIncomeInfo.setUpdateTime(model.getUpdateTime());
+                fundIncomeInfo.setUpdateBy(model.getUpdateBy());
+                fundIncomeInfo.setName(model.getName());
+
+                fundIncomeInfoDAO.update(fundIncomeInfo);
+            }
+        }
+        return count;
+    }
+
     @Override
     public int updateList(TemplateOptionDTO dto, String subject) {
         String templateId = dto.getTemplateId();
@@ -73,8 +161,8 @@ public class TemplateOptionServiceImpl implements TemplateOptionService {
             for (String departId : arr) {
                 departmentId += departId + ",";
             }
-            if(StringUtils.isNotEmpty(departmentId)){
-                departmentId.substring(0,departmentId.lastIndexOf(","));
+            if (StringUtils.isNotEmpty(departmentId)) {
+                departmentId.substring(0, departmentId.lastIndexOf(","));
                 templateOption.setDepartmentIds(departmentId);
             }
             affectCount += templateOptionDAO.insert(templateOption);
@@ -114,6 +202,11 @@ public class TemplateOptionServiceImpl implements TemplateOptionService {
         return templateOptionDAO.findByConditions(searchParams);
     }
 
+    @Override
+    public String findLastIndexByTemplateId(String templateId) {
+        return templateOptionDAO.findLastIndexByTemplateId(templateId);
+    }
+
     @Override
     public Page<TemplateOption> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, boolean count, List<Sort> sortList) {
         Page<TemplateOption> page = PageHelper.startPage(pageNumber, pageSize, count).doSelectPage(() -> {

+ 2 - 2
common/src/main/resources/mapper/base/DepartmentInfo.xml

@@ -76,8 +76,8 @@ id_,name_,create_time,update_time,create_by,update_by,del_flag		from base_depart
 		]]>
 		<where>
 			del_flag=false
-			<if test="searchParams.id != null">
-				and ID_ like #{searchParams.id}
+			<if test="searchParams.name != null">
+				and name_ like #{searchParams.name}
 			</if>
 		</where>
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">

+ 15 - 0
common/src/main/resources/mapper/base/IncomeModifyRecord.xml

@@ -79,6 +79,21 @@
 	<select id="list" resultMap="IncomeModifyRecordMap">
 		select * from base_income_modify_record
 	</select>
+	<select id="sumByIncomeId" resultType="java.math.BigDecimal">
+		<![CDATA[
+			select sum(current_amount) from base_income_modify_record
+			where del_flag=false
+			and income_id = #{0}
+		]]>
+	</select>
+	<select id="findCurLastAmount" resultType="java.math.BigDecimal">
+		<![CDATA[
+			select sum(current_amount) from base_income_modify_record
+			where del_flag=false
+			and create_time <= #{createTime}
+			and income_id = #{incomeId}
+		]]>
+	</select>
 	<select id="search" parameterType="hashmap" resultMap="IncomeModifyRecordMap">
 		<![CDATA[
 			select * from base_income_modify_record

+ 7 - 0
common/src/main/resources/mapper/base/TemplateOption.xml

@@ -126,6 +126,13 @@
     <select id="list" resultMap="TemplateOptionMap">
 		select * from base_template_option
 	</select>
+    <select id="findLastIndexByTemplateId" resultType="String">
+		select index_ from base_template_option
+		where del_flag=false
+		and template_id=#{templateId}
+		order by index_ desc
+		limit 1
+	</select>
     <select id="findByTemplateId" resultMap="TemplateOptionMap">
 		select * from base_template_option
 		where del_flag=false

+ 1 - 0
web/src/main/java/com/jpsoft/employment/modules/base/controller/BudgetModifyRecordController.java

@@ -245,4 +245,5 @@ public class BudgetModifyRecordController {
 
         return msgResult;
     }
+
 }

+ 3 - 3
web/src/main/java/com/jpsoft/employment/modules/base/controller/DepartmentInfoController.java

@@ -190,7 +190,7 @@ public class DepartmentInfoController {
     @ApiOperation(value = "列表")
     @RequestMapping(value = "pageList", method = RequestMethod.POST)
     public MessageResult<Map> pageList(
-            String id,
+            String name,
             @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
             @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
             HttpServletRequest request) {
@@ -206,8 +206,8 @@ public class DepartmentInfoController {
         List<Sort> sortList = new ArrayList<>();
         sortList.add(new Sort("create_time", "desc"));
 
-        if (StringUtils.isNotEmpty(id)) {
-            searchParams.put("id", "%" + id + "%");
+        if (StringUtils.isNotEmpty(name)) {
+            searchParams.put("name", "%" + name + "%");
         }
 
 

+ 9 - 9
web/src/main/java/com/jpsoft/employment/modules/base/controller/FundIncomeInfoController.java

@@ -169,7 +169,7 @@ public class FundIncomeInfoController {
 
             FundIncomeInfo orgItem = fundIncomeInfoService.get(fundIncomeInfo.getId());
 
-            if(orgItem.getCurMonthReceived()!=null&&fundIncomeInfo.getCurMonthReceived()!=null){
+            if (orgItem.getCurMonthReceived() != null && fundIncomeInfo.getCurMonthReceived() != null) {
                 BigDecimal accumulateAmount = orgItem.getCurMonthReceived().add(fundIncomeInfo.getCurMonthReceived());
                 fundIncomeInfo.setCurMonthReceived(accumulateAmount);
             }
@@ -405,7 +405,7 @@ public class FundIncomeInfoController {
                 map.put("accountName", fundIncomeInfo.getAccountName());
                 map.put("curMonthReceived", fundIncomeInfo.getCurMonthReceived());
                 //map.put("actualTotalRevenue", fundIncomeInfo.getActualTotalRevenue());
-                map.put("accumulatedArrears", fundIncomeInfo.getAccumulatedArrears());
+                //map.put("accumulatedArrears", fundIncomeInfo.getAccumulatedArrears());
 
                 String endDateStr = "";
                 String incomeTypeN = "";
@@ -847,7 +847,7 @@ public class FundIncomeInfoController {
 
                     map.put("total", total);
 
-                    BigDecimal accumulatedArrears = fundIncomeInfo.getBudgetRevenue();
+                    BigDecimal accumulatedArrears = curBudgetRevenue;
                     if (total != null && accumulatedArrears != null) {
                         accumulatedArrears = accumulatedArrears.subtract(total);
                     }
@@ -865,18 +865,19 @@ public class FundIncomeInfoController {
 
                     String title = templateInfo.getTitle();
 
-                    if(!tempTemplateId.equals(templateInfo.getId())){
+                    if (!tempTemplateId.equals(templateInfo.getId())) {
                         Map<String, Object> mapSum = new HashMap<>();
-                        mapSum.put("name",title+"(合计)");
-                        mapSum.put("isSum",true);
+                        mapSum.put("name", title + "(合计)");
+                        mapSum.put("isSum", true);
 
                         Map<String, BigDecimal> sumMap = fundIncomeInfoService.sumBudgetRevenue(null, startDate, endDate, templateId);
 
                         if (sumMap != null) {
-                            BigDecimal tempBudgetRevenue = sumMap.get("sumBudget");
-                            mapSum.put("budgetRevenue",tempBudgetRevenue);
+                            BigDecimal tempBudgetRevenue = sumMap.get("sumCurBudgetRevenue");
+                            mapSum.put("curBudgetRevenue", tempBudgetRevenue);
                         }
 
+
                         mapList.add(mapSum);
                     }
 
@@ -906,7 +907,6 @@ public class FundIncomeInfoController {
     }
 
 
-
     //导出
     private String summaryListExportXls(List<Map> mapList) {
         String downloadUrl = "";

+ 15 - 7
web/src/main/java/com/jpsoft/employment/modules/base/controller/IncomeModifyRecordController.java

@@ -16,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -110,7 +111,7 @@ public class IncomeModifyRecordController {
 		    incomeModifyRecord.setUpdateBy(subject);
             incomeModifyRecord.setUpdateTime(new Date());
 		
-            int affectCount = incomeModifyRecordService.update(incomeModifyRecord);
+            int affectCount = incomeModifyRecordService.updateAndIncomeAmount(incomeModifyRecord);
 
             if (affectCount > 0) {
                 msgResult.setResult(true);
@@ -220,6 +221,7 @@ public class IncomeModifyRecordController {
             searchParams.put("incomeId",incomeId);
         }
 
+        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
         Page<IncomeModifyRecord> page = incomeModifyRecordService.pageSearch(searchParams,pageIndex,pageSize,true,sortList);
 
@@ -229,12 +231,18 @@ public class IncomeModifyRecordController {
                 incomeModifyRecord.setCreateName(user.getRealName());
             }
 
-            if(incomeModifyRecord.getOriginalAmount()!=null){
-                incomeModifyRecord.setCurAccumulate(incomeModifyRecord.getOriginalAmount().add(incomeModifyRecord.getCurrentAmount()));
-            }
-            else{
-                incomeModifyRecord.setCurAccumulate(incomeModifyRecord.getCurrentAmount());
-            }
+            String createTimeStr = sdf.format(incomeModifyRecord.getCreateTime());
+
+            BigDecimal curAccumulate = incomeModifyRecordService.findCurLastAmount(createTimeStr,incomeId);
+
+            incomeModifyRecord.setCurAccumulate(curAccumulate);
+
+//            if(incomeModifyRecord.getOriginalAmount()!=null){
+//                incomeModifyRecord.setCurAccumulate(incomeModifyRecord.getOriginalAmount().add(incomeModifyRecord.getCurrentAmount()));
+//            }
+//            else{
+//                incomeModifyRecord.setCurAccumulate(incomeModifyRecord.getCurrentAmount());
+//            }
         }
 
 

+ 110 - 0
web/src/main/java/com/jpsoft/employment/modules/base/controller/TemplateOptionController.java

@@ -54,6 +54,28 @@ public class TemplateOptionController {
         return msgResult;
     }
 
+    @ApiOperation(value = "创建空记录")
+    @GetMapping("createFundIncome/{templateId}")
+    public MessageResult<TemplateOption> createFundIncome(@PathVariable("templateId") String templateId) {
+        MessageResult<TemplateOption> msgResult = new MessageResult<>();
+
+        TemplateOption templateOption = new TemplateOption();
+
+        templateOption.setTemplateId(templateId);
+
+        String lastIndex = templateOptionService.findLastIndexByTemplateId(templateId);
+
+        if(StringUtils.isNotEmpty(lastIndex)){
+            templateOption.setIndex(Integer.parseInt(lastIndex));
+        }
+
+        msgResult.setData(templateOption);
+        msgResult.setResult(true);
+
+        return msgResult;
+    }
+
+
     @ApiOperation(value = "添加信息")
     @PostMapping("add")
     public MessageResult<TemplateOption> add(@RequestBody TemplateOption templateOption, @RequestAttribute String subject) {
@@ -132,6 +154,29 @@ public class TemplateOptionController {
         return msgResult;
     }
 
+
+
+    @ApiOperation(value = "获取信息")
+    @GetMapping("editItem/{id}")
+    public MessageResult<TemplateOption> editItem(@PathVariable("id") String id) {
+        MessageResult<TemplateOption> msgResult = new MessageResult<>();
+
+        try {
+            TemplateOption templateOption = templateOptionService.get(id);
+
+            msgResult.setResult(true);
+            msgResult.setData(templateOption);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+
     @ApiOperation(value = "更新用户")
     @PostMapping("update")
     public MessageResult<Integer> update(@RequestBody TemplateOptionDTO dto, @RequestAttribute String subject) {
@@ -409,4 +454,69 @@ public class TemplateOptionController {
         return msgResult;
     }
 
+
+
+
+    @ApiOperation(value="添加信息")
+    @PostMapping("addAndFundIncome")
+    public MessageResult<TemplateOption> addAndFundIncome(@RequestBody TemplateOption templateOption,@RequestAttribute String subject){
+        MessageResult<TemplateOption> msgResult = new MessageResult<>();
+
+        try {
+            templateOption.setId(UUID.randomUUID().toString());
+            templateOption.setDelFlag(false);
+            templateOption.setCreateBy(subject);
+            templateOption.setCreateTime(new Date());
+
+            int affectCount = templateOptionService.insertAndFundIncome(templateOption);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(templateOption);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库添加失败");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+
+
+
+    @ApiOperation(value = "更新名称以及相关收入项目名称")
+    @PostMapping("updateNameAndFundIncome")
+    public MessageResult<Integer> updateNameAndFundIncome(@RequestBody TemplateOption templateOption, @RequestAttribute String subject) {
+        MessageResult<Integer> msgResult = new MessageResult<>();
+
+        try {
+            templateOption.setUpdateTime(new Date());
+            templateOption.setUpdateBy(subject);
+
+            int affectCount = templateOptionService.updateNameAndFundIncome(templateOption);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(affectCount);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库更新失败");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
 }