Commit ca0925f2 authored by ZhangRunSong's avatar ZhangRunSong

feat:物资草稿

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