Browse Source

Merge remote-tracking branch 'origin/master'

master
God 3 years ago
parent
commit
ee80f98dae
  1. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigService.java
  2. 85
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java
  3. 4
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java
  4. 3
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml
  5. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  6. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmapping/SysMappingFeign.java
  7. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmapping/SysMappingFeignFallback.java
  8. 25
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmapping/SysMappingInfoQuery.java
  9. 27
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmapping/SysMappingInfoVo.java
  10. 3
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmapping/SysMappingQuery.java
  11. 21
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmapping/SysMappingMapper.java
  12. 17
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmapping/SysMappingMapper.xml
  13. 93
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmapping/SysMappingRest.java
  14. 29
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmapping/SysMappingService.java
  15. 9
      anrui-scm/anrui-scm-ui/src/api/kucunguanli/panku.js
  16. 46
      anrui-scm/anrui-scm-ui/src/api/kucunguanli/polling.js
  17. 3
      anrui-scm/anrui-scm-ui/src/components/uploadFile/upload_morebypicture.vue
  18. 53
      anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/cheliangxunjian.vue
  19. 45
      anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/cheliangxunjianhandle.vue
  20. 285
      anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/daixunjian.vue
  21. 145
      anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/relation/xunjianbaogaoAdd.vue
  22. 81
      anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/relation/xunjianbaogaoInfo.vue
  23. 245
      anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/relation/xunjianbaogaoguanli.vue
  24. 70
      anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/xunjiadanInfo.vue
  25. 253
      anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/xunjiandan.vue
  26. 252
      anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/xunjianresolved.vue
  27. 12
      anrui-scm/anrui-scm-ui/src/views/kucunguanli/panku/pankubaogao/pankubaogaoguanli.vue
  28. 2
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java
  29. 9
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/vininput/InputVinVo.java

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigService.java

@ -641,8 +641,8 @@ public class BaseModelConfigService extends MybatisBaseService<BaseModelConfigMa
public List<AppModelConfigListVo> addDonfigName(List<AppModelConfigListVo> appModelConfigListVos) {
for (AppModelConfigListVo appModelConfigListVo : appModelConfigListVos) {
//颜色
String color = StringUtils.isNotBlank(appModelConfigListVo.getCarColor())
? (appModelConfigListVo.getCarColor() + "/") : "";
/* String color = StringUtils.isNotBlank(appModelConfigListVo.getCarColor())
? (appModelConfigListVo.getCarColor() + "/") : "";*/
//缓速器
// String slowMachine = StringUtils.isNotBlank(appModelConfigListVo.getSlowMachine())
// && "有".equals(appModelConfigListVo.getSlowMachine()) ? ("缓速器" + "/") : "";
@ -708,7 +708,7 @@ public class BaseModelConfigService extends MybatisBaseService<BaseModelConfigMa
// && "有".equals(appModelConfigListVo.getMultimedia()) ? ("多媒体") : "";
? (appModelConfigListVo.getMultimedia() + "/") : "";
String configName = color + slowMachine + rearViewMirror + tireSize + specification + rearAxleValue + rearAxleRatio + airConditioner + hubMaterial +
String configName = slowMachine + rearViewMirror + tireSize + specification + rearAxleValue + rearAxleRatio + airConditioner + hubMaterial +
baffleModel + suspension + seat + tireCover + saddle + wheelbase + bumper + configuringBao + independentSources + fuelTank + multimedia;
appModelConfigListVo.setConfigName(configName);
}

85
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java

@ -28,8 +28,8 @@ import com.yxt.anrui.base.common.enums.ManPurOrderType;
import com.yxt.anrui.base.common.enums.VehicleState;
import com.yxt.anrui.buscenter.api.busmaindeposit.pc.PcBusMainDepositFeign;
import com.yxt.anrui.buscenter.api.busmaindeposit.pc.PcBusMainDepositVehicleQuery;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempDto;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
@ -592,16 +592,16 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
configDetailVo.setMoreConfig(otherConfig);
}
//拼接常用配置字段
String modelInfoName = modelInfoName(currentCarVo);
String modelInfoName = modelInfoName(configVo);
configDetailVo.setModelInfoName(modelInfoName);
return configDetailVo;
}
// 拼接常用配置字段
public String modelInfoName(AppCurrentCarDetailVo currentCarVo) {
public String modelInfoName(AppModelConfigDetailsVo configVo) {
String brandName = StringUtils.isNotBlank(currentCarVo.getBrandName()) ? (currentCarVo.getBrandName() + "/") : "";
/* String brandName = StringUtils.isNotBlank(currentCarVo.getBrandName()) ? (currentCarVo.getBrandName() + "/") : "";
String vehicleType = StringUtils.isNotBlank(currentCarVo.getVehicleTypeValue()) ? (currentCarVo.getVehicleTypeValue() + "/") : "";
String productLine = StringUtils.isNotBlank(currentCarVo.getProductLineValue()) ? (currentCarVo.getProductLineValue() + "/") : "";
String driveForm = StringUtils.isNotBlank(currentCarVo.getDriveFormValue()) ? (currentCarVo.getDriveFormValue() + "/") : "";
@ -616,7 +616,69 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
String department = StringUtils.isNotBlank(currentCarVo.getDepartment()) ? (currentCarVo.getDepartment() + "/") : "";
String modelInfoName = brandName + vehicleType + productLine + driveForm + power + vehicleVersion + fuelType +
gearboxType + emissionStandard + engineType + marketSegments + specifications + department;
return modelInfoName.substring(0, modelInfoName.length() - 1);
return modelInfoName.substring(0, modelInfoName.length() - 1);*/
String color = StringUtils.isNotBlank(configVo.getCarColor())
? (configVo.getCarColor() + "/") : "";
String slowMachine = StringUtils.isNotBlank(configVo.getSlowMachine())
? (configVo.getSlowMachine() + "/") : "";
//后视镜
String rearViewMirror = StringUtils.isNotBlank(configVo.getRearViewMirror())
? (configVo.getRearViewMirror() + "/") : "";
//轮胎规格
String tireSize = StringUtils.isNotBlank(configVo.getTireSize())
? (configVo.getTireSize() + "/") : "";
//驾驶室规格
String specification = StringUtils.isNotBlank(configVo.getSpecification())
? (configVo.getSpecification() + "/") : "";
//后桥
String rearAxleValue = StringUtils.isNotBlank(configVo.getRearAxleValue())
? (configVo.getRearAxleValue() + "/") : "";
//后桥速比
String rearAxleRatio = StringUtils.isNotBlank(configVo.getRearAxleRatio())
? (configVo.getRearAxleRatio() + "/") : "";
//空调
String airConditioner = StringUtils.isNotBlank(configVo.getAirConditioner())
? (configVo.getAirConditioner() + "/") : "";
String hubMaterial = StringUtils.isNotBlank(configVo.getHubMaterial())
? (configVo.getHubMaterial() + "/") : "";
String baffleModel = StringUtils.isNotBlank(configVo.getBaffleModel())
? (configVo.getBaffleModel() + "/") : "";
String suspension = StringUtils.isNotBlank(configVo.getSuspension())
? (configVo.getSuspension() + "/") : "";
String seat = StringUtils.isNotBlank(configVo.getSeat())
? (configVo.getSeat() + "/") : "";
String tireCover = StringUtils.isNotBlank(configVo.getTireCover())
? (configVo.getTireCover() + "/") : "";
String saddle = StringUtils.isNotBlank(configVo.getSaddle())
? (configVo.getSaddle() + "/") : "";
String wheelbase = StringUtils.isNotBlank(configVo.getWheelbase())
? (configVo.getWheelbase() + "/") : "";
String bumper = StringUtils.isNotBlank(configVo.getBumper())
? (configVo.getBumper() + "/") : "";
String configuringBao = StringUtils.isNotBlank(configVo.getConfiguringBao())
? (configVo.getConfiguringBao() + "/") : "";
String independentSources = StringUtils.isNotBlank(configVo.getIndependentSources())
? (configVo.getIndependentSources() + "/") : "";
String fuelTank = StringUtils.isNotBlank(configVo.getFuelTank())
? (configVo.getFuelTank() + "/") : "";
String multimedia = StringUtils.isNotBlank(configVo.getMultimedia())
? (configVo.getMultimedia() + "/") : "";
String configName = color + slowMachine + rearViewMirror + tireSize + specification + rearAxleValue + rearAxleRatio + airConditioner + hubMaterial +
baffleModel + suspension + seat + tireCover + saddle + wheelbase + bumper + configuringBao + independentSources + fuelTank + multimedia;
return configName;
}
@ -2551,8 +2613,8 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
for (Map<String, String> record : pcInspectionVinList) {
String addressSid = record.get("addressSid");
ScmWarehouseVo data = scmWarehouseFeign.selectByAddressSid(addressSid).getData();
record.put("administratorsSid",data.getLibTubeSid());
record.put("administratorsName",data.getLibTubeName());
record.put("administratorsSid", data.getLibTubeSid());
record.put("administratorsName", data.getLibTubeName());
}
return pcInspectionVinList;
}
@ -2567,7 +2629,14 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
if (params.getList().size() > 0) {
qw.notIn("bv.vinNo", params.getList());
}
qw.in("bv.orderingNo", list);
//根据销售订单sid查询订单是否是排产
ResultBean<AppOrderDetailsVo> resultBean = busSalesOrderFeign.getSaleOrderDetails(params.getSaleOrderSid());
if (resultBean.getSuccess()) {
if ("采购订单".equals(resultBean.getData().getOrderType())) {
qw.in("bv.orderingNo", list);
}
}
}
IPage<InputVinListVo> pagging = baseMapper.saleOrderVin(page, qw, params.getNames());
PagerVo<InputVinListVo> p = PagerUtil.pageToVo(pagging, null);

4
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java

@ -201,14 +201,14 @@ public interface BusSalesOrderFeign {
ResultBean submitOrder(@RequestBody SubmitSalesOrderDto dto);
@ApiOperation("初始化|录入车架号列表")
@GetMapping("/saleOrderInputVin")
@GetMapping("/saleOrderInputVin/{saleOrderSid}")
@ResponseBody
ResultBean<VinVo> saleOrderInputVin(@PathVariable("saleOrderSid") String saleOrderSid);
@ApiOperation("采购订单编号list")
@GetMapping("/getList/{saleOrderSid}")
@ResponseBody
ResultBean<List<String>> getList(String saleOrderSid);
ResultBean<List<String>> getList(@PathVariable("saleOrderSid") String saleOrderSid);
@ApiOperation("保存销售订单车架号")
@PostMapping("/saveSaleOrderInputVin")

3
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml

@ -57,7 +57,8 @@
if(bo.nodeState = '已办结', true, false) as showContractBtn,
bo.nodeState is null as showUpdateBtn,
bo.nodeState is null as showDeleteBtn,
0 as showFinancialBtn
0 as showFinancialBtn,
bo.type
FROM bus_sales_order bo

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

@ -2640,6 +2640,8 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
if (vo != null) {
if (VehicleState.StockEnum.OUT_STOCK.getCode().equals(vo.getVehicleState())) {
vinListVo.setState(true);
}else{
vinListVo.setState(false);
}
}
}

5
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmapping/SysMappingFeign.java

@ -80,4 +80,9 @@ public interface SysMappingFeign {
@PostMapping("/saveMappingList")
@ResponseBody
public ResultBean saveMappingList(@RequestBody List<SysMappingDto> dto);
@ApiOperation("根据条件查询详情")
@PostMapping("/selectMappingInfo")
@ResponseBody
public ResultBean<SysMappingInfoVo> selectMappingInfo(@RequestBody SysMappingInfoQuery query);
}

5
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmapping/SysMappingFeignFallback.java

@ -74,4 +74,9 @@ public class SysMappingFeignFallback implements SysMappingFeign {
public ResultBean saveMappingList(List<SysMappingDto> dto) {
return null;
}
@Override
public ResultBean<SysMappingInfoVo> selectMappingInfo(SysMappingInfoQuery query) {
return null;
}
}

25
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmapping/SysMappingInfoQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.portal.api.sysmapping;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class SysMappingInfoQuery implements Query {
private static final long serialVersionUID = 5179141159925489016L;
@ApiModelProperty("映射来源,如CWXT等")
private String map_sourceKey; // 映射来源,如CWXT等
@ApiModelProperty("映射实体,如付款单")
private String map_object; // 映射实体,如付款单
@ApiModelProperty("映射项目类别,如应付类别")
private String map_item; // 映射项目类别,如应付类别
@ApiModelProperty("数据字典类别编码")
private String dictTypeCode; // 数据字典类别编码
@ApiModelProperty("数据key")
private String dictKey; // 数据key
}

27
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmapping/SysMappingInfoVo.java

@ -0,0 +1,27 @@
package com.yxt.anrui.portal.api.sysmapping;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class SysMappingInfoVo implements Vo {
private static final long serialVersionUID = -4909774998558087805L;
@ApiModelProperty("数据字典sid")
private String dictSid; // 数据字典sid
@ApiModelProperty("映射来源,如CWXT等")
private String map_sourceKey; // 映射来源,如CWXT等
@ApiModelProperty("映射来源,如财务系统等")
private String map_sourceValue; // 映射来源,如财务系统等
@ApiModelProperty("映射实体,如付款单")
private String map_object; // 映射实体,如付款单
@ApiModelProperty("映射项目类别,如应付类别")
private String map_item; // 映射项目类别,如应付类别
@ApiModelProperty("项目key,如002")
private String map_itemKey; // 项目key,如002
@ApiModelProperty("项目value,如外采")
private String map_itemValue; // 项目value,如外采
}

3
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmapping/SysMappingQuery.java

@ -49,7 +49,8 @@ import lombok.Data;
@ApiModel(value = "数据映射 查询条件", description = "数据映射 查询条件")
public class SysMappingQuery implements Query {
@ApiModelProperty("数据字典sid")
private static final long serialVersionUID = -546734185535363676L;
@ApiModelProperty("数据字典sid")
private String dictSid; // 数据字典sid
@ApiModelProperty("映射来源,如CWXT等")
private String map_sourceKey; // 映射来源,如CWXT等

21
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmapping/SysMappingMapper.java

@ -30,6 +30,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.portal.api.sysmapping.SysMappingInfoVo;
import com.yxt.anrui.portal.api.sysmapping.SysMappingQuery;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -55,13 +56,15 @@ import java.util.List;
@Mapper
public interface SysMappingMapper extends BaseMapper<SysMapping> {
//@Update("update sys_mapping set name=#{msg} where id=#{id}")
//IPage<SysMappingVo> voPage(IPage<SysMapping> page, @Param(Constants.WRAPPER) QueryWrapper<SysMapping> qw);
IPage<SysMappingVo> selectPageVo(IPage<SysMappingQuery> page, @Param(Constants.WRAPPER) QueryWrapper<SysMappingVo> qw);
List<SysMappingVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SysMapping> qw);
@Select("select * from sys_mapping")
List<SysMappingVo> selectListVo();
//@Update("update sys_mapping set name=#{msg} where id=#{id}")
//IPage<SysMappingVo> voPage(IPage<SysMapping> page, @Param(Constants.WRAPPER) QueryWrapper<SysMapping> qw);
IPage<SysMappingVo> selectPageVo(IPage<SysMappingQuery> page, @Param(Constants.WRAPPER) QueryWrapper<SysMappingVo> qw);
List<SysMappingVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SysMapping> qw);
@Select("select * from sys_mapping")
List<SysMappingVo> selectListVo();
SysMappingInfoVo selectMappingInfo(@Param(Constants.WRAPPER) QueryWrapper<SysMappingInfoVo> qw);
}

17
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmapping/SysMappingMapper.xml

@ -28,4 +28,21 @@
SELECT * FROM sys_mapping
<where>${ew.sqlSegment}</where>
</select>
<select id="selectMappingInfo" resultType="com.yxt.anrui.portal.api.sysmapping.SysMappingInfoVo">
SELECT
sm.dictSid,
sm.map_sourceKey,
sm.map_sourceValue,
sm.map_object,
sm.map_item,
sm.map_itemKey,
sm.map_itemValue
FROM
sys_mapping sm
LEFT JOIN dict_common dc ON sm.dictSid = dc.sid
LEFT JOIN dict_type dt ON dc.parentSid = dt.sid
<where>${ew.sqlSegment}</where>
</select>
</mapper>

93
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmapping/SysMappingRest.java

@ -26,6 +26,7 @@
package com.yxt.anrui.portal.biz.sysmapping;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.sysmapping.*;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -36,12 +37,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.anrui.portal.api.sysmapping.SysMapping;
import com.yxt.anrui.portal.api.sysmapping.SysMappingQuery;
import com.yxt.anrui.portal.api.sysmapping.SysMappingVo;
import com.yxt.anrui.portal.api.sysmapping.SysMappingDetailsVo;
import com.yxt.anrui.portal.api.sysmapping.SysMappingDto;
import com.yxt.anrui.portal.api.sysmapping.SysMappingFeign;
/**
* Project: sysmapping(sysmapping) <br/>
@ -61,52 +56,58 @@ import com.yxt.anrui.portal.api.sysmapping.SysMappingFeign;
@RequestMapping("v1/sysmapping")
public class SysMappingRest implements SysMappingFeign {
@Autowired
private SysMappingService sysMappingService;
@Autowired
private SysMappingService sysMappingService;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<SysMappingVo>> listPage(@RequestBody PagerQuery<SysMappingQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<SysMappingVo> page = new PagerVo<>();
IPage<SysMappingVo> iPage = sysMappingService.listPageVo(pq);
PagerVo<SysMappingVo> pagerVo = PagerUtil.pageToVo(iPage, page);
return new ResultBean<PagerVo<SysMappingVo>>().success().setData(pagerVo);
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<SysMappingVo>> listPage(@RequestBody PagerQuery<SysMappingQuery> pq) {
PagerVo<SysMappingVo> page = new PagerVo<>();
IPage<SysMappingVo> iPage = sysMappingService.listPageVo(pq);
PagerVo<SysMappingVo> pagerVo = PagerUtil.pageToVo(iPage, page);
return new ResultBean<PagerVo<SysMappingVo>>().success().setData(pagerVo);
}
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody SysMappingDto dto){
ResultBean rb = ResultBean.fireFail();
sysMappingService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody SysMappingDto dto) {
ResultBean rb = ResultBean.fireFail();
sysMappingService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
@ApiOperation("根据sid批量删除")
@Override
@ApiOperation("根据sid批量删除")
@PostMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
ResultBean rb = ResultBean.fireFail();
sysMappingService.delBySids(sids);
return rb.success();
}
public ResultBean delBySids(@RequestBody String[] sids) {
ResultBean rb = ResultBean.fireFail();
sysMappingService.delBySids(sids);
return rb.success();
}
@Override
@ApiOperation("根据SID获取一条记录")
@Override
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<SysMappingDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
SysMappingDetailsVo vo = sysMappingService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
public ResultBean<SysMappingDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
SysMappingDetailsVo vo = sysMappingService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@Override
public ResultBean saveMappingList(List<SysMappingDto> dto) {
ResultBean rb = ResultBean.fireFail();
sysMappingService.saveMappingList(dto);
return rb.success();
}
@Override
public ResultBean saveMappingList(List<SysMappingDto> dto) {
ResultBean rb = ResultBean.fireFail();
sysMappingService.saveMappingList(dto);
return rb.success();
}
@Override
public ResultBean<SysMappingInfoVo> selectMappingInfo(SysMappingInfoQuery query) {
ResultBean<SysMappingInfoVo> rb = ResultBean.fireFail();
SysMappingInfoVo vo = sysMappingService.selectMappingInfo(query);
return rb.success().setData(vo);
}
}

29
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmapping/SysMappingService.java

@ -28,15 +28,11 @@ package com.yxt.anrui.portal.biz.sysmapping;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.sysmapping.*;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.anrui.portal.api.sysmapping.SysMapping;
import com.yxt.anrui.portal.api.sysmapping.SysMappingQuery;
import com.yxt.anrui.portal.api.sysmapping.SysMappingVo;
import com.yxt.anrui.portal.api.sysmapping.SysMappingDetailsVo;
import com.yxt.anrui.portal.api.sysmapping.SysMappingDto;
import org.springframework.stereotype.Service;
import java.util.List;
@ -71,7 +67,7 @@ public class SysMappingService extends MybatisBaseService<SysMappingMapper, SysM
}
public QueryWrapper<SysMappingVo> queryWrapper(SysMappingQuery query) {
QueryWrapper<SysMappingVo> qw = queryWrapper(query);
QueryWrapper<SysMappingVo> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMap_sourceKey())) {
qw.eq("sm.map_sourceKey", query.getMap_sourceKey());
}
@ -146,4 +142,25 @@ public class SysMappingService extends MybatisBaseService<SysMappingMapper, SysM
save(entity);
}
}
public SysMappingInfoVo selectMappingInfo(SysMappingInfoQuery query) {
QueryWrapper<SysMappingInfoVo> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMap_sourceKey())) {
qw.eq("sm.map_sourceKey", query.getMap_sourceKey());
}
if (StringUtils.isNotBlank(query.getMap_object())) {
qw.eq("sm.map_object", query.getMap_object());
}
if (StringUtils.isNotBlank(query.getMap_item())) {
qw.eq("sm.map_item", query.getMap_item());
}
if (StringUtils.isNotBlank(query.getDictTypeCode())) {
qw.eq("dt.dictTypeCode", query.getDictTypeCode());
}
if (StringUtils.isNotBlank(query.getDictKey())) {
qw.eq("dc.dictKey", query.getDictKey());
}
SysMappingInfoVo vo = baseMapper.selectMappingInfo(qw);
return vo;
}
}

9
anrui-scm/anrui-scm-ui/src/api/kucunguanli/panku.js

@ -44,14 +44,14 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 盘库报告列表(生成盘库记录)
// 盘库报告(查看盘库报告)
getCarInventoryReport: function(data) {
return request({
url: '/scm/v1/scmvehinventorymonth/getCarInventoryReport/' + data,
method: 'get',
method: 'get'
})
},
// 盘库报告列表(生成盘库记录)
// 盘库报告(发送盘库报告)
sendReport: function(data) {
return request({
url: '/scm/v1/scmvehinventoryreport/sendReport',
@ -59,6 +59,5 @@ export default {
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
}
}

46
anrui-scm/anrui-scm-ui/src/api/kucunguanli/polling.js

@ -13,7 +13,16 @@ export default {
// 查询分页列表(待巡检记录列表)
pagelist: function(data) {
return request({
url: '/scm/v1/scmvehiclestaypatrolinspection/listPage',
url: '/scm/v1/scmvehiclepatrolinspection/stayListPage',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 查询分页列表(日常巡检报告)
baogao: function(data) {
return request({
url: 'scm/v1/scmvehpatrolinspectionmonth/listPage',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
@ -22,11 +31,11 @@ export default {
// 判断是否生成巡检记录
getInventoryRecords: function(userSid) {
return request({
url: '/scm/v1/scmvehiclestaypatrolinspection/getInspectionRecords/' + userSid,
url: '/scm/v1/scmvehpatrolinspectionmonth/getInspectionRecords/' + userSid,
method: 'get'
})
},
// 巡检单点击保存
// 巡检(新增保存或者待巡检提交)
saveInspection: function(data) {
return request({
url: '/scm/v1/scmvehiclepatrolinspectionsheet/saveInspection',
@ -35,7 +44,7 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 巡检单点击通过
// 巡检(状态为问题未解决点击已解决或者状态为待巡检点击通过)
submitInspection: function(data) {
return request({
url: 'scm/v1/scmvehiclepatrolinspectionsheet/submitInspection',
@ -45,10 +54,35 @@ export default {
})
},
// 通过sid查询一条记录
fetchBySid: function(sid) {
fetchBySid: function(data) {
return request({
url: '/scm/v1/scmvehiclepatrolinspectionsheet/fetchSheetBySid/' + sid,
url: '/scm/v1/scmvehiclepatrolinspectionsheet/getInspectionInfo/' + data,
method: 'post'
})
},
// 新增巡检获取车架号、车型、相关负责人
getPCInspectionVinList: function(data) {
return request({
url: 'base/v1/basevehicle/getPCInspectionVinList',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 巡检报告(查看巡检报告)
getCarInspectionReport: function(data) {
return request({
url: '/scm/v1/scmvehpatrolinspectionmonth/getCarInspectionReport/' + data,
method: 'get'
})
},
// 巡检报告(发送巡检报告)
sendReport: function(data) {
return request({
url: '/scm/v1/scmvehinventoryreport/sendReport',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
}
}

3
anrui-scm/anrui-scm-ui/src/components/uploadFile/upload_morebypicture.vue

@ -1,6 +1,6 @@
<template>
<div>
<el-upload ref="imgUpload" v-loading="loadding" class="avatar-uploader" :headers="accessToken" :action="uploadFile" :accept="accept" :limit="limit" list-type="picture-card" :file-list="fileList_FuJian" :on-remove="removeImage" :on-preview="handlePictureCardPreview" :on-progress="uploadProgrees" :on-error="uploadError" :on-success="uploadImgSuccess_FuJian" :multiple="multiple">
<el-upload ref="imgUpload" v-loading="loadding" class="avatar-uploader" :headers="accessToken" :action="uploadFile" :accept="accept" :limit="limit" list-type="picture-card" :file-list="files" :on-remove="removeImage" :on-preview="handlePictureCardPreview" :on-progress="uploadProgrees" :on-error="uploadError" :on-success="uploadImgSuccess_FuJian" :multiple="multiple">
<i class="el-icon-plus avatar-uploader-icon"/>
</el-upload>
<el-dialog :visible.sync="dialogVisible" title="查看图片">
@ -106,6 +106,7 @@ export default {
},
//
Init() {
console.log(this.name, 78788)
if (this.name !== undefined) {
this.files = []
for (var i = 0; i < this.name.length; i++) {

53
anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/cheliangxunjian.vue

@ -9,7 +9,7 @@
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header" label-width="100px">
<el-form-item label="车架号">
<el-input v-model="listQuery.params.mainSid" placeholder="请输入车架号" clearable/>
<el-input v-model="listQuery.params.vinNo" placeholder="请输入车架号" clearable/>
</el-form-item>
<el-form-item label="巡检日期">
<el-date-picker v-model="listQuery.params.patrolInspectionStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
@ -43,22 +43,22 @@
</el-table-column>
<el-table-column label="车架号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.mainSid }}</span>
<span>{{ scope.row.vinNo }}</span>
</template>
</el-table-column>
<el-table-column label="状态" align="center">
<el-table-column label="最新巡检时间" align="center">
<template slot-scope="scope">
<span>{{ scope.row.patrolInspectionState == 1 ? '通过' : '不通过' }}</span>
<span>{{ scope.row.patrolInspectionDate }}</span>
</template>
</el-table-column>
<el-table-column label="上次巡检日期" align="center">
<el-table-column label="最新巡检人员" align="center">
<template slot-scope="scope">
<span>{{ scope.row.patrolInspectionDate }}</span>
<span>{{ scope.row.patrolInspectionName }}</span>
</template>
</el-table-column>
<el-table-column label="上次巡检人员" align="center">
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<span>{{ scope.row.patrolInspectionName }}</span>
<span>{{ scope.row.patrolInspectionState }}</span>
</template>
</el-table-column>
<el-table-column label="存放地点" align="center">
@ -76,6 +76,7 @@
</div>
<cheliangxunjianhandle v-show="viewState == 2" ref="divHandle" @doback="resetState"/>
<xunjiadanInfo v-show="viewState == 3" ref="divDan" @doback="resetState"/>
<xunjianbaogaoguanli v-show="viewState == 4" ref="divBaoGao" @doback="resetState"/>
</div>
</template>
@ -85,6 +86,7 @@ import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import cheliangxunjianhandle from './cheliangxunjianhandle'
import xunjiadanInfo from './xunjiadanInfo'
import xunjianbaogaoguanli from './relation/xunjianbaogaoguanli'
import req from '@/api/kucunguanli/polling'
import { fetchByUseOrgSid, getPathSidByUserSid } from '@/api/cheliang/dictcommons'
@ -95,7 +97,8 @@ export default {
pageye,
ButtonBar,
cheliangxunjianhandle,
xunjiadanInfo
xunjiadanInfo,
xunjianbaogaoguanli
},
data() {
return {
@ -108,6 +111,13 @@ export default {
btnKey: 'toAdd',
btnLabel: '生成巡检记录'
},
{
type: 'primary',
size: 'small',
icon: '',
btnKey: 'toReport',
btnLabel: '日常巡检报告'
},
{
type: 'primary',
size: 'small',
@ -134,14 +144,14 @@ export default {
listLoading: false,
listQuery: {
params: {
mainSid: '',
vinNo: '',
patrolInspectionStartDate: '',
patrolInspectionEndDate: '',
locationSid: '',
createOrgSid: ''
},
current: 1,
size: 10,
size: 5,
total: 0
},
rules: {}
@ -159,14 +169,14 @@ export default {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((res) => {
if (res.success) {
this.listQuery.params.createOrgSid = res.data
fetchByUseOrgSid({ sid: this.listQuery.params.createOrgSid }).then((res) => {
if (res.success) {
this.warehouse_list = res.data
}
})
this.getList()
}
})
fetchByUseOrgSid({ sid: this.listQuery.params.createOrgSid }).then((res) => {
if (res.success) {
this.warehouse_list = res.data
}
})
},
//
clicksearchShow() {
@ -183,6 +193,9 @@ export default {
case 'toAdd':
this.toAdd()
break
case 'toReport':
this.toReport()
break
case 'toEdit':
this.toEdit()
break
@ -226,14 +239,14 @@ export default {
handleReset() {
this.listQuery = {
params: {
mainSid: '',
vinNo: '',
patrolInspectionStartDate: '',
patrolInspectionEndDate: '',
locationSid: '',
createOrgSid: ''
},
current: 1,
size: 10,
size: 5,
total: 0
}
this.init()
@ -245,6 +258,10 @@ export default {
}
})
},
toReport() {
this.viewState = 4
this.$refs['divBaoGao'].init()
},
toEdit() {
this.viewState = 2
this.$refs['divHandle'].showEdit(this.listQuery.params.createOrgSid)

45
anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/cheliangxunjianhandle.vue

@ -13,7 +13,7 @@
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="titwu"><span>车辆巡检操作</span></div>
<div class="titwu"><span>车辆日常管理操作</span></div>
<el-form ref="form_obj" :model="listQuery" :rules="rules" class="formaddcopy02">
<el-row class="rowStyle">
<el-col :span="24" class="colOneStyle">
@ -29,7 +29,7 @@
<el-col :span="12" class="colOneStyle">
<div class="span-sty spanOneWidth"><span>车架号:</span></div>
<el-form-item>
<el-input v-model="listQuery.params.mainSid" placeholder="" clearable style="width: 30%" class="addinputwOne"/>
<el-input v-model="listQuery.params.vinNo" placeholder="" clearable style="width: 30%" class="addinputwOne"/>
</el-form-item>
</el-col>
<el-col :span="12" class="colOneStyle">
@ -41,32 +41,33 @@
</el-row>
<div class="title">
<div>库存车辆列表</div>
<el-button type="primary" size="mini" class="btntopblueline" @click="handleAdd">新增</el-button>
</div>
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;">
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="操作" width="150px" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toEdit(scope.row)">巡检</el-button>
<el-button type="primary" size="mini" @click="toEdit(scope.row)">办理</el-button>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.mainSid }}</span>
<span>{{ scope.row.vinNo }}</span>
</template>
</el-table-column>
<el-table-column label="上次巡检日期" align="center">
<el-table-column label="上次管理时间" align="center">
<template slot-scope="scope">
<span>{{ scope.row.patrolInspectionDate }}</span>
</template>
</el-table-column>
<el-table-column label="上次巡检人员" align="center">
<el-table-column label="上次管理人员" align="center">
<template slot-scope="scope">
<span>{{ scope.row.patrolInspectionName }}</span>
</template>
</el-table-column>
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<span>{{ scope.row.state == 1 ? '待巡检' : '已保存' }}</span>
<span>{{ scope.row.patrolInspectionState }}</span>
</template>
</el-table-column>
<el-table-column label="存放地点" align="center">
@ -79,6 +80,8 @@
</div>
</div>
<xunjiandan v-show="viewState == 2" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
<daixunjian v-show="viewState == 3" ref="divDaiXunJian" @doback="resetState" @reloadlist="getList"/>
<xunjianresolved v-show="viewState == 4" ref="divResolved" @doback="resetState" @reloadlist="getList"/>
</div>
</template>
@ -86,11 +89,15 @@
import req from '@/api/kucunguanli/polling'
import { fetchByUseOrgSid } from '@/api/cheliang/dictcommons'
import xunjiandan from './xunjiandan'
import daixunjian from './daixunjian'
import xunjianresolved from './xunjianresolved'
export default {
name: 'cheliangxunjiancaozuo',
components: {
xunjiandan
xunjiandan,
daixunjian,
xunjianresolved
},
data() {
return {
@ -104,7 +111,7 @@ export default {
listQuery: {
params: {
locationSid: '',
mainSid: '',
vinNo: '',
createOrgSid: ''
},
current: 1,
@ -153,9 +160,18 @@ export default {
this.listQuery.params.locationSid = value
this.getList()
},
toEdit(row) {
handleAdd() {
this.viewState = 2
this.$refs['divAdd'].showEdit(row, this.listQuery.params.createOrgSid)
this.$refs['divAdd'].showAdd(this.listQuery.params.createOrgSid)
},
toEdit(row) {
if (row.patrolInspectionState === '待巡检') {
this.viewState = 3
this.$refs['divDaiXunJian'].showEdit(row, this.listQuery.params.createOrgSid)
} else {
this.viewState = 4
this.$refs['divResolved'].showEdit(row, this.listQuery.params.createOrgSid)
}
},
// ===
handleReturn() {
@ -172,6 +188,13 @@ export default {
</script>
<style scoped>
.title {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.spanOneWidth {
width: 260px !important;
border-right: 0px !important;

285
anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/daixunjian.vue

@ -0,0 +1,285 @@
<template>
<div class="app-container">
<div>
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="primary" size="small" v-show="formobj.carConditionValue == '问题未解决'" @click="handleSave()">提交</el-button>
<el-button type="success" size="small" v-show="formobj.carConditionValue == '正常'" @click="handlePass()">通过</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>车架号</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.vinNo }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>车型</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.model }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>车况</span>
</el-col>
<el-col :span="20">
<el-form-item>
<el-radio v-model="formobj.carConditionValue" label="正常">正常</el-radio>
<el-radio v-model="formobj.carConditionValue" label="问题未解决">存在问题</el-radio>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>巡检情况说明</span>
</el-col>
<el-col :span="20">
<el-form-item>
<el-input v-model="formobj.situationExplain" style="width: 80%" type="textarea" resize="none" placeholder="对车辆外观、车辆状态、电瓶情况、箱内燃油情况等进行说明" :autosize="{ minRows: 2, maxRows: 10}" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="formobj.carConditionValue === '问题未解决'">
<el-col :span="4" class="tleftb">
<span>存在问题</span>
</el-col>
<el-col :span="20">
<el-form-item>
<el-input v-model="formobj.problems" style="width: 80%" type="textarea" resize="none" placeholder="" :autosize="{ minRows: 2, maxRows: 10}" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="formobj.carConditionValue === '问题未解决'">
<el-col :span="4" class="tleftb">
<span>相关责任人</span>
</el-col>
<el-col :span="20">
<el-form-item>
<span>{{ formobj.liableName }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>相关照片</span>
</el-col>
<el-col :span="20">
<el-form-item>
<upload ref="uploadImg" v-model="list1" :limit="20" @change="backData" @fileChange="deleteData" bucket="map" :accept="accept" :upload-data="{ type: '0001' }"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/kucunguanli/polling'
import { fetchBySid } from '@/api/cheliang/dictcommons'
import upload from '../../../../components/uploadFile/upload_morebypicture'
export default {
name: 'daixunjian',
components: {
upload
},
data() {
return {
accept: '.jpg,.jpeg,.png,.JPG,.JPEG',
viewTitle: '巡检单-办理待巡检',
listLoading: false,
index: 0,
tableKey: 0,
list1: [],
//
formobj: {
vinNo: '',
mainSid: '',
modelSid: '',
model: '',
situationExplain: '',
problems: '',
results: '',
carConditionValue: '',
carConditionKey: '',
warehouseSid: '',
warehouse: '',
liableName: '',
liableSid: '',
userSid: '',
userName: '',
createOrgSid: '',
useOrgName: '',
newAdd: '',
images: []
},
rules: {},
submitdisabled: false
}
},
methods: {
showEdit(row, createOrgSid) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.formobj.vinNo = row.vinNo
this.formobj.mainSid = row.sid
this.formobj.model = row.model
this.formobj.warehouseSid = row.locationSid
this.formobj.warehouse = row.location
this.formobj.liableName = row.liableName
this.formobj.liableSid = row.liableSid
this.formobj.userName = window.sessionStorage.getItem('name')
this.formobj.userSid = window.sessionStorage.getItem('userSid')
this.formobj.createOrgSid = createOrgSid
this.formobj.newAdd = false
fetchBySid(createOrgSid).then((resp) => {
if (resp.success) {
this.formobj.useOrgName = resp.data.name
}
})
console.log('编辑回显', row.sid)
},
backData(val) {
const aa = []
if (val.length > 0) {
for (var i = 0; i < val.length; i++) {
aa.push(val[i].url)
}
}
this.formobj.images = aa
},
deleteData(val) {
const aa = []
console.log(val)
if (val.length === 0) {
this.formobj.images = []
this.list1 = []
} else {
for (var i = 0; i < val.length; i++) {
aa.push(val[i].url)
}
this.formobj.images = aa
this.list1 = aa
}
},
handleSave() {
// if (this.formobj.situationExplain === '') {
// this.$message({ showClose: true, type: 'error', message: '' })
// return
// }
if (this.formobj.carConditionValue === '') {
this.$message({ showClose: true, type: 'error', message: '请选择车况' })
return
} else if (this.formobj.carConditionValue === '问题未解决') {
this.formobj.carConditionKey = '001'
if (this.formobj.problems === '') {
this.$message({ showClose: true, type: 'error', message: '请填写存在问题' })
return
}
if (this.formobj.images.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请上传相关照片' })
return
}
} else {
this.formobj.carConditionKey = '003'
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
console.log(this.formobj)
req.saveInspection(this.formobj).then((resp) => {
this.submitdisabled = false
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
}
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
},
handlePass() {
// if (this.formobj.situationExplain === '') {
// this.$message({ showClose: true, type: 'error', message: '' })
// return
// }
console.log(this.formobj)
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.submitInspection(this.formobj).then((resp) => {
this.submitdisabled = false
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
}
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
//
this.formobj = {
vinNo: '',
mainSid: '',
modelSid: '',
model: '',
situationExplain: '',
problems: '',
results: '',
carConditionValue: '',
carConditionKey: '',
warehouseSid: '',
warehouse: '',
liableName: '',
liableSid: '',
userSid: '',
userName: '',
createOrgSid: '',
useOrgName: '',
newAdd: '',
images: []
}
this.list1 = []
this.$refs['form_obj'].resetFields()
this.$emit('doback')
}
}
}
</script>
<style scoped>
</style>

145
anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/relation/xunjianbaogaoAdd.vue

@ -0,0 +1,145 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<!--标题-->
<div>生成日常巡检报告</div>
<!--start 添加修改按钮-->
<div>
<el-button type="primary" size="small" @click="handleSave()">确定</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<div class="titwu"><span>车辆日常巡检报告</span></div>
<el-form ref="form_obj" :model="formobj" class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>选择接收人</span>
</el-col>
<el-col :span="20">
<el-form-item>
<el-select v-model="recipientList" filterable placeholder="请选择" multiple @change="changeUser">
<el-option v-for="item in user_list" :key="item.userSid" :label="item.userName" :value="item.userSid"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item>
<span>本月应巡检{{ formobj.totalNumber }},实际巡检{{ formobj.actualNumber }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item>
<span>其中存在的问题:{{ formobj.question }}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import { getGressionUserList } from '@/api/cheliang/dictcommons'
import req from '@/api/kucunguanli/polling'
export default {
name: 'xunjianbaogaoAdd',
data() {
return {
recipientList: [],
user_list: [],
formobj: {
actualNumber: '',
date: '',
question: '',
recipient: '',
totalNumber: '',
mainSid: '',
userSid: '',
list: []
}
}
},
methods: {
init() {
getGressionUserList(window.sessionStorage.getItem('userSid')).then((resp) => {
if (resp.success) {
this.user_list = resp.data
}
})
},
showAdd(row) {
this.init()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.formobj.mainSid = row.sid
this.formobj.userSid = window.sessionStorage.getItem('userSid')
req.getCarInspectionReport(row.sid).then((resp) => {
if (resp.success) {
this.formobj.totalNumber = resp.data.totalNumber
this.formobj.actualNumber = resp.data.actualNumber
this.formobj.question = resp.data.question
}
})
},
changeUser(value) {
this.recipientList = value
},
handleSave() {
if (this.recipientList.length === 0) {
this.$message({ showClose: true, type: 'error', message: '选择接收人不能为空' })
return
} else {
const aa = []
for (var i = 0; i < this.recipientList.length; i++) {
for (var k = 0; k < this.user_list.length; k++) {
if (this.recipientList[i] === this.user_list[k].userSid) {
aa.push({
liableName: this.user_list[k].userName,
liableSid: this.user_list[k].userSid
})
}
}
}
this.formobj.list = aa
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
req.sendReport(this.formobj).then((resp) => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.handleReturn('true')
}
})
} else {
return false
}
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
actualNumber: '',
date: '',
question: '',
recipient: '',
totalNumber: '',
mainSid: '',
userSid: '',
list: []
}
this.$refs['form_obj'].resetFields()
this.$emit('doback')
}
}
}
</script>
<style scoped>
</style>

81
anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/relation/xunjianbaogaoInfo.vue

@ -0,0 +1,81 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<!--标题-->
<div>查看日常巡检报告</div>
<!--start 添加修改按钮-->
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<div class="titwu"><span>车辆日常巡检报告</span></div>
<el-form ref="form_obj" :model="formobj" class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>接收人</span>
</el-col>
<el-col :span="8">
<el-form-item>
<span>{{ formobj.recipient }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>发送时间</span>
</el-col>
<el-col :span="8">
<el-form-item>
<span>{{ formobj.date }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item>
<span>本月应巡检{{ formobj.totalNumber }},实际巡检{{ formobj.actualNumber }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item>
<span>其中存在的问题:</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/kucunguanli/polling'
export default {
name: 'xunjianbaogaoInfo',
data() {
return {
formobj: {}
}
},
methods: {
showInfo(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.getCarInspectionReport(row.sid).then((resp) => {
if (resp.success) {
this.formobj = resp.data
}
})
},
handleReturn() {
this.$refs['form_obj'].resetFields()
this.$emit('doback')
}
}
}
</script>
<style scoped>
</style>

245
anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/relation/xunjianbaogaoguanli.vue

@ -0,0 +1,245 @@
<template>
<div class="app-container">
<!-- Start 列表页面 -->
<div v-show="viewState == 1">
<button-bar view-title="日常巡检报告" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header" label-width="110px">
<el-form-item label="生成日期">
<el-date-picker v-model="listQuery.params.createStartTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.createEndTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="生成人">
<el-input v-model="listQuery.params.createByName" placeholder="" clearable/>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">日常巡检报告列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;">
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column fixed width="100" label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" v-show="scope.row.showReportBtn" size="mini" @click="handleAdd(scope.row)">生成报告</el-button>
<el-button type="primary" v-show="!scope.row.showReportBtn" size="mini" @click="handleLook(scope.row)">查看报告</el-button>
</template>
</el-table-column>
<el-table-column label="编号" width="120" align="center">
<template slot-scope="scope">
<span>{{ scope.row.billNo }}</span>
</template>
</el-table-column>
<el-table-column label="生成日期" align="center" width="130">
<template slot-scope="scope">
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column label="生成人" align="center">
<template slot-scope="scope">
<span>{{ scope.row.createByName }}</span>
</template>
</el-table-column>
<el-table-column label="应巡检(台次)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.totalNumber }}</span>
</template>
</el-table-column>
<el-table-column label="实巡检(台次)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.actualNumber }}</span>
</template>
</el-table-column>
<el-table-column label="存在问题未处理(台次)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.unHandledNumber }}</span>
</template>
</el-table-column>
<el-table-column label="存在问题已处理(台次)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.processedNumber }}</span>
</template>
</el-table-column>
<el-table-column label="未巡检(台次)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.notHandledNumber }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
<xunjianbaogaoAdd v-show="viewState == 2" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
<xunjianbaogaoInfo v-show="viewState == 3" ref="divInfo" @doback="resetState"/>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/kucunguanli/polling'
import xunjianbaogaoAdd from './xunjianbaogaoAdd'
import xunjianbaogaoInfo from './xunjianbaogaoInfo'
import { getPathSidByUserSid } from '@/api/cheliang/dictcommons'
export default {
name: 'xunjianbaogoaguanli',
components: {
Pagination,
pageye,
ButtonBar,
xunjianbaogaoAdd,
xunjianbaogaoInfo
},
data() {
return {
btndisabled: false,
btnList: [
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1,
// -----------
tableKey: 0,
list: [],
FormLoading: false,
listLoading: false,
listQuery: {
params: {
createStartTime: '',
createEndTime: '',
createByName: '',
createOrgSid: ''
},
current: 1,
size: 5,
total: 0
},
rules: {}
}
},
created() {
//
this.init()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
init() {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((res) => {
if (res.success) {
this.listQuery.params.createOrgSid = res.data
this.getList()
}
})
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'doClose':
this.doClose()
break
default:
break
}
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
req.baogao(this.listQuery).then((response) => {
console.log('列表查询结果:', response)
this.listLoading = false
if (response.success && response.data && response.data.total > 0) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
handleReset() {
this.listQuery = {
params: {
createStartTime: '',
createEndTime: '',
createByName: '',
createOrgSid: ''
},
current: 1,
size: 5,
total: 0
}
this.init()
},
handleAdd(row) {
this.viewState = 2
this.$refs['divAdd'].showAdd(row)
},
handleLook(row) {
this.viewState = 3
this.$refs['divInfo'].showInfo(row)
},
resetState() {
this.viewState = 1
},
doClose() {
this.$emit('doback')
}
}
}
</script>
<style scoped>
/*表格列设置fixed后固定列出现下边框的设置*/
/deep/ .el-table__fixed {
height: 100% !important;
}
/*表格列设置fixed后固定列出现下边框的设置*/
/deep/ .el-table__fixed-right {
height: 100% !important;
}
</style>

70
anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/xunjiadanInfo.vue

@ -13,40 +13,68 @@
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row class="rowStyle">
<el-col :span="12" class="colOneStyle">
<div class="span-sty spanOneWidth" style="border-right: 0px !important;"><span>车架号:</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.mainSid }}</span></el-form-item>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>车架号</span>
</el-col>
<el-col :span="12" class="colOneStyle">
<div class="span-sty spanOneWidth" style="border-right: 0px !important;"><span>车型:</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.model }}</span></el-form-item>
<el-col :span="8">
<el-form-item><span>{{ formobj.vinNo }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>车型</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.model }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty spanOneWidth"><span>巡检情况说明</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.situationExplain }}</span></el-form-item>
<el-col :span="4" class="tleftb">
<span>巡检情况说明</span>
</el-col>
<el-col :span="20">
<el-form-item>
<span>{{ formobj.situationExplain }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>存在问题</span>
</el-col>
<el-col :span="20">
<el-form-item>
<span>{{ formobj.problems }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty spanOneWidth"><span>存在问题及处理结果</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.problemsAndResults }}</span></el-form-item>
<el-col :span="4" class="tleftb">
<span>处理结果</span>
</el-col>
<el-col :span="20">
<el-form-item>
<span>{{ formobj.results }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty spanOneWidth"><span>相关责任人</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.dutyName }}</span></el-form-item>
<el-col :span="4" class="tleftb">
<span>相关责任人</span>
</el-col>
<el-col :span="20">
<el-form-item>
<span>{{ formobj.liableName }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty spanOneWidth"><span>相关照片</span></div>
<el-col :span="4" class="tleftb">
<span>相关照片</span>
</el-col>
<el-col :span="20">
<el-form-item>
<div class="addinputwOne">
<div>
<img v-show="formobj.images ? true : false" v-for="item in formobj.images" style="cursor:pointer;width: 150px;height: 150px;margin-top: 5px" :src="item" @click="open(item)">
</div>
</el-form-item>
@ -68,7 +96,7 @@ export default {
name: 'cheliangxunjianInfo',
data() {
return {
viewTitle: '车辆巡检详情',
viewTitle: '车辆日常巡检详情',
listLoading: false,
dialogVisible: false,
dialogUrl: '',

253
anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/xunjiandan.vue

@ -7,56 +7,69 @@
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="primary" size="small" @click="handleSave()">保存</el-button>
<el-button type="success" size="small" @click="handlePass()">通过</el-button>
<el-button type="primary" size="small" @click="handleSave()">提交</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row class="rowStyle">
<el-col :span="12" class="colOneStyle">
<div class="span-sty spanOneWidth" style="border-right: 0px"><span>车架号:</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.mainSid }}</span></el-form-item>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>车架号</span>
</el-col>
<el-col :span="12" class="colOneStyle">
<div class="span-sty spanOneWidth" style="border-right: 0px"><span>车型:</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.model }}</span></el-form-item>
<el-col :span="8">
<el-form-item prop="vinNo">
<el-select v-model="formobj.vinNo" filterable placeholder="请选择" @change="changeVinNo">
<el-option v-for="item in vin_list" :key="item.carSid" :label="item.vin" :value="item.carSid"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>车型</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.model }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty spanOneWidth"><span>巡检情况说明</span></div>
<el-col :span="4" class="tleftb">
<span>巡检情况说明</span>
</el-col>
<el-col :span="20">
<el-form-item>
<el-input v-model="formobj.situationExplain" class="addinputw addinputwOne" style="width: 80%" type="textarea" resize="none" placeholder="对车辆外观、车辆状态、电瓶情况、箱内燃油情况等进行说明" :autosize="{ minRows: 2, maxRows: 10}" clearable></el-input>
<el-input v-model="formobj.situationExplain" style="width: 80%" type="textarea" resize="none" placeholder="对车辆外观、车辆状态、电瓶情况、箱内燃油情况等进行说明" :autosize="{ minRows: 2, maxRows: 10}" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty spanOneWidth"><span>存在问题及处理结果</span></div>
<el-form-item>
<el-input v-model="formobj.problemsAndResults" class="addinputw addinputwOne" style="width: 80%" type="textarea" resize="none" placeholder="" :autosize="{ minRows: 2, maxRows: 10}" clearable></el-input>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>存在问题</span>
</el-col>
<el-col :span="20">
<el-form-item prop="problems">
<el-input v-model="formobj.problems" style="width: 80%" type="textarea" resize="none" placeholder="" :autosize="{ minRows: 2, maxRows: 10}" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty spanOneWidth"><span>相关责任人</span></div>
<el-col :span="4" class="tleftb">
<span>相关责任人</span>
</el-col>
<el-col :span="20">
<el-form-item>
<el-select v-model="formobj.dutyName" placeholder="请选择" filterable @change="changeInventoryName" clearable class="addinputwOne">
<el-option v-for="item in staff_list" :key="item.sid" :label="item.namePath" :value="item.sid"></el-option>
</el-select>
<span>{{ formobj.liableName }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty spanOneWidth"><span>相关照片</span></div>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>相关照片</span>
</el-col>
<el-col :span="20">
<el-form-item>
<upload ref="uploadImg" class="addinputw addinputwOne" v-model="list1" @change="backData" :limit="1" bucket="map" :accept="accept" :upload-data="{type:'0001'}"/>
<upload ref="uploadImg" v-model="list1" :limit="20" @change="backData" @fileChange="deleteData" bucket="map" :accept="accept" :upload-data="{ type: '0001' }"/>
</el-form-item>
</el-col>
</el-row>
@ -68,8 +81,8 @@
<script>
import req from '@/api/kucunguanli/polling'
import { getUserByOrgSid } from '@/api/cheliang/dictcommons'
import upload from '@/components/uploadFile/FaImages'
import { fetchBySid } from '@/api/cheliang/dictcommons'
import upload from '../../../../components/uploadFile/upload_morebypicture'
export default {
name: 'cheliangxunjiancaozuo',
@ -79,79 +92,87 @@ export default {
data() {
return {
accept: '.jpg,.jpeg,.png,.JPG,.JPEG',
viewTitle: '车辆巡检操作',
viewTitle: '【新增】巡检',
listLoading: false,
viewState: 1,
index: 0,
tableKey: 0,
list: [],
warehouse_list: [],
staff_list: [],
vin_list: [],
list1: [],
//
formobj: {
sid: '', // sid
patrolInspectionSid: '',
vinNo: '',
mainSid: '',
modelSid: '',
model: '',
situationExplain: '',
problemsAndResults: '',
dutyName: '',
dutySid: '',
images: [],
problems: '',
results: '',
carConditionValue: '',
carConditionKey: '',
warehouseSid: '',
warehouse: '',
liableName: '',
liableSid: '',
userSid: '',
userName: ''
userName: '',
createOrgSid: '',
useOrgName: '',
newAdd: '',
images: []
},
rules: {
vinNo: [{ required: true, message: '车架号不能为空', trigger: 'change' }],
problems: [{ required: true, message: '存在问题不能为空', trigger: 'blur' }]
},
rules: {},
submitdisabled: false
}
},
methods: {
showEdit(row, createOrgSid) {
showAdd(createOrgSid) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
getUserByOrgSid({ orgSid: createOrgSid, userSid: window.sessionStorage.getItem('userSid') }).then((res) => {
if (res.success) {
this.staff_list = res.data
}
})
console.log('编辑回显', row.sid)
req.fetchBySid(row.sid).then((resp) => {
req.getPCInspectionVinList({ useOrgSid: createOrgSid }).then((resp) => {
if (resp.success) {
this.formobj = resp.data
this.formobj.patrolInspectionSid = row.sid
this.formobj.modelSid = row.modelSid
this.formobj.model = row.modelName
this.formobj.mainSid = row.mainSid
this.formobj.userSid = window.sessionStorage.getItem('userSid')
this.formobj.userName = window.sessionStorage.getItem('name')
this.vin_list = resp.data
}
if (this.formobj.images.length > 0) {
this.formobj.images.forEach((e) => {
this.list1.push({
name: '',
url: e
})
})
})
fetchBySid(createOrgSid).then((res) => {
if (res.success) {
this.formobj.useOrgName = res.data.name
}
}).catch((e) => {
this.formobj = row
})
this.formobj.carConditionValue = '问题未解决'
this.formobj.carConditionKey = '001'
this.formobj.newAdd = true
this.formobj.userName = window.sessionStorage.getItem('name')
this.formobj.userSid = window.sessionStorage.getItem('userSid')
this.formobj.createOrgSid = createOrgSid
},
changeInventoryName(value) {
changeVinNo(value) {
let bb = null
this.staff_list.forEach((e) => {
if (e.sid === value) {
this.vin_list.forEach((e) => {
if (e.carSid === value) {
bb = {
name: e.name,
sid: e.sid
address: e.address,
addressSid: e.addressSid,
administratorsName: e.administratorsName,
administratorsSid: e.administratorsSid,
carSid: e.carSid,
model: e.model,
modelSid: e.modelSid,
vin: e.vin
}
}
})
this.formobj.dutyName = bb.name
this.formobj.dutySid = bb.sid
this.formobj.warehouse = bb.address
this.formobj.warehouseSid = bb.addressSid
this.formobj.liableName = bb.administratorsName
this.formobj.liableSid = bb.administratorsSid
this.formobj.model = bb.model
this.formobj.modelSid = bb.modelSid
this.formobj.vinNo = bb.vin
},
backData(val) {
const aa = []
@ -162,48 +183,33 @@ export default {
}
this.formobj.images = aa
},
handleSave() {
if (this.formobj.situationExplain === '') {
this.$message({ showClose: true, type: 'error', message: '请填写巡检情况说明' })
return
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.saveInspection(this.formobj).then((resp) => {
this.submitdisabled = false
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
}
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
},
handlePass() {
if (this.formobj.situationExplain === '') {
this.$message({ showClose: true, type: 'error', message: '请填写巡检情况说明' })
return
}
if (this.formobj.dutyName !== '') {
this.$message({ showClose: true, type: 'error', message: '因已选择相关责任人,不能点击通过' })
return
deleteData(val) {
const aa = []
console.log(val)
if (val.length === 0) {
this.formobj.images = []
this.list1 = []
} else {
this.formobj.dutySid = ''
for (var i = 0; i < val.length; i++) {
aa.push(val[i].url)
}
this.formobj.images = aa
this.list1 = aa
}
console.log(this.formobj)
},
handleSave() {
// if (this.formobj.situationExplain === '') {
// this.$message({ showClose: true, type: 'error', message: '' })
// return
// }
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.submitInspection(this.formobj).then((resp) => {
if (this.formobj.images.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请上传相关照片' })
return
}
req.saveInspection(this.formobj).then((resp) => {
this.submitdisabled = false
if (resp.success) {
this.$message({
@ -226,18 +232,25 @@ export default {
if (isreload === 'true') this.$emit('reloadlist')
//
this.formobj = {
sid: '', // sid
patrolInspectionSid: '',
vinNo: '',
mainSid: '',
modelSid: '',
model: '',
situationExplain: '',
problemsAndResults: '',
dutyName: '',
dutySid: '',
images: [],
problems: '',
results: '',
carConditionValue: '',
carConditionKey: '',
warehouseSid: '',
warehouse: '',
liableName: '',
liableSid: '',
userSid: '',
userName: ''
userName: '',
createOrgSid: '',
useOrgName: '',
newAdd: '',
images: []
}
this.list1 = []
this.$refs['form_obj'].resetFields()
@ -248,17 +261,5 @@ export default {
</script>
<style scoped>
.spanOneWidth {
width: 180px !important;
}
.addinputwOne {
margin-left: 180px !important;
}
.rowStyle {
border-left: 0px;
}
.colOneStyle {
border-right: 0px !important;
}
</style>

252
anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/xunjianresolved.vue

@ -0,0 +1,252 @@
<template>
<div class="app-container">
<div>
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="primary" size="small" @click="handlePass()">已解决</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>车架号</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.vinNo }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>车型</span>
</el-col>
<el-col :span="8">
<el-form-item><span>{{ formobj.model }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>巡检情况说明</span>
</el-col>
<el-col :span="20">
<el-form-item>
<span>{{ formobj.situationExplain }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>存在问题</span>
</el-col>
<el-col :span="20">
<el-form-item>
<span>{{ formobj.problems }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>处理结果</span>
</el-col>
<el-col :span="20">
<el-form-item>
<el-input v-model="formobj.results" style="width: 80%" placeholder="" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>相关责任人</span>
</el-col>
<el-col :span="20">
<el-form-item>
<span>{{ formobj.liableName }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>相关照片</span>
</el-col>
<el-col :span="20">
<el-form-item>
<upload ref="uploadImg" v-model="list1" :limit="20" @change="backData" @fileChange="deleteData" bucket="map" :accept="accept" :upload-data="{ type: '0001' }"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/kucunguanli/polling'
import upload from '../../../../components/uploadFile/upload_morebypicture'
import { fetchBySid } from '@/api/cheliang/dictcommons'
export default {
name: 'xunjianResovled',
components: {
upload
},
data() {
return {
accept: '.jpg,.jpeg,.png,.JPG,.JPEG',
viewTitle: '巡检单-办理问题未解决',
listLoading: false,
index: 0,
tableKey: 0,
list1: [],
//
formobj: {
vinNo: '',
mainSid: '',
modelSid: '',
model: '',
situationExplain: '',
problems: '',
results: '',
carConditionValue: '',
carConditionKey: '',
warehouseSid: '',
warehouse: '',
liableName: '',
liableSid: '',
userSid: '',
userName: '',
createOrgSid: '',
useOrgName: '',
newAdd: '',
images: []
},
rules: {},
submitdisabled: false
}
},
methods: {
showEdit(row, createOrgSid) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.formobj.vinNo = row.vinNo
this.formobj.mainSid = row.sid
this.formobj.model = row.model
this.formobj.warehouseSid = row.locationSid
this.formobj.warehouse = row.location
this.formobj.liableName = row.liableName
this.formobj.liableSid = row.liableSid
this.formobj.situationExplain = row.situationExplain
this.formobj.problems = row.problems
this.formobj.userName = window.sessionStorage.getItem('name')
this.formobj.userSid = window.sessionStorage.getItem('userSid')
this.formobj.createOrgSid = createOrgSid
this.formobj.newAdd = false
if (row.images.length > 0) {
row.images.forEach((e) => {
this.list1.push({
name: '',
url: e
})
})
}
fetchBySid(createOrgSid).then((resp) => {
if (resp.success) {
this.formobj.useOrgName = resp.data.name
}
})
console.log('编辑回显', this.list1)
},
backData(val) {
const aa = []
if (val.length > 0) {
for (var i = 0; i < val.length; i++) {
aa.push(val[i].url)
}
}
this.formobj.images = aa
},
deleteData(val) {
const aa = []
console.log(val)
if (val.length === 0) {
this.formobj.images = []
this.list1 = []
} else {
for (var i = 0; i < val.length; i++) {
aa.push(val[i].url)
}
this.formobj.images = aa
this.list1 = aa
}
},
handlePass() {
// if (this.formobj.situationExplain === '') {
// this.$message({ showClose: true, type: 'error', message: '' })
// return
// }
console.log(this.formobj)
this.formobj.carConditionValue = '问题已解决'
this.formobj.carConditionKey = '002'
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.submitInspection(this.formobj).then((resp) => {
this.submitdisabled = false
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
}
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
//
this.formobj = {
vinNo: '',
mainSid: '',
modelSid: '',
model: '',
situationExplain: '',
problems: '',
results: '',
carConditionValue: '',
carConditionKey: '',
warehouseSid: '',
warehouse: '',
liableName: '',
liableSid: '',
userSid: '',
userName: '',
createOrgSid: '',
useOrgName: '',
newAdd: '',
images: []
}
this.list1 = []
this.$refs['form_obj'].resetFields()
this.$emit('doback')
}
}
}
</script>
<style scoped>
</style>

12
anrui-scm/anrui-scm-ui/src/views/kucunguanli/panku/pankubaogao/pankubaogaoguanli.vue

@ -11,7 +11,7 @@
<el-form-item label="生成日期">
<el-date-picker v-model="listQuery.params.createStartTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params. createEndTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<el-date-picker v-model="listQuery.params.createEndTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="生成人">
<el-input v-model="listQuery.params.createByName" placeholder="" clearable/>
@ -101,7 +101,7 @@ import ButtonBar from '@/components/ButtonBar'
import req from '@/api/kucunguanli/panku'
import pankubaogaoAdd from './pankubaogaoAdd'
import pankubaogaoInfo from './pankubaogaoInfo'
import { fetchByUseOrgSid, getPathSidByUserSid } from '@/api/cheliang/dictcommons'
import { getPathSidByUserSid } from '@/api/cheliang/dictcommons'
export default {
name: 'pankubaogoaguanli',
@ -161,11 +161,6 @@ export default {
this.getList()
}
})
fetchByUseOrgSid({ sid: this.listQuery.params.createOrgSid }).then((res) => {
if (res.success) {
this.warehouse_list = res.data
}
})
},
//
clicksearchShow() {
@ -238,8 +233,7 @@ export default {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
this.$emit('doback')
}
}
}

2
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java

@ -271,7 +271,7 @@ public interface AppBusSalesOrderFeign {
/*-------------------------------录入车架号---------------------------------------------*/
@ApiOperation("初始化|录入车架号列表")
@GetMapping("/init/saleOrderInputVin")
@GetMapping("/init/saleOrderInputVin/{saleOrderSid}")
@ResponseBody
ResultBean<VinNoVo> getVinList(@PathVariable("saleOrderSid") String saleOrderSid);

9
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/vininput/InputVinVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.terminal.api.autoservice.saleOrders.vininput;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -12,10 +13,10 @@ import lombok.Data;
@Data
public class InputVinVo implements Vo {
private static final long serialVersionUID = -3495013067534199733L;
@ApiModelProperty("车架号")
private String vin;
@ApiModelProperty("车辆sid")
private String carSid;
@ApiModelProperty("是否已出库")
private Boolean state;
@JsonProperty("vin")
private String vinNo;
@JsonProperty("carSid")
private String vinSid;
}

Loading…
Cancel
Save