【admin】新增#备件采购管理
parent
0127551a59
commit
e811bb95ec
|
@ -103,4 +103,18 @@ public class DictTypeController {
|
|||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回所有的字典和字典下的所有数据项
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/allDataList")
|
||||
public Object allDataList(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<DictTypeVo> list = iSettingDictTypeService.allDataList(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
package com.hcy.admin.controller.sparePartPurchase;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.SparePartReceive.ISparePartReceiveService;
|
||||
import com.hcy.admin.service.sparePartPurchase.ISparePartPurchaseService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
|
||||
import com.hcy.admin.vo.sparePartPurchase.SparePartPurchaseListVo;
|
||||
import com.hcy.admin.vo.sparePartReceive.SparePartReceiveListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 备件采购管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/sparePartPurchase")
|
||||
public class sparePartPurchaseController {
|
||||
|
||||
@Resource
|
||||
ISparePartPurchaseService iSparePartPurchaseService;
|
||||
|
||||
/**
|
||||
* 备件采购列表
|
||||
*
|
||||
* @author hcy
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<SparePartPurchaseListVo> list = iSparePartPurchaseService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
/**
|
||||
* 备件采购详情
|
||||
*
|
||||
* @author hcy
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
SparePartPurchaseListVo detail = iSparePartPurchaseService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 备件采购新增
|
||||
*
|
||||
* @author hcy
|
||||
* @param sparePartStockAuditParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "备件采购新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = SparePartStockAuditParam.create.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
|
||||
iSparePartPurchaseService.add(sparePartStockAuditParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 备件采购编辑
|
||||
*
|
||||
* @author hcy
|
||||
* @param sparePartStockAuditParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "备件采购编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = SparePartStockAuditParam.update.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
|
||||
iSparePartPurchaseService.edit(sparePartStockAuditParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 备件采购删除
|
||||
*
|
||||
* @author hcy
|
||||
* @param sparePartStockAuditParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "备件采购删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = SparePartStockAuditParam.delete.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
|
||||
iSparePartPurchaseService.del(Math.toIntExact(sparePartStockAuditParam.getId()));
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -8,6 +8,7 @@ import com.hcy.admin.service.SparePartReceive.ISparePartReceiveService;
|
|||
import com.hcy.admin.service.sparePartOutWarehouse.ISparePartOutWarehouseService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
|
||||
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
|
||||
import com.hcy.admin.vo.SparePartOutWarehouseListVo.SparePartOutWarehouseListVo;
|
||||
import com.hcy.admin.vo.sparePartReceive.SparePartReceiveListVo;
|
||||
import com.hcy.common.core.PageResult;
|
||||
|
@ -80,7 +81,11 @@ public class SparePartReceiveServiceImpl implements ISparePartReceiveService {
|
|||
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
|
||||
vo.setHandlingTime(TimeUtil.timestampToDate(item.getHandlingTime())); //经办时间
|
||||
vo.setRecipientAndPhone(item.getRecipient() + "/" + item.getRecipientPhone()); //领料员工/联系电话
|
||||
if(item.getRecipient() != null && item.getRecipientPhone() != null){
|
||||
vo.setRecipientAndPhone(item.getRecipient() + "/" + item.getRecipientPhone()); //领料员工/联系电话
|
||||
}else{
|
||||
vo.setRecipientAndPhone("--");
|
||||
}
|
||||
int number = 0; //领用数量
|
||||
//获取待审核备件信息
|
||||
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
|
||||
|
@ -89,7 +94,7 @@ public class SparePartReceiveServiceImpl implements ISparePartReceiveService {
|
|||
.eq("is_delete", 0)
|
||||
);
|
||||
//获取备件信息
|
||||
List<SparePartAudit> listVo = new ArrayList<>();
|
||||
List<SparePartAuditListVo> listVo = new ArrayList<>();
|
||||
for (SparePartAudit sparePartAudit : stockAuditId) {
|
||||
SparePart sparePart = sparePartMapper.selectOne(
|
||||
new QueryWrapper<SparePart>()
|
||||
|
@ -97,7 +102,7 @@ public class SparePartReceiveServiceImpl implements ISparePartReceiveService {
|
|||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
SparePartAudit sparePartAudit1 = new SparePartAudit();
|
||||
SparePartAuditListVo sparePartAudit1 = new SparePartAuditListVo();
|
||||
BeanUtils.copyProperties(sparePart, sparePartAudit1);
|
||||
sparePartAudit1.setId(sparePartAudit.getId());
|
||||
sparePartAudit1.setSparePartsId(sparePart.getId());
|
||||
|
@ -143,7 +148,7 @@ public class SparePartReceiveServiceImpl implements ISparePartReceiveService {
|
|||
.eq("is_delete", 0)
|
||||
);
|
||||
//获取备件信息
|
||||
List<SparePartAudit> listVo = new ArrayList<>();
|
||||
List<SparePartAuditListVo> listVo = new ArrayList<>();
|
||||
for (SparePartAudit sparePartAudit : stockAuditId) {
|
||||
SparePart sparePart = sparePartMapper.selectOne(
|
||||
new QueryWrapper<SparePart>()
|
||||
|
@ -151,12 +156,20 @@ public class SparePartReceiveServiceImpl implements ISparePartReceiveService {
|
|||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
SparePartAudit sparePartAudit1 = new SparePartAudit();
|
||||
SparePartAuditListVo sparePartAudit1 = new SparePartAuditListVo();
|
||||
BeanUtils.copyProperties(sparePart, sparePartAudit1);
|
||||
sparePartAudit1.setId(sparePartAudit.getId());
|
||||
sparePartAudit1.setSparePartsId(sparePart.getId());
|
||||
sparePartAudit1.setStockAuditId(sparePartAudit.getStockAuditId());
|
||||
sparePartAudit1.setSparePartsId(sparePart.getId()); // 备件id
|
||||
sparePartAudit1.setStockAuditId(sparePartAudit.getStockAuditId()); // 出入库审核id
|
||||
sparePartAudit1.setUnit(sparePart.getUnit()); //单位
|
||||
sparePartAudit1.setCount(sparePartAudit.getCount()); // 出库数量
|
||||
sparePartAudit1.setQuantity(sparePart.getQuantity()); //库存数量
|
||||
Warehouse warehouse = warehouseMapper.selectOne(
|
||||
new QueryWrapper<Warehouse>()
|
||||
.eq("id", sparePart.getWarehouseId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
sparePartAudit1.setWarehouseName(warehouse.getWarehouseName());
|
||||
listVo.add(sparePartAudit1);
|
||||
}
|
||||
vo.setSparePartAuditList(listVo);
|
||||
|
|
|
@ -64,4 +64,13 @@ public interface ISettingDictTypeService {
|
|||
*/
|
||||
void del(List<Integer> ids);
|
||||
|
||||
/**
|
||||
* 返回所有的字典和字典下的所有数据项
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<DictDataVo>
|
||||
*/
|
||||
PageResult<DictTypeVo> allDataList(PageParam pageParam, Map<String, String> params);
|
||||
}
|
||||
|
|
|
@ -53,7 +53,7 @@ public class SettingDictDataServiceImpl implements ISettingDictDataService {
|
|||
queryWrapper.select("id,type_id,name,value,remark,sort,status,create_time,update_time");
|
||||
queryWrapper.eq("is_delete", 0);
|
||||
queryWrapper.eq("type_id", dictType.getId());
|
||||
queryWrapper.orderByDesc("id");
|
||||
queryWrapper.orderByDesc("sort");
|
||||
|
||||
dictDataMapper.setSearch(queryWrapper, params, new String[]{
|
||||
"like:name:str",
|
||||
|
@ -100,7 +100,7 @@ public class SettingDictDataServiceImpl implements ISettingDictDataService {
|
|||
queryWrapper.select("id,type_id,name,value,remark,sort,status,create_time,update_time");
|
||||
queryWrapper.eq("type_id", dictType.getId());
|
||||
queryWrapper.eq("is_delete", 0);
|
||||
queryWrapper.orderByDesc("id");
|
||||
queryWrapper.orderByDesc("sort");
|
||||
|
||||
dictDataMapper.setSearch(queryWrapper, params, new String[]{
|
||||
"like:name:str",
|
||||
|
|
|
@ -7,15 +7,22 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||
import com.hcy.admin.service.setting.ISettingDictTypeService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.setting.DictTypeParam;
|
||||
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
|
||||
import com.hcy.admin.vo.setting.DictDataVo;
|
||||
import com.hcy.admin.vo.setting.DictTypeVo;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
|
||||
import com.hcy.common.entity.setting.DictData;
|
||||
import com.hcy.common.entity.setting.DictType;
|
||||
import com.hcy.common.entity.sparePart.SparePart;
|
||||
import com.hcy.common.mapper.setting.DictDataMapper;
|
||||
import com.hcy.common.mapper.setting.DictTypeMapper;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -29,6 +36,9 @@ public class SettingDictTypeServiceImpl implements ISettingDictTypeService {
|
|||
@Resource
|
||||
DictTypeMapper dictTypeMapper;
|
||||
|
||||
@Resource
|
||||
DictDataMapper dictDataMapper;
|
||||
|
||||
/**
|
||||
* 字典类型所有
|
||||
*
|
||||
|
@ -202,4 +212,57 @@ public class SettingDictTypeServiceImpl implements ISettingDictTypeService {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回所有的字典和字典下的所有数据项
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<DictDataVo>
|
||||
*/
|
||||
@Override
|
||||
public PageResult<DictTypeVo> allDataList(PageParam pageParam, Map<String, String> params) {
|
||||
Integer page = pageParam.getPageNo();
|
||||
Integer limit = pageParam.getPageSize();
|
||||
|
||||
QueryWrapper<DictType> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("id,dict_name,dict_type,dict_remark,dict_status,create_time,update_time");
|
||||
queryWrapper.eq("is_delete", 0);
|
||||
queryWrapper.orderByDesc("id");
|
||||
|
||||
dictTypeMapper.setSearch(queryWrapper, params, new String[]{
|
||||
"like:dictName@dict_name:str",
|
||||
"like:dictType@dict_type:str",
|
||||
"=:dictStatus@dict_status:int",
|
||||
});
|
||||
|
||||
IPage<DictType> iPage = dictTypeMapper.selectPage(new Page<>(page, limit), queryWrapper);
|
||||
|
||||
List<DictTypeVo> list = new LinkedList<>();
|
||||
for (DictType dictType : iPage.getRecords()) {
|
||||
DictTypeVo vo = new DictTypeVo();
|
||||
BeanUtils.copyProperties(dictType, vo);
|
||||
|
||||
vo.setCreateTime(TimeUtil.timestampToDate(dictType.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtil.timestampToDate(dictType.getUpdateTime()));
|
||||
|
||||
//获取字典数据
|
||||
List<DictData> dictDataList = dictDataMapper.selectList(
|
||||
new QueryWrapper<DictData>()
|
||||
.eq("type_id", dictType.getId())
|
||||
.eq("is_delete", 0)
|
||||
);
|
||||
//获取字典数据
|
||||
List<DictDataVo> listVo = new ArrayList<>();
|
||||
for (DictData dictData : dictDataList) {
|
||||
DictDataVo dictDataVo = new DictDataVo();
|
||||
BeanUtils.copyProperties(dictData, dictDataVo);
|
||||
listVo.add(dictDataVo);
|
||||
}
|
||||
vo.setDictDataVoList(listVo);
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
package com.hcy.admin.service.sparePartPurchase;
|
||||
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
|
||||
import com.hcy.admin.vo.sparePartPurchase.SparePartPurchaseListVo;
|
||||
import com.hcy.admin.vo.sparePartReceive.SparePartReceiveListVo;
|
||||
import com.hcy.common.core.PageResult;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 备件采购服务接口类
|
||||
*/
|
||||
public interface ISparePartPurchaseService {
|
||||
|
||||
/**
|
||||
* 备件采购列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<SparePartPurchaseListVo>
|
||||
* @author hcy
|
||||
*/
|
||||
PageResult<SparePartPurchaseListVo> list(PageParam pageParam, Map<String, String> params);
|
||||
|
||||
/**
|
||||
* 备件采购详情
|
||||
*
|
||||
* @author hcy
|
||||
* @param id 主键ID
|
||||
* @return SparePartPurchaseListVo
|
||||
*/
|
||||
SparePartPurchaseListVo detail(Integer id);
|
||||
|
||||
/**
|
||||
* 备件采购新增
|
||||
*
|
||||
* @author hcy
|
||||
* @param sparePartStockAuditParam 参数
|
||||
*/
|
||||
void add(SparePartStockAuditParam sparePartStockAuditParam);
|
||||
|
||||
/**
|
||||
* 备件采购编辑
|
||||
*
|
||||
* @author hcy
|
||||
* @param sparePartStockAuditParam 参数
|
||||
*/
|
||||
void edit(SparePartStockAuditParam sparePartStockAuditParam);
|
||||
|
||||
/**
|
||||
* 备件采购删除
|
||||
*
|
||||
* @author hcy
|
||||
* @param id 主键ID
|
||||
*/
|
||||
void del(Integer id);
|
||||
|
||||
}
|
|
@ -0,0 +1,394 @@
|
|||
package com.hcy.admin.service.sparePartPurchase.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.hcy.admin.AdminThreadLocal;
|
||||
import com.hcy.admin.service.sparePartPurchase.ISparePartPurchaseService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
|
||||
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
|
||||
import com.hcy.admin.vo.sparePartPurchase.SparePartPurchaseListVo;
|
||||
import com.hcy.admin.vo.sparePartReceive.SparePartReceiveListVo;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
|
||||
import com.hcy.common.entity.sparePart.SparePart;
|
||||
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
|
||||
import com.hcy.common.entity.warehouse.Warehouse;
|
||||
import com.hcy.common.enums.Audit.AuditStateEnum;
|
||||
import com.hcy.common.mapper.SparePartAudit.SparePartAuditMapper;
|
||||
import com.hcy.common.mapper.sparePart.SparePartMapper;
|
||||
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
|
||||
import com.hcy.common.mapper.warehouse.WarehouseMapper;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 备件采购实现类
|
||||
*/
|
||||
@Service
|
||||
public class SparePartPurchaseServiceImpl implements ISparePartPurchaseService {
|
||||
|
||||
@Resource
|
||||
SparePartStockAuditMapper sparePartStockAuditMapper;
|
||||
|
||||
@Resource
|
||||
SparePartAuditMapper sparePartAuditMapper;
|
||||
|
||||
@Resource
|
||||
SparePartMapper sparePartMapper;
|
||||
|
||||
@Resource
|
||||
WarehouseMapper warehouseMapper;
|
||||
|
||||
/**
|
||||
* 备件采购列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<SparePartPurchaseListVo>
|
||||
* @author hcy
|
||||
*/
|
||||
|
||||
public PageResult<SparePartPurchaseListVo> list(PageParam pageParam, Map<String, String> params) {
|
||||
Integer page = pageParam.getPageNo();
|
||||
Integer limit = pageParam.getPageSize();
|
||||
|
||||
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("receipt_type",1);
|
||||
queryWrapper.eq("is_delete", 0);
|
||||
queryWrapper.orderByDesc("id");
|
||||
|
||||
sparePartStockAuditMapper.setSearch(queryWrapper, params, new String[]{
|
||||
"like:receiptNumber@receipt_number:str",
|
||||
"=:deliveryMethod@delivery_method:int",
|
||||
"like:responsiblePerson@responsible_person:str",
|
||||
"=:purchaseStatus@purchase_status:int",
|
||||
"datetime:createTimeStart-createTimeEnd@create_time:str",
|
||||
});
|
||||
|
||||
IPage<SparePartStockAudit> iPage = sparePartStockAuditMapper.selectPage(new Page<>(page, limit), queryWrapper);
|
||||
List<SparePartPurchaseListVo> list = new LinkedList<>();
|
||||
for(SparePartStockAudit item : iPage.getRecords()) {
|
||||
SparePartPurchaseListVo vo = new SparePartPurchaseListVo();
|
||||
BeanUtils.copyProperties(item, vo);
|
||||
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
|
||||
|
||||
vo.setHandlingTime(TimeUtil.timestampToDate(item.getHandlingTime())); //经办时间
|
||||
vo.setResponsiblePersonPhone(vo.getResponsiblePerson() + "/" + vo.getPhone()); //采购人/联系电话
|
||||
|
||||
//获取待审核备件信息
|
||||
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
|
||||
new QueryWrapper<SparePartAudit>()
|
||||
.eq("stock_audit_id", item.getId())
|
||||
.eq("is_delete", 0)
|
||||
);
|
||||
//获取备件信息
|
||||
List<SparePartAuditListVo> listVo = new ArrayList<>();
|
||||
for (SparePartAudit sparePartAudit : stockAuditId) {
|
||||
SparePart sparePart = sparePartMapper.selectOne(
|
||||
new QueryWrapper<SparePart>()
|
||||
.eq("id", sparePartAudit.getSparePartsId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
SparePartAuditListVo sparePartAudit1 = new SparePartAuditListVo();
|
||||
BeanUtils.copyProperties(sparePart, sparePartAudit1);
|
||||
sparePartAudit1.setId(sparePartAudit.getId());
|
||||
sparePartAudit1.setSparePartsId(sparePart.getId());
|
||||
sparePartAudit1.setStockAuditId(sparePartAudit.getStockAuditId());
|
||||
sparePartAudit1.setCount(sparePartAudit.getCount()); // 出库数量
|
||||
|
||||
listVo.add(sparePartAudit1);
|
||||
}
|
||||
vo.setSparePartAuditList(listVo);
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
|
||||
|
||||
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 备件采购详情
|
||||
*
|
||||
* @author hcy
|
||||
* @param id 主键参数
|
||||
* @return SparePartPurchaseListVo
|
||||
*/
|
||||
@Override
|
||||
public SparePartPurchaseListVo detail(Integer id) {
|
||||
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
|
||||
new QueryWrapper<SparePartStockAudit>()
|
||||
.eq("id", id)
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在");
|
||||
|
||||
SparePartPurchaseListVo vo = new SparePartPurchaseListVo();
|
||||
BeanUtils.copyProperties(model, vo);
|
||||
|
||||
Warehouse warehouseName = warehouseMapper.selectOne(
|
||||
new QueryWrapper<Warehouse>()
|
||||
.eq("id", model.getWarehouseId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
vo.setWarehouseName(warehouseName.getWarehouseName());
|
||||
|
||||
//获取待审核备件信息
|
||||
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
|
||||
new QueryWrapper<SparePartAudit>()
|
||||
.eq("stock_audit_id", model.getId())
|
||||
.eq("is_delete", 0)
|
||||
);
|
||||
//获取备件信息
|
||||
List<SparePartAuditListVo> listVo = new ArrayList<>();
|
||||
for (SparePartAudit sparePartAudit : stockAuditId) {
|
||||
SparePart sparePart = sparePartMapper.selectOne(
|
||||
new QueryWrapper<SparePart>()
|
||||
.eq("id", sparePartAudit.getSparePartsId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
SparePartAuditListVo sparePartAudit1 = new SparePartAuditListVo();
|
||||
BeanUtils.copyProperties(sparePart, sparePartAudit1);
|
||||
sparePartAudit1.setId(sparePartAudit.getId());
|
||||
sparePartAudit1.setSparePartsId(sparePart.getId()); // 备件id
|
||||
sparePartAudit1.setStockAuditId(sparePartAudit.getStockAuditId()); // 出入库审核id
|
||||
sparePartAudit1.setUnit(sparePart.getUnit()); //单位
|
||||
sparePartAudit1.setCount(sparePartAudit.getCount()); // 出库数量
|
||||
sparePartAudit1.setQuantity(sparePart.getQuantity()); //库存数量
|
||||
Warehouse warehouse = warehouseMapper.selectOne(
|
||||
new QueryWrapper<Warehouse>()
|
||||
.eq("id", sparePart.getWarehouseId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
sparePartAudit1.setWarehouseName(warehouse.getWarehouseName());
|
||||
listVo.add(sparePartAudit1);
|
||||
}
|
||||
vo.setSparePartAuditList(listVo);
|
||||
vo.setResponsiblePersonPhone(vo.getResponsiblePerson() + "/" + vo.getPhone()); //采购人/联系电话
|
||||
|
||||
vo.setHandlingTime(TimeUtil.timestampToDate(model.getHandlingTime())); //经办时间
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 备件采购新增
|
||||
*
|
||||
* @author hcy
|
||||
* @param sparePartStockAuditParam 参数
|
||||
*/
|
||||
@Override
|
||||
public void add(SparePartStockAuditParam sparePartStockAuditParam) {
|
||||
SparePartStockAudit model = new SparePartStockAudit();
|
||||
|
||||
QueryWrapper<SparePartStockAudit> qw = new QueryWrapper<>();
|
||||
qw.select("max(id) as id");
|
||||
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.selectOne(qw);
|
||||
if(sparePartStockAudit == null){
|
||||
model.setId(1L);
|
||||
}else{
|
||||
model.setId(sparePartStockAudit.getId() + 1);
|
||||
}
|
||||
|
||||
model.setWarehouseId(sparePartStockAuditParam.getWarehouseId()); // 出库仓库
|
||||
model.setOutInWarehouseType(sparePartStockAuditParam.getOutInWarehouseType()); // 出库类别 2=员工领料,3=销售出库)
|
||||
model.setPhone(sparePartStockAuditParam.getPhone()); // 联系电话
|
||||
model.setReceiptNumber(generateOrderNumber()); // 单据编号
|
||||
model.setShippingAddress(sparePartStockAuditParam.getShippingAddress()); //收货地址
|
||||
|
||||
model.setConsigner(sparePartStockAuditParam.getConsigner()); //发货人
|
||||
model.setConsignerPhone(sparePartStockAuditParam.getConsignerPhone()); //发货人联系电话
|
||||
model.setShipAddress(sparePartStockAuditParam.getShipAddress()); //发货地址
|
||||
model.setLogisticsCompany(sparePartStockAuditParam.getLogisticsCompany()); //物流公司
|
||||
model.setTrackingNumber(sparePartStockAuditParam.getTrackingNumber()); //物流编号
|
||||
model.setDeliveryMethod(sparePartStockAuditParam.getDeliveryMethod()); //配送方式(0=物流快递,1=上门取件,2=送货上门)
|
||||
model.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus()); //状态 未审核
|
||||
|
||||
|
||||
// 获取当前的用户
|
||||
Object username = AdminThreadLocal.get("username");
|
||||
model.setResponsiblePerson((String) username); // 经办人
|
||||
model.setConsignee((String) username); // 收货单位(人员)
|
||||
model.setHandlingTime(System.currentTimeMillis() / 1000); //经办时间
|
||||
|
||||
// 审核状态
|
||||
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
|
||||
//单据类型(0=入库单,1=出库单,2=仓库调拨单)
|
||||
model.setReceiptType(AuditStateEnum.OUTWAREHOUSE.getStatus());
|
||||
|
||||
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
|
||||
// 使用StringBuilder来拼接id值
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (SparePartAudit sparePartAudit : sparePartAuditList) {
|
||||
SparePartAudit insertSparePartAudit = new SparePartAudit();
|
||||
insertSparePartAudit.setSparePartsId(sparePartAudit.getId()); //备件id
|
||||
sb.append(sparePartAudit.getId()).append(",");
|
||||
|
||||
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量
|
||||
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
|
||||
insertSparePartAudit.setCreateTime(System.currentTimeMillis() / 1000);
|
||||
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
|
||||
}
|
||||
sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号
|
||||
model.setSparePartAuditId(String.valueOf(sb));// 备件审核id
|
||||
model.setCreateTime(System.currentTimeMillis() / 1000);
|
||||
sparePartStockAuditMapper.insert(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 备件采购编辑
|
||||
*
|
||||
* @author hcy
|
||||
* @param sparePartStockAuditParam 参数
|
||||
*/
|
||||
@Override
|
||||
public void edit(SparePartStockAuditParam sparePartStockAuditParam) {
|
||||
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
|
||||
new QueryWrapper<SparePartStockAudit>()
|
||||
.eq("id", sparePartStockAuditParam.getId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在!");
|
||||
model.setId(sparePartStockAuditParam.getId());
|
||||
model.setWarehouseId(sparePartStockAuditParam.getWarehouseId()); // 出库仓库
|
||||
model.setOutInWarehouseType(sparePartStockAuditParam.getOutInWarehouseType()); // 出库类别 2=员工领料,3=销售出库)
|
||||
model.setPhone(sparePartStockAuditParam.getPhone()); // 联系电话
|
||||
model.setReceiptNumber(generateOrderNumber()); // 单据编号
|
||||
model.setShippingAddress(sparePartStockAuditParam.getShippingAddress()); //收货地址
|
||||
|
||||
model.setConsigner(sparePartStockAuditParam.getConsigner()); //发货人
|
||||
model.setConsignerPhone(sparePartStockAuditParam.getConsignerPhone()); //发货人联系电话
|
||||
model.setShipAddress(sparePartStockAuditParam.getShipAddress()); //发货地址
|
||||
model.setLogisticsCompany(sparePartStockAuditParam.getLogisticsCompany()); //物流公司
|
||||
model.setTrackingNumber(sparePartStockAuditParam.getTrackingNumber()); //物流编号
|
||||
model.setDeliveryMethod(sparePartStockAuditParam.getDeliveryMethod()); //配送方式(0=物流快递,1=上门取件,2=送货上门)
|
||||
model.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus()); //状态 未审核
|
||||
|
||||
// 获取当前的用户
|
||||
Object username = AdminThreadLocal.get("username");
|
||||
model.setResponsiblePerson((String) username); // 经办人
|
||||
model.setConsignee((String) username); // 收货单位(人员)
|
||||
|
||||
// 审核状态
|
||||
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
|
||||
//单据类型(0=入库单,1=出库单,2=仓库调拨单)
|
||||
model.setReceiptType(AuditStateEnum.OUTWAREHOUSE.getStatus());
|
||||
|
||||
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
|
||||
// 使用StringBuilder来拼接id值
|
||||
StringBuilder sb = new StringBuilder();
|
||||
List<SparePartAudit> auditList = sparePartAuditMapper.selectList(
|
||||
new QueryWrapper<SparePartAudit>()
|
||||
.eq("stock_audit_id", model.getId())
|
||||
.eq("is_delete", 0));
|
||||
for (SparePartAudit sparePartAudit : auditList) {
|
||||
//将旧备件审核信息删除
|
||||
SparePartAudit delectSparePartAudit = sparePartAuditMapper.selectOne(
|
||||
new QueryWrapper<SparePartAudit>()
|
||||
.eq("stock_audit_id", model.getId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
if(delectSparePartAudit != null){
|
||||
delectSparePartAudit.setIsDelete(1);
|
||||
delectSparePartAudit.setDeleteTime(System.currentTimeMillis() / 1000);
|
||||
sparePartAuditMapper.updateById(delectSparePartAudit);
|
||||
}
|
||||
}
|
||||
for (SparePartAudit sparePartAudit : sparePartAuditList) {
|
||||
//插入新的备件审核信息
|
||||
SparePartAudit insertSparePartAudit = new SparePartAudit();
|
||||
if(sparePartAudit.getSparePartsId() != null){
|
||||
insertSparePartAudit.setSparePartsId(sparePartAudit.getSparePartsId()); //备件id
|
||||
}else {
|
||||
insertSparePartAudit.setSparePartsId(sparePartAudit.getId());
|
||||
}
|
||||
sb.append(sparePartAudit.getId()).append(",");
|
||||
|
||||
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量
|
||||
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
|
||||
insertSparePartAudit.setUpdateTime(System.currentTimeMillis() / 1000);
|
||||
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
|
||||
}
|
||||
//如果是已取消状态编辑改成未审核
|
||||
if(model.getAuditState() == AuditStateEnum.CANCELED.getStatus()){
|
||||
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
|
||||
}
|
||||
//已审核,但不通过的,重新编辑之后状态也要变成未审核,审核结果改成空
|
||||
if(model.getAuditState() == AuditStateEnum.AUDITED.getStatus()
|
||||
&& model.getAuditResult() == AuditStateEnum.NOTPASS.getStatus()){
|
||||
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
|
||||
model.setAuditResult(null);
|
||||
}
|
||||
sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号
|
||||
model.setSparePartAuditId(String.valueOf(sb));// 备件审核id
|
||||
model.setUpdateTime(System.currentTimeMillis() / 1000);
|
||||
sparePartStockAuditMapper.updateById(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 备件采购删除
|
||||
*
|
||||
* @author hcy
|
||||
* @param id 主键ID
|
||||
*/
|
||||
@Override
|
||||
public void del(Integer id) {
|
||||
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
|
||||
new QueryWrapper<SparePartStockAudit>()
|
||||
.eq("id", id)
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在!");
|
||||
|
||||
model.setIsDelete(1);
|
||||
model.setDeleteTime(System.currentTimeMillis() / 1000);
|
||||
sparePartStockAuditMapper.updateById(model);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 系统自动生成订单号:年月日+6位流水号
|
||||
* @return
|
||||
*/
|
||||
public String generateOrderNumber() {
|
||||
String DATE_FORMAT = "yyyyMMdd";
|
||||
int SEQUENCE_LENGTH = 6;
|
||||
int sequence = 1; // 流水号从1开始
|
||||
// 获取当前日期
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
|
||||
String dateStr = dateFormat.format(new Date());
|
||||
|
||||
//查看数据库是否今日有订单编号
|
||||
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.like("receipt_number",dateStr);
|
||||
List<SparePartStockAudit> sparePartStockAudits = sparePartStockAuditMapper.selectList(queryWrapper);
|
||||
int max = sparePartStockAudits.size();
|
||||
if(sequence <= max){
|
||||
sequence = max + 1; // 递增流水号
|
||||
}
|
||||
|
||||
// 生成6位流水号
|
||||
StringBuilder sequenceBuilder = new StringBuilder();
|
||||
for (int i = 0; i < SEQUENCE_LENGTH; i++) {
|
||||
sequenceBuilder.append(String.format("%0" + (SEQUENCE_LENGTH - i) + "d", sequence));
|
||||
}
|
||||
String truncatedString = sequenceBuilder.substring(0, 6);
|
||||
// 拼接订单号
|
||||
String orderNumber = dateStr + truncatedString;
|
||||
|
||||
return orderNumber;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package com.hcy.admin.validate.SparePartAudit;
|
||||
|
||||
import io.swagger.models.auth.In;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
@ -45,9 +46,7 @@ public class SparePartAuditParam implements Serializable {
|
|||
|
||||
private String unit;
|
||||
|
||||
@NotNull(message = "quantity参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "quantity参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long quantity;
|
||||
private Integer quantity;
|
||||
|
||||
@NotNull(message = "unitPrice参数缺失", groups = {create.class, update.class})
|
||||
private BigDecimal unitPrice;
|
||||
|
|
|
@ -14,16 +14,17 @@ public class SparePartAuditListVo implements Serializable {
|
|||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id; // 主键id
|
||||
private Long sparePartsId; // 备件id
|
||||
private Long stockAuditId; // 出入库审核id
|
||||
private String sparePartsCode; // 备件编码
|
||||
private String sparePartsName; // 备件名称
|
||||
private Long warehouseId; // 所属仓库
|
||||
private String specificationsModel; // 规格型号
|
||||
private Long unit; // 单位
|
||||
private Long quantity; // 库存数量
|
||||
private String unit; // 单位
|
||||
private Integer quantity; // 库存数量
|
||||
private BigDecimal unitPrice; // 单价(元)
|
||||
private String createTime; // 创建时间
|
||||
private String updateTime; // 更新时间
|
||||
private String warehouseName; // 所属仓库名
|
||||
|
||||
private Integer count; // 出入库数量
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.hcy.admin.vo.setting;
|
|||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 字典类型Vo
|
||||
|
@ -19,5 +20,5 @@ public class DictTypeVo implements Serializable {
|
|||
private Integer dictStatus; // 字典状态
|
||||
private String createTime; // 创建时间
|
||||
private String updateTime; // 更新时间
|
||||
|
||||
private List<DictDataVo> dictDataVoList; //字典数据
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ public class SparePartDetailVo implements Serializable {
|
|||
private Long warehouseId; // 所属仓库
|
||||
private String specificationsModel; // 规格型号
|
||||
private String unit; // 单位
|
||||
private Long quantity; // 库存数量
|
||||
private Integer quantity; // 库存数量
|
||||
private BigDecimal unitPrice; // 单价
|
||||
private String warehouseName; // 所属仓库名
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ public class SparePartListVo implements Serializable {
|
|||
private Long warehouseId; // 所属仓库
|
||||
private String specificationsModel; // 规格型号
|
||||
private String unit; // 单位
|
||||
private Long quantity; // 库存数量
|
||||
private Integer quantity; // 库存数量
|
||||
private String createTime; // 创建时间
|
||||
private String updateTime; // 更新时间
|
||||
private BigDecimal unitPrice; // 单价
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
package com.hcy.admin.vo.sparePartPurchase;
|
||||
|
||||
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* SparePartPurchaseListVo
|
||||
*/
|
||||
@Data
|
||||
public class SparePartPurchaseListVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id; // 主键id
|
||||
private String receiptNumber; // 单据编号
|
||||
private Long warehouseId; // 所属仓库
|
||||
private String consignee; // 收货单位(人员)
|
||||
private String phone; // 联系电话
|
||||
private String responsiblePerson; // 经办人
|
||||
private String handlingTime; // 经办时间
|
||||
private Integer auditState; // 审核状态(0=未审核,1=已审核,2=已取消)
|
||||
private Integer auditResult; // 审核结果(0=已通过,1=未通过)
|
||||
private Long auditTime; // 审核时间
|
||||
private String auditIdea; // 审核意见
|
||||
private String createTime; // 创建时间
|
||||
private String updateTime; // 更新时间
|
||||
private String sparePartAuditId; // 备件审核id
|
||||
private String consigneePhone; // 收货单位(人员)/电话
|
||||
private List<SparePartAuditListVo> sparePartAuditList; //待入库的备件
|
||||
private String warehouseName; // 所属仓库名
|
||||
private Long outInWarehouseType; // 出入库类别(0=采购入库,1=库存调拨,2=员工领料,3=销售出库)
|
||||
|
||||
private String orderId; //订单编号
|
||||
private Integer purchaseStatus; //配件状态(0=待审核,1=未通过,2=待管理员审核,3=待发货,4=待收货,5=已完成)
|
||||
private String shippingAddress; //收货地址
|
||||
private String consigner; //发货人
|
||||
private String consignerPhone; //发货人联系电话
|
||||
private String shipAddress; //发货地址
|
||||
private String logisticsCompany; //物流公司
|
||||
private String trackingNumber; //物流编号
|
||||
private Integer deliveryMethod; //配送方式(0=物流快递,1=上门取件,2=送货上门)
|
||||
private String responsiblePersonPhone; //采购人/联系电话
|
||||
private String createTimeStart;
|
||||
private String createTimeEnd;
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package com.hcy.admin.vo.sparePartReceive;
|
||||
|
||||
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
|
||||
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
|
||||
import lombok.Data;
|
||||
|
||||
|
@ -29,7 +30,7 @@ public class SparePartReceiveListVo implements Serializable {
|
|||
private String updateTime; // 更新时间
|
||||
private String sparePartAuditId; // 备件审核id
|
||||
private String consigneePhone; // 收货单位(人员)/电话
|
||||
private List<SparePartAudit> sparePartAuditList; //待入库的备件
|
||||
private List<SparePartAuditListVo> sparePartAuditList; //待入库的备件
|
||||
private String warehouseName; // 所属仓库名
|
||||
private Long outInWarehouseType; // 出入库类别(0=采购入库,1=库存调拨,2=员工领料,3=销售出库)
|
||||
|
||||
|
@ -45,5 +46,6 @@ public class SparePartReceiveListVo implements Serializable {
|
|||
private String shipAddress; //发货地址
|
||||
private String logisticsCompany; //物流公司
|
||||
private String trackingNumber; //物流编号
|
||||
private Integer deliveryMethod; //配送方式(0=物流快递,1=上门取件,2=送货上门)
|
||||
private String recipientAndPhone; //领用员工/联系电话
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ public class SparePartAudit implements Serializable {
|
|||
private Long warehouseId; // 所属仓库
|
||||
private String specificationsModel; // 规格型号
|
||||
private String unit; // 单位
|
||||
private Long quantity; // 库存数量
|
||||
private Integer quantity; // 库存数量
|
||||
private BigDecimal unitPrice; // 单价(元)
|
||||
private Integer isDelete; // 是否删除: [0=否, 1=是]
|
||||
private Long createTime; // 创建时间
|
||||
|
|
Loading…
Reference in New Issue