xiaoyong931011
2022-04-18 7e9976fe57ab5133b019a9258e7c054f74e1d2ab
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
package com.matrix.system.padApi.action;
 
import cn.hutool.core.collection.CollUtil;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.core.tools.StringUtils;
import com.matrix.core.tools.WebUtil;
import com.matrix.system.common.bean.BusParameterSettings;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.common.constance.AppConstance;
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.common.service.SysUsersService;
import com.matrix.system.common.tools.DataAuthUtil;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.enums.BooleanEnum;
import com.matrix.system.hive.action.BaseController;
import com.matrix.system.hive.action.util.QueryUtil;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import java.util.List;
 
@CrossOrigin(origins = "*")
@Api(value = "PadServiceAction", tags = "pad端服务单请求")
@RestController
@RequestMapping(value = "/api/pad/service")
public class PadServiceAction extends BaseController {
 
    @Resource
    private SysProjServicesService projServicesSerivce;
    @Resource
    private SysProjUseService projUseService;
    @Resource
    private SysBedInfoService bedInfoService;
    @Autowired
    SysProjGoodsDao sysProjGoodsDao;
    @Resource
    private SysProjServicesService sysProjServicesService;
    @Resource
    private SysVipInfoService sysVipInfoService;
    @Autowired
    private SysBeauticianStateDao beauticianStateDao;
    @Autowired
    AchieveNewService achieveNewService;
    @Autowired
    private SysBedStateDao sysBedStateDao;
    @Autowired
    ShoppingGoodsAssembleDao goodsAssembleDao;
    @Autowired
    SysShopInfoDao shopInfoDao;
    @Resource
    private SysUsersService usersService;
    @Autowired
    private SysProjServicesDao sysProjServicesDao;
    @Autowired
    BusParameterSettingsDao busParameterSettingsDao;
 
    /**
     * 显示所有服务单列表
     */
    @ApiOperation(value = "显示所有服务单列表", notes = "显示所有服务单列表")
    @PostMapping(value = "/showList")
    public AjaxResult showList(@RequestBody SysProjServices projService, PaginationVO pageVo) {
 
        //默认排序
        if (StringUtils.isBlank(pageVo.getSort())) {
            pageVo.setSort("create_time");
        }
        if (StringUtils.isBlank(pageVo.getOrder())) {
            pageVo.setOrder("desc");
        }
        if (!DataAuthUtil.hasAllShopAuth()) {
            projService.setShopId(getMe().getShopId());
        }
        QueryUtil.setQueryLimitCom(projService);
        List<SysProjServices> dataList = projServicesSerivce.findInPage(projService, pageVo);
        AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, projServicesSerivce.findTotal(projService));
        return result;
    }
    /**
     * 进入预约排班详情
     *
     * @author 姜友瑶
     */
    @ApiOperation(value = "进入预约排班详情", notes = "进入预约排班详情")
    @PostMapping(value = "/serviceInfo")
    public AjaxResult findPbxq(@RequestBody SysProjServices projServicesVo) {
        QueryUtil.setQueryLimitCom(projServicesVo);
        // 获取服务单信息
        SysProjServices projServices = null;
        if(projServicesVo.getId()!=null){
            projServices=   sysProjServicesService.findById(projServicesVo.getId());
        }else if(StringUtils.isNotBlank(projServicesVo.getServiceNo())) {
            List<SysProjServices> byModel = sysProjServicesService.findByModel(projServicesVo);
            if (byModel.size() == 1) {
                projServices=   sysProjServicesService.findById( byModel.get(0).getId());
            }
        }
        if(projServices==null){
            throw new GlobleException("未查询到单据信息");
        }
        // 获取服务单所有信息
        // 设置会员信息
        projServices.setVipInfo(sysVipInfoService.findById(projServices.getVipId()));
        //补充服务单扩展信息===============
        List<SysBeauticianState> beauticianStateList = beauticianStateDao.selectBySerIds(projServices.getId());
        if (CollUtil.isNotEmpty(beauticianStateList)) {
            for (SysBeauticianState sysBeauticianState : beauticianStateList) {
                if (sysBeauticianState.getProjUse().getTaocanId() != null) {
                    SysProjUse sysProjUse = projUseService.findById(sysBeauticianState.getProjUse().getTaocanId());
                    if(sysProjUse != null) {
                        sysBeauticianState.getProjInfo().setName(sysProjUse.getProjName() + "--" + sysBeauticianState.getProjInfo().getName());
                    }
                }
            }
        }
        projServices.setServiceItems(beauticianStateList);
 
        SysBedState sysBedState = sysBedStateDao.selectBySerIdAndBedId(projServices.getId(), projServices.getBedId());
        projServices.setBedState(sysBedState);
        //补充服务单扩展信息===============END
 
        // 根据岗位名称查询员工
        List<SysUsers> pls = usersService.findByRoleName(true, Dictionary.STAFF_POST_PLS);
        pls.addAll(usersService.findByRoleName(true, Dictionary.STAFF_POST_PLZG));
        List<SysUsers> mls = usersService.findByRoleName(true, Dictionary.STAFF_POST_MLS);
        WebUtil.getRequest().setAttribute("pls", pls);
        WebUtil.getRequest().setAttribute("mls", mls);
 
        SysBedInfo bedInfo = new SysBedInfo();
        bedInfo.setShopId(getMe().getShopId());
        // 显示当前查询的服务订单的项目信息
        AjaxResult result = AjaxResult.buildSuccessInstance("");
        result.putInMap("obj", projServices);
        result.putInMap("serviceId", projServicesVo.getId());
        result.putInMap("pageFlae", projServicesVo.getPageFlae());
        result.putInMap("cw", bedInfoService.findByModel(bedInfo));
        result.putInMap("pls", pls);
        result.putInMap("mls", mls);
        return result;
    }
    /**
     * 根据id取消预约
     */
    @ApiOperation(value = "根据id取消预约", notes = "根据id取消预约")
    @GetMapping(value = "/cancelOrder/{id}")
    public AjaxResult cancelOrder(@PathVariable("id")Long id) {
 
        SysProjServices checkProjServices = sysProjServicesDao.selectById(id);
        QueryUtil.setQueryLimitCom(checkProjServices);
        BusParameterSettings shopManageAbleCancelDfkOrder = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.SHOP_MANAGE_ABLE_CANCEL_DFK_ORDER, checkProjServices.getCompanyId());
        if (StringUtils.isNotBlank(shopManageAbleCancelDfkOrder.getParamValue())
                && BooleanEnum.TRUE.getValue() == shopManageAbleCancelDfkOrder.getIntParamValue()) {
 
            if (!checkProjServices.getState().equals(Dictionary.SERVICE_STATU_DYY)
                    && !checkProjServices.getState().equals(Dictionary.SERVICE_STATU_DQR)) {
                return new AjaxResult(AjaxResult.STATUS_FAIL, "您只能取消待预约订单");
            }
        }else{
            if (checkProjServices.getState().equals(Dictionary.SERVICE_STATU_FWWC)
                    || checkProjServices.getState().equals(Dictionary.SERVICE_STATU_FFJS)) {
                return new AjaxResult(AjaxResult.STATUS_FAIL, "当前状态无法取消订单");
            }
        }
 
        int i = sysProjServicesService.modifyCancelProjServices(checkProjServices);
        if (i > 0) {
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "取消预约成功");
        } else {
            return new AjaxResult(AjaxResult.STATUS_FAIL, "取消预约失败");
        }
    }
 
 
}