自动化立体仓库 - WMS系统
#
LSH
2023-05-19 a993d80747bcbc8f937999d8493d386c7aa7f7e6
#
4个文件已修改
95 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/ManPakOutController.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OutController.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ManLocDetlMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/ManPakOutController.java
@@ -5,13 +5,14 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.core.common.SpringUtils;
import com.core.common.*;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.OrderDomainParam;
import com.zy.asrs.service.*;
import com.zy.common.CodeRes;
import com.zy.common.config.AdminInterceptor;
import com.zy.common.utils.BarcodeUtils;
import com.zy.common.utils.QrCode;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -20,6 +21,10 @@
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -101,4 +106,39 @@
        }
        return R.ok(orders1);
    }
    @RequestMapping(value = "/ManPakOut/print/auth")
    @ManagerAuth(memo = "订单编码打印")
    public R manPakOutPrint(@RequestParam(value = "param[]") String[] param) {
        if(Cools.isEmpty(param)) {
            return R.parse(CodeRes.EMPTY);
        }
        List<ManPakOut> res = new ArrayList<>();
        for (String orderNo : param){
            res = manPakOutService.selectList(new EntityWrapper<ManPakOut>().eq("doc_num", orderNo));
        }
        return R.ok().add(res);
    }
    @RequestMapping(value = "/ManPakOut/code/auth")
//    @ManagerAuth(memo = "物料编码条形码获取(type:1(条形码);2(二维码)")
    public R manPakOutCodeBarcode(@RequestParam(defaultValue = "2") Integer type
            , @RequestParam String param
            , HttpServletResponse response) throws Exception {
        AdminInterceptor.cors(response);
        if (Cools.isEmpty(param)){
            return R.parse(BaseRes.EMPTY);
        }
        BufferedImage img;
        if (type == 1) {
            img = BarcodeUtils.encode(param);
        } else {
            img = QrCode.createImg(param);
        }
        if (!ImageIO.write(img, "jpg", response.getOutputStream())) {
            throw new IOException("Could not write an image of format jpg");
        }
        response.getOutputStream().flush();
        response.getOutputStream().close();
        return R.ok();
    }
}
src/main/java/com/zy/asrs/controller/OutController.java
@@ -159,8 +159,10 @@
        List<String> matnrs=new ArrayList<>();
        for (int i = 0; i < locDtos.size(); i++) {
            LocDto locDto = locDtos.get(locDtos.size() - 1 - i);
            if (locDto.getLocNo() == null || locDto.getManu().equals("立库")) {
            if (locDto.getLocNo() == null) {
                is[i][0] = 1;
            } else if (locDto.getManu().equals("立库")){
                is[i][0] = 2;
            } else {
                is[i][0] = 0;
            }
@@ -168,12 +170,17 @@
        }
        List<LocDto> locDtos1=new ArrayList<>();
        for (int[] i : is) {
            if (i[0] == 1) {
            if (i[0] == 2) {
                if (!matnrs.contains(locDtos.get(i[1]).getMatnr())){
                    matnrs.add(locDtos.get(i[1]).getMatnr());
                }
                locDtos1.add(locDtos.get(i[1]));
                locDtos.remove(i[1]);
            }else if (i[0]==1){
                LocDto locDto = locDtos.get(i[1]);
                locDto.setLocNo("库存不足");
                locDtos.remove(i[1]);
                locDtos.add(locDto);
            }
        }
        for (String matnr:matnrs){
@@ -181,7 +188,7 @@
            int b = 0;
            for (int i = 0; i < locDtos1.size(); i++){
                if (locDtos1.get(i).getMatnr().equals(matnr)){
                    if (a.equals(0)){
                    if (a.equals(0.0)){
                        b=i;
                    }
                    a=a+locDtos1.get(i).getAnfme();
@@ -207,7 +214,7 @@
        }
        for (LocDto locDto:locDtos){
            ManLocDetl manLocDetl = manLocDetlService.selectItem(locDto.getLocNo(), locDto.getMatnr(), locDto.getBatch());
            if (!(locDto.getAnfme()>manLocDetl.getAnfme())) {
            if (!Cools.isEmpty(manLocDetl) && !(locDto.getAnfme()>=manLocDetl.getAnfme())) {
                manLocDetl.setStatus(0);
                if (manLocDetlService.update(manLocDetl, new EntityWrapper<ManLocDetl>().eq("uuid", manLocDetl.getUuid()))) {
                    if (addPakOUT(locDto).equals(R.ok())) {
@@ -232,6 +239,13 @@
                        return R.error("添加拣货明细失败,请联系管理员"+locDto.getOrderNo()+locDto.getMatnr());
                    }
                }
            }else if (locDto.getLocNo().equals("立库")){
                addPakOUT(locDto).equals(R.ok());
            }
        }
        for (LocDto locDto:locDtos){
            if (locDto.getLocNo().equals("库存不足")){
                addPakOUT(locDto).equals(R.ok());
            }
        }
        return R.ok();
@@ -246,6 +260,7 @@
        manPakOut.setMatnr(locDto.getMatnr());
        manPakOut.setMaktx(locDto.getMaktx());
        manPakOut.setDocNum(locDto.getOrderNo());
        manPakOut.setCount(0);
        manPakOut.setStatus(0);
        manPakOut.setCreateTime(new Date());
        manPakOut.setBatch(locDto.getBatch());
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -60,6 +60,8 @@
    private NodeService nodeService;
    @Autowired
    private ManLocDetlService manLocDetlService;
    @Autowired
    private ManPakOutService manPakOutService;
    @Override
    @Transactional
@@ -657,8 +659,12 @@
            if (Cools.isEmpty(orderDetl)) {
                return R.error("单据明细有误,请检查");
            }
            if (jsonOrderDetl.getAnfme() > (orderDetl.getAnfme() - orderDetl.getQty())) {
                return R.error("出库数量大于单据可出数量");
            EntityWrapper<ManPakOut> manPakOutEntityWrapper = new EntityWrapper<>();
            manPakOutEntityWrapper.eq("loc_no",jsonLocNo);
            manPakOutEntityWrapper.eq("matnr",jsonOrderDetl.getMatnr());
            ManPakOut manPakOut = manPakOutService.selectOne(manPakOutEntityWrapper); //获取拣货单中的对应的订单
            if (jsonOrderDetl.getAnfme() > (manPakOut.getAnfme()-manPakOut.getCount())) { //判断工作数量是否大于拣货单剩余可出的数量
                return R.error("出库数量大于拣货单剩余可出数量");
            }
            ManLocDetl manLocDetl = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>()
                    .eq("loc_no", jsonLocNo)
src/main/resources/mapper/ManLocDetlMapper.xml
@@ -30,6 +30,7 @@
        <result column="update_by" property="updateBy" />
        <result column="modi_time" property="modiTime" />
        <result column="memo" property="memo" />
        <result column="uuid" property="uuid" />
    </resultMap>
@@ -247,10 +248,21 @@
        where loc_no = #{locNo}
        and matnr = #{matnr}
    </select>
    <select id="selectItem0" resultType="com.zy.asrs.entity.ManLocDetl">
    <select id="selectItem" resultType="com.zy.asrs.entity.ManLocDetl">
        select top 1 * from man_loc_detl
        where loc_no = #{locNo}
        and matnr = #{matnr}
        <if test="batch!=null and batch!='' ">
            and batch = #{batch}
        </if>
        <!--        <choose>-->
        <!--            <when test="batch != null and batch != ''">-->
        <!--                and batch = #{batch}-->
        <!--            </when>-->
        <!--            <otherwise>-->
        <!--                and (batch IS NULL OR batch = '')-->
        <!--            </otherwise>-->
        <!--        </choose>-->
    </select>
    <select id="listByOutPage" resultMap="BaseResultMap">