智慧农业后台管理
guoshilong
2022-08-18 fe371739b664c4e87914bcc7f3f550fec7e93121
保留农资退回记录,修复当农资库存为1时出库再退回,农资库存数据有误
9 files modified
83 ■■■■ changed files
src/main/java/org/springblade/modules/soldr/controller/SoldrController.java 56 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.xml 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/soldr/service/ISoldrService.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/soldr/service/impl/SoldrServiceImpl.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/soldr/vo/SoldrVO.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/soldrecord/mapper/SoldrecordMapper.xml 1 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/stockrecord/controller/StockrecordController.java 11 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/soldr/controller/SoldrController.java
@@ -29,9 +29,12 @@
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.soldr.vo.SoldrVOs;
import org.springblade.modules.soldrecord.entity.Soldrecord;
import org.springblade.modules.soldrecord.service.ISoldrecordService;
import org.springblade.modules.stock.entity.Stock;
import org.springblade.modules.stock.service.IStockService;
import org.springblade.modules.stockrecord.entity.Stockrecord;
import org.springblade.modules.stockrecord.service.IStockrecordService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -40,10 +43,7 @@
import org.springblade.modules.soldr.service.ISoldrService;
import org.springblade.core.boot.ctrl.BladeController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * 已出库存数量记录表 控制器
@@ -60,6 +60,7 @@
    private final ISoldrService soldrService;
    private final ISoldrecordService soldrecordService;
    private final IStockService stockService;
    private final IStockrecordService stockrecordService;
    /**
     * 详情
@@ -155,20 +156,21 @@
     * @return
     */
    @PostMapping("/out")
    public R out(Integer num, Long id, Integer type) {
    public R out(Integer num, Long id, Integer type,Long createUser,Long createDept) {
        //如果等于就修改并删除
        if (type == 0) {
        if (type == 0) {//退回数量等于库存数量
            Stock stock = new Stock();
            stock.setId(id);
            Stock detail1 = stockService.getOne(Condition.getQueryWrapper(stock));
            Integer amount = detail1.getAmount();
            stock.setAmount(amount + num);
            stock.setState("0");
            stockService.Updaet(stock);
            //删除
            soldrService.del(id);
        }
        //如果小于就修改
        else {
        else {//退回数量小于库存数量
            Soldr soldr = new Soldr();
            soldr.setSid(id);
            //通过农资库存id找到已出库农资表中对应的农资
@@ -213,9 +215,49 @@
            Stock detail1 = stockService.getOne(Condition.getQueryWrapper(stock));
            Integer amount = detail1.getAmount();
            stock.setAmount(amount + num);
            stock.setState("0");
            //更新库存表
            stockService.Updaet(stock);
            //更新已出库待使用农资记录表
            Soldrecord soldrecord = new Soldrecord();
            soldrecord.setAmount1(num);
            soldrecord.setSid(detail1.getId());
            soldrecord.setSpecs1(detail1.getSpecs());
            soldrecord.setSpecsVal1(detail1.getSpecsValue1());
            soldrecord.setSpecsVal2(detail1.getSpecsValue2());
            soldrecord.setType("4");
            soldrecord.setStockId1(detail1.getStockId());
            soldrecord.setIsDeleted(0);
            soldrecord.setStatus(1);
            soldrecord.setCreateTime(new Date());
            soldrecord.setUpdateTime(new Date());
            soldrecord.setCreateUser(createUser);
            soldrecord.setCreateDept(createDept);
            soldrecord.setUpdateUser(createUser);
            soldrecordService.save(soldrecord);
            //更新出入库记录表
            Stockrecord stockrecord = new Stockrecord();
            stockrecord.setAmount1(num);
            stockrecord.setCensus(v);
            stockrecord.setDeptId(detail1.getDeptId());
            stockrecord.setSid(detail1.getId());
            stockrecord.setStockId1(detail1.getStockId());
            stockrecord.setTime1(new Date());
            stockrecord.setType1(detail1.getType());//入库类型?
            stockrecord.setSpecs1(detail1.getSpecs());
            stockrecord.setSpecsVal1(detail1.getSpecsValue1());
            stockrecord.setSpecsVal2(detail1.getSpecsValue2());
            stockrecord.setCreateUser(createUser);
            stockrecord.setCreateDept(createDept);
            stockrecord.setCreateTime(new Date());
//            stockrecord.setUpdateUser();
            stockrecord.setStatus(1);
            stockrecord.setIsDeleted(0);
            stockrecord.setStockType1(1);//入库还是出库?暂定为入库
            stockrecord.setSrId(soldrecord.getId());
            stockrecordService.save(stockrecord);
        }
        return R.success("退回成功");
    }
src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.java
@@ -46,7 +46,7 @@
    void  del(Long id);
    void  dels(Long id);
    List<SoldrVO> selectSol(@Param("farmId") String farmId);
    List<Map<String, Object>> selectCz(Long sid);
    List<Map<String, Object>> selectCz(@Param("sid") Long sid,@Param("deptId") String deptId);
    /**
     * 根据stockId、specs1、specs_val1、specs_val2、sid          找到soldr表中对应的数据
     * @param stockId1    种类id
src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.xml
@@ -116,7 +116,7 @@
    <select id="selectCz" resultType="java.util.Map">
        SELECT census, sid, amount1
        FROM `sys_soldr`
        WHERE sid = #{sid}
        WHERE sid = #{sid} AND dept_id = #{deptId}
    </select>
<!--    根据stockId、specs1、specs_val1、specs_val2、sid-->
    <select id="getByServalParam" resultType="org.springblade.modules.soldr.entity.Soldr">
src/main/java/org/springblade/modules/soldr/service/ISoldrService.java
@@ -44,7 +44,7 @@
    void  del(Long id);
    void  dels(Long id);
    List<SoldrVO> selectSol(String farmId);
    List<Map<String, Object>> selectCz(Long sid);
    List<Map<String, Object>> selectCz(Long sid,String deptId);
    /**
     * 根据stockId、amount1、specs1、specs_val1、specs_val2、sid          找到soldr表中对应的数据
src/main/java/org/springblade/modules/soldr/service/impl/SoldrServiceImpl.java
@@ -62,8 +62,8 @@
    }
    @Override
    public List<Map<String, Object>> selectCz(Long sid) {
        return baseMapper.selectCz(sid);
    public List<Map<String, Object>> selectCz(Long sid,String deptId) {
        return baseMapper.selectCz(sid,deptId);
    }
    @Override
src/main/java/org/springblade/modules/soldr/vo/SoldrVO.java
@@ -39,4 +39,7 @@
    String agrname;
    Integer cnum;
    String codes;
    Integer outNum;
    Integer outType;
}
src/main/java/org/springblade/modules/soldrecord/mapper/SoldrecordMapper.xml
@@ -103,6 +103,7 @@
        <if test="soldrecord.deptId != null and soldrecord.deptId !=''">
            and str.dept_id = #{soldrecord.deptId}
        </if>
        ORDER BY st.create_time DESC
    </select>
    <update id="updateSold">
src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml
@@ -137,7 +137,7 @@
    <!--入库出库-->
    <update id="Updaet">
        update sys_stock
        set amount = #{stock.amount}
        set amount = #{stock.amount},state = #{stock.state}
        where id = #{stock.id}
    </update>
src/main/java/org/springblade/modules/stockrecord/controller/StockrecordController.java
@@ -144,6 +144,7 @@
    @ApiOperation(value = "新增", notes = "传入stockrecord")
    public R save(@Valid @RequestBody StockrecordVO stockrecord) {
        Integer stockType1 = stockrecord.getStockType1();
        //0出库 1入库
        //出库
        if (stockType1 == 0) {
            //库存量
@@ -193,8 +194,8 @@
                stock.setState("1");
                stockService.UpdaeAmountc(stock);
                //同时删除所有农资记录
                soldrecordService.delc(stockrecord.getStockId1());
                soldrService.del(stockrecord.getSid());
//                soldrecordService.delc(stockrecord.getStockId1());
//                soldrService.del(stockrecord.getSid());
            } else {
                stock.setState("0");
                stockService.UpdaeAmountc(stock);
@@ -209,7 +210,7 @@
            soldrecord.setType(stockrecord.getType1());
            soldrecord.setSid(stockrecord.getSid());
            String type1 = stockrecord.getType1();
            if (type1.equals("0")) {
            if (type1.equals("0")) { //0 采购入库
                //已出库农资数量记录
                Soldr soldr = new Soldr();
                soldr.setSid(stockrecord.getSid());
@@ -222,8 +223,8 @@
                soldr.setCensus(v);
                soldr.setDeptId(stockrecord.getDeptId());
                //已出库农资数量
                List<Map<String, Object>> maps = soldrService.selectCz(stockrecord.getSid());
                if (maps.size()!=0) {
                List<Map<String, Object>> maps = soldrService.selectCz(stockrecord.getSid(),stockrecord.getDeptId());
                if (maps.size()!=0) {//已出库存表中有重复的
                    String a = maps.get(0).get("amount1").toString();
                    Integer amount11=Integer.parseInt(a);
                    String amount12 = maps.get(0).get("amount1").toString();