KuaidiDetailController.java 5.99 KB
package com.huaheng.pc.shipment.kuaidiDetail.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.huaheng.common.utils.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.framework.web.page.PageDomain;
import com.huaheng.framework.web.page.TableDataInfo;
import com.huaheng.framework.web.page.TableSupport;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.pc.config.material.domain.Material;
import com.huaheng.pc.config.material.service.MaterialService;
import com.huaheng.pc.shipment.kuaidiDetail.domain.KuaidiDetail;
import com.huaheng.pc.shipment.kuaidiDetail.service.KuaidiDetailService;
import com.huaheng.pc.shipment.kuaidiHeader.domain.KuaidiHeader;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
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.common.support.Convert;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * 【请填写功能名称】 信息操作处理
 *
 * @author huaheng
 * @date 2022-09-07
 */
@Controller
@RequestMapping("/shipment/kuaidiDetail")
public class KuaidiDetailController extends BaseController {
    private String prefix = "shipment/kuaidiDetail";

	@Resource
	private KuaidiDetailService kuaidiDetailService;
	@Resource
	private MaterialService materialService;

	@RequiresPermissions("shipment:kuaidiDetail:view")
	@GetMapping()
	public String kuaidiDetail(@PathVariable("shipmentId") String shipmentId, ModelMap mmap) {
		mmap.put("receiptId", shipmentId);
		return prefix + "/list";
	}

	/**
	 * 查询【请填写功能名称】列表
	 */
	/*@RequiresPermissions("shipment:kuaidiDetail:list")*/
	@PostMapping("/list")
	@ResponseBody
	public TableDataInfo list(KuaidiDetail kuaidiDetail) {
		LambdaQueryWrapper<KuaidiDetail> lambdaQueryWrapper = Wrappers.lambdaQuery();
		lambdaQueryWrapper.eq(KuaidiDetail::getDeleted,false);
		lambdaQueryWrapper.eq(KuaidiDetail::getShipmentId,kuaidiDetail.getShipmentId());
		PageDomain pageDomain = TableSupport.buildPageRequest();
		Integer pageNum = pageDomain.getPageNum();
		Integer pageSize = pageDomain.getPageSize();
		if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
			/*使用分页查询*/
			Page<KuaidiDetail> page = new Page<>(pageNum, pageSize);
			IPage<KuaidiDetail> iPage = kuaidiDetailService.page(page, lambdaQueryWrapper);
			return getMpDataTable(iPage.getRecords(), iPage.getTotal());
		} else {
			List<KuaidiDetail> list = kuaidiDetailService.list(lambdaQueryWrapper);
			return getDataTable(list);
		}
	}

	/**
	 * 新增【请填写功能名称】
	 */
	@GetMapping("/add")
	public String add(String shipmentId, String shipmentCode,String companyId, String companyCode, String sourceCode, ModelMap mmap){
		mmap.put("shipmentId", shipmentId);
		mmap.put("shipmentCode", shipmentCode);
		mmap.put("companyId", companyId);
		mmap.put("companyCode", companyCode);
		mmap.put("sourceCode", sourceCode);
		return prefix + "/add";
	}

	/**
	 * 新增保存【请填写功能名称】
	 */
	/*@RequiresPermissions("shipment:kuaidiDetail:add")*/
	@Log(title = "【请填写功能名称】", action = BusinessType.INSERT)
	@PostMapping("/add")
	@ResponseBody
	public AjaxResult addSave(KuaidiDetail kuaidiDetail) {
		return kuaidiDetailService.insertDetail(kuaidiDetail);
	}

	/**
	 * 修改【请填写功能名称】
	 */
	@GetMapping("/edit/{id}")
	public String edit(@PathVariable("id") Long id, ModelMap mmap) {
		KuaidiDetail kuaidiDetail = kuaidiDetailService.getById(id);
		mmap.put("kuaidiDetail", kuaidiDetail);
	    return prefix + "/edit";
	}

	/**
	 * 修改保存【请填写功能名称】
	 */
	/*@RequiresPermissions("shipment:kuaidiDetail:edit")*/
	@Log(title = "【请填写功能名称】", action = BusinessType.UPDATE)
	@PostMapping("/edit")
	@ResponseBody
	public AjaxResult editSave(KuaidiDetail kuaidiDetail) {
		return toAjax(kuaidiDetailService.updateById(kuaidiDetail));
	}

	/**
	 * 删除【请填写功能名称】
	 */
	/*@RequiresPermissions("shipment:kuaidiDetail:remove")*/
	@Log(title = "【请填写功能名称】", action = BusinessType.DELETE)
	@PostMapping( "/remove")
	@ResponseBody
	public AjaxResult remove(String ids) {
		if (StringUtils.isEmpty(ids)){
			return AjaxResult.error("id不能为空");
		}
		return toAjax(kuaidiDetailService.removeByIds(Arrays.asList(Convert.toIntArray(ids))));
	}
	/**
	 * 新增快递单明细根据物料显示信息
	 */
	/*@RequiresPermissions("shipment:kuaidi:add")*/
	@Log(title = "出库-快递单", operating= "新增快递单明细", action = BusinessType.INSERT)
	@PostMapping("/getMaterial")
	@ResponseBody
	public AjaxResult getMaterial(String materialCode, String companyCode)
	{
		KuaidiDetail kuaidiDetail =new KuaidiDetail();
		LambdaQueryWrapper<Material> lambdaQueryWrapper = Wrappers.lambdaQuery();
		lambdaQueryWrapper.eq(Material::getWarehouseCode,ShiroUtils.getWarehouseCode());
		lambdaQueryWrapper.eq(Material::getCode,materialCode);
		lambdaQueryWrapper.last("limit 1");
		Material material = materialService.getOne(lambdaQueryWrapper);
		if(material == null){
			return AjaxResult.error("物料编码错误");
		}
		kuaidiDetail.setMaterialName(material.getName());
		kuaidiDetail.setBarCode(material.getBarcode());
		kuaidiDetail.setSpecification(material.getSpec());
		return AjaxResult.success(kuaidiDetail);
	}
}