package com.steerinfo.dil.controller; import com.github.pagehelper.PageHelper; import com.steerinfo.dil.feign.ColumnDataFeign; import com.steerinfo.dil.feign.ESFeign; import com.steerinfo.dil.mapper.BmstruckDetailsOrderMapper; import com.steerinfo.dil.service.impl.BmstruckDetailsOrderServiceImpl; 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 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.beans.factory.annotation.Required; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; /** * @Description: * @Author:HuJianGuo * @GreateTime:2021/9/24 17:29 * @Version:V2.0 */ @RestController @RequestMapping("/${api.version}/bmstruckdetailsorder") public class BmstruckDetailsOrderController extends BaseRESTfulController { @Autowired BmstruckDetailsOrderServiceImpl bmstruckDetailsOrderService; @Autowired ColumnDataUtil columnDataUtil; @Autowired ESFeign esFeign; @Autowired ColumnDataFeign columnDataFeign; @Autowired BmstruckDetailsOrderMapper bmstruckDetailsOrderMapper; private final SimpleDateFormat sdfDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); /** * 展示汽运详单信息 * * @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 = "销售:176/采购:140", required = false, dataType = "BigDecimal"), @ApiImplicitParam(name = "orderType", value = "1:销售,3:采购", required = false, dataType = "Integer") }) @PostMapping("/getTruckDetailsOrderList") public RESTfulResult getTruckDetailsOrderList(@RequestBody(required = false) Map mapValue, Integer pageNum, Integer pageSize, Integer apiId, Integer orderType, String carrierSsoId) { if (mapValue == null) { mapValue = new HashMap<>(); } if (carrierSsoId != null && carrierSsoId.equals("undefined")) { carrierSsoId = null; } if (carrierSsoId != null) { BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId); mapValue.put("carrierId",carrierId); } mapValue.put("orderType",orderType); //初始化过滤 List> truckDetailList = bmstruckDetailsOrderService.getTruckDetailsOrderList(mapValue); PageHelper.startPage(pageNum, pageSize); //分页查询数据 List> columnList = bmstruckDetailsOrderService.getTruckDetailsOrderList(mapValue); PageListAdd data = columnDataUtil.tableColumnData(apiId, truckDetailList, columnList); return success(data); } /** * 展示汽运未生成账单的详单信息 * * @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 = "销售:176", required = false, dataType = "BigDecimal"), @ApiImplicitParam(name = "orderType", value = "1:销售", required = false, dataType = "Integer") }) @PostMapping("/getUnFinishedTruckDetailsOrderList") public RESTfulResult getUnFinishedTruckDetailsOrderList(@RequestBody(required = false) Map mapValue, Integer pageNum, Integer pageSize, Integer apiId, Integer orderType, String carrierSsoId) { if (carrierSsoId != null && carrierSsoId.equals("undefined")) { carrierSsoId = null; } if (carrierSsoId != null) { BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId); mapValue.put("carrierId",carrierId); } PageHelper.startPage(pageNum, pageSize); //分页查询数据 List> columnList = bmstruckDetailsOrderService.getUnFinishedTruckDetailsOrderList(mapValue, orderType); for (Map objectMap : columnList) { String priceids = (String) objectMap.get("priceids"); if (priceids!=null&&"".equals(priceids)){ String[] split = priceids.split(","); String address1=""; for (String s : split) { //查询出运输订单的行 Map queryaddress = bmstruckDetailsOrderMapper.queryaddress(new BigDecimal(s)); String address = bmstruckDetailsOrderMapper.queryaddress1((BigDecimal) queryaddress.get("placeid")); address1+=address+","; } objectMap.put("realAddress",address1); } } PageListAdd data = columnDataUtil.tableColumnData(apiId, null, columnList); return success(data); } /* 内转计重计费详单 */ @PostMapping("/getInwardWeightDetailsOrder") public RESTfulResult getInwardWeightDetailsOrder(@RequestBody(required = false) MapmapValue, Integer pageNum, Integer pageSize, Integer apiId, String carrierSsoId, Integer detailStatus, Integer orderType, String userId, String startTime, String endTime, String capacityNo, String shipperNames, String transRangeValues, String materialTypeNames, String isPage){ if (carrierSsoId != null && carrierSsoId.equals("undefined")) { carrierSsoId = null; } if (carrierSsoId != null) { BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId); mapValue.put("carrierId",carrierId); } if(userId != null && !"null".equals(userId)){ mapValue.put("userId","%"+ userId +"%"); } if(capacityNo != null && !"null".equals(capacityNo)){ mapValue.put("capacityNo","%"+ capacityNo +"%"); } if(shipperNames != null && !"null".equals(shipperNames)){ mapValue.put("shipperNames","%"+ shipperNames +"%"); } if(transRangeValues != null && !"null".equals(transRangeValues)){ mapValue.put("transRangeValues","%"+ transRangeValues +"%"); } if(materialTypeNames != null && !"null".equals(materialTypeNames)){ mapValue.put("materialTypeNames","%"+ materialTypeNames +"%"); } DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据 mapValue.put("detailStatus",detailStatus); if("yes".equals(isPage)){ return success(bmstruckDetailsOrderService.getInwardWeightDetailsOrder(mapValue,orderType)); } if (pageNum==null||pageSize==null){ }else { PageHelper.startPage(pageNum, pageSize); } //分页查询数据 List> columnList = bmstruckDetailsOrderService.getInwardWeightDetailsOrder(mapValue,orderType); PageListAdd data = columnDataUtil.tableColumnData5(apiId, null, columnList); return success(data); } @PostMapping("/getNoInwardDetails") public RESTfulResult getNoInwardDetails(@RequestBody(required = false) MapmapValue, Integer pageNum, Integer pageSize, Integer apiId, String carrierSsoId, String userId, String startTime, String endTime, String orgCode, String capacityNo, String transRangeValues, String materialTypeNames, String shipperNames, String isPage){ if (carrierSsoId != null && carrierSsoId.equals("undefined")) { carrierSsoId = null; } if (carrierSsoId != null) { BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId); mapValue.put("carrierId",carrierId); } if(userId != null && !"null".equals(userId)){ mapValue.put("userId","%"+ userId +"%"); } if(capacityNo != null && !"null".equals(capacityNo)){ mapValue.put("capacityNo","%"+ capacityNo +"%"); } if(shipperNames != null && !"null".equals(shipperNames)){ mapValue.put("shipperNames","%"+ shipperNames +"%"); } if(transRangeValues != null && !"null".equals(transRangeValues)){ mapValue.put("transRangeValues","%"+ transRangeValues +"%"); } if(materialTypeNames != null && !"null".equals(materialTypeNames)){ mapValue.put("materialTypeNames","%"+ materialTypeNames +"%"); } DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据 if("yes".equals(isPage)){ return success(bmstruckDetailsOrderService.getNoInwardDetails(mapValue)); } PageHelper.startPage(pageNum, pageSize); //分页查询数据 List> columnList = bmstruckDetailsOrderService.getNoInwardDetails(mapValue); PageListAdd data = columnDataUtil.tableColumnData5(apiId, null, columnList); return success(data); } /** * 展示汽运实绩信息 * * @param mapVal * @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 = "销售:177/采购:142", required = false, dataType = "BigDecimal") }) @PostMapping("/getTruckResultList") public RESTfulResult getTruckResultList(@RequestBody(required = false) Map mapVal, Integer pageNum, Integer pageSize, Integer apiId, BigDecimal orderId) { if (mapVal == null) { mapVal = new HashMap<>(); } mapVal.put("orderId", orderId); List> list = bmstruckDetailsOrderService.getTruckResultList(mapVal); PageHelper.startPage(pageNum, pageSize); //分页查询数据 List> columnList = bmstruckDetailsOrderService.getTruckResultList(mapVal); PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList); return success(data); } /** * 新增详单 * * @param orderId * @return */ @ApiModelProperty(value = "新增详单") @ApiImplicitParams({ @ApiImplicitParam(name = "orderId", value = "汽运计量实绩id", required = false, dataType = "BigDecimal"), }) @PostMapping("/addDetailsOrder/{orderId}") public RESTfulResult addDetailsOrder(@PathVariable("orderId") BigDecimal orderId) throws Exception { int code = bmstruckDetailsOrderService.insertSelective(orderId); return success(code); } @ApiModelProperty(value = "新增内转计费详单") @ApiImplicitParams({ @ApiImplicitParam(name = "orderId", value = "汽运计量实绩id", required = false, dataType = "BigDecimal"), }) @PostMapping("/addInwardDetailsOrder") public synchronized RESTfulResult addInwardDetailsOrder(@RequestBody(required = false) Map mapVal) { int code = bmstruckDetailsOrderService.inserInwardOrder(mapVal); return success(code); } /** * 修改详单 * * @param mapValue * @return */ @ApiModelProperty(value = "修改详单") @ApiImplicitParams({ @ApiImplicitParam(name = "detailsId,priceId", value = "详单id,价格id", required = false, dataType = "BigDecimal"), }) @PostMapping("/updateDetailsOrder") public RESTfulResult updateDetailsOrder(@RequestBody Map mapValue) throws Exception { int code = bmstruckDetailsOrderService.updateDetailsOrder(mapValue); return success(code); } @ApiModelProperty(value = "批量修改详单") @ApiImplicitParams({ @ApiImplicitParam(name = "detailsId,priceId", value = "详单id,价格id", required = false, dataType = "BigDecimal"), }) @PostMapping("/updateBatchDetailsOrder") public RESTfulResult updateBatchDetailsOrder(@RequestBody Map mapValue) throws Exception { List> mapList = (List>) mapValue.get("mapList"); int code = 0; // try{ // for (Map map :mapList) { // if(bmstruckDetailsOrderService.getSaleOrderStatus(DataChange.dataToBigDecimal(map.get("saleOrderMaterialId")))!=4){ // return failed("存在未审核的订单,不允许修改单价!"); // } // } // }catch (Exception e) { // e.printStackTrace(); // System.out.println("查询订单状态异常"); // } for (Map map :mapList) { map.put("userId",mapValue.get("userId")); map.put("updatePlace",mapValue.get("updatePlace")); //有运单改运单 if(map.get("orderId")!=null){ code += bmstruckDetailsOrderService.updateDetailsOrder(map); } //有车序号改车序号 if(map.get("saleOrderMaterialId")!=null){ code += bmstruckDetailsOrderService.updateAsomPriceId(map); } if(map.get("orderId") ==null && map.get("saleOrderMaterialId") ==null){ System.out.println("既没有订单也没有车序号!无法修改单价!"); } } return success(code); } /**addLossFeeOfCoke * 增加焦炭途损费 * * @param map * @return */ @ApiModelProperty(value = "增加焦炭途损费") @ApiImplicitParams({ @ApiImplicitParam(name = "detailsId", value = "详单id", required = false, dataType = "BigDecimal"), }) @PostMapping("/addLossFeeOfCoke") public RESTfulResult addLossFeeOfCoke(@RequestBody Map map) { int code = bmstruckDetailsOrderService.addLossFeeOfCoke(map); return success(code); } /** * 查询价格和地址 * * @param priceId * @return */ @ApiModelProperty(value = "查询价格和地址") @ApiImplicitParams({ @ApiImplicitParam(name = "priceId", value = "价格id", required = false, dataType = "BigDecimal"), }) @PostMapping("/findAddressAndPrice") public RESTfulResult findAddressAndPrice(@RequestParam Integer priceId) { Map map = bmstruckDetailsOrderService.findAddressAndPrice(priceId); return success(map); } @PostMapping("updateDetails") public int updateDetailsOrder(){ int i = bmstruckDetailsOrderService.updateDetails(); return i; } /* 内转计重+计时计费详单 */ @PostMapping("/getInwardWeightTimeDetailsOrder") public RESTfulResult getInwardWeightTimeDetailsOrder(@RequestBody(required = false) MapmapValue, Integer pageNum, Integer pageSize, Integer apiId, String carrierSsoId, Integer detailStatus, Integer orderType, String userId, String startTime, String endTime){ if (carrierSsoId != null && carrierSsoId.equals("undefined")) { carrierSsoId = null; } if (carrierSsoId != null) { BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId); mapValue.put("carrierId",carrierId); } if(userId != null){ mapValue.put("userId","%"+ userId +"%"); } DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据 mapValue.put("detailStatus",detailStatus); PageHelper.startPage(pageNum, pageSize); //分页查询数据 List> columnList = bmstruckDetailsOrderService.getInwardWeightTimeDetailsOrder(mapValue,orderType); PageListAdd data = columnDataUtil.tableColumnData(apiId, null, columnList); return success(data); } @ApiOperation(value = "获取钢材运费详单") @PostMapping("getSteelTruckDetailsOrder") public RESTfulResult getSteelTruckDetailsOrder(@RequestBody(required = false) Map mapValue, Integer pageNum, Integer pageSize, Integer apiId, Integer orderType, String carrierSsoId, String startTime, String endTime, String con){ DataChange.queryDataByDateTimeYestDay(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据 if (carrierSsoId != null && !"null".equals(carrierSsoId)) { BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId); mapValue.put("carrierId",carrierId); } if (con != null && !"null".equals(con)){ mapValue.put("con","%" +con+ "%"); } if(pageNum !=null &&!("".equals(pageNum))&&pageSize!=null&&!("".equals(pageSize))){ //PageHelper.startPage(pageNum, pageSize); } List> columnList = bmstruckDetailsOrderService.getSteelTruckDetailsOrder(mapValue); List> columnDataList = columnDataFeign.getColumnData(apiId); int i=0; for (Map columnData : columnDataList) { //每个表头字段的过滤条件 if (DataChange.dataToBigDecimal(columnData.get("isFilter")).intValue() != 0) { columnData.put("filters", setListMap(columnList,columnData.get("prop").toString())); } if (i==1){ columnData.put("min-width","83"); }else if (i==2){ columnData.put("min-width","207"); }else if (i==5){ columnData.put("min-width","101"); }else if (i==8){ columnData.put("min-width","184"); }else if (i==10){ columnData.put("min-width","120"); }else if (i==15){ columnData.put("min-width","228"); } i++; } PageListAdd pageList = new PageListAdd(columnList); pageList.setColumnData(columnDataList); //PageListAdd data = columnDataUtil.tableColumnData(apiId, null, columnList); return success(pageList); } @ApiOperation("根据运输订单ID查询计重结算需要的信息") @PostMapping("newInwardSettle") public RESTfulResult newInwardSettle(@RequestBody Map map){ //接收到运输订单号数组 List> orderIds = (List>)map.get("orderIds"); int i = bmstruckDetailsOrderService.newInwardSettle(orderIds); return success(i); } @ApiOperation("销售公司已确认") @PostMapping("updateDetailsStatus") public RESTfulResult updateDetailsStatus(@RequestBody Map map) { List mapList = (List)map.get("orderList"); List> amsPriceList = (List>) map.get("amsPriceList"); if (map.get("updateStatus") != null && DataChange.dataToBigDecimal(map.get("updateStatus")).compareTo(new BigDecimal(1)) == 0){ //取消确认 int i = bmstruckDetailsOrderService.cancelMakeSure(mapList); return success(i); } if (amsPriceList.size()>0){ bmstruckDetailsOrderService.insertPriceValue(amsPriceList); } int i = bmstruckDetailsOrderService.updateDetailsStatus(mapList); return success(i); } private Set> setListMap(List> list, String name) { Set> setString = new HashSet<>(); for (Map map : list) {//遍历每条数据 Map map1 = new HashMap<>(); //map.get(name)获取每条数据中对应表头字段的数据 map1.put("text", map.get(name)); if (map.get(name) != null) { map1.put("value", map.get(name)); setString.add(map1); } } return setString; } @ApiOperation("直接修改详单金额") @PostMapping("updateTruckDetail") public RESTfulResult updateTruckDetail(@RequestBody Map map) { try{ bmstruckDetailsOrderService.updateDetailsDirect(map); }catch (Exception e){ e.printStackTrace(); return failed("修改失败"); } return success("修改成功"); } @ApiOperation("新增详单,计量实绩为空(冲红)") @PostMapping("addTruckDetail") public RESTfulResult addTruckDetail(@RequestBody Map map) { try{ bmstruckDetailsOrderService.addTruckDetail(map); }catch (Exception e){ e.printStackTrace(); return failed("新增失败"); } return success("新增成功"); } }