自动化立体仓库 - WMS系统
#
18516761980
2021-09-08 93b591f65d0dbc0ab2238fb8a027c58f44e5fb66
src/main/java/com/zy/asrs/controller/StatisController.java
@@ -6,13 +6,17 @@
import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.MatCode;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.MatCodeService;
import com.zy.asrs.utils.VersionUtils;
import com.zy.common.web.BaseController;
import com.zy.ints.entity.StockSync;
import com.zy.ints.service.StockSyncService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@@ -20,6 +24,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -33,6 +38,8 @@
    private MatCodeService matCodeService;
    @Autowired
    private LocDetlService locDetlService;
    @Autowired
    StockSyncService stockSyncService;
    // 库存统计 ------------------------------------------------------------------------------------------
@@ -44,7 +51,7 @@
                         @RequestParam Map<String, Object> param) {
        Page<LocDetl> stockStatis = locDetlService.getStockStatis(toPage(curr, limit, param, LocDetl.class));
        for (LocDetl locDetl : stockStatis.getRecords()) {
            MatCode mat = matCodeService.selectOne(new EntityWrapper<MatCode>().eq("mat_no",locDetl.getMatNo()).eq("str8",locDetl.getColor()));
            MatCode mat = matCodeService.selectOne(new EntityWrapper<MatCode>().eq("mat_no",locDetl.getMatNo()));
//            MatCode mat = matCodeService.selectById(locDetl.getMatnr());
            if (mat != null) {
                VersionUtils.setLocDetl(locDetl, mat);
@@ -73,11 +80,71 @@
                .doWrite(excel);
    }
//    @RequestMapping(value = "/stock/statis/queryLocByMatNoAndMatName")
//    public R queryLocByMatNoAndMatName(@RequestParam LocDetl locDetl){
//            List<LocDetl> locDetls=locDetlService.getlocDetlByMatNoAndMatName(locDetl);
////        locDetl.
//        return R.ok().add(locDetls);
//    }
    /**
     * 获取库存同步表数据
     * @return
     */
    @RequestMapping(value = "/stock/stockSyncCount")
    @ManagerAuth(memo = "获取库存同步上传清单数量")
    public R getStockSyncCount() {
        return R.ok(stockSyncService.getStockSyncCount());
    }
    /**
     * 插入数据到库存同步表
     * @return
     */
    @RequestMapping(value = "/stock/insertStockSync")
    @ManagerAuth(memo = "同步上传清单数据插入")
    @Transactional
    public R insertStockSync() {
        Date now = new Date();
        Long userId = getUserId();
        List<LocDetl> locDetls = locDetlService.getStockSum();
        for(LocDetl locdetl : locDetls){
            StockSync stockSync = new StockSync();
            stockSync.setMatNo(locdetl.getMatNo());
            stockSync.setMatName(locdetl.getMatName());
            stockSync.setQty(locdetl.getQty());
            stockSync.setModiUser(userId);
            stockSync.setModiTime(now);
            stockSync.setAppeUser(userId);
            stockSync.setAppeTime(now);
            if(!stockSyncService.insert(stockSync)){
                throw new CoolException("插入同步库存数据失败");
            }
        }
        return R.ok(locDetls.size());
    }
    /**
     * 更新数据到库存同步表,先清空再插入
     * @return
     */
    @RequestMapping(value = "/stock/updateStockSync")
    @ManagerAuth(memo = "清空同步上传数据并插入")
    @Transactional
    public R updateStockSync() {
        if(!stockSyncService.clearStockSync()){
            throw new CoolException("同步上传数据清空失败,请联系管理员");
        }
        Date now = new Date();
        Long userId = getUserId();
        List<LocDetl> locDetls = locDetlService.getStockSum();
        for(LocDetl locdetl : locDetls){
            StockSync stockSync = new StockSync();
            stockSync.setMatNo(locdetl.getMatNo());
            stockSync.setMatName(locdetl.getMatName());
            stockSync.setQty(locdetl.getQty());
            stockSync.setModiUser(userId);
            stockSync.setModiTime(now);
            stockSync.setAppeUser(userId);
            stockSync.setAppeTime(now);
            if(!stockSyncService.insert(stockSync)){
                throw new CoolException("更新同步库存数据失败");
            }
        }
        return R.ok(locDetls.size());
    }
}