|
@@ -1,10 +1,28 @@
|
|
|
package com.huimv.environ.eco.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.huimv.common.token.TokenSign;
|
|
|
+import com.huimv.common.utils.Result;
|
|
|
+import com.huimv.common.utils.ResultCode;
|
|
|
import com.huimv.environ.eco.entity.FeedChange;
|
|
|
+import com.huimv.environ.eco.entity.FeedMaterial;
|
|
|
+import com.huimv.environ.eco.entity.feedVo.FeedChangeVo;
|
|
|
import com.huimv.environ.eco.mapper.FeedChangeMapper;
|
|
|
+import com.huimv.environ.eco.mapper.FeedMaterialMapper;
|
|
|
import com.huimv.environ.eco.service.IFeedChangeService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -17,4 +35,69 @@ import org.springframework.stereotype.Service;
|
|
|
@Service
|
|
|
public class FeedChangeServiceImpl extends ServiceImpl<FeedChangeMapper, FeedChange> implements IFeedChangeService {
|
|
|
|
|
|
+ @Resource
|
|
|
+ private FeedMaterialMapper feedMaterialMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private FeedChangeMapper feedChangeMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public Result add(HttpServletRequest httpServletRequest, Map<String, String> map) throws ParseException {
|
|
|
+ String date = map.get("date");
|
|
|
+ String materialId = map.get("materialId");
|
|
|
+ String changeQuantity = map.get("changeQuantity");
|
|
|
+ String type = map.get("type");
|
|
|
+ String notes = map.get("notes");
|
|
|
+
|
|
|
+ BigDecimal value = BigDecimal.valueOf(Long.parseLong(changeQuantity));
|
|
|
+
|
|
|
+ FeedMaterial feedMaterial = feedMaterialMapper.selectById(materialId);
|
|
|
+
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
|
|
+
|
|
|
+ FeedChange feedChange = new FeedChange();
|
|
|
+ feedChange.setMaterialId(Integer.valueOf(materialId));
|
|
|
+ feedChange.setChangeQuantity(value);
|
|
|
+ feedChange.setDate(sdf.parse(date));
|
|
|
+ feedChange.setNotes(notes);
|
|
|
+ feedChange.setUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
|
|
|
+ feedChange.setType(Integer.valueOf(type));
|
|
|
+ if ("0".equals(type)){
|
|
|
+ BigDecimal add = feedMaterial.getInventory().add(value);
|
|
|
+ feedChange.setRemainder(add);
|
|
|
+ feedMaterial.setInventory(add);
|
|
|
+ }else if ("1".equals(type)){
|
|
|
+ feedChange.setRemainder(value);
|
|
|
+ feedMaterial.setInventory(value);
|
|
|
+ }else {
|
|
|
+ if (value.compareTo(feedMaterial.getInventory()) > 0){
|
|
|
+ return new Result(10001,"出库量不能大于库存!",false);
|
|
|
+ }
|
|
|
+ BigDecimal subtract = feedMaterial.getInventory().subtract(value);
|
|
|
+ feedChange.setRemainder(subtract);
|
|
|
+ feedMaterial.setInventory(subtract);
|
|
|
+ }
|
|
|
+ this.save(feedChange);
|
|
|
+ feedMaterialMapper.updateById(feedMaterial);
|
|
|
+ return Result.SUCCESS();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result getPage(Map<String, String> map) {
|
|
|
+ String pageNum = map.get("pageNum");
|
|
|
+ String pageSize = map.get("pageSize");
|
|
|
+ String materialId = map.get("materialId");
|
|
|
+ String type = map.get("type");
|
|
|
+ String date = map.get("date");
|
|
|
+
|
|
|
+ Page<FeedChange> page = new Page<>(Integer.parseInt(pageNum),Integer.parseInt(pageSize));
|
|
|
+ QueryWrapper queryWrapper = new QueryWrapper<FeedChange>()
|
|
|
+ .eq(ObjectUtil.isNotEmpty(materialId), "c.material_id", materialId)
|
|
|
+ .eq(ObjectUtil.isNotEmpty(type), "c.type",type)
|
|
|
+ .eq(ObjectUtil.isNotEmpty(date), "c.date",date)
|
|
|
+ .orderByDesc("c.id");
|
|
|
+ Page<FeedChangeVo> feedChangePage = feedChangeMapper.page(page, queryWrapper);
|
|
|
+ return new Result(ResultCode.SUCCESS,feedChangePage);
|
|
|
+ }
|
|
|
}
|