Blame view

src/main/java/com/huaheng/pc/shipment/shipmentHeader/controller/ShipmentHeaderController.java 7.87 KB
pengcheng authored
1
2
3
4
5
6
package com.huaheng.pc.shipment.shipmentHeader.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
7
import com.huaheng.common.exception.service.ServiceException;
pengcheng authored
8
import com.huaheng.common.support.Convert;
pengcheng authored
9
10
11
12
13
14
15
16
17
import com.huaheng.common.utils.StringUtils;
import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.framework.aspectj.lang.annotation.Log;
import com.huaheng.framework.aspectj.lang.constant.BusinessType;
import com.huaheng.framework.web.controller.BaseController;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.framework.web.page.PageDomain;
import com.huaheng.framework.web.page.TableDataInfo;
import com.huaheng.framework.web.page.TableSupport;
pengcheng authored
18
19
import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail;
import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService;
pengcheng authored
20
21
22
23
24
import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
25
import org.springframework.transaction.annotation.Transactional;
pengcheng authored
26
27
28
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
29
import java.lang.reflect.InvocationTargetException;
pengcheng authored
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import java.util.List;


/**
 * 出库单主 信息操作处理
 * 
 * @author huaheng
 * @date 2018-08-19
 */
@Controller
@RequestMapping("/shipment/shipmentHeader")
public class ShipmentHeaderController extends BaseController
{
    private String prefix = "shipment/shipmentHeader";

	@Autowired
	private ShipmentHeaderService shipmentHeaderService;
pengcheng authored
47
48
	@Autowired
	private ShipmentDetailService shipmentDetailService;
pengcheng authored
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

	@RequiresPermissions("shipment:bill:view")
	@GetMapping()
	public String shipmentHeader()
	{
	    return prefix + "/shipmentHeader";
	}

	/**
	 * 查询出库单主列表
	 */
	@RequiresPermissions("shipment:bill:list")
	@Log(title = "出库-出库单", operating="查看出库主单", action = BusinessType.GRANT)
	@PostMapping("/list")
	@ResponseBody
	public TableDataInfo list(ShipmentHeader shipmentHeader,String createdBegin, String createdEnd)
	{
		LambdaQueryWrapper<ShipmentHeader> lambdaQueryWrapper = Wrappers.lambdaQuery();
		PageDomain pageDomain = TableSupport.buildPageRequest();
		Integer pageNum = pageDomain.getPageNum();
		Integer pageSize = pageDomain.getPageSize();

		lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),ShipmentHeader::getCreated, createdBegin)
				.le(StringUtils.isNotEmpty(createdEnd), ShipmentHeader::getCreated, createdEnd)
				.eq(ShipmentHeader::getWarehouseCode,ShiroUtils.getWarehouseCode())
pengcheng authored
74
				.eq(ShipmentHeader::getDeleted,false)
pengcheng authored
75
				.in(ShipmentHeader::getCompanyCode,ShiroUtils.getCompanyCodeList())
pengcheng authored
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
				.eq(StringUtils.isNotEmpty(shipmentHeader.getCode()),ShipmentHeader::getCode,shipmentHeader.getCode())
				.eq(StringUtils.isNotEmpty(shipmentHeader.getShipmentType()),ShipmentHeader::getShipmentType,shipmentHeader.getShipmentType())
				.eq(StringUtils.isNotEmpty(shipmentHeader.getReferCode()), ShipmentHeader::getReferCode, shipmentHeader.getReferCode())
				.eq(StringUtils.isNotEmpty(shipmentHeader.getReferCodeType()), ShipmentHeader::getReferCodeType, shipmentHeader.getReferCodeType())
				.eq(shipmentHeader.getFirstStatus()!=null, ShipmentHeader::getFirstStatus, shipmentHeader.getFirstStatus())
				.eq(shipmentHeader.getLastStatus()!=null, ShipmentHeader::getLastStatus, shipmentHeader.getLastStatus())
				.orderByDesc(ShipmentHeader::getId);

		if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
			/**
			 * 使用分页查询
			 */
			Page<ShipmentHeader> page = new Page<>(pageNum, pageSize);
			IPage<ShipmentHeader> iPage = shipmentHeaderService.page(page, lambdaQueryWrapper);
			return getMpDataTable(iPage.getRecords(),iPage.getTotal());
		} else {
			List<ShipmentHeader> list = shipmentHeaderService.list(lambdaQueryWrapper);
			return getDataTable(list);
		}
	}

	/**
	 * 新增出库单主
	 */
	@GetMapping("/add")
	public String add()
	{
	    return prefix + "/add";
	}

	/**
	 * 新增保存出库单主
	 */
	@RequiresPermissions("shipment:bill:add")
	@Log(title = "出库-出库单", operating="新增出库主单", action = BusinessType.INSERT)
	@PostMapping("/add")
	@ResponseBody
	public AjaxResult addSave(ShipmentHeader shipmentHeader)
	{
		AjaxResult ajaxResult=shipmentHeaderService.saveHeader(shipmentHeader);
		return ajaxResult;
	}
pengcheng authored
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
	/**
	 * 修改出库单主
	 */
	@GetMapping("/edit/{id}")
	public String edit(@PathVariable("id") Integer id, ModelMap mmap)
	{
		ShipmentHeader shipmentHeader = shipmentHeaderService.getById(id);
		mmap.put("shipmentHeader", shipmentHeader);
	    return prefix + "/edit";
	}

	/**
	 * 修改保存出库单主
	 */
	@RequiresPermissions("shipment:bill:edit")
	@Log(title = "出库-出库单", operating="修改出库主单", action = BusinessType.UPDATE)
	@PostMapping("/edit")
	@ResponseBody
	public AjaxResult editSave(ShipmentHeader shipmentHeader)
	{
		ShipmentHeader temp =  shipmentHeaderService.getById(shipmentHeader.getId());
		if(temp.getFirstStatus()>100){
			return AjaxResult.error("已经超过订单池状态,不能修改");
		}
		temp.setCompanyCode(shipmentHeader.getCompanyCode());
		temp.setReferCode(shipmentHeader.getReferCode());
		temp.setReferPlatform(shipmentHeader.getReferPlatform());
		temp.setCustomerCode(shipmentHeader.getCustomerCode());
		temp.setPriority(shipmentHeader.getPriority());
		temp.setLastUpdatedBy(ShiroUtils.getLoginName());
		return toAjax(shipmentHeaderService.saveOrUpdate(temp));
	}

	/**
	 * 删除出库单主
	 */
	@RequiresPermissions("shipment:bill:remove")
	@Log(title = "出库-出库单", operating="删除出库主单", action = BusinessType.DELETE)
	@PostMapping( "/remove")
	@ResponseBody
159
160
	@Transactional
	public AjaxResult remove(String ids) throws InvocationTargetException, IllegalAccessException {
pengcheng authored
161
162
163
164
		if (StringUtils.isEmpty(ids))
			return AjaxResult.error("id不能为空");
		for (Integer id : Convert.toIntArray(ids))
		{
165
166
167
168
			ShipmentHeader shipmentHeader=shipmentHeaderService.getById(id);

			//出库单设定为历史出库单,并删除出库单
			shipmentHeaderService.addHistory(shipmentHeader);
pengcheng authored
169
			shipmentHeader.setDeleted(true);
170
			boolean result=shipmentHeaderService.removeById(id);
pengcheng authored
171
			if(result==false){
172
				throw new ServiceException("删除失败");
pengcheng authored
173
			}
174
175
176
177
			LambdaQueryWrapper<ShipmentDetail> shipmentDetailLambdaQueryWrapper=Wrappers.lambdaQuery();
			shipmentDetailLambdaQueryWrapper.eq(ShipmentDetail::getShipmentCode,shipmentHeader.getCode())
					.eq(ShipmentDetail::getWarehouseCode,shipmentHeader.getWarehouseCode());
			shipmentDetailService.remove(shipmentDetailLambdaQueryWrapper);
pengcheng authored
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
		}
		return AjaxResult.success("删除成功!");
	}

	/**
	 *  出库单报表打印
	 * @return
	 */
	@RequiresPermissions("shipment:bill:report")
	@Log(title = "出库-出库单", operating="打印出库单报表", action = BusinessType.OTHER)
	@GetMapping("/report/{id}")
	public String report(@PathVariable("id") Integer id, ModelMap mmap)
	{
		ShipmentHeader shipmentHeader = shipmentHeaderService.getById(id);
		mmap.put("shipmentHeader", shipmentHeader);

		LambdaQueryWrapper<ShipmentDetail> lambdaQueryWrapper = Wrappers.lambdaQuery();
		lambdaQueryWrapper.eq(ShipmentDetail::getShipmentId,id)
				.eq(ShipmentDetail::getWarehouseCode,ShiroUtils.getWarehouseCode());
		List<ShipmentDetail> details = shipmentDetailService.list(lambdaQueryWrapper);
		mmap.put("details", details);

		return prefix + "/report";
	}

	@PostMapping("/getShipmentHeader")
	@ResponseBody
	public AjaxResult<ShipmentHeader> getShipmentHeader(int id){
		return AjaxResult.success(shipmentHeaderService.getById(id));
	}
pengcheng authored
210
}