cy
2022-06-21 129904537f66509f97b285e7eb4f42b3dc349dd0
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
package cn.ksource.web.service.order;
 
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import cn.ksource.core.dao.BaseDao;
import cn.ksource.core.dao.SqlParameter;
import cn.ksource.core.util.StringUtil;
import cn.ksource.core.web.WebUtil;
import cn.ksource.web.Constants;
 
@Service("orderService")
public class OrderServiceImpl implements OrderService {
 
    @Autowired
    private BaseDao baseDao;
 
    /**
     * 所有工单提交时,添加的关联工单
     * @param flowId 流程编号
     * @param orderId 关联工单id数组
     */
    @Override
    public boolean saveLinkOrders(String flowId, String[] orderId,HttpServletRequest request) {
        if(null!=orderId && orderId.length>0) {
            List<SqlParameter> paramList = new ArrayList<SqlParameter>();
            for(String str : orderId) {
                SqlParameter sqlParameter = new SqlParameter();
                sqlParameter.put("id", StringUtil.getUUID());
                sqlParameter.put("businessId", flowId);
                sqlParameter.put("relateFlowId", str);
                paramList.add(sqlParameter);
            }
 
            String insertSql = "INSERT INTO ORDER_REF_ORDER(ID,BUSINESS_ID,RELATE_FLOW_ID) VALUES (:id,:businessId,:relateFlowId)";
            baseDao.executeBatch(insertSql, paramList);
            return true;
        }
        return false;
    }
 
    @Override
    public List<Map> queryLinkOrders(String flowId) {
        String selectSql = "SELECT A.*,B.ID AS LINK_ID,B.USER_ID FROM ORDER_REF_ORDER B,WORKFLOW_BASE A WHERE A.ID = B.RELATE_FLOW_ID AND  A.WFSTATE != :wfstate AND  B.BUSINESS_ID = :businessId ";
        List<Map> orders = baseDao.queryForList(selectSql,new SqlParameter("businessId",flowId).addValue("wfstate", Constants.WORKFLOW_BASE_WFSTATE_DELETE));
        return orders;
    }
 
    @Override
    public boolean deleteLinkOrder(String linkId) {
        String deleteSql = "DELETE FROM ORDER_REF_ORDER WHERE ID = :id";
        baseDao.execute(deleteSql, new SqlParameter("id",linkId));
        return true;
    }
}