liuxiaolong
2019-05-09 0d1d88cdb668e75ea8609417ac18ae19947e9525
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package com.landy.gum.out.service.impl;
 
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import com.landy.framework.core.exception.ApplicationException;
import com.landy.framework.core.service.impl.BaseManagerImpl;
import com.landy.framework.core.support.CommonQuery;
import com.landy.framework.core.support.Condition;
import com.landy.gum.out.model.OutQinglingDetailModel;
import com.landy.gum.out.model.OutQinglingModel;
import com.landy.gum.out.service.OutQinglingManager;
import com.landy.gum.out.service.OutQinglingProcessManager;
import com.landy.gum.out.update.ClearOuqdIsProcessUpdateCondition;
import com.landy.gum.out.update.ClearOuqpStateUpdateCondition;
import com.landy.gum.out.update.OuqpAuthorUpdateCondition;
import com.landy.gum.session.SessionContextUserEntity;
import com.landy.gum.tools.DateUtil;
 
@Service
public class OutQinglingProcessManagerImpl extends BaseManagerImpl implements
        OutQinglingProcessManager {
 
    @Autowired
    private OutQinglingManager qinglingManager;
    
    /**
     * @author lp
     * @desc 处理某个时间段内的配货人
     * @param bbprIds
     * @param processDate
     * @param ouqpAuthor
     */
    public void updateOuqpAuthor(String[] bbprIds, String processDate,
            String ouqpAuthor) {
        //修改相符合的 out_qingling_process的 ouqp_author
        OuqpAuthorUpdateCondition condition=new OuqpAuthorUpdateCondition();
        condition.setBbprIds(bbprIds);
        condition.setLocationid(SessionContextUserEntity.getCurrentUser().getLocationid());
        condition.setOuqpAuthor(ouqpAuthor);
        condition.setOuqdDate(DateUtil.String2Date("yyyy-MM-dd hh:mm:ss", processDate));
        this.dao.update(condition);
        
    }
    
 
    /**
     * @author lp
     * @desc 清空请领单的日期及配送人,之后可以继续配送
     * @param ouqdIds 
     * @param flag: 接收1   /  清空2
     */
    public void clearOuqpProcess(String[] ouqdIds,String flag) {
        
        CommonQuery<OutQinglingDetailModel> commonQuery = this.dao.createCommonQuery(OutQinglingDetailModel.class);
        commonQuery.addCondition(Condition.in("ouqdId", ouqdIds));
        
        
        List<OutQinglingDetailModel> items = commonQuery.query();
        OutQinglingDetailModel ouqd=null;
        OutQinglingModel qingling=null;
        //验证是否可以清空
        for(int i=0;i<items.size();i++){
            ouqd=items.get(i);
            if(ouqd==null)continue;
            
            if("完成".equals(ouqd.getOuqdState()) || (ouqd.getOuqdSendSize()>=ouqd.getOuqdSize())){
                qingling=qinglingManager.get(ouqd.getOuqdOuqlId());
                throw new ApplicationException(qingling.getOuqlOrg()+"的请领单"+"【"+qingling.getOuqlSn()+"】已经配送完毕,无法再清空");
            }
        }
        
        //清空out_qingling_process 的ouqp_state
        ClearOuqpStateUpdateCondition con1=new ClearOuqpStateUpdateCondition();
        con1.setLocationid(SessionContextUserEntity.getCurrentUser().getLocationid());
        con1.setOuqdIds(ouqdIds);
        con1.setOuqdState(flag);
        this.dao.update(con1);
        //清空 out_qingling_detail 的ouqd_is_process
        
        
        ClearOuqdIsProcessUpdateCondition con2=new ClearOuqdIsProcessUpdateCondition();
        con2.setLocationid(SessionContextUserEntity.getCurrentUser().getLocationid());
        con2.setOuqdIds(ouqdIds);
        this.dao.update(con2);
        
    }
    
}