提交 a0cb5723 作者: luyincheng

相关代码迁移

父级 3ad9ea3b
## 表结构修改SQL
## 表结构修改SQL
2023年10月9日17点01分
基于feature-2.0.1分支
###SQL脚本
```SQL
DROP TABLE IF EXISTS t_auxiliary_materials;
CREATE TABLE t_auxiliary_materials(
`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id' ,
`material_code` VARCHAR(255) COMMENT '物料编码' ,
`material_name` VARCHAR(255) COMMENT '物料名称' ,
`measurement_unit` VARCHAR(255) COMMENT '计量单位' ,
`apply_quantity` VARCHAR(255) COMMENT '申请数量' ,
`approved_quantity` VARCHAR(255) COMMENT '批准数量' ,
`currenty_sap` VARCHAR(255) COMMENT 'SAP当前库存数' ,
`month_amount_sap` VARCHAR(255) COMMENT '近一个月用量(SAP)' ,
`year_amount` VARCHAR(255) COMMENT '近一年用量' ,
`apply_status` VARCHAR(255) COMMENT '申请状态 已申请 已驳回 已通过 已关闭' ,
`team` VARCHAR(255) COMMENT '申请团队' ,
`logistic_status` VARCHAR(255) COMMENT '物流状态 未发货 已发货' ,
`receiving_status` VARCHAR(255) COMMENT '收货状态 未收货 已收货' ,
`recipents` VARCHAR(255) COMMENT '收货人' ,
`receive_address` VARCHAR(255) COMMENT '收货地址' ,
`receive_phone` VARCHAR(255) COMMENT '联系电话' ,
`apply_time` DATETIME COMMENT '申请时间' ,
`check_user` VARCHAR(255) COMMENT '审核人' ,
`check_user_name` VARCHAR(255) COMMENT '审核人姓名' ,
`check_time` DATETIME COMMENT '审核时间' ,
`check_suggestion` VARCHAR(255) COMMENT '审核意见' ,
`CREATED_BY` VARCHAR(255) COMMENT '创建人' ,
`CREATED_TIME` DATETIME COMMENT '创建时间' ,
`UPDATED_BY` VARCHAR(255) COMMENT '更新人' ,
`UPDATED_TIME` DATETIME COMMENT '更新时间' ,
`install_order` VARCHAR(255) COMMENT '安装单号' ,
`specification` VARCHAR(255) COMMENT '规格型号' ,
`logistic_order` VARCHAR(255) COMMENT '物流单号' ,
`apply_inventory` VARCHAR(255) COMMENT '申请时库存' ,
`apply_order` VARCHAR(255) COMMENT '申请单号' ,
`warehouse_id` VARCHAR(255) COMMENT '绑定仓库id' ,
PRIMARY KEY (id)
) COMMENT = '辅材申请';
DROP TABLE IF EXISTS t_received_note;
CREATE TABLE t_received_note(
`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id' ,
`received_order` VARCHAR(255) COMMENT '收货单号' ,
`install_order` VARCHAR(255) COMMENT '安装单号' ,
`product_batch` VARCHAR(255) COMMENT '产品批次' ,
`material_category` VARCHAR(255) COMMENT '物料类别' ,
`material_code` VARCHAR(255) COMMENT '物料编码' ,
`arrival_warehouse` VARCHAR(255) COMMENT '到货仓库' ,
`arrival_warehouse_id` INT(11) COMMENT '到货仓库id' ,
`receiver` VARCHAR(255) COMMENT '收货人' ,
`receiving_time` DATETIME COMMENT '收货时间' ,
`arrival_quantity` INT(10) COMMENT '到货数量' ,
`auxiliary_id` INT COMMENT '辅料申请单号' ,
`CREATED_BY` VARCHAR(255) COMMENT '创建人' ,
`CREATED_TIME` DATETIME COMMENT '创建时间' ,
`UPDATED_BY` VARCHAR(255) COMMENT '更新人' ,
`UPDATED_TIME` DATETIME COMMENT '更新时间' ,
PRIMARY KEY (id)
) COMMENT = '收货单';
DROP TABLE IF EXISTS t_delivery;
CREATE TABLE t_delivery(
`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id' ,
`delivery_order` VARCHAR(255) COMMENT '发货单号' ,
`install_order` VARCHAR(255) COMMENT '安装单号' ,
`product_batch` VARCHAR(255) COMMENT '产品批次' ,
`quantity` INT COMMENT '发货数量' ,
`material_category` VARCHAR(255) COMMENT '物料类别' ,
`material_code` VARCHAR(255) COMMENT '物料编码' ,
`material_name` VARCHAR(255) COMMENT '物料名称' ,
`material_company` VARCHAR(255) COMMENT '物料厂商' ,
`logistic_order` VARCHAR(255) COMMENT '物流单号' ,
`logistic_company` VARCHAR(255) COMMENT '物流服务商' ,
`logistic_status` VARCHAR(255) COMMENT '物流状态 未发货 已发货' ,
`CREATED_BY` VARCHAR(255) COMMENT '创建人' ,
`CREATED_TIME` DATETIME COMMENT '创建时间' ,
`UPDATED_BY` VARCHAR(255) COMMENT '更新人' ,
`UPDATED_TIME` DATETIME COMMENT '更新时间' ,
PRIMARY KEY (id)
) COMMENT = '发货单';
DROP TABLE IF EXISTS t_reject;
CREATE TABLE t_reject(
`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id' ,
`reject_order` VARCHAR(255) COMMENT '退货单号' ,
`install_order` VARCHAR(255) COMMENT '安装单号' ,
`product_batch` VARCHAR(255) COMMENT '产品批次' ,
`quantity` INT COMMENT '退货数量' ,
`material_category` VARCHAR(255) COMMENT '物料类别' ,
`material_code` VARCHAR(255) COMMENT '物料编码' ,
`material_name` VARCHAR(255) COMMENT '物料名称' ,
`material_company` VARCHAR(255) COMMENT '物料厂商' ,
`logistic_order` VARCHAR(255) COMMENT '物流单号' ,
`logistic_company` VARCHAR(255) COMMENT '物流服务商' ,
`warehouse_name` VARCHAR(255) COMMENT '退货仓库' ,
`warehouse_id` INT(11) COMMENT '退货仓库id' ,
`reason` VARCHAR(255) COMMENT '退货原因' ,
`status` VARCHAR(255) COMMENT '退货状态 已申请 已驳回 已通过 已关闭' ,
`check_time` DATETIME COMMENT '审批时间' ,
`check_user` VARCHAR(255) COMMENT '审核人' ,
`check_user_name` VARCHAR(255) COMMENT '审核人姓名' ,
`check_suggestion` VARCHAR(255) COMMENT '审核意见' ,
`CREATED_BY` VARCHAR(255) COMMENT '创建人' ,
`CREATED_TIME` DATETIME COMMENT '创建时间' ,
`UPDATED_BY` VARCHAR(255) COMMENT '更新人' ,
`UPDATED_TIME` DATETIME COMMENT '更新时间' ,
PRIMARY KEY (id)
) COMMENT = '退货单';
package com.starcharge.wios.Import.impl;
import com.starcharge.wios.Import.Import;
import com.starcharge.wios.convert.DeliveryConvert;
import com.starcharge.wios.validation.CreateEntityGroup;
import com.starcharge.wios.vo.DeliveryAddVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.validation.ConstraintViolation;
import javax.validation.Validator;
import java.util.List;
import java.util.Set;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.Import.impl
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/1317:01
*/
@Service
public class DeliveryImport implements Import {
@Autowired
private Validator validator;
@Override
public List<?> handle(List<Object> list) {
// List<String> headList = (List<String>)list.get(0);
for(int i=1;i<list.size();i++){
List<String> rowdata = (List<String>)list.get(i);
DeliveryAddVo deliveryAddVo= DeliveryConvert.INSTANCE.convertImportAddVo(rowdata);
Set<ConstraintViolation<DeliveryAddVo>> sets = validator.validate(deliveryAddVo, CreateEntityGroup.class);
if(!sets.isEmpty()){
rowdata.add(sets.stream().map(ConstraintViolation::getMessage).reduce("error:",(s1,s2)->s1+";"+s2));
continue;
}
}
return list;
}
}
package com.starcharge.wios.controller;
import com.ihidea.component.api.v2.BaseResponse;
import com.starcharge.wios.auth.service.TokenService;
import com.starcharge.wios.convert.DeliveryConvert;
import com.starcharge.wios.dao.entity.Delivery;
import com.starcharge.wios.dao.mappers.DeliveryMapper;
import com.starcharge.wios.dao.mappers.WallboxApplyMapper;
import com.starcharge.wios.service.CommonUpdateService;
import com.starcharge.wios.service.SnowFlakeService;
import com.starcharge.wios.utils.ExcelUtils;
import com.starcharge.wios.validation.CreateEntityGroup;
import com.starcharge.wios.validation.ParamsValidate;
import com.starcharge.wios.validation.UpdateEntityGroup;
import com.starcharge.wios.vo.DeliveryAddVo;
import com.starcharge.wios.vo.DeliveryExcelVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.controller
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/818:10
*/
@RestController
@RequestMapping("api/delivery")
@Api(tags = "发货管理接口")
public class DeliveryController {
@Autowired
private TokenService tokenService;
@Autowired
private DeliveryMapper deliveryMapper;
@Autowired
private CommonUpdateService commonUpdateService;
@Autowired
private SnowFlakeService snowFlakeService;
@Autowired
private WallboxApplyMapper wallboxApplyMapper;
@PostMapping("/add")
@ApiOperation(value = "新增发货",notes = "新增发货,返回成功条数")
@ParamsValidate
@Transactional
public BaseResponse<Integer> AddDelivery(@RequestBody @Validated(CreateEntityGroup.class) List<DeliveryAddVo> deliveryAddVoList, BindingResult bindingResult){
String orderid= snowFlakeService.getNextId(0,0)+"";
return new BaseResponse(deliveryAddVoList.stream()
.map(da->{
Delivery delivery= DeliveryConvert.INSTANCE.convertAddVo(da);
delivery.setDeliveryOrder(orderid);
this.commonUpdateService.UpdateColumns(delivery,true);
this.wallboxApplyMapper.updateWallBoxTrackingStatusByMC("1",delivery.getMaterialCode());
return this.deliveryMapper.insertSelective(delivery);
}).reduce(0,Integer::sum));
}
@PostMapping("/query")
@ApiOperation(value = "发货列表查询")
public BaseResponse<List<Delivery>> queryDelivery(Delivery Delivery){
return new BaseResponse(this.deliveryMapper.selectDeliveryList(Delivery));
}
@GetMapping("/detail")
@ApiOperation(value = "发货详情")
public BaseResponse<Delivery> getdetail(@RequestParam int id){
return new BaseResponse(this.deliveryMapper.selectByPrimaryKey(id));
}
@GetMapping("/delete")
@ApiOperation(value = "删除发货信息")
public BaseResponse<Integer> delete(@RequestParam int id){
return new BaseResponse(this.deliveryMapper.deleteByPrimaryKey(id));
}
@PostMapping("/update")
@ApiOperation("更新发货单信息")
@ParamsValidate
public BaseResponse<Delivery> update(@RequestBody @Validated(UpdateEntityGroup.class) Delivery delivery, BindingResult bindingResult){
this.commonUpdateService.UpdateColumns(delivery,false);
return new BaseResponse(this.deliveryMapper.updateByPrimaryKeySelective(delivery));
}
@PostMapping("/export")
@ApiOperation(value = "导出发货单列表")
public void export(HttpServletResponse response, @RequestBody Delivery Delivery) throws IOException {
// ExcelUtil<WarehouseInfo> util = new ExcelUtil<WarehouseInfo>(WarehouseInfo.class);
// util.exportExcel(response, list, "仓库信息管理数据");
List<DeliveryExcelVo> data = DeliveryConvert.INSTANCE.convertExcelVoList(this
.deliveryMapper.selectDeliveryList(Delivery));
// 输出
ExcelUtils.write(response, "发货管理列表.xls", "发货信息", DeliveryExcelVo.class, data);
}
}
package com.starcharge.wios.controller;
import com.ihidea.component.api.v2.BaseResponse;
import com.starcharge.wios.auth.service.TokenService;
import com.starcharge.wios.convert.ReceivednoteConvert;
import com.starcharge.wios.dao.entity.Receivednote;
import com.starcharge.wios.dao.mappers.ReceivednoteMapper;
import com.starcharge.wios.service.CommonUpdateService;
import com.starcharge.wios.service.SnowFlakeService;
import com.starcharge.wios.utils.ExcelUtils;
import com.starcharge.wios.validation.CreateEntityGroup;
import com.starcharge.wios.validation.ParamsValidate;
import com.starcharge.wios.validation.UpdateEntityGroup;
import com.starcharge.wios.vo.ReceivednoteAddVo;
import com.starcharge.wios.vo.ReceivednoteExcelVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.controller
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/814:24
*/
@RestController
@RequestMapping("api/receivednote")
@Api(tags = "收货管理接口")
public class ReceivedNoteController {
@Autowired
private TokenService tokenService;
@Autowired
private ReceivednoteMapper receivednoteMapper;
@Autowired
private CommonUpdateService commonUpdateService;
@Autowired
private SnowFlakeService snowFlakeService;
@PostMapping("/add")
@ApiOperation(value = "新增收货",notes = "新增收货,返回成功条数")
@ParamsValidate
public BaseResponse<Integer> AddReceivednote(@RequestBody @Validated(CreateEntityGroup.class) ReceivednoteAddVo receivednoteAddVo, BindingResult bindingResult){
String orderid= snowFlakeService.getNextId(0,0)+"";
return new BaseResponse(receivednoteAddVo.getSingleReceivenotes().stream()
.map(s->{
Receivednote receivednote= ReceivednoteConvert.INSTANCE.convertAddVo(receivednoteAddVo);
ReceivednoteConvert.INSTANCE.convertAddSingleVo(s,receivednote);
receivednote.setReceivedOrder(orderid);
this.commonUpdateService.UpdateColumns(receivednote,true);
return this.receivednoteMapper.insertSelective(receivednote);
}).reduce(0,Integer::sum));
}
@PostMapping("/query")
@ApiOperation(value = "收货列表查询")
public BaseResponse<List<Receivednote>> queryReceivednote(Receivednote receivednote){
return new BaseResponse<>(this.receivednoteMapper.selectReceivedNoteList(receivednote));
}
@GetMapping("/detail")
@ApiOperation(value = "收货详情")
public BaseResponse<Receivednote> getdetail(@RequestParam int id){
return new BaseResponse<>(this.receivednoteMapper.selectByPrimaryKey(id));
}
@GetMapping("/delete")
@ApiOperation(value = "删除收货信息")
public BaseResponse<Integer> delete(@RequestParam int id){
return new BaseResponse(this.receivednoteMapper.deleteByPrimaryKey(id));
}
@PostMapping("/update")
@ApiOperation("更新收货单信息")
@ParamsValidate
public BaseResponse<Receivednote> update(@RequestBody @Validated(UpdateEntityGroup.class) Receivednote receivednote, BindingResult bindingResult){
this.commonUpdateService.UpdateColumns(receivednote,false);
return new BaseResponse(this.receivednoteMapper.updateByPrimaryKeySelective(receivednote));
}
@PostMapping("/export")
@ApiOperation(value = "导出收货单列表")
public void export(HttpServletResponse response, @RequestBody Receivednote receivednote) throws IOException {
// ExcelUtil<WarehouseInfo> util = new ExcelUtil<WarehouseInfo>(WarehouseInfo.class);
// util.exportExcel(response, list, "仓库信息管理数据");
List<ReceivednoteExcelVo> data = ReceivednoteConvert.INSTANCE.convertExcelVoList(this
.receivednoteMapper.selectReceivedNoteList(receivednote));
// 输出
ExcelUtils.write(response, "收货管理列表.xls", "收货信息", ReceivednoteExcelVo.class, data);
}
}
package com.starcharge.wios.controller;
import com.ihidea.component.api.v2.BaseResponse;
import com.ihidea.core.support.exception.ServiceException;
import com.ihidea.core.support.session.SessionInfo;
import com.starcharge.wios.auth.service.TokenService;
import com.starcharge.wios.convert.RejectConvert;
import com.starcharge.wios.dao.entity.Reject;
import com.starcharge.wios.dao.mappers.RejectMapper;
import com.starcharge.wios.enums2.TauxiliarymaterialStatusEnum;
import com.starcharge.wios.service.CommonUpdateService;
import com.starcharge.wios.service.SnowFlakeService;
import com.starcharge.wios.utils.ExcelUtils;
import com.starcharge.wios.validation.CreateEntityGroup;
import com.starcharge.wios.validation.ParamsValidate;
import com.starcharge.wios.validation.UpdateEntityGroup;
import com.starcharge.wios.vo.RejectAddVo;
import com.starcharge.wios.vo.RejectCheckVo;
import com.starcharge.wios.vo.RejectExcelVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.List;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.controller
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/819:15
*/
@RestController
@RequestMapping("api/reject")
@Api(tags = "退货管理接口")
public class RejectController {
@Autowired
private TokenService tokenService;
@Autowired
private RejectMapper rejectMapper;
@Autowired
private CommonUpdateService commonUpdateService;
@Autowired
private SnowFlakeService snowFlakeService;
@PostMapping("/add")
@ApiOperation(value = "新增退货")
@ParamsValidate
public BaseResponse<Integer> AddReject(@RequestBody @Validated(CreateEntityGroup.class) RejectAddVo rejectAddVo, BindingResult bindingResult){
String orderid= snowFlakeService.getNextId(0,0)+"";
Reject reject= RejectConvert.INSTANCE.convertAddVo(rejectAddVo);
reject.setRejectOrder(orderid);
reject.setStatus(TauxiliarymaterialStatusEnum.已申请.name());
this.commonUpdateService.UpdateColumns(reject,true);
return new BaseResponse<>(this.rejectMapper.insertSelective(reject));
}
@PostMapping("/query")
@ApiOperation(value = "退货列表查询")
public BaseResponse<List<Reject>> queryReject(Reject Reject){
return new BaseResponse(this.rejectMapper.selectRejectList(Reject));
}
@GetMapping("/detail")
@ApiOperation(value = "退货详情")
public BaseResponse<Reject> getdetail(@RequestParam int id){
return new BaseResponse(this.rejectMapper.selectByPrimaryKey(id));
}
@GetMapping("/delete")
@ApiOperation(value = "删除退货信息")
public BaseResponse<Integer> delete(@RequestParam int id){
return new BaseResponse(this.rejectMapper.deleteByPrimaryKey(id));
}
@PostMapping("/update")
@ApiOperation("更新退货单信息")
@ParamsValidate
public BaseResponse<Reject> update(@RequestBody @Validated(UpdateEntityGroup.class) RejectAddVo rejectAddVo, BindingResult bindingResult){
var data=RejectConvert.INSTANCE.convertAddVo(rejectAddVo);
this.commonUpdateService.UpdateColumns(data,false);
return new BaseResponse(this.rejectMapper.updateByPrimaryKeySelective(data));
}
@PostMapping("/export")
@ApiOperation(value = "导出退货单列表")
public void export(HttpServletResponse response, @RequestBody Reject Reject) throws IOException {
// ExcelUtil<WarehouseInfo> util = new ExcelUtil<WarehouseInfo>(WarehouseInfo.class);
// util.exportExcel(response, list, "仓库信息管理数据");
List<RejectExcelVo> data = RejectConvert.INSTANCE.convertExcelVoList(this
.rejectMapper.selectRejectList(Reject));
// 输出
ExcelUtils.write(response, "退货管理列表.xls", "退货信息", RejectExcelVo.class, data);
}
@PostMapping("/check")
@ApiOperation("审批退货单")
@ParamsValidate
public BaseResponse<Boolean> check(@RequestBody @Validated RejectCheckVo rejectCheckVo,BindingResult bindingResult){
var status=TauxiliarymaterialStatusEnum.getEnumByName(0,rejectCheckVo.getStatus());
if(status==null){
throw new ServiceException(400,"status必须是枚举:"+TauxiliarymaterialStatusEnum.getStatusTypeEnums(0).stream().map(e->e.name()).reduce("",(a,b)->a+","+b));
}
SessionInfo sessionInfo = tokenService.getUser();
var data=RejectConvert.INSTANCE.convertCheckVo(rejectCheckVo);
data.setCheckUser(sessionInfo.getUserId());
data.setCheckUserName(sessionInfo.getUserName());
data.setCheckTime(LocalDateTime.now());
this.commonUpdateService.UpdateColumns(data,false);
return new BaseResponse(this.rejectMapper.updateByPrimaryKeySelective(data));
}
}
package com.starcharge.wios.controller;
import com.ihidea.component.api.v2.BaseResponse;
import com.ihidea.core.support.exception.ServiceException;
import com.ihidea.core.support.session.SessionInfo;
import com.starcharge.wios.auth.service.TokenService;
import com.starcharge.wios.convert.TauxiliarymaterialsConvert;
import com.starcharge.wios.dao.entity.Tauxiliarymaterials;
import com.starcharge.wios.dao.entity.TauxiliarymaterialsCriteria;
import com.starcharge.wios.dao.mappers.TauxiliarymaterialsMapper;
import com.starcharge.wios.dto.TauxiliarymaterialsCheckDto;
import com.starcharge.wios.enums2.TauxiliarymaterialStatusEnum;
import com.starcharge.wios.utils.ExcelUtils;
import com.starcharge.wios.validation.CreateEntityGroup;
import com.starcharge.wios.validation.ParamsValidate;
import com.starcharge.wios.vo.TauxiliarymaterialsExcelVo;
import com.starcharge.wios.vo.TauxiliarymaterialsVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.var;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.List;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.controller
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/9/25 14:50
*/
@RestController
@RequestMapping("api/tauxiliarymaterials")
@Api(tags = "辅材管理接口")
public class TauxiliarymaterialsController {
@Autowired
private TokenService tokenService;
@Autowired
private TauxiliarymaterialsMapper tauxiliarymaterialsMapper;
public void UpdateColumns(Tauxiliarymaterials tauxiliarymaterials){
SessionInfo sessionInfo = tokenService.getUser();
tauxiliarymaterials.setUpdatedBy(sessionInfo.getUserId());
tauxiliarymaterials.setUpdatedTime(LocalDateTime.now());
}
@PostMapping("/add")
@ApiOperation("新增辅材申请")
@ParamsValidate
public BaseResponse<Tauxiliarymaterials> AddTauxiliarymaterials( @RequestBody @Validated(CreateEntityGroup.class) Tauxiliarymaterials tauxiliarymaterials, BindingResult bindingResult){
SessionInfo sessionInfo = tokenService.getUser();
var now=LocalDateTime.now();
tauxiliarymaterials.setApplyStatus(TauxiliarymaterialStatusEnum.已申请.name());
tauxiliarymaterials.setLogisticStatus(TauxiliarymaterialStatusEnum.未发货.name());
tauxiliarymaterials.setReceivingStatus(TauxiliarymaterialStatusEnum.未收货.name());
tauxiliarymaterials.setApplyTime(now);
tauxiliarymaterials.setCreatedBy(sessionInfo.getUserId());
tauxiliarymaterials.setCreatedTime(now);
tauxiliarymaterials.setUpdatedBy(sessionInfo.getUserId());
tauxiliarymaterials.setUpdatedTime(now);
//暂时代替申请单号
// tauxiliarymaterials.setApplyOrder(IdWorker.getIdStr());
tauxiliarymaterialsMapper.insertSelective(tauxiliarymaterials);
return new BaseResponse<>(tauxiliarymaterials);
}
@GetMapping("/detail")
@ApiOperation(value = "查询辅材申请详情")
public BaseResponse<Tauxiliarymaterials> detail(@RequestParam int id){
return new BaseResponse(this.tauxiliarymaterialsMapper.selectByPrimaryKey(id));
}
@PostMapping("/query")
@ApiOperation(value = "查询辅材申请列表",notes = "属性不为空即为查询条件")
public BaseResponse<List<Tauxiliarymaterials>> queryTauxiliarymaterialsList(Tauxiliarymaterials tauxiliarymaterials){
return new BaseResponse(this.tauxiliarymaterialsMapper.selectTAuxiliaryMaterialsList(tauxiliarymaterials));
}
@PostMapping("/delete")
@ApiOperation(value = "删除辅材申请")
public BaseResponse<Boolean> deleteTauxiliarymaterials(@RequestParam int id){
return new BaseResponse(this.tauxiliarymaterialsMapper.deleteByPrimaryKey(id)>0);
}
@PostMapping("/updateinfo")
@ApiOperation(value = "更新辅材申请信息")
public BaseResponse<Boolean> updateTauxiliarymaterialsInfo(@RequestBody TauxiliarymaterialsVo tauxiliarymaterials){
if(tauxiliarymaterials.getId()==null||tauxiliarymaterials.getId()<=0){
throw new ServiceException("400","id不能为空");
}
var updateDto=new Tauxiliarymaterials();
BeanUtils.copyProperties(tauxiliarymaterials,updateDto);
UpdateColumns(updateDto);
return new BaseResponse(this.tauxiliarymaterialsMapper.updateByPrimaryKeySelective(updateDto)>0);
}
@GetMapping("/updatestatus")
@ApiOperation(value = "更新辅材申请状态")
public BaseResponse<Boolean> updateStatus(@RequestParam int id,
@RequestParam(required = false) @ApiParam("发货状态:未发货,已发货;可为空") String logisticStatus,
@RequestParam(required = false) @ApiParam("收货状态:未收货, 已收货;可为空")String receivingStatus,
@RequestParam(required = false) @ApiParam("申请状态:已申请,已驳回,已通过,已关闭;可为空")String applyStatus){
if(StringUtils.isEmpty(logisticStatus)&&StringUtils.isEmpty(receivingStatus)&&StringUtils.isEmpty(applyStatus)){
throw new ServiceException("400","至少更新一种状态");
}
var ta=new Tauxiliarymaterials();
ta.setId(id);
ta.setApplyStatus(TauxiliarymaterialStatusEnum.getEnumNameByName(0,applyStatus));
ta.setLogisticStatus(TauxiliarymaterialStatusEnum.getEnumNameByName(1,logisticStatus));
ta.setReceivingStatus(TauxiliarymaterialStatusEnum.getEnumNameByName(2,receivingStatus));
UpdateColumns(ta);
return new BaseResponse(this.tauxiliarymaterialsMapper.updateByPrimaryKeySelective(ta)>0);
}
@PostMapping("/check")
@ApiOperation(value = "批量审批")
@Transactional
public BaseResponse<Boolean> checkApply(@RequestBody TauxiliarymaterialsCheckDto tauxiliarymaterialsCheckDto){
SessionInfo sessionInfo = tokenService.getUser();
tauxiliarymaterialsCheckDto.getTauxiliarymaterialsCheckVoList().stream()
.filter(dto->{
var exist=this.tauxiliarymaterialsMapper.selectByPrimaryKey(dto.getId());
if(exist==null){
return false;
}else{
//已审批
if(TauxiliarymaterialStatusEnum.getEnumByName(0,exist.getApplyStatus()).getValue()>1){
return false;
}
}
return true;
})
.map(dto->{
var ta=new Tauxiliarymaterials();
ta.setId(dto.getId());
ta.setApprovedQuantity(dto.getApprovedQuantity());
ta.setApplyStatus(tauxiliarymaterialsCheckDto.getApplyStatus());
ta.setCheckSuggestion(tauxiliarymaterialsCheckDto.getCheckSuggestion());
ta.setCheckUser(sessionInfo.getUserId());
ta.setCheckUserName(sessionInfo.getUserName());
ta.setCheckTime(LocalDateTime.now());
UpdateColumns(ta);
return ta;
}).forEach(ta->{
this.tauxiliarymaterialsMapper.updateByPrimaryKeySelective(ta);
});
return new BaseResponse(true);
}
@GetMapping("/bindLogisticOrder")
@ApiOperation(value = "绑定物流单号")
public BaseResponse<Boolean> bindLogisticOrder(@RequestParam @ApiParam("辅材申请单id") int id,@RequestParam @ApiParam("物流单号") String logisticOrder){
var dto=new Tauxiliarymaterials();
dto.setId(id);
dto.setLogisticOrder(logisticOrder);
dto.setLogisticStatus(TauxiliarymaterialStatusEnum.已发货.name());
return new BaseResponse(this.tauxiliarymaterialsMapper.updateByPrimaryKeySelective(dto)>0);
}
@PostMapping("/export")
@ApiOperation(value = "导出辅料申请列表")
public void export(HttpServletResponse response,@RequestBody Tauxiliarymaterials tauxiliarymaterials) throws IOException {
// ExcelUtil<WarehouseInfo> util = new ExcelUtil<WarehouseInfo>(WarehouseInfo.class);
// util.exportExcel(response, list, "仓库信息管理数据");
List<TauxiliarymaterialsExcelVo> data = TauxiliarymaterialsConvert.INSTANCE.convertList(this
.tauxiliarymaterialsMapper.selectTAuxiliaryMaterialsList(tauxiliarymaterials));
// 输出
ExcelUtils.write(response, "辅材申请列表.xls", "辅材信息", TauxiliarymaterialsExcelVo.class, data);
}
@GetMapping("/getRecent3MonthHasChecked")
@ApiOperation(value = "查询最近三个月已审批物料申请单")
public BaseResponse<List<Tauxiliarymaterials>> getRecent3MonthHasChecked(@RequestParam @ApiParam("物料编码") String materialCode){
TauxiliarymaterialsCriteria criteria=new TauxiliarymaterialsCriteria();
criteria.createCriteria().andApplyTimeGreaterThanOrEqualTo(LocalDateTime.now().minusMonths(3))
.andMaterialCodeEqualTo(materialCode)
.andApplyStatusEqualTo(TauxiliarymaterialStatusEnum.已通过.name());
return new BaseResponse<>(this.tauxiliarymaterialsMapper.selectByExample(criteria));
}
}
package com.starcharge.wios.convert;
import com.starcharge.wios.dao.entity.Delivery;
import com.starcharge.wios.vo.DeliveryAddVo;
import com.starcharge.wios.vo.DeliveryExcelVo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.convert
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/818:17
*/
@Mapper
public interface DeliveryConvert {
DeliveryConvert INSTANCE = Mappers.getMapper(DeliveryConvert.class);
Delivery convertAddVo(DeliveryAddVo deliveryAddVo);
List<DeliveryExcelVo> convertExcelVoList(List<Delivery> deliveries);
// @Mappings({
// @Mapping(target = "installOrder", expression = "java(excelRowData.get(0))"),
// @Mapping(target = "productBatch", expression = "java(excelRowData.get(1))"),
// @Mapping(target = "quantity", expression = "java(com.starcharge.wios.convert.DeliveryConvert.convertQuantity(excelRowData.get(2)))"),
// @Mapping(target = "materialCategory", expression = "java(excelRowData.get(3))"),
// @Mapping(target = "materialCode", expression = "java(excelRowData.get(4))"),
// @Mapping(target = "materialName", expression = "java(excelRowData.get(5))"),
// @Mapping(target = "materialCompany", expression = "java(excelRowData.get(6))"),
// @Mapping(target = "logisticOrder", expression = "java(excelRowData.get(7))"),
// @Mapping(target = "logisticCompany", expression = "java(excelRowData.get(8))"),
// @Mapping(target = "logisticStatus", expression = "java(excelRowData.get(9))"),
// @Mapping(target = "team", expression = "java(excelRowData.get(10))")
// })
// DeliveryAddVo convertImportAddVo(List<String> excelRowData);
default DeliveryAddVo convertImportAddVo(List<String> excelRowData){
DeliveryAddVo deliveryAddVo=new DeliveryAddVo();
deliveryAddVo.setInstallOrder(excelRowData.get(0));
deliveryAddVo.setProductBatch(excelRowData.get(1));
try {
deliveryAddVo.setQuantity(Integer.parseInt(excelRowData.get(2)));
}catch (Exception e){
deliveryAddVo.setQuantity(0);
}
deliveryAddVo.setMaterialCategory(excelRowData.get(3));
deliveryAddVo.setMaterialCode(excelRowData.get(4));
deliveryAddVo.setMaterialName(excelRowData.get(5));
deliveryAddVo.setMaterialCompany(excelRowData.get(6));
deliveryAddVo.setLogisticOrder(excelRowData.get(7));
deliveryAddVo.setLogisticCompany(excelRowData.get(8));
deliveryAddVo.setLogisticStatus(excelRowData.get(9));
deliveryAddVo.setTeam(excelRowData.get(10));
return deliveryAddVo;
}
}
package com.starcharge.wios.convert;
import com.starcharge.wios.dao.entity.Receivednote;
import com.starcharge.wios.vo.ReceivednoteAddVo;
import com.starcharge.wios.vo.ReceivednoteExcelVo;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.convert
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/814:46
*/
@Mapper
public interface ReceivednoteConvert {
ReceivednoteConvert INSTANCE = Mappers.getMapper(ReceivednoteConvert.class);
Receivednote convertAddVo(ReceivednoteAddVo receivednoteAddVo);
List<ReceivednoteExcelVo> convertExcelVoList(List<Receivednote> receivednotes);
void convertAddSingleVo(ReceivednoteAddVo.SingleReceivenote singleReceivenote,@MappingTarget Receivednote receivednote);
}
package com.starcharge.wios.convert;
import com.starcharge.wios.dao.entity.Reject;
import com.starcharge.wios.vo.RejectAddVo;
import com.starcharge.wios.vo.RejectCheckVo;
import com.starcharge.wios.vo.RejectExcelVo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.convert
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/818:37
*/
@Mapper
public interface RejectConvert {
RejectConvert INSTANCE = Mappers.getMapper(RejectConvert.class);
Reject convertAddVo(RejectAddVo deliveryAddVo);
List<RejectExcelVo> convertExcelVoList(List<Reject> rejects);
Reject convertCheckVo(RejectCheckVo rejectCheckVo);
}
package com.starcharge.wios.convert;
import com.starcharge.wios.dao.entity.Tauxiliarymaterials;
import com.starcharge.wios.vo.TauxiliarymaterialsExcelVo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.convert
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/9/2710:29
*/
@Mapper
public interface TauxiliarymaterialsConvert {
TauxiliarymaterialsConvert INSTANCE = Mappers.getMapper(TauxiliarymaterialsConvert.class);
List<TauxiliarymaterialsExcelVo> convertList(List<Tauxiliarymaterials> bean);
}
package com.starcharge.wios.dao.entity;
import com.starcharge.wios.validation.CreateEntityGroup;
import com.starcharge.wios.validation.UpdateEntityGroup;
import com.starcharge.wios.vo.PageVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
*@description:: $discription$
*@author:luyc
*@time:2023-10-08 18:07:04 下午
*/
@Data
@ApiModel(value="Delivery", description="发货单")
public class Delivery extends PageVo implements Serializable {
/**
* id
*
* @mbg.generated
*/
@ApiModelProperty(required = true,value = "id")
@NotNull(groups = UpdateEntityGroup.class )
@Min(value = 1,groups = UpdateEntityGroup.class)
private Integer id;
/**
* 发货单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "发货单号")
private String deliveryOrder;
/**
* 安装单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "安装单号")
private String installOrder;
/**
* 产品批次
*
* @mbg.generated
*/
@ApiModelProperty(value = "产品批次")
private String productBatch;
/**
* 发货数量
*
* @mbg.generated
*/
@ApiModelProperty(value = "发货数量")
private Integer quantity;
/**
* 物料类别
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料类别")
private String materialCategory;
/**
* 物料编码
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料编码")
private String materialCode;
/**
* 物料名称
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料名称")
private String materialName;
/**
* 物料厂商
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料厂商")
private String materialCompany;
/**
* 物流单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "物流单号")
private String logisticOrder;
/**
* 物流服务商
*
* @mbg.generated
*/
@ApiModelProperty(value = "物流服务商")
private String logisticCompany;
/**
* 物流状态 未发货 已发货
*
* @mbg.generated
*/
@ApiModelProperty(value = "物流状态 未发货 已发货")
private String logisticStatus;
/**
* 申请团队
*
* @mbg.generated
*/
@ApiModelProperty(value = "申请团队")
private String team;
/**
* 是否产品或辅料
*
* @mbg.generated
*/
@ApiModelProperty(value = "是否产品或辅料 1 是 0 否")
@NotNull(groups = CreateEntityGroup.class)
@Range(min=0,max = 1,message = "是否产品或辅料只可填0或1",groups = UpdateEntityGroup.class)
private Integer isproduct;
/**
* 创建人
*
* @mbg.generated
*/
@ApiModelProperty(value = "创建人")
private String createdBy;
/**
* 创建时间
*
* @mbg.generated
*/
@ApiModelProperty(value = "创建时间")
private LocalDateTime createdTime;
/**
* 更新人
*
* @mbg.generated
*/
@ApiModelProperty(value = "更新人")
private String updatedBy;
/**
* 更新时间
*
* @mbg.generated
*/
@ApiModelProperty(value = "更新时间")
private LocalDateTime updatedTime;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.starcharge.wios.dao.entity;
import com.starcharge.wios.validation.CreateEntityGroup;
import com.starcharge.wios.validation.UpdateEntityGroup;
import com.starcharge.wios.vo.PageVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
*@description:: $discription$
*@author:luyc
*@time:2023-10-08 14:18:14 下午
*/
@Data
@ApiModel(value="Receivednote", description="收货单")
public class Receivednote extends PageVo implements Serializable {
/**
* id
*
* @mbg.generated
*/
@ApiModelProperty(required = true,value = "id")
@NotNull(groups =UpdateEntityGroup.class )
@Min(value = 1,groups = UpdateEntityGroup.class)
private Integer id;
/**
* 收货单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "收货单号")
private String receivedOrder;
/**
* 安装单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "安装单号")
private String installOrder;
/**
* 产品批次
*
* @mbg.generated
*/
@ApiModelProperty(value = "产品批次")
private String productBatch;
/**
* 物料类别
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料类别")
private String materialCategory;
/**
* 物料编码
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料编码")
private String materialCode;
/**
* 物料名称
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料名称")
private String materialName;
/**
* 到货仓库
*
* @mbg.generated
*/
@ApiModelProperty(value = "到货仓库")
private String arrivalWarehouse;
/**
* 到货仓库id
*
* @mbg.generated
*/
@ApiModelProperty(value = "到货仓库id")
private Integer arrivalWarehouseId;
/**
* 收货人
*
* @mbg.generated
*/
@ApiModelProperty(value = "收货人")
private String receiver;
/**
* 收货时间
*
* @mbg.generated
*/
@ApiModelProperty(value = "收货时间")
private LocalDateTime receivingTime;
/**
* 到货数量
*
* @mbg.generated
*/
@ApiModelProperty(value = "到货数量")
private Integer arrivalQuantity;
/**
* 辅料申请单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "辅料申请单号")
private Integer auxiliaryId;
/**
* 是否产品或辅料
*
* @mbg.generated
*/
@ApiModelProperty(value = "是否产品或辅料 1 是 0 否")
@NotNull(groups = CreateEntityGroup.class)
@Range(min=0,max = 1,message = "是否产品或辅料只可填0或1",groups = UpdateEntityGroup.class)
private Integer isproduct;
/**
* 创建人
*
* @mbg.generated
*/
@ApiModelProperty(value = "创建人")
private String createdBy;
/**
* 创建时间
*
* @mbg.generated
*/
@ApiModelProperty(value = "创建时间")
private LocalDateTime createdTime;
/**
* 更新人
*
* @mbg.generated
*/
@ApiModelProperty(value = "更新人")
private String updatedBy;
/**
* 更新时间
*
* @mbg.generated
*/
@ApiModelProperty(value = "更新时间")
private LocalDateTime updatedTime;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.starcharge.wios.dao.entity;
import com.starcharge.wios.vo.PageVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
*@description:: $discription$
*@author:luyc
*@time:2023-10-08 18:34:39 下午
*/
@Data
@ApiModel(value="Reject", description="退货单")
public class Reject extends PageVo implements Serializable {
/**
* id
*
* @mbg.generated
*/
@ApiModelProperty(required = true,value = "id")
private Integer id;
/**
* 退货单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "退货单号")
private String rejectOrder;
/**
* 安装单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "安装单号")
private String installOrder;
/**
* 产品批次
*
* @mbg.generated
*/
@ApiModelProperty(value = "产品批次")
private String productBatch;
/**
* 退货数量
*
* @mbg.generated
*/
@ApiModelProperty(value = "退货数量")
private Integer quantity;
/**
* 物料类别
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料类别")
private String materialCategory;
/**
* 物料编码
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料编码")
private String materialCode;
/**
* 物料名称
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料名称")
private String materialName;
/**
* 物料厂商
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料厂商")
private String materialCompany;
/**
* 物流单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "物流单号")
private String logisticOrder;
/**
* 物流服务商
*
* @mbg.generated
*/
@ApiModelProperty(value = "物流服务商")
private String logisticCompany;
/**
* 退货仓库
*
* @mbg.generated
*/
@ApiModelProperty(value = "退货仓库")
private String warehouseName;
/**
* 退货仓库id
*
* @mbg.generated
*/
@ApiModelProperty(value = "退货仓库id")
private Integer warehouseId;
/**
* 退货原因
*
* @mbg.generated
*/
@ApiModelProperty(value = "退货原因")
private String reason;
/**
* 退货状态 未审核 已通过 已驳回
*
* @mbg.generated
*/
@ApiModelProperty(value = "退货状态 已申请 已驳回 已通过 已关闭")
private String status;
/**
* 审批时间
*
* @mbg.generated
*/
@ApiModelProperty(value = "审批时间")
private LocalDateTime checkTime;
/**
* 审核人
*
* @mbg.generated
*/
@ApiModelProperty(value = "审核人")
private String checkUser;
/**
* 审核人姓名
*
* @mbg.generated
*/
@ApiModelProperty(value = "审核人姓名")
private String checkUserName;
/**
* 是否产品或辅料
*
* @mbg.generated
*/
@ApiModelProperty(value = "是否产品或辅料 1 是 0 否")
@Range(min=0,max = 1,message = "是否产品或辅料只可填0或1")
private Integer isproduct;
/**
* 创建人
*
* @mbg.generated
*/
@ApiModelProperty(value = "创建人")
private String createdBy;
/**
* 创建时间
*
* @mbg.generated
*/
@ApiModelProperty(value = "创建时间")
private LocalDateTime createdTime;
/**
* 更新人
*
* @mbg.generated
*/
@ApiModelProperty(value = "更新人")
private String updatedBy;
/**
* 更新时间
*
* @mbg.generated
*/
@ApiModelProperty(value = "更新时间")
private LocalDateTime updatedTime;
/**
* 审核意见
*
* @mbg.generated
*/
@ApiModelProperty(value = "审核意见")
private String checkSuggestion;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.starcharge.wios.dao.entity;
import com.starcharge.wios.validation.CreateEntityGroup;
import com.starcharge.wios.vo.PageVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
*@description:: 辅材申请
*@author:luyc
*@time:2023-09-25 15:59:51 下午
*/
@Data
@ApiModel(value="Tauxiliarymaterials", description="辅材申请")
public class Tauxiliarymaterials extends PageVo implements Serializable{
/**
* id
*
* @mbg.generated
*/
@ApiModelProperty(required = true,value = "id")
private Integer id;
/**
* 物料编码
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料编码")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String materialCode;
/**
* 物料名称
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料名称")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String materialName;
/**
* 计量单位
*
* @mbg.generated
*/
@ApiModelProperty(value = "计量单位")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String measurementUnit;
/**
* 申请数量
*
* @mbg.generated
*/
@ApiModelProperty(value = "申请数量")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String applyQuantity;
/**
* 批准数量
*
* @mbg.generated
*/
@ApiModelProperty(value = "批准数量")
private String approvedQuantity;
/**
* SAP当前库存数
*
* @mbg.generated
*/
@ApiModelProperty(value = "SAP当前库存数")
private String currentySap;
/**
* 近一个月用量(SAP)
*
* @mbg.generated
*/
@ApiModelProperty(value = "近一个月用量(SAP)")
private String monthAmountSap;
/**
* 近一年用量
*
* @mbg.generated
*/
@ApiModelProperty(value = "近一年用量")
private String yearAmount;
/**
* 申请状态 已申请 已驳回 已通过 已关闭
*
* @mbg.generated
*/
@ApiModelProperty(value = "申请状态 已申请 已驳回 已通过 已关闭")
private String applyStatus;
/**
* 申请团队
*
* @mbg.generated
*/
@ApiModelProperty(value = "申请团队")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String team;
/**
* 物流状态 未发货 已发货
*
* @mbg.generated
*/
@ApiModelProperty(value = "物流状态 未发货 已发货")
private String logisticStatus;
/**
* 收货状态 未收货 已收货
*
* @mbg.generated
*/
@ApiModelProperty(value = "收货状态 未收货 已收货")
private String receivingStatus;
/**
* 收货人
*
* @mbg.generated
*/
@ApiModelProperty(value = "收货人")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String recipents;
/**
* 收货地址
*
* @mbg.generated
*/
@ApiModelProperty(value = "收货地址")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String receiveAddress;
/**
* 联系电话
*
* @mbg.generated
*/
@ApiModelProperty(value = "联系电话")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String receivePhone;
/**
* 申请时间
*
* @mbg.generated
*/
@ApiModelProperty(value = "申请时间")
private LocalDateTime applyTime;
/**
* 审核人
*
* @mbg.generated
*/
@ApiModelProperty(value = "审核人")
private String checkUser;
/**
* 审核人姓名
*
* @mbg.generated
*/
@ApiModelProperty(value = "审核人姓名")
private String checkUserName;
/**
* 审核时间
*
* @mbg.generated
*/
@ApiModelProperty(value = "审核时间")
private LocalDateTime checkTime;
/**
* 审核意见
*
* @mbg.generated
*/
@ApiModelProperty(value = "审核意见")
private String checkSuggestion;
/**
* 创建人
*
* @mbg.generated
*/
@ApiModelProperty(value = "创建人")
private String createdBy;
/**
* 创建时间
*
* @mbg.generated
*/
@ApiModelProperty(value = "创建时间")
private LocalDateTime createdTime;
/**
* 更新人
*
* @mbg.generated
*/
@ApiModelProperty(value = "更新人")
private String updatedBy;
/**
* 更新时间
*
* @mbg.generated
*/
@ApiModelProperty(value = "更新时间")
private LocalDateTime updatedTime;
/**
* 安装单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "安装单号")
private String installOrder;
/**
* 规格型号
*
* @mbg.generated
*/
@ApiModelProperty(value = "规格型号")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String specification;
/**
* 物流单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "物流单号")
private String logisticOrder;
/**
* 申请时库存
*
* @mbg.generated
*/
@ApiModelProperty(value = "申请时库存")
private String applyInventory;
private static final long serialVersionUID = 1L;
/**
* 申请单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "申请单号")
private String applyOrder;
/**
* 绑定仓库id
*
* @mbg.generated
*/
@ApiModelProperty(value = "绑定仓库id")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String warehouseId;
}
\ No newline at end of file
package com.starcharge.wios.dao.entity;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 墙盒申请
* <p>
*
* @author <a href="mail to: ning.chai@foxmail.com" rel="nofollow">chaining</a>
*/
@Data
public class WallboxApply {
/** 自增id */
private Long id;
/** 安装订单号 */
private String orderId;
/** 安装服务商id */
private Long supplierId;
/** 申请团队名称 */
private String supplierTeam;
/** 墙盒设备型号(对应物料id) */
private String wallboxItemId;
/** 墙盒品牌 */
private String wallboxModel;
/** 物料类型 */
private String materialType;
/** 物流单号 */
private String trackingNumber;
/** 物流状态0未发货,1已发货 */
private String trackingStatus;
/** 安装状态 */
private String installStatus;
/** 区域id */
private String regionId;
/** 地址 */
private String address;
/** 车企安装单号 */
private String outOrderId;
/** 是否紧急:0:否,1:是 */
private Integer ifEmergency;
/** 是否超时:0:未超时,1:已超时 */
private Long ifTimeout;
/** 审核人员 */
private String checkAccount;
/** 申请状态:1:已申请,2:已通过,3:已驳回,4:已关闭 */
private Long checkStatus;
/** 审核备注 */
private String checkRemarks;
/** 审核时间 */
private Date checkTime;
/** 预约安装日期 */
private Date installReserveTime;
/** 安装进度 */
private Long installProcess;
/** 创建人 */
private String createAccount;
/** 创建时间 */
private Date createdTime;
/** 更新人 */
private String modifyAccount;
/** 更新时间 */
private Date modifyTime;
}
package com.starcharge.wios.dao.mappers;
import com.starcharge.wios.dao.entity.Delivery;
import com.starcharge.wios.dao.entity.DeliveryCriteria;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface DeliveryMapper {
long countByExample(DeliveryCriteria example);
int deleteByExample(DeliveryCriteria example);
int deleteByPrimaryKey(Integer id);
int insert(Delivery record);
int insertSelective(Delivery record);
List<Delivery> selectByExample(DeliveryCriteria example);
Delivery selectByPrimaryKey(Integer id);
int updateByExampleSelective(@Param("record") Delivery record, @Param("example") DeliveryCriteria example);
int updateByExample(@Param("record") Delivery record, @Param("example") DeliveryCriteria example);
int updateByPrimaryKeySelective(Delivery record);
int updateByPrimaryKey(Delivery record);
List<Delivery> selectDeliveryList(Delivery delivery);
}
\ No newline at end of file
package com.starcharge.wios.dao.mappers;
import com.starcharge.wios.dao.entity.Receivednote;
import com.starcharge.wios.dao.entity.ReceivednoteCriteria;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface ReceivednoteMapper {
long countByExample(ReceivednoteCriteria example);
int deleteByExample(ReceivednoteCriteria example);
int deleteByPrimaryKey(Integer id);
int insert(Receivednote record);
int insertSelective(Receivednote record);
List<Receivednote> selectByExample(ReceivednoteCriteria example);
Receivednote selectByPrimaryKey(Integer id);
int updateByExampleSelective(@Param("record") Receivednote record, @Param("example") ReceivednoteCriteria example);
int updateByExample(@Param("record") Receivednote record, @Param("example") ReceivednoteCriteria example);
int updateByPrimaryKeySelective(Receivednote record);
int updateByPrimaryKey(Receivednote record);
List<Receivednote> selectReceivedNoteList(Receivednote receivednote);
}
\ No newline at end of file
package com.starcharge.wios.dao.mappers;
import com.starcharge.wios.dao.entity.Reject;
import com.starcharge.wios.dao.entity.RejectCriteria;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface RejectMapper {
long countByExample(RejectCriteria example);
int deleteByExample(RejectCriteria example);
int deleteByPrimaryKey(Integer id);
int insert(Reject record);
int insertSelective(Reject record);
List<Reject> selectByExample(RejectCriteria example);
Reject selectByPrimaryKey(Integer id);
int updateByExampleSelective(@Param("record") Reject record, @Param("example") RejectCriteria example);
int updateByExample(@Param("record") Reject record, @Param("example") RejectCriteria example);
int updateByPrimaryKeySelective(Reject record);
int updateByPrimaryKey(Reject record);
List<Reject> selectRejectList(Reject reject);
}
\ No newline at end of file
package com.starcharge.wios.dao.mappers;
import com.starcharge.wios.dao.entity.Tauxiliarymaterials;
import com.starcharge.wios.dao.entity.TauxiliarymaterialsCriteria;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TauxiliarymaterialsMapper {
long countByExample(TauxiliarymaterialsCriteria example);
int deleteByExample(TauxiliarymaterialsCriteria example);
int deleteByPrimaryKey(Integer id);
int insert(Tauxiliarymaterials record);
int insertSelective(Tauxiliarymaterials record);
List<Tauxiliarymaterials> selectByExample(TauxiliarymaterialsCriteria example);
Tauxiliarymaterials selectByPrimaryKey(Integer id);
int updateByExampleSelective(@Param("record") Tauxiliarymaterials record, @Param("example") TauxiliarymaterialsCriteria example);
int updateByExample(@Param("record") Tauxiliarymaterials record, @Param("example") TauxiliarymaterialsCriteria example);
int updateByPrimaryKeySelective(Tauxiliarymaterials record);
int updateByPrimaryKey(Tauxiliarymaterials record);
/**
* 查询辅材申请列表
*
* @param tAuxiliaryMaterials 辅材申请
* @return 辅材申请集合
*/
public List<Tauxiliarymaterials> selectTAuxiliaryMaterialsList(Tauxiliarymaterials tAuxiliaryMaterials);
}
\ No newline at end of file
package com.starcharge.wios.dao.mappers;
import com.starcharge.wios.dao.entity.WallboxApply;
import com.starcharge.wios.dto.WallboxApplyDetailQueryDTO;
import com.starcharge.wios.vo.WallboxApplyDetailVO;
import com.starcharge.wios.vo.WallboxApplyInstallInfoVO;
import com.starcharge.wios.vo.WallboxApplyInstallListVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import java.util.List;
/**
* <p>
* 墙盒申请Mapper接口
* <p>
*
* @author <a href="mail to: ning.chai@foxmail.com" rel="nofollow">chaining</a>
*/
public interface WallboxApplyMapper {
/**
* 查询墙盒申请
*
* @param id 墙盒申请主键
* @return 墙盒申请
*/
public WallboxApplyInstallInfoVO selectWallboxApplyById(Long id);
/**
* 墙盒状态
*/
WallboxApplyDetailVO selectWallboxDetail(WallboxApplyDetailQueryDTO query);
/**
* 查询墙盒申请
*
* @param id Order id
* @return 墙盒申请
*/
WallboxApply selectWallboxApplyByOrderId(String id);
/**
* 查询墙盒申请列表
*
* @return 墙盒申请集合
*/
public List<WallboxApply> selectWallboxApplyList(WallboxApply WallboxApply);
public List<WallboxApplyInstallListVO> selectWallboxApplyListFromOrder(WallboxApply WallboxApply);
/**
* 新增墙盒申请
*
* @param tWallboxApply 墙盒申请
* @return 结果
*/
public int insertWallboxApply(WallboxApply WallboxApply);
/**
* 修改墙盒申请
*
* @param tWallboxApply 墙盒申请
* @return 结果
*/
public int updateWallboxApply(WallboxApply WallboxApply);
void batchUpdateWallboxApply(List<WallboxApply> list);
/**
* 删除墙盒申请
*
* @param id 墙盒申请主键
* @return 结果
*/
public int deleteWallboxApplyById(Long id);
/**
* 批量删除墙盒申请
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteWallboxApplyByIds(Long[] ids);
/**
* 通过物料编码更新发货状态
* @param trackingStatus
* @param wallboxItemId
* @return
*/
@Update("update t_wallbox_apply set tracking_status=#{trackingStatus} where wallbox_item_id=#{wallboxItemId}")
public int updateWallBoxTrackingStatusByMC(@Param("trackingStatus")String trackingStatus,@Param("wallboxItemId")String wallboxItemId);
}
package com.starcharge.wios.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.dto
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/9/2610:40
*/
@Data
public class TauxiliarymaterialsCheckDto {
/**
* 审核意见
*
* @mbg.generated
*/
@ApiModelProperty(value = "审核意见")
private String checkSuggestion;
/**
* 申请状态 已申请 已驳回 已通过 已关闭
*
* @mbg.generated
*/
@ApiModelProperty(value = "审核状态 已驳回 已通过 已关闭")
private String applyStatus;
private List<TauxiliarymaterialsCheckVo> tauxiliarymaterialsCheckVoList;
@Data
public static class TauxiliarymaterialsCheckVo{
/**
* id
*
* @mbg.generated
*/
@ApiModelProperty(required = true,value = "id")
private Integer id;
/**
* 批准数量
*
* @mbg.generated
*/
@ApiModelProperty(value = "批准数量")
private String approvedQuantity;
}
}
package com.starcharge.wios.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
* 墙盒申请批量审核
* <p>
*
* @author <a href="mail to: ning.chai@foxmail.com" rel="nofollow">chaining</a>
*/
@Data
public class WallboxApplyBatchCheckDTO {
List<WallboxApplyCheckDTO> checkList;
/** 申请状态:0:已申请,1:已通过,2:已驳回,3:已关闭 */
@ApiModelProperty(value = "申请状态", notes = "1:通过,2:驳回", example = "1", required = true)
private Long checkStatus;
@ApiModelProperty(value = "审核备注",required = true)
private String checkRemarks;
}
package com.starcharge.wios.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 墙盒申请批量审核DTO
* <p>
*
* @author <a href="mail to: ning.chai@foxmail.com" rel="nofollow">chaining</a>
*/
@Data
public class WallboxApplyCheckDTO {
/** 自增id */
private Long id;
/** 安装订单号 */
@ApiModelProperty(value = "安装订单号")
private String orderId;
@ApiModelProperty(value = "安装状态")
private String installStatus;
/** 安装服务商id */
@ApiModelProperty(value = "安装服务商id")
private String supplierId;
/** 申请团队名称 */
@ApiModelProperty(value = "申请团队名称")
private String supplierTeam;
/** 墙盒品牌*/
@ApiModelProperty(value = "墙盒品牌")
private String wallboxModel;
/** 区域id */
@ApiModelProperty(value = "区域id")
private String regionId;
/** 区域id */
@ApiModelProperty(value = "地址")
private String address;
/** 是否紧急:0:否,1:是 */
@ApiModelProperty(value = "是否特殊申请")
private Integer ifEmergency;
/** 申请状态:0:已申请,1:已通过,2:已驳回,3:已关闭 */
@ApiModelProperty(value = "审核状态")
private Long checkStatus;
/**
* 数据状态
*/
private String dataStatus;
/**
* 数据异常信息
*/
private String errorMessage;
}
package com.starcharge.wios.dto;
import lombok.Data;
/**
* <p>
* 墙盒申请状态查询参数
* <p>
*
* @author <a href="mail to: ning.chai@foxmail.com" rel="nofollow">chaining</a>
*/
@Data
public class WallboxApplyDetailQueryDTO {
private String orderId;
private String supplierId;
}
package com.starcharge.wios.enums2;
import org.springframework.util.StringUtils;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.enums
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/9/2515:49
*/
public enum TauxiliarymaterialStatusEnum {
已申请(0,1),已驳回(0,2),已通过(0,3),已关闭(0,4),
未发货(1,1),已发货(1,1),
未收货(2,1), 已收货(2,1);
private int statusType;
private int value;
TauxiliarymaterialStatusEnum(int statusType, int value){
this.value=value;
this.statusType = statusType;
}
public static List<TauxiliarymaterialStatusEnum> getStatusTypeEnums(int statusType) {
TauxiliarymaterialStatusEnum[] values = TauxiliarymaterialStatusEnum.values();
return Arrays.asList(values).stream().filter(v->v.getStatusType() == statusType).collect(Collectors.toList());
}
public static TauxiliarymaterialStatusEnum getEnumsByValue(int statusType,int value) {
TauxiliarymaterialStatusEnum[] values = TauxiliarymaterialStatusEnum.values();
return Arrays.asList(values).stream().filter(v->v.getStatusType() == statusType&&v.getValue()==value).findFirst().orElse(null);
}
public static String getEnumNameByName(int statusType,String name) {
if(StringUtils.hasLength(name)){
TauxiliarymaterialStatusEnum[] values = TauxiliarymaterialStatusEnum.values();
TauxiliarymaterialStatusEnum target= Arrays.asList(values).stream().filter(v->v.getStatusType() == statusType&&v.name().equals(name)).findFirst().orElse(null);
if(target!=null){
return target.name();
}
}
return null;
}
public static TauxiliarymaterialStatusEnum getEnumByName(int statusType,String name) {
if(StringUtils.hasLength(name)){
TauxiliarymaterialStatusEnum[] values = TauxiliarymaterialStatusEnum.values();
TauxiliarymaterialStatusEnum target= Arrays.asList(values).stream().filter(v->v.getStatusType() == statusType&&v.name().equals(name)).findFirst().orElse(null);
if(target!=null){
return target;
}
}
return null;
}
public int getStatusType() {
return this.statusType;
}
public int getValue() {
return value;
}
}
package com.starcharge.wios.service;
import com.ihidea.core.support.session.SessionInfo;
import com.starcharge.wios.auth.service.TokenService;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.time.LocalDateTime;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.service
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/814:26
*/
@Service
public class CommonUpdateService {
@Autowired
private TokenService tokenService;
public static final String CREATEDBY="createdBy";
public static final String CREATEDTIME="createdTime";
public static final String UPDATEDBY="updatedBy";
public static final String UPDATEDTIME="updatedTime";
public void UpdateColumns(Object entity,boolean isCreate){
SessionInfo sessionInfo = tokenService.getUser();
if(sessionInfo==null){
return;
}
try {
var now=LocalDateTime.now();
if(isCreate){
Field createdby=entity.getClass().getDeclaredField(CREATEDBY);
if(createdby!=null){
createdby.setAccessible(true);
createdby.set(entity,sessionInfo.getUserId());
}
Field createdtime=entity.getClass().getDeclaredField(CREATEDTIME);
if(createdtime!=null){
createdtime.setAccessible(true);
createdtime.set(entity,now);
}
}
Field updatedby=entity.getClass().getDeclaredField(UPDATEDBY);
if(updatedby!=null){
updatedby.setAccessible(true);
updatedby.set(entity,sessionInfo.getUserId());
}
Field updatedtime=entity.getClass().getDeclaredField(UPDATEDTIME);
if(updatedtime!=null){
updatedtime.setAccessible(true);
updatedtime.set(entity,now);
}
} catch (NoSuchFieldException e) {
return;
} catch (IllegalAccessException e) {
return;
}
}
}
package com.starcharge.wios.service;
import org.springframework.stereotype.Service;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.utils
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/815:57
*/
@Service
public class SnowFlakeService {
// 初始时间戳(纪年),可用雪花算法服务上线时间戳的值
// 1650789964886:2022-04-24 16:45:59
private static final long INIT_EPOCH = 1650789964886L;
// 记录最后使用的毫秒时间戳,主要用于判断是否同一毫秒,以及用于服务器时钟回拨判断
private long lastTimeMillis = -1L;
// 最后12位,代表每毫秒内可产生最大序列号,即 2^12 - 1 = 4095
private static final long SEQUENCE_BITS = 12L;
// 掩码(最低12位为1,高位都为0),主要用于与自增后的序列号进行位与,如果值为0,则代表自增后的序列号超过了4095
// 0000000000000000000000000000000000000000000000000000111111111111
private static final long SEQUENCE_MASK = ~(-1L << SEQUENCE_BITS);
// 同一毫秒内的最新序号,最大值可为 2^12 - 1 = 4095
private long sequence;
/**
* 通过该方法生成分布式ID
* 整个算法的流程:
* 1.先获取当前时间戳到毫秒。
* 2.当前时间戳-INIT_EPOCH时间(防止41位空间浪费)
* 3.查看当前日期是否同一毫秒。是统一毫秒直接相加。不是同一毫秒的话直接新增。
* 4.如果当前时间戳内生成的ID超过了4095,那么可以循环阻塞等待下一1毫秒在生成。
* 5.如果服务器时间出现问题,回退了,这抛出异常。(时间回拨的问题)
* @param dataCenterId 机器中心ID
* @param workerId 服务器ID
* @return
*/
public synchronized long getNextId(long dataCenterId, long workerId) {
// 获取当前毫秒
long currentTimeMillis = System.currentTimeMillis();
// 5.如果服务器时间出现问题,回退了,这抛出异常。(时间回拨的问题)
if (currentTimeMillis < lastTimeMillis) {
throw new RuntimeException(
String.format("可能出现服务器时钟回拨问题,请检查服务器时间。当前服务器时间戳:%d,上一次使用时间戳:%d", currentTimeMillis,
lastTimeMillis));
}
if (currentTimeMillis == lastTimeMillis) {
//4095+1 和 SEQUENCE_MASK & 得出的结果是0。
sequence = (sequence + 1) & SEQUENCE_MASK;
if (sequence == 0) {
//4.如果当前时间戳内生成的ID超过了4095,那么可以循环阻塞等待下一1毫秒在生成。
currentTimeMillis = getNextMillis(lastTimeMillis);
}
} else { // 不在同一毫秒内,则序列号重新从0开始,序列号最大值为4095
sequence = 0;
}
// 记录最后一次使用的毫秒时间戳
lastTimeMillis = currentTimeMillis;
// 时间戳部分,currentTimeMillis - INIT_EPOCH 和 因为什么要左移,具体原因可以看我的上一篇Redis生成ID中有详细的解释
return ((currentTimeMillis - INIT_EPOCH) << 22)
// 数据中心部分
| (dataCenterId << 17)
// 机器表示部分
| (workerId << 12)
// 序列号部分
| sequence;
}
/**
* 获取指定时间戳的接下来的时间戳,也可以说是下一毫秒
* @param lastTimeMillis 指定毫秒时间戳
* @return 时间戳
*/
private long getNextMillis(long lastTimeMillis) {
long currentTimeMillis = System.currentTimeMillis();
while (currentTimeMillis <= lastTimeMillis) {
currentTimeMillis = System.currentTimeMillis();
}
return currentTimeMillis;
}
}
package com.starcharge.wios.utils;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;
/**
* Excel 工具类
*
*/
public class ExcelUtils {
/**
* 将列表以 Excel 响应给前端
*
* @param response 响应
* @param filename 文件名
* @param sheetName Excel sheet 名
* @param head Excel head 头
* @param data 数据列表哦
* @param <T> 泛型,保证 head 和 data 类型的一致性
* @throws IOException 写入失败的情况
*/
public static <T> void write(HttpServletResponse response, String filename, String sheetName,
Class<T> head, List<T> data) throws IOException {
// 输出 Excel
EasyExcel.write(response.getOutputStream(), head)
.autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 基于 column 长度,自动适配。最大 255 宽度
.sheet(sheetName).doWrite(data);
// 设置 header 和 contentType。写在最后的原因是,避免报错时,响应 contentType 已经被修改了
response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
response.setContentType("application/octet-stream;charset=ISO8859-1");
}
public static <T> List<T> read(MultipartFile file, Class<T> head) throws IOException {
return EasyExcel.read(file.getInputStream(), head, null)
.autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理
.doReadAllSync();
}
}
package com.starcharge.wios.validation;
public interface CreateEntityGroup {
}
package com.starcharge.wios.validation;
import java.lang.annotation.*;
@Target(value = ElementType.METHOD)
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
public @interface ParamsValidate {
}
package com.starcharge.wios.validation;
import com.alibaba.fastjson.JSON;
import com.ihidea.core.support.exception.ServiceException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.validation.BindingResult;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 类说明
*
* @author yincheng lu
* @time 2019年1月4日上午11:11:39
* @Description
*/
@Aspect
@Component
@Order(2)
public class ParamsValidation {
private static final Log logger = LogFactory.getLog(ParamsValidation.class);
public static final String FILE_SUFFIX = "_file";
@Pointcut("@annotation(com.starcharge.wios.validation.ParamsValidate)") // ||(execution(*
public static void paramsValidate() {
}
@Autowired
MessageSource messageSource;
@Before("paramsValidate()")
public void doBeforeInServiceLayer(JoinPoint joinPoint) {
}
@After("paramsValidate()")
public void doAfterInServiceLayer(JoinPoint joinPoint) {
}
public static final String BaseEntityPackage="com.starcharge.wios";
@Around("paramsValidate()")
public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
logger.debug("start to validation params");
Map<String, String> resultMap = new HashMap<>();
Object[] arguments = pjp.getArgs();//实际参数
Method realMethod = getProceedJoinPointMethod(pjp);
Parameter[] parameters = realMethod.getParameters();//方法参数
List<BindingResult> brs = getClassFromArray(arguments, BindingResult.class);
if (brs != null && brs.size() > 0) {
brs.forEach(br -> {
if (br.hasErrors()) {
br.getFieldErrors().forEach(e -> {
resultMap.put(e.getField() + "", messageSource.getMessage(e, LocaleContextHolder.getLocale()));
});
br.getGlobalErrors().forEach(e -> {
resultMap.put(e.getObjectName() + "",
messageSource.getMessage(e, LocaleContextHolder.getLocale()));
});
}
});
}
if (resultMap.size() > 0) {
throw new ServiceException("400", "参数错误:"+ JSON.toJSONString(resultMap));
} else {
Object result = pjp.proceed();// result的值就是被拦截方法的返回值
return result;
}
}
public Method getProceedJoinPointMethod(ProceedingJoinPoint pjp)
throws NoSuchMethodException, SecurityException {
Method method = ((MethodSignature) pjp.getSignature()).getMethod();
Method realMethod = pjp.getTarget().getClass().getDeclaredMethod(method.getName(), method.getParameterTypes());
return realMethod;
}
public static <T> List<T> getClassFromArray(Object[] data,Class<T> object) {
List<T> result=new ArrayList<>();
for(int i=0;i<data.length;i++) {
if(object.isInstance(data[i])) {
result.add( (T) data[i]);
}
}
return result;
}
}
package com.starcharge.wios.validation;
public interface UpdateEntityGroup {
}
package com.starcharge.wios.vo;
import com.starcharge.wios.validation.CreateEntityGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.vo
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/818:13
*/
@Data
public class DeliveryAddVo {
/**
* 发货单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "发货单号")
private String deliveryOrder;
/**
* 安装单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "安装单号")
@NotNull(groups = CreateEntityGroup.class,message = "缺少安装单号")
@NotEmpty(groups = CreateEntityGroup.class,message = "缺少安装单号")
private String installOrder;
/**
* 产品批次
*
* @mbg.generated
*/
@ApiModelProperty(value = "产品批次",required = true)
@NotNull(groups = CreateEntityGroup.class,message = "缺少产品批次")
@NotEmpty(groups = CreateEntityGroup.class,message = "缺少产品批次")
private String productBatch;
/**
* 发货数量
*
* @mbg.generated
*/
@ApiModelProperty(value = "发货数量")
@Min(value = 1,groups = CreateEntityGroup.class,message = "发货数量必须大于0")
private Integer quantity;
/**
* 物料类别
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料类别",required = true)
@NotNull(groups = CreateEntityGroup.class,message = "缺少物料类别")
@NotEmpty(groups = CreateEntityGroup.class,message = "缺少物料类别")
private String materialCategory;
/**
* 物料编码
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料编码",required = true)
@NotNull(groups = CreateEntityGroup.class,message = "缺少物料编码")
@NotEmpty(groups = CreateEntityGroup.class,message = "缺少物料编码")
private String materialCode;
/**
* 物料名称
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料名称",required = true)
@NotNull(groups = CreateEntityGroup.class,message = "缺少物料名称")
@NotEmpty(groups = CreateEntityGroup.class,message = "缺少物料名称")
private String materialName;
/**
* 物料厂商
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料厂商",required = true)
@NotNull(groups = CreateEntityGroup.class,message = "缺少物料厂商")
@NotEmpty(groups = CreateEntityGroup.class,message = "缺少物料厂商")
private String materialCompany;
/**
* 物流单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "物流单号",required = true)
// @NotNull(groups = CreateEntityGroup.class)
// @NotEmpty(groups = CreateEntityGroup.class)
private String logisticOrder;
/**
* 物流服务商
*
* @mbg.generated
*/
@ApiModelProperty(value = "物流服务商",required = true)
// @NotNull(groups = CreateEntityGroup.class)
// @NotEmpty(groups = CreateEntityGroup.class)
private String logisticCompany;
/**
* 物流状态 未发货 已发货
*
* @mbg.generated
*/
@ApiModelProperty(value = "物流状态 未发货 已发货")
private String logisticStatus;
/**
* 申请团队
*
* @mbg.generated
*/
@ApiModelProperty(value = "申请团队")
@NotNull(groups = CreateEntityGroup.class,message = "缺少申请团队")
@NotEmpty(groups = CreateEntityGroup.class,message = "缺少申请团队")
private String team;
/**
* 是否产品或辅料
*
* @mbg.generated
*/
@ApiModelProperty(value = "是否产品或辅料 1 是 0 否")
@NotNull(groups = CreateEntityGroup.class)
@Range(min=0,max = 1,message = "是否产品或辅料只可填0或1",groups =CreateEntityGroup.class )
private Integer isproduct;
}
package com.starcharge.wios.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.vo
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/818:18
*/
@Data
public class DeliveryExcelVo {
/**
* id
*
* @mbg.generated
*/
@ExcelProperty(value = "id")
private Integer id;
/**
* 发货单号
*
* @mbg.generated
*/
@ExcelProperty(value = "发货单号")
private String deliveryOrder;
/**
* 安装单号
*
* @mbg.generated
*/
@ExcelProperty(value = "安装单号")
private String installOrder;
/**
* 产品批次
*
* @mbg.generated
*/
@ExcelProperty(value = "产品批次")
private String productBatch;
/**
* 发货数量
*
* @mbg.generated
*/
@ExcelProperty(value = "发货数量")
private Integer quantity;
/**
* 物料类别
*
* @mbg.generated
*/
@ExcelProperty(value = "物料类别")
private String materialCategory;
/**
* 物料编码
*
* @mbg.generated
*/
@ExcelProperty(value = "物料编码")
private String materialCode;
/**
* 物料名称
*
* @mbg.generated
*/
@ExcelProperty(value = "物料名称")
private String materialName;
/**
* 物料厂商
*
* @mbg.generated
*/
@ExcelProperty(value = "物料厂商")
private String materialCompany;
/**
* 物流单号
*
* @mbg.generated
*/
@ExcelProperty(value = "物流单号")
private String logisticOrder;
/**
* 物流服务商
*
* @mbg.generated
*/
@ExcelProperty(value = "物流服务商")
private String logisticCompany;
/**
* 物流状态 未发货 已发货
*
* @mbg.generated
*/
@ExcelProperty(value = "物流状态 未发货 已发货")
private String logisticStatus;
/**
* 申请团队
*
* @mbg.generated
*/
@ExcelProperty(value = "申请团队")
private String team;
/**
* 是否产品或辅料
*
* @mbg.generated
*/
@ExcelProperty(value = "是否产品或辅料")
private Integer isproduct;
/**
* 创建人
*
* @mbg.generated
*/
@ExcelProperty(value = "创建人")
private String createdBy;
/**
* 创建时间
*
* @mbg.generated
*/
@ExcelProperty(value = "创建时间")
private LocalDateTime createdTime;
/**
* 更新人
*
* @mbg.generated
*/
@ExcelProperty(value = "更新人")
private String updatedBy;
/**
* 更新时间
*
* @mbg.generated
*/
@ExcelProperty(value = "更新时间")
private LocalDateTime updatedTime;
}
package com.starcharge.wios.vo;
import lombok.Data;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.vo
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/1217:10
*/
@Data
public class PageVo {
private int page;
private int pagecount;
}
package com.starcharge.wios.vo;
import com.starcharge.wios.validation.CreateEntityGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;
import java.util.List;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.vo
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/814:40
*/
@Data
public class ReceivednoteAddVo {
/**
* 产品批次
*
* @mbg.generated
*/
@ApiModelProperty(value = "产品批次")
@NotNull(groups = CreateEntityGroup.class)
@NotEmpty(groups = CreateEntityGroup.class)
private String productBatch;
/**
* 物料类别
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料类别")
@NotNull(groups = CreateEntityGroup.class)
@NotEmpty(groups = CreateEntityGroup.class)
private String materialCategory;
/**
* 物料名称
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料名称")
@NotNull(groups = CreateEntityGroup.class)
@NotEmpty(groups = CreateEntityGroup.class)
private String materialName;
/**
* 到货仓库
*
* @mbg.generated
*/
@ApiModelProperty(value = "到货仓库")
@NotNull(groups = CreateEntityGroup.class)
@NotEmpty(groups = CreateEntityGroup.class)
private String arrivalWarehouse;
/**
* 到货仓库id
*
* @mbg.generated
*/
@ApiModelProperty(value = "到货仓库id")
@NotNull(groups = CreateEntityGroup.class)
private Integer arrivalWarehouseId;
/**
* 收货人
*
* @mbg.generated
*/
@ApiModelProperty(value = "收货人")
private String receiver;
/**
* 收货时间
*
* @mbg.generated
*/
@ApiModelProperty(value = "收货时间")
private LocalDateTime receivingTime;
@ApiModelProperty(value = "单条收货详情")
@NotNull(groups = CreateEntityGroup.class)
@Size(min=1,groups = CreateEntityGroup.class)
private List<SingleReceivenote> singleReceivenotes;
/**
* 是否产品或辅料
*
* @mbg.generated
*/
@ApiModelProperty(value = "是否产品或辅料 1 是 0 否")
@NotNull(groups = CreateEntityGroup.class)
@Range(min=0,max = 1,message = "是否产品或辅料只可填0或1",groups = CreateEntityGroup.class)
private Integer isproduct;
@Data
public static class SingleReceivenote{
/**
* 物料编码
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料编码群")
@NotNull(groups = CreateEntityGroup.class)
@NotEmpty(groups = CreateEntityGroup.class)
private String materialCode;
/**
* 到货数量
*
* @mbg.generated
*/
@ApiModelProperty(value = "到货数量")
@NotNull(groups = CreateEntityGroup.class)
@Size(min=1,groups = CreateEntityGroup.class)
private Integer arrivalQuantity;
/**
* 安装单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "安装单号")
private String installOrder;
/**
* 辅料申请单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "辅料申请单号")
private Integer auxiliaryId;
}
}
package com.starcharge.wios.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.vo
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/815:49
*/
@Data
public class ReceivednoteExcelVo {
/**
* id
*
* @mbg.generated
*/
@ExcelProperty(value = "id")
private Integer id;
/**
* 收货单号
*
* @mbg.generated
*/
@ExcelProperty(value = "收货单号")
private String receivedOrder;
/**
* 安装单号
*
* @mbg.generated
*/
@ExcelProperty(value = "安装单号")
private String installOrder;
/**
* 产品批次
*
* @mbg.generated
*/
@ExcelProperty(value = "产品批次")
private String productBatch;
/**
* 物料类别
*
* @mbg.generated
*/
@ExcelProperty(value = "物料类别")
private String materialCategory;
/**
* 物料编码
*
* @mbg.generated
*/
@ExcelProperty(value = "物料编码")
private String materialCode;
/**
* 物料名称
*
* @mbg.generated
*/
@ExcelProperty(value = "物料名称")
private String materialName;
/**
* 到货仓库
*
* @mbg.generated
*/
@ExcelProperty(value = "到货仓库")
private String arrivalWarehouse;
/**
* 到货仓库id
*
* @mbg.generated
*/
@ExcelProperty(value = "到货仓库id")
private Integer arrivalWarehouseId;
/**
* 收货人
*
* @mbg.generated
*/
@ExcelProperty(value = "收货人")
private String receiver;
/**
* 收货时间
*
* @mbg.generated
*/
@ExcelProperty(value = "收货时间")
private LocalDateTime receivingTime;
/**
* 到货数量
*
* @mbg.generated
*/
@ExcelProperty(value = "到货数量")
private Integer arrivalQuantity;
/**
* 辅料申请单号
*
* @mbg.generated
*/
@ExcelProperty(value = "辅料申请单号")
private Integer auxiliaryId;
/**
* 是否产品或辅料
*
* @mbg.generated
*/
@ExcelProperty(value = "是否产品或辅料")
private Integer isproduct;
/**
* 创建人
*
* @mbg.generated
*/
@ExcelProperty(value = "创建人")
private String createdBy;
/**
* 创建时间
*
* @mbg.generated
*/
@ExcelProperty(value = "创建时间")
private LocalDateTime createdTime;
/**
* 更新人
*
* @mbg.generated
*/
@ExcelProperty(value = "更新人")
private String updatedBy;
/**
* 更新时间
*
* @mbg.generated
*/
@ExcelProperty(value = "更新时间")
private LocalDateTime updatedTime;
}
package com.starcharge.wios.vo;
import com.starcharge.wios.validation.CreateEntityGroup;
import com.starcharge.wios.validation.UpdateEntityGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.vo
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/818:37
*/
@Data
public class RejectAddVo {
/**
* id
*
* @mbg.generated
*/
@ApiModelProperty(required = true,value = "id")
@NotNull(groups = UpdateEntityGroup.class)
@Min(value = 1,groups = UpdateEntityGroup.class)
private Integer id;
/**
* 退货单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "退货单号")
private String rejectOrder;
/**
* 安装单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "安装单号")
private String installOrder;
/**
* 产品批次
*
* @mbg.generated
*/
@ApiModelProperty(value = "产品批次")
@NotNull(groups = CreateEntityGroup.class)
@NotEmpty(groups = CreateEntityGroup.class)
private String productBatch;
/**
* 退货数量
*
* @mbg.generated
*/
@ApiModelProperty(value = "退货数量")
@NotNull(groups = CreateEntityGroup.class)
@Min(value = 1,groups =CreateEntityGroup.class )
private Integer quantity;
/**
* 物料类别
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料类别")
@NotNull(groups = CreateEntityGroup.class)
@NotEmpty(groups = CreateEntityGroup.class)
private String materialCategory;
/**
* 物料编码
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料编码")
@NotNull(groups = CreateEntityGroup.class)
@NotEmpty(groups = CreateEntityGroup.class)
private String materialCode;
/**
* 物料名称
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料名称")
@NotNull(groups = CreateEntityGroup.class)
@NotEmpty(groups = CreateEntityGroup.class)
private String materialName;
/**
* 物料厂商
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料厂商")
private String materialCompany;
/**
* 物流单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "物流单号")
private String logisticOrder;
/**
* 物流服务商
*
* @mbg.generated
*/
@ApiModelProperty(value = "物流服务商")
private String logisticCompany;
/**
* 退货仓库
*
* @mbg.generated
*/
@ApiModelProperty(value = "退货仓库")
@NotNull(groups = CreateEntityGroup.class)
@NotEmpty(groups = CreateEntityGroup.class)
private String warehouseName;
/**
* 退货仓库id
*
* @mbg.generated
*/
@ApiModelProperty(value = "退货仓库id")
@NotNull(groups = CreateEntityGroup.class)
@Min(value = 1,groups =CreateEntityGroup.class )
private Integer warehouseId;
/**
* 退货原因
*
* @mbg.generated
*/
@ApiModelProperty(value = "退货原因")
@NotNull(groups = CreateEntityGroup.class)
@NotEmpty(groups = CreateEntityGroup.class)
private String reason;
/**
* 是否产品或辅料
*
* @mbg.generated
*/
@ApiModelProperty(value = "是否产品或辅料 1 是 0 否")
@NotNull(groups = CreateEntityGroup.class)
@Range(min=0,max = 1,message = "是否产品或辅料只可填0或1",groups = {CreateEntityGroup.class,UpdateEntityGroup.class})
private Integer isproduct;
}
package com.starcharge.wios.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.vo
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/99:08
*/
@Data
public class RejectCheckVo {
@Min(1)
private int id;
@ApiModelProperty(value = "审核意见")
@NotNull
@NotEmpty
private String checkSuggestion;
@ApiModelProperty(value = "退货状态 已申请 已驳回 已通过 已关闭")
@NotNull
@NotEmpty
private String status;
}
package com.starcharge.wios.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.vo
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/10/819:13
*/
@Data
public class RejectExcelVo {
/**
* id
*
* @mbg.generated
*/
@ExcelProperty(value = "id")
private Integer id;
/**
* 退货单号
*
* @mbg.generated
*/
@ExcelProperty(value = "退货单号")
private String rejectOrder;
/**
* 安装单号
*
* @mbg.generated
*/
@ExcelProperty(value = "安装单号")
private String installOrder;
/**
* 产品批次
*
* @mbg.generated
*/
@ExcelProperty(value = "产品批次")
private String productBatch;
/**
* 退货数量
*
* @mbg.generated
*/
@ExcelProperty(value = "退货数量")
private Integer quantity;
/**
* 物料类别
*
* @mbg.generated
*/
@ExcelProperty(value = "物料类别")
private String materialCategory;
/**
* 物料编码
*
* @mbg.generated
*/
@ExcelProperty(value = "物料编码")
private String materialCode;
/**
* 物料名称
*
* @mbg.generated
*/
@ExcelProperty(value = "物料名称")
private String materialName;
/**
* 物料厂商
*
* @mbg.generated
*/
@ExcelProperty(value = "物料厂商")
private String materialCompany;
/**
* 物流单号
*
* @mbg.generated
*/
@ExcelProperty(value = "物流单号")
private String logisticOrder;
/**
* 物流服务商
*
* @mbg.generated
*/
@ExcelProperty(value = "物流服务商")
private String logisticCompany;
/**
* 退货仓库
*
* @mbg.generated
*/
@ExcelProperty(value = "退货仓库")
private String warehouseName;
/**
* 退货仓库id
*
* @mbg.generated
*/
@ExcelProperty(value = "退货仓库id")
private Integer warehouseId;
/**
* 退货原因
*
* @mbg.generated
*/
@ExcelProperty(value = "退货原因")
private String reason;
/**
* 退货状态 未审核 已通过 已驳回
*
* @mbg.generated
*/
@ExcelProperty(value = "退货状态 未审核 已通过 已驳回")
private String status;
/**
* 审批时间
*
* @mbg.generated
*/
@ExcelProperty(value = "审批时间")
private LocalDateTime checkTime;
/**
* 审核人
*
* @mbg.generated
*/
@ExcelProperty(value = "审核人")
private String checkUser;
/**
* 审核人姓名
*
* @mbg.generated
*/
@ExcelProperty(value = "审核人姓名")
private String checkUserName;
/**
* 审核意见
*
* @mbg.generated
*/
@ExcelProperty(value = "审核意见")
private String checkSuggestion;
/**
* 是否产品或辅料
*
* @mbg.generated
*/
@ExcelProperty(value = "是否产品或辅料")
private Integer isproduct;
/**
* 创建人
*
* @mbg.generated
*/
@ExcelProperty(value = "创建人")
private String createdBy;
/**
* 创建时间
*
* @mbg.generated
*/
@ExcelProperty(value = "创建时间")
private LocalDateTime createdTime;
/**
* 更新人
*
* @mbg.generated
*/
@ExcelProperty(value = "更新人")
private String updatedBy;
/**
* 更新时间
*
* @mbg.generated
*/
@ExcelProperty(value = "更新时间")
private LocalDateTime updatedTime;
}
package com.starcharge.wios.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.vo
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/9/2710:26
*/
@Data
public class TauxiliarymaterialsExcelVo {
/**
* id
*
* @mbg.generated
*/
@ExcelProperty("id")
private Integer id;
/**
* 物料编码
*
* @mbg.generated
*/
@ExcelProperty(value = "物料编码")
private String materialCode;
/**
* 物料名称
*
* @mbg.generated
*/
@ExcelProperty(value = "物料名称")
private String materialName;
/**
* 计量单位
*
* @mbg.generated
*/
@ExcelProperty(value = "计量单位")
private String measurementUnit;
/**
* 申请数量
*
* @mbg.generated
*/
@ExcelProperty(value = "申请数量")
private String applyQuantity;
/**
* 批准数量
*
* @mbg.generated
*/
@ExcelProperty(value = "批准数量")
private String approvedQuantity;
/**
* SAP当前库存数
*
* @mbg.generated
*/
@ExcelProperty(value = "SAP当前库存数")
private String currentySap;
/**
* 近一个月用量(SAP)
*
* @mbg.generated
*/
@ExcelProperty(value = "近一个月用量(SAP)")
private String monthAmountSap;
/**
* 近一年用量
*
* @mbg.generated
*/
@ExcelProperty(value = "近一年用量")
private String yearAmount;
/**
* 申请状态 已申请 已驳回 已通过 已关闭
*
* @mbg.generated
*/
@ExcelProperty(value = "申请状态 已申请 已驳回 已通过 已关闭")
private String applyStatus;
/**
* 申请团队
*
* @mbg.generated
*/
@ExcelProperty(value = "申请团队")
private String team;
/**
* 物流状态 未发货 已发货
*
* @mbg.generated
*/
@ExcelProperty(value = "物流状态 未发货 已发货")
private String logisticStatus;
/**
* 收货状态 未收货 已收货
*
* @mbg.generated
*/
@ExcelProperty(value = "收货状态 未收货 已收货")
private String receivingStatus;
/**
* 收货人
*
* @mbg.generated
*/
@ExcelProperty(value = "收货人")
private String recipents;
/**
* 收货地址
*
* @mbg.generated
*/
@ExcelProperty(value = "收货地址")
private String receiveAddress;
/**
* 联系电话
*
* @mbg.generated
*/
@ExcelProperty(value = "联系电话")
private String receivePhone;
/**
* 申请时间
*
* @mbg.generated
*/
@ExcelProperty(value = "申请时间")
private LocalDateTime applyTime;
/**
* 审核人
*
* @mbg.generated
*/
@ExcelProperty(value = "审核人")
private String checkUser;
/**
* 审核人姓名
*
* @mbg.generated
*/
@ExcelProperty(value = "审核人姓名")
private String checkUserName;
/**
* 审核时间
*
* @mbg.generated
*/
@ExcelProperty(value = "审核时间")
private LocalDateTime checkTime;
/**
* 审核意见
*
* @mbg.generated
*/
@ExcelProperty(value = "审核意见")
private String checkSuggestion;
/**
* 创建人
*
* @mbg.generated
*/
@ExcelProperty(value = "创建人")
private String createdBy;
/**
* 创建时间
*
* @mbg.generated
*/
@ExcelProperty(value = "创建时间")
private LocalDateTime createdTime;
/**
* 更新人
*
* @mbg.generated
*/
@ExcelProperty(value = "更新人")
private String updatedBy;
/**
* 更新时间
*
* @mbg.generated
*/
@ExcelProperty(value = "更新时间")
private LocalDateTime updatedTime;
/**
* 安装单号
*
* @mbg.generated
*/
@ExcelProperty(value = "安装单号")
private String installOrder;
/**
* 规格型号
*
* @mbg.generated
*/
@ExcelProperty(value = "规格型号")
private String specification;
/**
* 物流单号
*
* @mbg.generated
*/
@ExcelProperty(value = "物流单号")
private String logisticOrder;
/**
* 申请时库存
*
* @mbg.generated
*/
@ExcelProperty(value = "申请时库存")
private String applyInventory;
/**
* 申请单号
*
* @mbg.generated
*/
@ExcelProperty(value = "申请单号")
private String applyOrder;
/**
* 绑定仓库id
*
* @mbg.generated
*/
@ExcelProperty(value = "绑定仓库id")
private String warehouseId;
}
package com.starcharge.wios.vo;
import com.starcharge.wios.validation.CreateEntityGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* @projectName:xr-wios
* @packageName:com.starcharge.wios.vo
* @Description:TODO
* @Author:luyincheng
* @CreateDate: 2023/9/269:31
*/
@Data
public class TauxiliarymaterialsVo {
/**
* id
*
* @mbg.generated
*/
@ApiModelProperty(required = true,value = "id")
@NotNull
private Integer id;
/**
* 物料编码
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料编码")
private String materialCode;
/**
* 物料名称
*
* @mbg.generated
*/
@ApiModelProperty(value = "物料名称")
private String materialName;
/**
* 计量单位
*
* @mbg.generated
*/
@ApiModelProperty(value = "计量单位")
private String measurementUnit;
/**
* 申请数量
*
* @mbg.generated
*/
@ApiModelProperty(value = "申请数量")
private String applyQuantity;
/**
* 申请团队
*
* @mbg.generated
*/
@ApiModelProperty(value = "申请团队")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String team;
/**
* 收货人
*
* @mbg.generated
*/
@ApiModelProperty(value = "收货人")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String recipents;
/**
* 收货地址
*
* @mbg.generated
*/
@ApiModelProperty(value = "收货地址")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String receiveAddress;
/**
* 联系电话
*
* @mbg.generated
*/
@ApiModelProperty(value = "联系电话")
@NotEmpty(groups = {CreateEntityGroup.class})
@NotNull(groups = {CreateEntityGroup.class})
private String receivePhone;
/**
* 安装单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "安装单号")
private String installOrder;
/**
* 规格型号
*
* @mbg.generated
*/
@ApiModelProperty(value = "规格型号")
private String specification;
/**
* 物流单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "物流单号")
private String logisticOrder;
/**
* 申请时库存
*
* @mbg.generated
*/
@ApiModelProperty(value = "申请时库存")
private String applyInventory;
/**
* 申请单号
*
* @mbg.generated
*/
@ApiModelProperty(value = "申请单号")
private String applyOrder;
/**
* 绑定仓库id
*
* @mbg.generated
*/
@ApiModelProperty(value = "绑定仓库id")
private String warehouseId;
}
package com.starcharge.wios.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* <p>
* 墙盒申请审核
* <p>
*
* @author <a href="mail to: ning.chai@foxmail.com" rel="nofollow">chaining</a>
*/
@Data
public class WallboxApplyCheckVO {
@ApiModelProperty(value = "数据id", notes = "不是安装订单号", example = "1", required = true)
@NotNull(message = "id不能为空")
private Long id;
@ApiModelProperty(value = "安装订单号", notes = "", example = "CA20201204044558", required = true)
private String orderId;
/** 申请状态:0:已申请,1:已通过,2:已驳回,3:已关闭 */
@ApiModelProperty(value = "审核意见", notes = "1:通过,2:驳回", example = "1", required = true)
@NotNull(message = "审核意见不能为空")
private Long checkStatus;
@ApiModelProperty(value = "审核备注", notes = "", example = "同意", required = true)
private String checkRemarks;
}
package com.starcharge.wios.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 墙盒申请详情页面
* <p>
*
* @author <a href="mail to: ning.chai@foxmail.com" rel="nofollow">chaining</a>
*/
@Data
public class WallboxApplyDetailVO {
/**
* t_order数据
*/
@ApiModelProperty(value = "客户姓名")
private String userName;
@ApiModelProperty(value = "联系电话")
private String userPhone;
@ApiModelProperty(value = "安装单号")
private String orderId;
@ApiModelProperty(value = "墙盒设备型号")
private String itemModel;
@ApiModelProperty(value = "墙盒设备编号")
private String wallboxCode;
@ApiModelProperty(value = "墙盒品牌")
private String wallboxModel;
/**
* t_wallbox_apply
*/
@ApiModelProperty(value = "物流单号")
private String trackingNumber;
@ApiModelProperty(value = "物流状态0未发货,1已发货")
private String trackingStatus;
@ApiModelProperty(value = "墙盒是否申请")
private String checkStatus;
/**
* t_delivery
*/
@ApiModelProperty(value = "物流供应商")
private String logisticCompany;
/**
* 物流接口
*/
//发货客户名称
private String shipperName;
//发货联系人名称
private String contactName;
//联系人手机
private String contactMobile;
//收货人联系姓名
private String receiverCustName;
//接货人联系手机
private String receiveMobile;
//接货人联系电话
private String receivePhone;
}
package com.starcharge.wios.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.starcharge.wios.validation.CreateEntityGroup;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* <p>
* 墙盒申请excel
* <p>
*
* @author <a href="mail to: ning.chai@foxmail.com" rel="nofollow">chaining</a>
*/
@Data
public class WallboxApplyExcelVO {
/** 安装订单号 */
@ExcelProperty("安装订单号")
@NotNull(groups = CreateEntityGroup.class,message = "缺少安装单号")
@NotEmpty(groups = CreateEntityGroup.class,message = "缺少安装单号")
private String orderId;
/** 墙盒设备型号(对应物料id) */
@ExcelIgnore
private String wallboxItemId;
@ExcelIgnore
private String wallboxModel;
/** 是否紧急:0:否,1:是 */
@ExcelProperty("是否紧急(0否,1是)")
@NotNull(groups = CreateEntityGroup.class,message = "缺少是否紧急数据")
private Integer ifEmergency;
/**
* 错误信息
*/
@ExcelIgnore
private String errorMessage;
}
package com.starcharge.wios.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 墙盒申请安装团队
* <p>
*
* @author <a href="mail to: ning.chai@foxmail.com" rel="nofollow">chaining</a>
*/
@Data
public class WallboxApplyInstallInfoVO {
/** 自增id */
private Long id;
/** 安装订单号 */
@ApiModelProperty(value = "安装订单号")
private String orderId;
@ApiModelProperty(value = "安装状态")
private String installStatus;
/** 安装服务商id */
@ApiModelProperty(value = "安装服务商id")
private String supplierId;
/** 申请团队名称 */
@ApiModelProperty(value = "申请团队名称")
private String supplierTeam;
/** 墙盒设备型号(对应物料id) */
@ApiModelProperty(value = "墙盒设备型号(对应物料id)")
private String wallboxItemId;
/** 物料类型 */
@ApiModelProperty(value = "物料类型")
private String materialType;
/** 墙盒品牌*/
@ApiModelProperty(value = "墙盒品牌")
private String wallboxModel;
/** 墙盒类型*/
@ApiModelProperty(value = "墙盒类型")
private String wallboxType;
@ApiModelProperty(value = "预约安装时间")
private String installReserveTime;
/** 区域id */
@ApiModelProperty(value = "区域id")
private String regionId;
@ApiModelProperty(value = "区域名称")
private String regionName;
/** 是否紧急:0:否,1:是 */
@ApiModelProperty(value = "是否特殊申请")
private Integer ifEmergency;
/** 申请状态:0:已申请,1:已通过,2:已驳回,3:已关闭 */
@ApiModelProperty(value = "审核状态")
private Long checkStatus;
/** 创建时间 */
@ApiModelProperty(value = "申请时间")
private Date createdTime;
@ApiModelProperty(value = "审核时间")
private Date checkTime;
@ApiModelProperty(value = "审核人员")
private String checkAccount;
private String checkName;
@ApiModelProperty(value = "审核意见")
private String checkRemarks;
@ApiModelProperty(value = "车企安装单号")
private String outOrderId;
@ApiModelProperty(value = "物流单号")
private String trackingNumber;
/** 物流状态 */
@ApiModelProperty(value = "物流状态")
private String logisticsStatus;
@ApiModelProperty(value = "数量")
private String number;
}
package com.starcharge.wios.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 墙盒申请安装团队
* <p>
*
* @author <a href="mail to: ning.chai@foxmail.com" rel="nofollow">chaining</a>
*/
@Data
public class WallboxApplyInstallListVO {
/** 自增id */
private Long id;
/** 安装订单号 */
@ApiModelProperty(value = "安装订单号")
@ExcelProperty("安装订单号")
private String orderId;
@ApiModelProperty(value = "安装状态")
private String installStatus;
/** 安装服务商id */
@ApiModelProperty(value = "安装服务商id")
private String supplierId;
/** 申请团队名称 */
@ApiModelProperty(value = "申请团队名称")
@ExcelProperty("申请团队名称")
private String supplierTeam;
/** 墙盒设备型号(对应物料id) */
@ApiModelProperty(value = "墙盒设备型号(对应物料id)")
private String wallboxItemId;
/** 物料类型 */
@ApiModelProperty(value = "物料类型")
private String materialType;
/** 墙盒品牌*/
@ApiModelProperty(value = "墙盒品牌")
@ExcelProperty("墙盒品牌")
private String wallboxModel;
/** 墙盒类型*/
@ApiModelProperty(value = "墙盒类型")
private String wallboxType;
@ApiModelProperty(value = "剩余时间")
private String timeRemaining;
/** 区域id */
@ApiModelProperty(value = "区域id")
private String regionId;
@ExcelProperty("仓库名称")
private String regionName;
/** 是否紧急:0:否,1:是 */
@ApiModelProperty(value = "是否特殊申请")
private Integer ifEmergency;
/** 是否超时:0:未超时,1:已超时 */
@ApiModelProperty(value = "超时类型")
private Long ifTimeout;
/** 申请状态:0:已申请,1:已通过,2:已驳回,3:已关闭 */
@ApiModelProperty(value = "申请状态")
private Long checkStatus;
/** 创建时间 */
@ApiModelProperty(value = "申请时间")
private Date createdTime;
@ApiModelProperty(value = "物流单号")
private String trackingNumber;
/** 物流状态 */
@ApiModelProperty(value = "物流状态")
private String logisticsStatus;
@ApiModelProperty(value = "数量")
private String number;
}
package com.starcharge.wios.vo;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 墙盒申请分页响应结果
* <p>
*
* @author <a href="mail to: ning.chai@foxmail.com" rel="nofollow">chaining</a>
*/
@Data
public class WallboxApplyPageVO {
/** 自增id */
private Long id;
/** 安装订单号 */
private String installationOrderId;
/** 安装服务商id */
private String supplierId;
/** 申请团队名称 */
private String supplierTeam;
/** 墙盒设备型号(对应物料id) */
private String wallboxItemId;
/** 物料类型 */
private String materialType;
/** 墙盒品牌*/
private String wallboxModel;
/** 墙盒类型*/
private String wallboxType;
/** 区域id */
private String regionId;
private Date installReserveTime;
private String outOrderId;
/** 审核备注 */
private String checkRemarks;
/** 是否紧急:0:否,1:是 */
private Integer ifEmergency;
/** 是否超时:0:未超时,1:已超时 */
private Long ifTimeout;
/** 申请状态:0:已申请,1:已通过,2:已驳回,3:已关闭 */
private Long checkStatus;
/** 创建人 */
private String createAccount;
/** 创建时间 */
private Date createdTime;
/** 更新人 */
private String modifyAccount;
/** 更新时间 */
private Date modifyTime;
/** 审核人 */
private String checkAccount;
/** 审核时间 */
private Date checkTime;
/** 物流状态 */
private String logisticsStatus;
}
package com.starcharge.wios.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* description
* <p>
*
* @author <a href="mail to: ning.chai@foxmail.com" rel="nofollow">chaining</a>
*/
@Data
public class WallboxApplyReqVO {
/** 申请团队名称 */
@ApiModelProperty(value = "申请团队名称", required = true)
private String supplierTeam;
/** 区域id */
@ApiModelProperty(value = "区域id", required = true)
private String regionId;
/** 申请状态:0:已申请,1:已通过,2:已驳回,3:已关闭 */
@ApiModelProperty(value = "申请状态", notes = "0:已申请,1:已通过,2:已驳回,3:已关闭", example = "1", required = true)
private Long checkStatus;
/** 墙盒设备型号(对应物料id) */
@ApiModelProperty(value = "墙盒设备型号(对应物料id)", required = false)
private String wallboxItemId;
/** 物流状态0未发货,1已发货 */
@ApiModelProperty(value = "物流状态0未发货,1已发货", required = false)
private String trackingStatus;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论