zm
2020-05-18 a18bfacbf56b401f6e0fdae8710fbca4df8cff77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package com.changhong.epc.parsing.service.asset;
 
import com.changhong.epc.bean.admin.AssetDepreciation;
import com.changhong.epc.constter.parsing.asset.AssetMsg;
import com.changhong.epc.constter.parsing.asset.AssetStatic;
import com.changhong.epc.constter.system.businesscode.BudgetBusinessMeaningCode;
import com.iemsoft.framework.cloud.core.tools.DateTool;
import com.iemsoft.framework.cloud.core.tools.StringUtil;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.Calendar;
 
/**
 * 固定资产处理
 */
public interface AssetHandle extends BudgetBusinessMeaningCode, AssetStatic, AssetMsg {
 
    /**
     * 验证是否可以执行
     * @param assetDepreciation
     * @return
     */
    boolean validate(AssetDepreciation assetDepreciation);
 
    @Transactional
    default void doHandle(AssetDepreciation assetDepreciation){
        validate(assetDepreciation);
        handle(assetDepreciation);
    }
 
    /**
     * 执行
     * @param assetDepreciation
     */
    void handle(AssetDepreciation assetDepreciation);
 
    /**
     * 获得相隔多少月
     * @param begin
     * @param end
     * @return
     */
    default int getMonthSize(String begin, String end)  {
        Calendar bef = Calendar.getInstance();
        Calendar aft = Calendar.getInstance();
        bef.setTime(DateTool.stringToDate(begin , (StringUtil.length(begin) >= 7 ? "yyyy-MM" : DateTool.DATE_PATTERN)));
        aft.setTime(DateTool.stringToDate(end   , (StringUtil.length(end)   >= 7 ? "yyyy-MM" : DateTool.DATE_PATTERN)));
        int result = aft.get(Calendar.MONTH) - bef.get(Calendar.MONTH);
        int month = (aft.get(Calendar.YEAR) - bef.get(Calendar.YEAR)) * 12;
        return month + result;
    }
 
    /**
     * 改变月份
     * @param date
     * @param monthSize
     * @return
     */
    default String updateMonth(String date, int monthSize){
        if(monthSize == 0){
            return date;
        }
        Calendar bef = Calendar.getInstance();
        bef.setTime(DateTool.stringToDate(date , (StringUtil.length(date) >= 7 ? "yyyy-MM" : DateTool.DATE_PATTERN)));
        bef.add(Calendar.MONTH, monthSize);
        return DateTool.dateToString(bef.getTime(), "yyyy-MM");
    }
}