Commit ca0925f2 authored by ZhangRunSong's avatar ZhangRunSong

feat:物资草稿

parent 2625c04c
......@@ -31,6 +31,12 @@
<scope>compile</scope>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.20</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
......
......@@ -3,6 +3,8 @@ package com.ruoyi.material.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.attendance.enums.AttendanceDelFlag;
import com.ruoyi.attendance.enums.AttendanceDraft;
import com.ruoyi.material.domain.PsaMaterialType;
import com.ruoyi.material.domain.PsaMaterialTypeDetail;
import com.ruoyi.material.domain.dto.EditMaterialDTO;
......@@ -47,8 +49,26 @@ public class PsaMaterialController extends BaseController
@GetMapping("/list")
public TableDataInfo list(MaterialQueryDTO materialQueryDTO)
{
materialQueryDTO.setDraft(AttendanceDraft.NO.getValue());
materialQueryDTO.setDelFlag(AttendanceDelFlag.EXIST.getValue());
MaterialQueryDTO temp = psaMaterialService.temp(materialQueryDTO);
startPage();
List<PsaMaterial> list = psaMaterialService.selectPsaMaterialList(temp);
return getDataTable(list);
}
/**
* 查询草稿箱列表
*/
@PreAuthorize("@ss.hasPermi('psa:material:list')")
@GetMapping("/list/draft")
public TableDataInfo listDraft(MaterialQueryDTO materialQueryDTO)
{
MaterialQueryDTO m = psaMaterialService.temp(materialQueryDTO);
startPage();
List<PsaMaterial> list = psaMaterialService.selectPsaMaterialList(materialQueryDTO);
materialQueryDTO.setDraft(AttendanceDraft.YES.getValue());
List<PsaMaterial> list = psaMaterialService.selectPsaMaterialList(m);
return getDataTable(list);
}
......
......@@ -20,4 +20,8 @@ public class EditMaterialDTO {
private Long stock;
private String remark;
private String delFlag;
private String draft;
}
......@@ -13,4 +13,8 @@ public class MaterialQueryDTO {
private Long[] ids;
private String draft;
private String delFlag;
}
......@@ -18,5 +18,9 @@ public class PsaMaterialNewDTO {
private Long stock;
/** 备注 */
private String remark;
/** 草稿 */
private String draft;
/** 删除 */
private String delFlag;
}
......@@ -66,4 +66,6 @@ public interface IPsaMaterialService
* 查询所有类别的细分物品
*/
List<PsaMaterialTypeDetail> selectMaterialTypeDetailList();
MaterialQueryDTO temp(MaterialQueryDTO materialQueryDTO);
}
package com.ruoyi.material.service.impl;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import cn.hutool.core.util.ArrayUtil;
import com.ruoyi.attendance.enums.AttendanceDelFlag;
import com.ruoyi.attendance.enums.AttendanceDraft;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.material.domain.PsaMaterialType;
import com.ruoyi.material.domain.PsaMaterialTypeDetail;
import com.ruoyi.material.domain.dto.EditMaterialDTO;
......@@ -62,8 +63,9 @@ public class PsaMaterialServiceImpl implements IPsaMaterialService
public List<PsaMaterial> selectPsaMaterialList(MaterialQueryDTO materialQueryDTO)
{
Long[] ids = psaMaterialMapper.selectPsaMaterialTypeDetailIds(materialQueryDTO.getItemId());
materialQueryDTO.setIds(ids);
if (ArrayUtil.isEmpty(materialQueryDTO.getIds())){
return new ArrayList<>();
}
return psaMaterialMapper.selectPsaMaterialQueryList(materialQueryDTO);
}
......@@ -106,12 +108,17 @@ public class PsaMaterialServiceImpl implements IPsaMaterialService
psaMaterial.setRemark(psaMaterialNewDTO.getRemark());
psaMaterial.setCreateTime(DateUtils.getNowDate());
psaMaterial.setCreateBy(SecurityUtils.getLoginUser().getUsername());
psaMaterial.setDraft(AttendanceDraft.NO.getValue());
if (psaMaterialNewDTO.getDraft().equals(AttendanceDraft.YES.getValue())){
psaMaterial.setDraft(AttendanceDraft.YES.getValue());
}else {
psaMaterial.setDraft(AttendanceDraft.NO.getValue());
}
psaMaterial.setDelFlag(AttendanceDelFlag.EXIST.getValue());
int i = psaMaterialMapper.insertPsaMaterial(psaMaterial);
//库存有数据直接调盘点入库
if(psaMaterialNewDTO.getStock()!=null && psaMaterialNewDTO.getStock()!=0){
if(psaMaterialNewDTO.getStock()!=null && psaMaterialNewDTO.getStock()>0
&& psaMaterialNewDTO.getDraft().equals(AttendanceDraft.NO.getValue())){
PsaMaterialEntry psaMaterialEntry = new PsaMaterialEntry();
psaMaterialEntry.setEntryMethod("1");
psaMaterialEntry.setEntryQuantity(psaMaterialNewDTO.getStock());
......@@ -126,7 +133,6 @@ public class PsaMaterialServiceImpl implements IPsaMaterialService
}
return i;
}
/**
* 修改物品信息
*
......@@ -137,13 +143,31 @@ public class PsaMaterialServiceImpl implements IPsaMaterialService
public int updatePsaMaterial(EditMaterialDTO editMaterialDTO)
{
psaMaterialMapper.updatePsaMaterialDetail(editMaterialDTO);
if (editMaterialDTO.getDraft().equals(AttendanceDraft.YES.getValue())){
editMaterialDTO.setDraft(AttendanceDraft.NO.getValue());
if (editMaterialDTO.getStock()>0){
PsaMaterialEntry psaMaterialEntry = new PsaMaterialEntry();
psaMaterialEntry.setEntryMethod("1");
psaMaterialEntry.setEntryQuantity(editMaterialDTO.getStock());
psaMaterialEntry.setTypeId(editMaterialDTO.getTypeId());
psaMaterialEntry.setItemId(editMaterialDTO.getItemId());
psaMaterialEntry.setItemName(psaMaterialEntryMapper.getMaterialDeatailName(editMaterialDTO.getItemId()));
psaMaterialEntry.setMaterialId(psaMaterialEntryMapper.getMaterialId(psaMaterialEntry));
psaMaterialEntry.setCreateTime(DateUtils.getNowDate());
psaMaterialEntry.setCreateBy(SecurityUtils.getUsername());
psaMaterialEntry.setRemark(editMaterialDTO.getRemark());
psaMaterialEntryMapper.insertPsaMaterialEntry(psaMaterialEntry);
}
}
PsaMaterial psaMaterial = new PsaMaterial();
psaMaterial.setTypeId(editMaterialDTO.getTypeId());
psaMaterial.setStock(editMaterialDTO.getStock());
psaMaterial.setUnit(editMaterialDTO.getUnit());
psaMaterial.setRemark(editMaterialDTO.getRemark());
psaMaterial.setMaterialId(editMaterialDTO.getMaterialId());
psaMaterial.setDraft(editMaterialDTO.getDraft());
psaMaterial.setUpdateTime(DateUtils.getNowDate());
return psaMaterialMapper.updatePsaMaterial(psaMaterial);
}
......@@ -175,6 +199,13 @@ public class PsaMaterialServiceImpl implements IPsaMaterialService
return psaMaterialMapper.selectPsaMaterialTypeDetailList();
}
@Override
public MaterialQueryDTO temp(MaterialQueryDTO materialQueryDTO) {
Long[] ids = psaMaterialMapper.selectPsaMaterialTypeDetailIds(materialQueryDTO.getItemId());
materialQueryDTO.setIds(ids);
return materialQueryDTO;
}
public String randomCodeGenerator(){
// 获取当前时间,并格式化为"YYYYMMDDHHMMSS"形式
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
......
......@@ -3,6 +3,7 @@ package com.ruoyi.materialentry.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.attendance.enums.AttendanceDraft;
import com.ruoyi.materialentry.domain.PsaMaterialEntry;
import com.ruoyi.materialentry.service.IPsaMaterialEntryService;
import org.springframework.security.access.prepost.PreAuthorize;
......@@ -48,6 +49,18 @@ public class PsaMaterialEntryController extends BaseController
return getDataTable(list);
}
/**
* 查询物品入库信息列表
*/
@PreAuthorize("@ss.hasPermi('psa:entry:draft')")
@GetMapping("/list/draft")
public TableDataInfo listDraft(PsaMaterialEntry psaMaterialEntry)
{
startPage();
List<PsaMaterialEntry> list = psaMaterialEntryService.selectPsaMaterialEntryDraftList(psaMaterialEntry);
return getDataTable(list);
}
/**
* 导出物品入库信息列表
*/
......@@ -81,7 +94,27 @@ public class PsaMaterialEntryController extends BaseController
{
return toAjax(psaMaterialEntryService.insertPsaMaterialEntry(psaMaterialEntry));
}
/**
* 新增物品入库草稿
*/
@PreAuthorize("@ss.hasPermi('psa:entry:draft')")
@Log(title = "物品入库信息", businessType = BusinessType.INSERT)
@PostMapping("/draft")
public AjaxResult addDraft(@RequestBody PsaMaterialEntry psaMaterialEntry)
{
psaMaterialEntry.setDraft(AttendanceDraft.YES.getValue());
return toAjax(psaMaterialEntryService.insertPsaMaterialEntry(psaMaterialEntry));
}
/**
* 提交草稿
*/
@PreAuthorize("@ss.hasPermi('psa:entry:drafttoadd')")
@Log(title = "物品入库信息", businessType = BusinessType.INSERT)
@PostMapping("/add/draft")
public AjaxResult draftToAdd(@RequestBody PsaMaterialEntry psaMaterialEntry)
{
return toAjax(psaMaterialEntryService.addDraftPsaMaterialEntry(psaMaterialEntry));
}
/**
* 修改物品入库信息
*/
......
......@@ -29,6 +29,14 @@ public interface IPsaMaterialEntryService
*/
public List<PsaMaterialEntry> selectPsaMaterialEntryList(PsaMaterialEntry psaMaterialEntry);
/**
* 查询物品入库草稿箱列表
*
* @param psaMaterialEntry 物品入库信息
* @return 物品入库信息集合
*/
List<PsaMaterialEntry> selectPsaMaterialEntryDraftList(PsaMaterialEntry psaMaterialEntry);
/**
* 新增物品入库信息
*
......@@ -60,4 +68,11 @@ public interface IPsaMaterialEntryService
* @return 结果
*/
public int deletePsaMaterialEntryById(Long id);
/**
* 草稿箱新增至列表
* @param psaMaterialEntry
* @return
*/
int addDraftPsaMaterialEntry(PsaMaterialEntry psaMaterialEntry);
}
package com.ruoyi.materialentry.service.impl;
import java.util.List;
import com.ruoyi.attendance.enums.AttendanceDelFlag;
import com.ruoyi.attendance.enums.AttendanceDraft;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.material.domain.PsaMaterial;
......@@ -48,6 +51,19 @@ public class PsaMaterialEntryServiceImpl implements IPsaMaterialEntryService
@Override
public List<PsaMaterialEntry> selectPsaMaterialEntryList(PsaMaterialEntry psaMaterialEntry)
{
psaMaterialEntry.setDraft(AttendanceDraft.NO.getValue());
psaMaterialEntry.setDelFlag(AttendanceDelFlag.EXIST.getValue());
return psaMaterialEntryMapper.selectPsaMaterialEntryList(psaMaterialEntry);
}
/**
* 查询物品入库草稿箱列表
*
* @param psaMaterialEntry 物品入库信息
* @return 物品入库信息
*/
@Override
public List<PsaMaterialEntry> selectPsaMaterialEntryDraftList(PsaMaterialEntry psaMaterialEntry) {
psaMaterialEntry.setDraft(AttendanceDraft.YES.getValue());
return psaMaterialEntryMapper.selectPsaMaterialEntryList(psaMaterialEntry);
}
......@@ -64,7 +80,9 @@ public class PsaMaterialEntryServiceImpl implements IPsaMaterialEntryService
psaMaterialEntry.setItemName(psaMaterialEntryMapper.getMaterialDeatailName(psaMaterialEntry.getItemId()));
psaMaterialEntry.setCreateTime(DateUtils.getNowDate());
psaMaterialEntry.setCreateBy(SecurityUtils.getUsername());
psaMaterialMapper.addStock(psaMaterialEntry.getMaterialId(),psaMaterialEntry.getEntryQuantity());
if (psaMaterialEntry.getDraft() == null){
psaMaterialMapper.addStock(psaMaterialEntry.getMaterialId(),psaMaterialEntry.getEntryQuantity());
}
// SecurityUtils.getLoginUser().getUsername()
return psaMaterialEntryMapper.insertPsaMaterialEntry(psaMaterialEntry);
}
......@@ -104,11 +122,22 @@ public class PsaMaterialEntryServiceImpl implements IPsaMaterialEntryService
public int deletePsaMaterialEntryById(Long id)
{
PsaMaterialEntry psaMaterialEntry = psaMaterialEntryMapper.selectPsaMaterialEntryById(id);
if (psaMaterialEntry.getDraft().equals(AttendanceDraft.YES.getValue())){
return psaMaterialEntryMapper.deletePsaMaterialEntryById(id);
}
PsaMaterial psaMaterial = psaMaterialMapper.selectPsaMaterialByMaterialId(psaMaterialEntry.getMaterialId());
if (psaMaterial.getStock()<psaMaterialEntry.getEntryQuantity()) {
return 0;
}
psaMaterialMapper.minusStock(psaMaterialEntry.getMaterialId(),psaMaterialEntry.getEntryQuantity());
return psaMaterialEntryMapper.deletePsaMaterialEntryById(id);
psaMaterialEntry.setDelFlag(AttendanceDelFlag.DELETE.getValue());
return psaMaterialEntryMapper.updatePsaMaterialEntry(psaMaterialEntry);
}
@Override
public int addDraftPsaMaterialEntry(PsaMaterialEntry psaMaterialEntry) {
deletePsaMaterialEntryById(psaMaterialEntry.getId());
psaMaterialEntry.setDraft(null);
return insertPsaMaterialEntry(psaMaterialEntry);
}
}
......@@ -37,6 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="itemName != null and itemName != ''"> and item_name like concat('%', #{itemName}, '%')</if>
<if test="entryQuantity != null "> and entry_quantity = #{entryQuantity}</if>
<if test="draft != null and draft != ''"> and draft = #{draft}</if>
<if test="delFlag != null and delFlag != ''"> and del_flag = #{delFlag}</if>
</where>
</select>
......
......@@ -74,8 +74,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT id
FROM psa_material_type_detail
<where>
<if test="materialName != null and materialName != ''">
and material_name LIKE CONCAT('%', #{materialName}, '%')
<if test="itemId != null and itemId != ''">
and material_name LIKE CONCAT('%', #{itemId}, '%')
</if>
</where>
</select>
......@@ -92,6 +92,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</if>
<if test="typeId != null "> and type_id = #{typeId}</if>
<if test="draft != null and draft != ''"> and draft = #{draft}</if>
<if test="delFlag != null and delFlag != ''" > and del_flag = #{delFlag}</if>
</where>
</select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment