package com.steerinfo.dil.controller; import com.steerinfo.dil.feign.ColumnDataFeign; import com.steerinfo.dil.feign.ESFeign; import com.steerinfo.dil.mapper.AmsDispatchSaleOrderMapper; import com.steerinfo.dil.mapper.AmsSaleOrderMapper; import com.steerinfo.dil.model.AmsDispatchSaleOrder; import com.steerinfo.dil.model.AmsSaleOrder; import com.steerinfo.dil.model.AmsSaleOrderMaterial; import com.steerinfo.dil.service.IAmsSaleOrderService; import com.steerinfo.dil.service.impl.AmsDispatchSaleOrderServiceImpl; import com.steerinfo.dil.service.impl.AmsSaleOrderMaterialServiceImpl; import com.steerinfo.dil.util.BaseRESTfulController; import com.steerinfo.dil.util.ColumnDataUtil; import com.steerinfo.dil.util.DataChange; import com.steerinfo.dil.util.PageListAdd; import com.steerinfo.framework.controller.RESTfulResult; import com.steerinfo.framework.service.pagehelper.PageHelper; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * AmsSaleOrder RESTful接口: * @author generator * @version 1.0-SNAPSHORT 2021-09-06 07:10 * 类描述 * 修订历史: * 日期:2021-09-06 * 作者:generator * 参考: * 描述:AmsSaleOrder RESTful接口 * @see null * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved. */ @RestController @RequestMapping("/${api.version}/amssaleorders") public class AmsSaleOrderController extends BaseRESTfulController { @Autowired IAmsSaleOrderService amsSaleOrderService; @Autowired AmsSaleOrderMaterialServiceImpl amsSaleOrderMaterialService; @Autowired AmsDispatchSaleOrderServiceImpl amsDispatchSaleOrderService; @Autowired ColumnDataFeign columnDataFeign; @Autowired AmsDispatchSaleOrderMapper amsDispatchSaleOrderMapper; @Autowired ColumnDataUtil columnDataUtil; @Autowired ESFeign esFeign; @ApiOperation(value="查询未上报销售订单信息") @ApiImplicitParams({ @ApiImplicitParam(name = "apiId(98)", value = "表头", required = false, dataType = "Interger") }) @PostMapping("/getSaleOrderInfo") public RESTfulResult getSaleOrderInfo(@RequestBody(required=false) Map mapValue, Integer apiId, Integer pageNum, Integer pageSize){ List> amsSaleOrder = amsSaleOrderService.getSaleOrderInfo(mapValue); PageHelper.startPage(pageNum,pageSize); List> amsSaleOrder1 = amsSaleOrderService.getSaleOrderInfo(mapValue); PageListAdd pageList = columnDataUtil.tableColumnData(apiId, amsSaleOrder,amsSaleOrder1); return success(pageList); } @ApiOperation(value="查询已上报销售订单信息") @ApiImplicitParams({ @ApiImplicitParam(name = "apiId(98)", value = "表头", required = false, dataType = "Interger") }) @PostMapping("/getSaleOrderReported") public RESTfulResult getSaleOrderReported(@RequestBody(required=false) Map mapValue, Integer apiId, Integer pageNum, Integer pageSize){ List> amsSaleOrder = amsSaleOrderService.getSaleOrderReported(mapValue); PageHelper.startPage(pageNum,pageSize); List> amsSaleOrder1 = amsSaleOrderService.getSaleOrderReported(mapValue); PageListAdd pageList = columnDataUtil.tableColumnData(apiId, amsSaleOrder,amsSaleOrder1); return success(pageList); } @ApiOperation(value="查询财务已审批销售订单信息") @ApiImplicitParams({ @ApiImplicitParam(name = "apiId(105)", value = "表头", required = false, dataType = "Interger") }) @PostMapping("/getAmsSaleOrderApproved") public RESTfulResult getAmsSaleOrderApproved(@RequestBody(required=false) Map mapValue, Integer apiId, Integer pageNum, Integer pageSize){ List> amsSaleOrder = amsSaleOrderService.getAmsSaleOrderApproved(mapValue); PageHelper.startPage(pageNum,pageSize); List> amsSaleOrder1 = amsSaleOrderService.getAmsSaleOrderApproved(mapValue); PageListAdd pageList = columnDataUtil.tableColumnData(apiId, amsSaleOrder,amsSaleOrder1); return success(pageList); } @ApiOperation(value="根据销售订单号查询销售订单详细信息") @ApiImplicitParams({ @ApiImplicitParam(name = "apiId(100)", value = "表头", required = false, dataType = "Interger") }) @PostMapping("/getSaleOrderDetail") public RESTfulResult getSaleOrderDetail(BigDecimal saleOrderId,@RequestBody(required=false) Map mapValue, Integer apiId, Integer pageNum, Integer pageSize){ if (mapValue == null) { mapValue = new HashMap<>(); } mapValue.put("saleOrderId",saleOrderId); List> amsSaleOrderDetail = amsSaleOrderService.getSaleOrderDetail(mapValue); PageHelper.startPage(pageNum,pageSize); List> amsSaleOrderDetail1 = amsSaleOrderService.getSaleOrderDetail(mapValue); PageListAdd pageList = columnDataUtil.tableColumnData(apiId, amsSaleOrderDetail,amsSaleOrderDetail1); return success(pageList); } /** * 上传销售订单 * @param saleOrderId * @return */ @ApiOperation(value="上传销售订单") @ApiImplicitParams({ @ApiImplicitParam(name = "saleOrderId", value = "销售订单ID", required = false, dataType = "java.math.BigDecimal") }) @PostMapping(value = "/uploadSaleOrder") public RESTfulResult uploadSaleOrder(@RequestParam BigDecimal saleOrderId){ int i = amsSaleOrderService.uploadSaleOrder(saleOrderId); return success(i); } /** * 新增销售订单 * @param map * @return */ @ApiOperation(value="新增销售订单") @ApiImplicitParams({ @ApiImplicitParam(name = "amsSaleOrder", value = "销售订单对象", required = false, dataType = "AmsSaleOrder") }) @PostMapping(value = "/addAmsSaleOrder") public RESTfulResult addAmsSaleOrder(@RequestBody(required = false) Map map) throws ParseException { int i = amsSaleOrderService.addAmsSaleOrder(map); return success(i); } /** * 通过主键渲染销售订单信息 * @param saleOrderId * @return */ @ApiOperation(value="通过主键渲染销售订单信息") @ApiImplicitParams({ @ApiImplicitParam(name = "saleOrderId", value = "主键Id", required = false, dataType = "java.math.BigDecimal") }) @PostMapping(value = "/getAmsSaleOrderBySaleOrderId") public RESTfulResult getAmsSaleOrderBySaleOrderId(@RequestParam BigDecimal saleOrderId){ Map maps = amsSaleOrderService.selectInfoBySaleOrderId(saleOrderId); List> maps1= amsSaleOrderService.selectMaterialInfoBySaleOrderId(saleOrderId); Map map=new HashMap(); map.put("maps",maps); map.put("maps1",maps1); return success(map); } /**steelMaterialId * 通过主键修改销售订单 * @param map * @return */ @ApiOperation(value="通过主键修改销售订单") @ApiImplicitParams({ @ApiImplicitParam(name = "amsSaleOrder", value = "销售订单对象", required = false, dataType = "AmsSaleOrder") }) @PostMapping(value = "/updateAmsSaleOrder") public RESTfulResult updateAmsSaleOrder(@RequestBody(required = false) Map map) throws ParseException { int i = amsSaleOrderService.updateAmsSaleOrder(map); return success(i); } /** * 通过主键删除销售订单 * @param saleOrderId * @return */ @ApiOperation(value="通过主键删除销售订单") @ApiImplicitParams({ @ApiImplicitParam(name = "saleOrderId", value = "主键Id", required = false, dataType = "java.math.BigDecimal") }) @PostMapping(value = "/deleteAmsSaleOrderBySaleOrderId") public RESTfulResult deleteAmsSaleOrderBySaleOrderId(BigDecimal saleOrderId){ int i = amsSaleOrderService.deleteAmsSaleOrderBySaleOrderId(saleOrderId); return success(i); } @ApiOperation(value="根据销售订单号查询销售订单修改日志") @ApiImplicitParams({ @ApiImplicitParam(name = "apiId(100)", value = "表头", required = false, dataType = "Interger") }) @PostMapping("/getSaleOrderUpdateLog") public RESTfulResult getSaleOrderUpdateLog(BigDecimal saleOrderId,@RequestBody(required=false) Map mapValue, Integer apiId, Integer pageNum, Integer pageSize){ if (mapValue == null) { mapValue = new HashMap<>(); } mapValue.put("saleOrderId",saleOrderId); List> amsSaleOrderUpdate = amsSaleOrderService.getSaleOrderUpdateLog(mapValue); PageHelper.startPage(pageNum,pageSize); List> amsSaleOrderUpdate1 = amsSaleOrderService.getSaleOrderUpdateLog(mapValue); PageListAdd pageList = columnDataUtil.tableColumnData(apiId, amsSaleOrderUpdate,amsSaleOrderUpdate1); return success(pageList); } /** * 获取销售计划名称 * @param * @return */ @ApiOperation(value="获取销售计划名称") @ApiImplicitParams({ }) @GetMapping(value = "/getSalePlanName") public RESTfulResult getSalePlanName(){ return success(amsSaleOrderService.getSalePlanName()); } /** * 获取发货单位 * @param * @return */ @ApiOperation(value="获取发货单位") @ApiImplicitParams({ }) @GetMapping(value = "/getShipperName") public RESTfulResult getShipperName(){ return success(amsSaleOrderService.getShipperName()); } /** * 获取收货单位 * @param * @return */ @ApiOperation(value="获取收货单位") @ApiImplicitParams({ }) @GetMapping(value = "/getConsigneeCompanyName") public RESTfulResult getConsigneeCompanyName(){ return success(amsSaleOrderService.getConsigneeCompanyName()); } /** * 展示销售公司已审核销售订单的车序号列表 * @param mapValue * @param pageNum * @param pageSize * @param apiId * @return */ @ApiModelProperty(value = "展示销售公司已审核销售订单的车序号列表") @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"), @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"), @ApiImplicitParam(name = "apiId", value = "181", required = false, dataType = "BigDecimal") }) @PostMapping("/getSaleOrderList") public RESTfulResult getSaleOrderList(@RequestBody(required = false) Map mapValue, Integer pageNum, Integer pageSize, Integer apiId, Integer status, String con) { int count=0; if (status!=null){ mapValue.put("status",status); count++; } if(con != null){ if(!"undefined".equals(con)){ String index="get_sale_orderlist";//设置要查询的索引名称 return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));//获取查询结果 } } //不分页筛选数据 List> allSaleOrderList = null; //如果有条件查询则跳过初始化,和创建索引 if(mapValue.size() == count){ //将查询结果存入索引中 allSaleOrderList = amsSaleOrderService.getSaleOrderList(mapValue); Map map1 = new HashMap<>(); //添加索引 map1.put("index","get_sale_orderlist"); //添加id map1.put("indexId","saleOrderId"); allSaleOrderList.add(map1); //新建索引 esFeign.insertIndex(allSaleOrderList); //删除 allSaleOrderList.remove(allSaleOrderList.size()-1); } if(allSaleOrderList== null) allSaleOrderList = amsSaleOrderService.getSaleOrderList(mapValue); PageHelper.startPage(pageNum,pageSize); //分页数据 List> saleOrderList = amsSaleOrderService.getSaleOrderList(mapValue); PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allSaleOrderList,saleOrderList); return success(pageList); } /** * 销售公司查询已审核的订单 * */ @ApiModelProperty(value = "展示销售公司已审核销售订单的车序号列表") @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"), @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"), @ApiImplicitParam(name = "apiId", value = "181", required = false, dataType = "BigDecimal") }) @PostMapping("/getSaleOrderListBySaleCompany") public RESTfulResult getSaleOrderListBySaleCompany(@RequestBody(required = false) Map mapValue, Integer pageNum, Integer pageSize, Integer apiId, String con) { if(con != null){ if(!"undefined".equals(con)){ String index="get_sale_companylist";//设置要查询的索引名称 return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));//获取查询结果 } } //不分页筛选数据 List> saleCompanyList = null; //如果有条件查询则跳过初始化,和创建索引 if(mapValue.size() == 0){ //将查询结果存入索引中 saleCompanyList = amsSaleOrderService.getSaleOrderListBySaleCompany(mapValue); Map map1 = new HashMap<>(); //添加索引 map1.put("index","get_sale_orderlist"); //添加id map1.put("indexId","saleOrderId"); saleCompanyList.add(map1); //新建索引 esFeign.insertIndex(saleCompanyList); //删除 saleCompanyList.remove(saleCompanyList.size()-1); } if(saleCompanyList== null) saleCompanyList = amsSaleOrderService.getSaleOrderListBySaleCompany(mapValue); PageHelper.startPage(pageNum,pageSize); //分页数据 List> saleOrderList = amsSaleOrderService.getSaleOrderListBySaleCompany(mapValue); PageListAdd pageList = columnDataUtil.tableColumnData(apiId, saleCompanyList,saleOrderList); return success(pageList); } /** * 固定派单:通过车序号查询收货地址,截取收货地址的区域,去资源管理中查询对应的承运商,将车序号与承运商绑定 */ @PostMapping("/addAmsDispatchSaleOrder") public RESTfulResult addAmsDispatchSaleOrder(@RequestBody(required = false) List> mapValue){ if(mapValue==null){ return failed(); } for (Map m:mapValue ) { Integer id = Integer.parseInt(m.get("saleOrderMaterialId").toString()) ; System.out.println(id); //通过主键Id获取地址id Integer a=amsSaleOrderMaterialService.selectById(new BigDecimal(id)); //通过地址id查询承运商id List carriers = amsSaleOrderService.getCarrier(a); //判断是否只有一个承运商 //如果收货地区为成都重庆,则有多个一个地区对应多个承运商 if(carriers.size()==1) { //新增固定派单 AmsDispatchSaleOrder ad = new AmsDispatchSaleOrder(); ad.setDispatchId(DataChange.dataToBigDecimal(m.get("dispatchId"))); ad.setSaleOrderMaterialId(new BigDecimal(id)); ad.setCarrierId(new BigDecimal(carriers.get(0))); ad.setDispatchDealTime(new Date()); ad.setDispatchTime(new Date()); //成交类型(0:定向派单;1:公开抢单) ad.setDispatchType(new BigDecimal(0)); //销售订单车序号状态(0:已下发;1:未下发) ad.setDispatchStatus(new BigDecimal(0)); int i = amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(ad); return success(i); } } return success(); } /** * 公开派单:查询未分派车辆的销售订单的车序号 */ @ApiModelProperty(value = "展示车序号列表") @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"), @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"), @ApiImplicitParam(name = "apiId", value = "182", required = false, dataType = "BigDecimal") }) @PostMapping("/getAmsSaleOrderMaterial") public RESTfulResult getAmsSaleOrderMaterial(@RequestBody(required = false) Map mapValue, Integer pageNum, Integer pageSize, Integer apiId, Integer status) { mapValue.put("status",status); List> list = amsSaleOrderMaterialService.getSaleMaterial(mapValue); PageHelper.startPage(pageNum, pageSize); //分页查询数据 List> columnList = amsSaleOrderMaterialService.getSaleMaterial(mapValue); PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList); return success(data); } /** * 公开派单:新增公开派单 */ @PostMapping("/addOpenAmsDispatchSaleOrder/{orderMaterialId}") public RESTfulResult addOpenAmsDispatchSaleOrder(@PathVariable("orderMaterialId") BigDecimal orderMaterialId){ if(orderMaterialId==null){ return failed(); } //新增公开派单 AmsDispatchSaleOrder ad = new AmsDispatchSaleOrder(); Integer id = amsDispatchSaleOrderMapper.selectDispatchIdBySaleOrderMaterialId(orderMaterialId.intValue()); ad.setDispatchId(DataChange.dataToBigDecimal(id)); ad.setSaleOrderMaterialId(orderMaterialId); //成交类型(0:定向派单;1:公开抢单) ad.setDispatchType(new BigDecimal(1)); //销售订单车序号状态(0:已下发;1:未下发) ad.setDispatchStatus(new BigDecimal(1)); //更新公开派单状态 amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(ad); return success("更新成功"); } /** * 删除公开派单 */ @PostMapping("/deleteAmsDispatchSaleOrder/{dispatchId}") public RESTfulResult deleteAmsDispatchSaleOrder(@PathVariable("dispatchId") BigDecimal dispatchId) { amsDispatchSaleOrderService.delete(dispatchId); return success("删除成功"); } /** * 公开派单:查询公开派单 */ @ApiModelProperty(value = "展示公开派单") @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"), @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"), @ApiImplicitParam(name = "apiId", value = "181", required = false, dataType = "BigDecimal") }) @PostMapping("/getOpenDispatchSaleOrder") public RESTfulResult getOpenDispatchSaleOrder(@RequestBody(required = false) Map mapValue, Integer pageNum, Integer pageSize, Integer apiId) { List> list = amsDispatchSaleOrderService.getOpenDispatchSaleOrder(mapValue); PageHelper.startPage(pageNum, pageSize); //分页查询数据 List> columnList = amsDispatchSaleOrderService.getOpenDispatchSaleOrder(mapValue); PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList); return success(data); } /** *公开派单:修改公开派单 */ @PostMapping("/updateOpenDispatchSaleOrder") public RESTfulResult updateOpenDispatchSaleOrder(@RequestBody AmsDispatchSaleOrder amsDispatchSaleOrder) { if(amsDispatchSaleOrder.getCarrierId()!=null){ amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(1)); } amsDispatchSaleOrder.setDispatchDealTime(new Date()); amsDispatchSaleOrder.setUpdateTime(new Date()); amsDispatchSaleOrder.setUpdateUsername("admin"); amsDispatchSaleOrderService.modify(amsDispatchSaleOrder); return success("修改成功"); } }