zss
2023-08-10 e8a75a44bdc130e8b162351c3c94c01f3d8ada5e
入库+发货
已添加16个文件
已修改26个文件
1159 ■■■■■ 文件已修改
inspect-server/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/controller/ConsignmentController.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/controller/ImportRepertoryController.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/controller/RepertoryController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/mapper/ConsignmentMapper.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/mapper/ImportRepertoryMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/mapper/RepertoryMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/pojo/Consignment.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/pojo/ImportRepertory.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/pojo/Repertory.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ImportRepertoryDto.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/service/ConsignmentService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/service/ImportRepertoryService.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/service/RepertoryService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/service/impl/ConsignmentServiceImpl.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/service/impl/ImportRepertoryServiceImpl.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/service/impl/RepertoryServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/resources/mapper/ConsignmentMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/resources/mapper/ImportRepertoryMapper.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/resources/mapper/RepertoryMapper.xml 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sale-server/pom.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sale-server/src/main/java/com/yuanchu/mom/controller/SaleController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sale-server/src/main/java/com/yuanchu/mom/mapper/SaleMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sale-server/src/main/java/com/yuanchu/mom/pojo/Sale.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sale-server/src/main/java/com/yuanchu/mom/pojo/SaleMaterial.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sale-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto1.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sale-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto2.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sale-server/src/main/java/com/yuanchu/mom/service/SaleService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sale-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sale-server/src/main/resources/mapper/SaleMapper.xml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sale-server/src/main/resources/mapper/SaleMaterialMapper.xml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/controller/TechnologyTemplateController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/pojo/TechnologyTemplate.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/resources/mapper/OrdersMapper.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/resources/mapper/TechnologyTemplateMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/pom.xml
@@ -33,6 +33,11 @@
            <artifactId>standard-server</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.yuanchu.mom</groupId>
            <artifactId>inventory-server</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.vaadin.external.google</groupId>
inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java
@@ -5,6 +5,8 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.FinishedInspect;
import com.yuanchu.mom.service.*;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.utils.Jwt;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -43,6 +45,9 @@
    @Autowired
    private MaterialService materialService;
    @Autowired
    Jwt jwt;
    @ApiOperation(value = "新增按钮-->1、新增成品检验单")
    @PostMapping("/add_process_inspection_sheet")
@@ -84,8 +89,9 @@
            @ApiImplicitParam(name = "result",value = "检验结论",dataTypeClass  = Integer.class,required = true),
    })
    @PostMapping("/inspection_conclusion")
    public Result<?> inspectionConclusion(Integer finishedInspectId, Integer result){
        Integer isInsertSuccess = finishedInspectService.inspectionConclusion(finishedInspectId, result);
    public Result<?> inspectionConclusion(@RequestHeader("token") String token,Integer finishedInspectId, Integer result) throws Exception {
        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
        Integer isInsertSuccess = finishedInspectService.inspectionConclusion(data.get("name").replaceAll("\"", ""),finishedInspectId, result);
        if (isInsertSuccess == 1){
            return Result.success("上报成功!");
        }
inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java
@@ -21,7 +21,7 @@
    @Transactional(rollbackFor = Exception.class)
    Integer addProcessInspectionSheet(FinishedInspect finishedInspect);
    Integer inspectionConclusion(Integer finishedInspectId, Integer result);
    Integer inspectionConclusion(String username,Integer finishedInspectId, Integer result);
    IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer inspectResult, String inspectDate, String inspectUsername);
}
inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
@@ -1,18 +1,22 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.mapper.InspectUnacceptedMapper;
import com.yuanchu.mom.mapper.RepertoryMapper;
import com.yuanchu.mom.pojo.FinishedInspect;
import com.yuanchu.mom.mapper.FinishedInspectMapper;
import com.yuanchu.mom.pojo.InspectUnaccepted;
import com.yuanchu.mom.pojo.Repertory;
import com.yuanchu.mom.service.FinishedInspectService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.service.InspectionItemService;
import com.yuanchu.mom.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@@ -41,6 +45,9 @@
    @Resource
    InspectUnacceptedMapper inspectUnacceptedMapper;
    @Resource
    RepertoryMapper repertoryMapper;
    @Override
    public Integer addProcessInspectionSheet(FinishedInspect finishedInspect) {
        finishedInspect.setType(0);
@@ -53,22 +60,85 @@
        return 0;
    }
    @Override
    public Integer inspectionConclusion(Integer finishedInspectId, Integer result) {
    @Transactional(rollbackFor = Exception.class)
    public Integer inspectionConclusion(String username, Integer finishedInspectId, Integer result) {
        //更新检验单里面的检验结论
        LambdaUpdateWrapper<FinishedInspect> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.eq(FinishedInspect::getId, finishedInspectId);
        updateWrapper.set(FinishedInspect::getResult, result);
        finishedInspectMapper.update(new FinishedInspect(), updateWrapper);
        //如果检验结论为不合格,则需要新增不合格检验单
        //如果检验结论为不合格,则需要新增不合格检验单,还需要新增半成品库存
        FinishedInspect finishedInspect = finishedInspectMapper.selectById(finishedInspectId);
        if (result == 0) {
            /*新增不合格检验单*/
            InspectUnaccepted inspectUnaccepted = InspectUnaccepted.builder()
                    .reason(finishedInspect.getProjectName() + "不合格")  //暂且定义为工程名称不合格
                    .rawInspectId(finishedInspectId)
                    .type(finishedInspect.getType())
                    .build();
            inspectUnacceptedMapper.insert(inspectUnaccepted);
            /*新增半成品(1)库存*/
            //如果入库的信息一样只有库存不一样,则在原来的库存数量上加上相应的数量
            LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
                    .eq(Repertory::getCode, finishedInspect.getMaterialCode())
                    .eq(Repertory::getName, finishedInspect.getMaterial())
                    .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
                    .eq(Repertory::getUnit, finishedInspect.getUnit())
                    .eq(Repertory::getType, 1);
            Repertory rep = repertoryMapper.selectOne(queryWrapper);
            if (rep != null && rep.getCheckState()==1) {
                rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
                rep.setUserName(username);
                repertoryMapper.updateById(rep);
            } else {
                //如果除了库存别的信息有任何一个不一样,则新增一条半成品库存
                Repertory repertory = Repertory.builder()
                        .orderCode(finishedInspect.getOrderNumber())
                        .code(finishedInspect.getMaterialCode())
                        .name(finishedInspect.getMaterial())
                        .specifications(finishedInspect.getSpecificationsModel())
                        .unit(finishedInspect.getUnit())
                        .number(finishedInspect.getQuantity())
                        .userName(username)
                        .type(1)
                        .checkState(1)
                        .build();
                repertoryMapper.insert(repertory);
            }
        }
        //如果检验合格,需要新增成品(0)库存
        if (result == 1) {
            //如果入库的信息一样只有库存不一样,则在原来的库存数量上加上相应的数量
            LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
                    .eq(Repertory::getCode, finishedInspect.getMaterialCode())
                    .eq(Repertory::getName, finishedInspect.getMaterial())
                    .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
                    .eq(Repertory::getUnit, finishedInspect.getUnit())
                    .eq(Repertory::getType, 0);
            Repertory rep = repertoryMapper.selectOne(queryWrapper);
            if (rep != null && rep.getCheckState()==1) {
                rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
                rep.setUserName(username);
                repertoryMapper.updateById(rep);
            } else {
                //如果除了库存别的信息有任何一个不一样,则新增一条成品库存
                Repertory repertory = Repertory.builder()
                        .orderCode(finishedInspect.getOrderNumber())
                        .code(finishedInspect.getMaterialCode())
                        .name(finishedInspect.getMaterial())
                        .specifications(finishedInspect.getSpecificationsModel())
                        .unit(finishedInspect.getUnit())
                        .number(finishedInspect.getQuantity())
                        .userName(username)
                        .type(0)
                        .checkState(1)
                        .build();
                repertoryMapper.insert(repertory);
            }
        }
        return 1;
    }
inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
@@ -161,26 +161,6 @@
        rawInsProductService.saveBatch(list);
        return rawInspect.getId();
    }
    //判断数组是否包含0
    private static boolean containsZero(Object[] array) {
        for (Object num : array) {
            if (num.equals(0)) {
                return true;
            }
        }
        return false;
    }
    //判断数组是否全部为1
    private static boolean allOnes(Object[] array) {
        for (Object num : array) {
            if (!num.equals(1)) {
                return false;
            }
        }
        return true;
    }
}
inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml
@@ -18,13 +18,13 @@
        DATE_FORMAT(deal_time, '%Y-%m-%d') '处理日期'
        from mom_ocean.raw_inspect ri inner join mom_ocean.inspect_unaccepted ru on ri.id = ru.raw_inspect_id
        <where>
        <if test="dealState!=null">
        <if test="dealState!=null and dealState!=''">
           and deal_state=#{dealState}
        </if>
        <if test="formTime!=null">
        <if test="formTime!=null and formTime!=''">
            and form_time=#{formTime}
        </if>
        <if test="type!=null">
        <if test="type!=null and type!=''">
            and ru.type=#{type}
        </if>
        and ru.state=1
@@ -49,13 +49,13 @@
        mom_ocean.user u
        where fi.id = ru.raw_inspect_id
        and fi.user_id=u.id
        <if test="dealState!=null">
        <if test="dealState!=null and dealState!=''">
            and deal_state=#{dealState}
        </if>
        <if test="formTime!=null">
        <if test="formTime!=null and formTime!=''">
            and fi.create_time=#{formTime}
        </if>
        <if test="type!=null">
        <if test="type!=null and type!=''">
            and ru.type=#{type}
        </if>
        and ru.state=1
inventory-server/pom.xml
@@ -31,6 +31,12 @@
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.yuanchu.mom</groupId>
            <artifactId>sale-server</artifactId>
            <version>1.0.0</version>
        </dependency>
        <!--工具模块-->
        <dependency>
            <groupId>com.yuanchu.mom</groupId>
inventory-server/src/main/java/com/yuanchu/mom/controller/ConsignmentController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
package com.yuanchu.mom.controller;
import com.yuanchu.mom.pojo.dto.ConsignmentDto;
import com.yuanchu.mom.service.SaleService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.utils.Jwt;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.yuanchu.mom.service.ConsignmentService;
import javax.annotation.Resource;
import java.util.Map;
/**
 * æˆå“å‘货表(Consignment)表控制层
 *
 * @author zss
 * @since 2023-08-10 15:08:02
 */
@Api(tags = "WMS管理-->成品发货")
@RestController
@RequestMapping("/consignment")
public class ConsignmentController {
    @Autowired
    private ConsignmentService consignmentService;
    @Resource
    SaleService saleService;
    @Resource
    Jwt jwt;
    @ApiOperation(value = "新增成品发货-->根据订单号查询销售信息")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "orderNumber", value = "订单编号", dataTypeClass = String.class, required = true)
    })
    @GetMapping("/selSale")
    public Result selSale(String orderNumber )  {
        return Result.success(saleService.selSale(orderNumber));
    }
    @ApiOperation(value = "新增成品发货")
    @PostMapping("/addCon")
    public Result addCon(@RequestHeader("token") String token, @RequestBody ConsignmentDto consignmentDto) throws Exception {
        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
        return Result.success(consignmentService.addCon(data.get("name").replaceAll("\"", ""), consignmentDto));
    }
}
inventory-server/src/main/java/com/yuanchu/mom/controller/ImportRepertoryController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.ImportRepertory;
import com.yuanchu.mom.pojo.dto.ImportRepertoryDto;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.utils.Jwt;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.yuanchu.mom.service.ImportRepertoryService;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * æˆå“å…¥åº“表(ImportRepertory)表控制层
 *
 * @author zss
 * @since 2023-08-10 10:27:01
 */
@Api(tags = "WMS管理-->成品入库")
@RestController
@RequestMapping("/importRepertory")
public class ImportRepertoryController {
    @Autowired
    private ImportRepertoryService importRepertoryService;
    @Resource
    Jwt jwt;
    @ApiOperation(value = "新增成品入库")
    @PostMapping("/addImpRep")
    public Result addSale(@RequestHeader("token") String token, @RequestBody ImportRepertoryDto importRepertoryDto) throws Exception {
        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
        importRepertoryService.addImpRep(data.get("name").replaceAll("\"", ""), importRepertoryDto);
        return Result.success("新增成功!");
    }
    @ApiOperation("查询所有入库列表")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "pageSize", value = "页数", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "countSize", value = "条数/页", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "orderCode", value = "订单编号", dataTypeClass = String.class),
            @ApiImplicitParam(name = "name", value = "材料名称", dataTypeClass = String.class),
            @ApiImplicitParam(name = "time", value = "入库日期", dataTypeClass = String.class)
    })
    @GetMapping("/selectAllImpRep")
    public Result selectAllImpRep(int pageSize, int countSize, String orderCode, String name, String time) {
        IPage<Map<String, Object>> importRepertoryPage = importRepertoryService.selectAllImpRep(new Page<Object>(pageSize, countSize), orderCode, name, time);
        Map<String, Object> map = new HashMap<>();
        map.put("total", importRepertoryPage.getTotal());
        map.put("row", importRepertoryPage.getRecords());
        return Result.success(map);
    }
    @ApiOperation("根据id查看入库详情")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "入库id", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/selectImpRepById")
    public Result selectImpRepById(Integer id) {
        return Result.success(importRepertoryService.getById(id));
    }
    @ApiOperation(value = "根据入库id删除")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "入库id", dataTypeClass = Integer.class, required = true)
    })
    @PostMapping("/delImpRep")
    public Result delImpRep(Integer id) {
        importRepertoryService.delImpRep(id);
        return Result.success();
    }
    @ApiOperation(value = "批量删除")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "ids", value = "ids", dataTypeClass = Integer.class, dataType = "List", required = true)
    })
    @PostMapping("/delAllImpRep")
    public Result delAllImpRep(@RequestParam("ids") List<Integer> ids) {
        importRepertoryService.delAllImpRep(ids);
        return Result.success();
    }
}
inventory-server/src/main/java/com/yuanchu/mom/controller/RepertoryController.java
@@ -34,11 +34,12 @@
            @ApiImplicitParam(name = "name", value = "产品名称", dataTypeClass = String.class),
            @ApiImplicitParam(name = "specifications", value = "产品型号", dataTypeClass = String.class),
            @ApiImplicitParam(name = "time", value = "入库日期", dataTypeClass = String.class),
            @ApiImplicitParam(name = "type", value = "类型(为空=全部)", dataTypeClass = Integer.class)
            @ApiImplicitParam(name = "type", value = "类型(为空=全部)", dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "checkState", value = "检验状态(为空=全部)", dataTypeClass = Integer.class)
    })
    @GetMapping("/selectAllRepertory")
    public Result selectAllRepertory(int pageSize, int countSize, String name, String specifications, String time, Integer type) {
        IPage<Map<String, Object>> repertoryPage = repertoryService.selectAllRepertory(new Page<Object>(pageSize, countSize), name, specifications, time, type);
    public Result selectAllRepertory(int pageSize, int countSize, String name, String specifications, String time, Integer type,Integer checkState) {
        IPage<Map<String, Object>> repertoryPage = repertoryService.selectAllRepertory(new Page<Object>(pageSize, countSize), name, specifications, time, type,checkState);
        Map<String, Object> map = new HashMap<>();
        map.put("total", repertoryPage.getTotal());
        map.put("row", repertoryPage.getRecords());
inventory-server/src/main/java/com/yuanchu/mom/mapper/ConsignmentMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.Consignment;
import java.util.List;
/**
 * æˆå“å‘货表(Consignment)表数据库访问层
 *
 * @author zss
 * @since 2023-08-10 15:08:02
 */
public interface ConsignmentMapper extends BaseMapper<Consignment> {
    //查询所有发货记录
    List<Consignment> selectAll();
}
inventory-server/src/main/java/com/yuanchu/mom/mapper/ImportRepertoryMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.ImportRepertory;
import java.util.Map;
/**
 * æˆå“å…¥åº“表(ImportRepertory)表数据库访问层
 *
 * @author zss
 * @since 2023-08-10 10:27:01
 */
public interface ImportRepertoryMapper extends BaseMapper<ImportRepertory> {
    //查询入库列表
    IPage<Map<String, Object>> selectAllImpRep(Page<Object> page, String orderCode, String name, String time);
}
inventory-server/src/main/java/com/yuanchu/mom/mapper/RepertoryMapper.java
@@ -17,6 +17,6 @@
public interface RepertoryMapper extends BaseMapper<Repertory> {
    //查询所有库存列表
    IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type);
    IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type,Integer checkState);
}
inventory-server/src/main/java/com/yuanchu/mom/pojo/Consignment.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,106 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.io.Serializable;
/**
 * æˆå“å‘货表(Consignment)表实体类
 *
 * @author zss
 * @since 2023-08-10 15:08:02
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Builder
@TableName("consignment")
public class Consignment implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * id
     **/
    @TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * åˆåŒç¼–号
     **/
    private String customerCode;
    /**
     * æŠ¼è¿å•编号
     **/
    private String escortCode;
    /**
     * è®¢å•编号
     **/
    private String orderCode;
    /**
     * ææ–™ç¼–码
     **/
    private String code;
    /**
     * ææ–™åç§°
     **/
    private String name;
    /**
     * åž‹å·è§„æ ¼
     **/
    private String specifications;
    /**
     * å•位
     **/
    private String unit;
    /**
     * æ•°é‡
     **/
    private Integer number;
    /**
     * ç¼–制人、发货人(当前用户名)
     **/
    private String userName;
    /**
     * æ£€æŸ¥äººå‘˜
     **/
    private String checkName;
    /**
     * è£…配人员
     **/
    private String fitName;
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    private Integer state;
    /**
     * å‘货日期
     **/
    @TableField(fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date updateTime;
}
inventory-server/src/main/java/com/yuanchu/mom/pojo/ImportRepertory.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.io.Serializable;
/**
 * æˆå“å…¥åº“表(ImportRepertory)表实体类
 *
 * @author zss
 * @since 2023-08-10 10:27:02
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Builder
@TableName("import_repertory")
public class ImportRepertory implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * id
     **/
    @TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * è®¢å•编码
     **/
    private String orderCode;
    /**
     * ææ–™ç¼–码
     **/
    private String code;
    /**
     * ææ–™åç§°
     **/
    private String name;
    /**
     * åž‹å·è§„æ ¼
     **/
    private String specifications;
    /**
     * å•位
     **/
    private String unit;
    /**
     * æ•°é‡
     **/
    private Integer number;
    /**
     * å…¥åº“人(当前用户名)
     **/
    private String userName;
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    private Integer state;
    /**
     * å…¥åº“日期
     **/
    @TableField(fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime;
    /**
     * ${column.comment}
     **/
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date updateTime;
    /**
     * å¤‡æ³¨
     **/
    private String note;
}
inventory-server/src/main/java/com/yuanchu/mom/pojo/Repertory.java
@@ -52,20 +52,6 @@
     **/
    private String specifications;
    /**
     * è¯•验要求
     **/
    private String requirements;
    /**
     * å·¥è‰ºæ–‡ä»¶ç¼–号
     **/
    private String documentNumber;
    /**
     * åº“位号
     **/
    private Integer seat;
    /**
     * å•位
@@ -82,11 +68,8 @@
     **/
    private String userName;
    /**
     * ${column.comment}
     **/
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    @TableLogic(value = "1", delval = "0")
    private Integer state;
    /**
@@ -114,5 +97,10 @@
     * ç±»åž‹ 0:成品;1:半成品
     **/
    private Integer type;
    /**
     *检验状态0:未检验;1:已检验
     **/
    private Integer checkState;
}
inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,53 @@
package com.yuanchu.mom.pojo.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ConsignmentDto {
    //订单编号
    @JsonSerialize
    private String orderCode;
    //合同编号
    @JsonSerialize
    private String customerCode;
    //客户名称
    @JsonSerialize
    private String proname;
    //到货地址
    @JsonSerialize
    private String adress;
    //收货联系人
    @JsonSerialize
    private String username;
    //手机号
    @JsonSerialize
    private String phone ;
    //产品信息
    @JsonSerialize
    private List<ConsignmentDto2> messages;
    //检查人员
    @JsonSerialize
    private String checkName;
    //装配人员
    @JsonSerialize
    private String fitName;
}
inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ImportRepertoryDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package com.yuanchu.mom.pojo.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
@Data
public class ImportRepertoryDto {
    /**
     * è®¢å•编码
     **/
    @JsonSerialize
    private String orderCode;
    /**
     * ææ–™ç¼–码
     **/
    @JsonSerialize
    private String code;
    /**
     * ææ–™åç§°
     **/
    @JsonSerialize
    private String name;
    /**
     * åž‹å·è§„æ ¼
     **/
    @JsonSerialize
    private String specifications;
    /**
     * å•位
     **/
    @JsonSerialize
    private String unit;
    /**
     * æ•°é‡
     **/
    @JsonSerialize
    private Integer number;
    /**
     * å¤‡æ³¨
     **/
    @JsonSerialize
    private String note;
}
inventory-server/src/main/java/com/yuanchu/mom/service/ConsignmentService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.Consignment;
import com.yuanchu.mom.pojo.dto.ConsignmentDto;
/**
 * æˆå“å‘货表(Consignment)表服务接口
 *
 * @author zss
 * @since 2023-08-10 15:08:02
 */
public interface ConsignmentService extends IService<Consignment> {
    /**
     * æ–°å¢žæˆå“å‘è´§
     * @param name
     * @param consignmentDto
     */
    String addCon(String name, ConsignmentDto consignmentDto);
}
inventory-server/src/main/java/com/yuanchu/mom/service/ImportRepertoryService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.ImportRepertory;
import com.yuanchu.mom.pojo.dto.ImportRepertoryDto;
import java.util.List;
import java.util.Map;
/**
 * æˆå“å…¥åº“表(ImportRepertory)表服务接口
 *
 * @author zss
 * @since 2023-08-10 10:27:01
 */
public interface ImportRepertoryService extends IService<ImportRepertory> {
    //新增成品入库
    void addImpRep(String name, ImportRepertoryDto importRepertoryDto);
    /**
     * æŸ¥è¯¢å…¥åº“列表
     * @param page
     * @param orderCode
     * @param name
     * @param time
     * @return
     */
    IPage<Map<String, Object>> selectAllImpRep(Page<Object> page, String orderCode, String name, String time);
    /**
     * æ ¹æ®id删除
     * @param id
     */
    void delImpRep(Integer id);
    /**
     * æ‰¹é‡åˆ é™¤
     * @param ids
     */
    void delAllImpRep(List<Integer> ids);
}
inventory-server/src/main/java/com/yuanchu/mom/service/RepertoryService.java
@@ -24,6 +24,6 @@
     * @param type
     * @return
     */
    IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type);
    IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type,Integer checkState);
}
inventory-server/src/main/java/com/yuanchu/mom/service/impl/ConsignmentServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.ConsignmentMapper;
import com.yuanchu.mom.mapper.RepertoryMapper;
import com.yuanchu.mom.pojo.Consignment;
import com.yuanchu.mom.pojo.Repertory;
import com.yuanchu.mom.pojo.dto.ConsignmentDto;
import com.yuanchu.mom.pojo.dto.ConsignmentDto2;
import com.yuanchu.mom.service.ConsignmentService;
import com.yuanchu.mom.utils.MyUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
 * æˆå“å‘货表(Consignment)表服务实现类
 *
 * @author zss
 * @since 2023-08-10 15:08:02
 */
@Service
public class ConsignmentServiceImpl extends ServiceImpl<ConsignmentMapper, Consignment> implements ConsignmentService {
    @Resource
    ConsignmentMapper consignmentMapper;
    @Resource
    RepertoryMapper repertoryMapper;
    //新增成品发货
    @Override
    public String addCon(String name, ConsignmentDto consignmentDto) {
        //如果该订单已经发过货了不能再发货
        List<Consignment> consignments = consignmentMapper.selectAll();
        for (Consignment consignment : consignments) {
            if (consignment.getCustomerCode().equals(consignmentDto.getCustomerCode())) {
                return "该合同订单已发过货,无法再次发货!";
            } else {
                /*新增成品发货*/
                List<ConsignmentDto2> messages = consignmentDto.getMessages();
                for (ConsignmentDto2 message : messages) {
                    //查询产品编码(通过在成品库存表中的产品名称,规格型号以及单位进行查找)
                    LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
                    queryWrapper.eq(Repertory::getName, message.getName())
                            .eq(Repertory::getSpecifications, message.getSpecifications())
                            .eq(Repertory::getUnit, message.getUnit())
                            .eq(Repertory::getType, 0);
                    Repertory repertory = repertoryMapper.selectOne(queryWrapper);
                    //该成品的检验状态是已检验1才能进行发货
                    if (repertory.getCheckState() == 1) {
                        //该成品库存的数量大于等于发货的数量才能进行发货
                        if (repertory.getNumber() >= message.getNumber()) {
                            //构造成品发货实体类
                            Consignment consig = Consignment.builder()
                                    .customerCode(consignmentDto.getCustomerCode())
                                    .escortCode(MyUtil.getTimeSixNumberCode("YY"))
                                    .orderCode(consignmentDto.getOrderCode())
                                    .userName(name)
                                    .checkName(consignmentDto.getCheckName())
                                    .fitName(consignmentDto.getFitName())
                                    .name(message.getName())
                                    .specifications(message.getSpecifications())
                                    .unit(message.getUnit())
                                    .number(message.getNumber())
                                    .code(repertory.getCode())
                                    .build();
                            consignmentMapper.insert(consig);
                            /*减少对应的库存*/
                            repertory.setNumber(repertory.getNumber() - consig.getNumber());
                            repertoryMapper.updateById(repertory);
                        } else return "库存不足,无法发货!";
                    } else return "该产品还未检验,不能发货!";
                }
            }
        }
        return "发货成功!";
    }
}
inventory-server/src/main/java/com/yuanchu/mom/service/impl/ImportRepertoryServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.ImportRepertoryMapper;
import com.yuanchu.mom.mapper.RepertoryMapper;
import com.yuanchu.mom.pojo.ImportRepertory;
import com.yuanchu.mom.pojo.Repertory;
import com.yuanchu.mom.pojo.dto.ImportRepertoryDto;
import com.yuanchu.mom.service.ImportRepertoryService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
 * æˆå“å…¥åº“表(ImportRepertory)表服务实现类
 *
 * @author zss
 * @since 2023-08-10 10:27:01
 */
@Service
public class ImportRepertoryServiceImpl extends ServiceImpl<ImportRepertoryMapper, ImportRepertory> implements ImportRepertoryService {
    @Resource
    ImportRepertoryMapper importRepertoryMapper;
    @Resource
    RepertoryMapper repertoryMapper;
    //新增成品入库
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void addImpRep(String name, ImportRepertoryDto importRepertoryDto) {
        //新增成品入库
        ImportRepertory importRepertory = new ImportRepertory();
        BeanUtils.copyProperties(importRepertoryDto, importRepertory);
        importRepertory.setUserName(name);
        importRepertoryMapper.insert(importRepertory);
        //新增成品库存
        //如果入库的信息一样只有库存不一样,则在原来的库存数量上加上相应的数量
        LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Repertory::getOrderCode, importRepertoryDto.getOrderCode())
                .eq(Repertory::getCode, importRepertoryDto.getCode())
                .eq(Repertory::getName, importRepertoryDto.getName())
                .eq(Repertory::getSpecifications, importRepertoryDto.getSpecifications())
                .eq(Repertory::getUnit, importRepertoryDto.getUnit())
                .eq(Repertory::getType, 0);
        Repertory rep = repertoryMapper.selectOne(queryWrapper);
        if (rep != null && rep.getCheckState() == 0) {
            rep.setNumber(rep.getNumber() + importRepertoryDto.getNumber());
            rep.setUserName(name);
            repertoryMapper.updateById(rep);
        } else {
            //如果除了库存别的信息有任何一个不一样,则新增一条成品库存
            Repertory repertory = new Repertory();
            BeanUtils.copyProperties(importRepertoryDto, repertory);
            repertory.setUserName(name);
            repertory.setType(0);
            repertory.setCheckState(0);
            repertoryMapper.insert(repertory);
        }
    }
    //查询入库列表
    @Override
    public IPage<Map<String, Object>> selectAllImpRep(Page<Object> page, String orderCode, String name, String time) {
        return importRepertoryMapper.selectAllImpRep(page, orderCode, name, time);
    }
    //根据id删除
    @Override
    public void delImpRep(Integer id) {
        //删除入库记录
        ImportRepertory importRepertory = importRepertoryMapper.selectById(id);
        importRepertory.setState(0);
        importRepertoryMapper.updateById(importRepertory);
        //库存也要减少
        LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Repertory::getOrderCode, importRepertory.getOrderCode())
                .eq(Repertory::getCode, importRepertory.getCode())
                .eq(Repertory::getName, importRepertory.getName())
                .eq(Repertory::getSpecifications, importRepertory.getSpecifications())
                .eq(Repertory::getUnit, importRepertory.getUnit())
                .eq(Repertory::getType, 0)
                .eq(Repertory::getCheckState, 0);
        Repertory rep = repertoryMapper.selectOne(queryWrapper);
        rep.setNumber(rep.getNumber() - importRepertory.getNumber());
        repertoryMapper.updateById(rep);
    }
    //批量删除
    @Override
    public void delAllImpRep(List<Integer> ids) {
        List<ImportRepertory> importRepertories = importRepertoryMapper.selectBatchIds(ids);
        for (ImportRepertory importRepertory : importRepertories) {
            importRepertory.setState(0);
            //删除入库记录
            importRepertoryMapper.updateById(importRepertory);
            //减少库存
            LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(Repertory::getOrderCode, importRepertory.getOrderCode())
                    .eq(Repertory::getCode, importRepertory.getCode())
                    .eq(Repertory::getName, importRepertory.getName())
                    .eq(Repertory::getSpecifications, importRepertory.getSpecifications())
                    .eq(Repertory::getUnit, importRepertory.getUnit())
                    .eq(Repertory::getType, 0)
                    .eq(Repertory::getCheckState, 0);
            Repertory rep = repertoryMapper.selectOne(queryWrapper);
            rep.setNumber(rep.getNumber() - importRepertory.getNumber());
            repertoryMapper.updateById(rep);
        }
    }
}
inventory-server/src/main/java/com/yuanchu/mom/service/impl/RepertoryServiceImpl.java
@@ -25,8 +25,8 @@
    //查询所有库存列表
    @Override
    public IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type) {
        return repertoryMapper.selectAllRepertory(page,name,specifications,time,type);
    public IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type,Integer checkState) {
        return repertoryMapper.selectAllRepertory(page,name,specifications,time,type,checkState);
    }
}
inventory-server/src/main/resources/mapper/ConsignmentMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yuanchu.mom.mapper.ConsignmentMapper">
    <select id="selectAll" resultType="com.yuanchu.mom.pojo.Consignment">
        select * from mom_ocean.consignment where state=1
    </select>
</mapper>
inventory-server/src/main/resources/mapper/ImportRepertoryMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yuanchu.mom.mapper.ImportRepertoryMapper">
    <select id="selectAllImpRep" resultType="java.util.Map">
        select id,
        order_code,
        code,
        name,
        specifications,
        unit,
        number,
        user_name,
        create_time
        from mom_ocean.import_repertory
        where state=1
        <if test="orderCode!=null and orderCode!=''">
            and order_code like concat('%',#{orderCode},'%')
        </if>
        <if test="name!=null and name!=''">
            and name like concat('%',#{name},'%')
        </if>
        <if test="time!=null and time!=''">
            and create_time=#{time}
        </if>
    </select>
</mapper>
inventory-server/src/main/resources/mapper/RepertoryMapper.xml
@@ -6,27 +6,28 @@
        name,
        specifications,
        code,
        requirements,
        order_code,
        seat,
        check_state,
        user_name,
        DATE_FORMAT(create_time, '%Y-%m-%d') '入库日期',
        note
        from mom_ocean.repertory
        <where>
            and state=1
            <if test="name!=null">
                and name =#{name}
            <if test="name!=null and name!=''">
                and name LIKE  CONCAT('%',#{name},'%')
            </if>
            <if test="specifications!=null ">
                and specifications=#{specifications}
            <if test="specifications!=null and specifications!=''">
                and specifications LIKE CONCAT('%',#{specifications},'%')
            </if>
            <if test="time!=null ">
            <if test="time!=null and time!=''">
                and create_time=#{time}
            </if>
            <if test="type!=null">
            <if test="type!=null and type!=''">
                and type=#{type}
            </if>
            <if test="checkState!=null and checkState!=''">
                and check_state=#{checkState}
            </if>
        </where>
    </select>
</mapper>
sale-server/pom.xml
@@ -22,11 +22,7 @@
            <artifactId>standard-server</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.yuanchu.mom</groupId>
            <artifactId>inventory-server</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.yuanchu.mom</groupId>
            <artifactId>user-server</artifactId>
sale-server/src/main/java/com/yuanchu/mom/controller/SaleController.java
@@ -18,10 +18,8 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.lang.reflect.Array;
import java.util.*;
/**
 * <p>
@@ -100,10 +98,10 @@
    @ApiOperation(value = "批量删除")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "ids", value = "销售单id", dataTypeClass = String.class, dataType = "List", required = true)
            @ApiImplicitParam(name = "ids", value = "ids", dataTypeClass = Integer.class, dataType = "List",required = true)
    })
    @PostMapping("/delAllSale")
    public Result delAllSale( List<Integer> ids) {
    public Result delAllSale( @RequestParam("ids") List<Integer> ids) {
        saleService.delAllSale(ids);
        return Result.success();
    }
sale-server/src/main/java/com/yuanchu/mom/mapper/SaleMapper.java
@@ -19,4 +19,7 @@
    //查询销售单列表
    IPage<Map<String, Object>> selectSaleList(Page<Object> page, String orderNumber, String name, Integer type, String delTime);
}
sale-server/src/main/java/com/yuanchu/mom/pojo/Sale.java
@@ -75,7 +75,6 @@
    private Date checkTime;
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    @TableLogic(value = "1", delval = "0")
    private Integer state;
    @TableField(fill = FieldFill.INSERT)
sale-server/src/main/java/com/yuanchu/mom/pojo/SaleMaterial.java
@@ -49,7 +49,6 @@
    private String price;
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    @TableLogic(value = "1", delval = "0")
    private Integer state;
    @TableField(fill = FieldFill.INSERT)
sale-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto1.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.yuanchu.mom.pojo.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Builder
public class ConsignmentDto1 {
    //订单编号
    @JsonSerialize
    private String orderCode;
    //合同编号
    @JsonSerialize
    private String customerCode;
    //客户名称
    @JsonSerialize
    private String proname;
    //到货地址
    @JsonSerialize
    private String adress;
    //收货联系人
    @JsonSerialize
    private String username;
    //手机号
    @JsonSerialize
    private String phone ;
    //产品信息
    @JsonSerialize
    private List<ConsignmentDto2> messages;
}
sale-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto2.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.yuanchu.mom.pojo.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class ConsignmentDto2 {
    //产品信息
    @JsonSerialize
    private String name;
    //规格型号
    @JsonSerialize
    private String specifications;
    //单位
    @JsonSerialize
    private String unit;
    //发货数量
    @JsonSerialize
    private Integer number;
}
sale-server/src/main/java/com/yuanchu/mom/service/SaleService.java
@@ -4,13 +4,12 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.Sale;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.dto.ConsignmentDto1;
import com.yuanchu.mom.pojo.dto.SaleDto;
import com.yuanchu.mom.pojo.dto.vo.SaleVo;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
 * <p>
@@ -71,4 +70,11 @@
     * @param id
     */
    void check(String checkname,Integer id,Integer type);
    /**
     *根据订单号查询销售信息
     * @param orderNumber
     * @return
     */
    ConsignmentDto1 selSale(String orderNumber);
}
sale-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
@@ -7,10 +7,11 @@
import com.yuanchu.mom.pojo.Sale;
import com.yuanchu.mom.mapper.SaleMapper;
import com.yuanchu.mom.pojo.SaleMaterial;
import com.yuanchu.mom.pojo.dto.ConsignmentDto1;
import com.yuanchu.mom.pojo.dto.ConsignmentDto2;
import com.yuanchu.mom.pojo.dto.SaleDto;
import com.yuanchu.mom.pojo.dto.SaleMaterialDto;
import com.yuanchu.mom.pojo.dto.vo.SaleVo;
import com.yuanchu.mom.service.SaleMaterialService;
import com.yuanchu.mom.service.SaleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
@@ -20,7 +21,6 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
@@ -136,4 +136,26 @@
        sale.setCheckTime(new Date());
        saleMapper.updateById(sale);
    }
    //根据订单号查询销售信息
    @Override
    public ConsignmentDto1 selSale(String orderNumber) {
        Sale sale = saleMapper.selectOne(Wrappers.<Sale>query().eq("order_number", orderNumber));
        List<SaleMaterial> saleMaterials = saleMaterialMapper.selectList(Wrappers.<SaleMaterial>query().eq("sale_id", sale.getId()));
        List<ConsignmentDto2> dto2List = saleMaterials.stream().map(saleMaterial -> {
            ConsignmentDto2 consignmentDto2 = new ConsignmentDto2();
            BeanUtils.copyProperties(saleMaterial, consignmentDto2);
            return consignmentDto2;
        }).collect(Collectors.toList());
        ConsignmentDto1 consignmentDto1 = ConsignmentDto1.builder()
                .orderCode(orderNumber)
                .customerCode(sale.getCode())
                .proname(sale.getProname())
                .adress(sale.getAdress())
                .username(sale.getUsername())
                .phone(sale.getPhone())
                .messages(dto2List)
                .build();
        return consignmentDto1;
    }
}
sale-server/src/main/resources/mapper/SaleMapper.xml
@@ -12,18 +12,19 @@
        from mom_ocean.sale
        <where>
            state=1
            <if test="orderNumber!=null">
                and order_number=#{orderNumber}
            <if test="orderNumber!=null and orderNumber!=''">
                and order_number LIKE CONCAT('%',#{orderNumber},'%')
            </if>
            <if test="name!=null">
                and name=#{name}
            <if test="name!=null and name!=''">
                and name LIKE CONCAT('%',#{name},'%')
            </if>
            <if test="type!=null">
            <if test="type!=null and type!=''">
                and type=#{type}
            </if>
            <if test="delTime!=null">
            <if test="delTime!=null and delTime!=''">
                and DATE_FORMAT(delTime, '%Y-%m-%d')=#{delTime}
            </if>
        </where>
    </select>
</mapper>
sale-server/src/main/resources/mapper/SaleMaterialMapper.xml
@@ -2,11 +2,18 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.SaleMaterialMapper">
    <select id="selectSaleDatil" resultType="com.yuanchu.mom.pojo.SaleMaterial">
        select id, name, specifications, unit, number, price, state, create_time, update_time, sale_id
        select id,
               name,
               specifications,
               unit,
               number,
               price,
               state,
               create_time,
               update_time,
               sale_id
        from mom_ocean.sale_material
        where state=1
        <if test="id!=null">
            and sale_id=#{id}
        </if>
    </select>
</mapper>
standard-server/src/main/java/com/yuanchu/mom/controller/TechnologyTemplateController.java
@@ -90,10 +90,10 @@
    @ApiOperation(value = "批量删除")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "ids", value = "销售单id", dataTypeClass = String.class, dataType = "List", required = true)
            @ApiImplicitParam(name = "ids", value = "销售单id", dataTypeClass = Integer.class, dataType = "List", required = true)
    })
    @PostMapping("/delAllTech")
    public Result delAllTech( List<Integer> ids) {
    public Result delAllTech(@RequestParam("ids") List<Integer> ids) {
        technologyTemplateService.delAllTech(ids);
        return Result.success("批量删除成功!");
    }
standard-server/src/main/java/com/yuanchu/mom/pojo/TechnologyTemplate.java
@@ -47,7 +47,6 @@
    private Integer type;
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    @TableLogic(value = "1", delval = "0")
    private Integer state;
    @TableField(fill = FieldFill.INSERT)
standard-server/src/main/resources/mapper/OrdersMapper.xml
@@ -17,16 +17,16 @@
        o.state
        from mom_ocean.orders o,mom_ocean.material m
        <where>
            <if test="orderCode != null">
                and order_code = #{orderCode}
            <if test="orderCode != null and orderCode!=''">
                and order_code LIKE CONCAT('%',#{orderCode},'%')
            </if>
            <if test="time != null">
            <if test="time != null and time!=''">
                and o.create_time = #{time}
            </if>
            <if test="name != null">
                and m.name = #{name}
            <if test="name != null and name!=''">
                and m.name LIKE CONCAT('%',#{name},'%')
            </if>
            <if test="state != null">
            <if test="state != null and state!=''">
                and o.state = #{state}
            </if>
            and o.code=m.code
standard-server/src/main/resources/mapper/TechnologyTemplateMapper.xml
@@ -31,13 +31,13 @@
        from mom_ocean.technology_template t
        <where>
            state=1
            <if test="type!=null">
            <if test="type!=null and type!=''">
                and type=#{type}
            </if>
            <if test="element!=null">
            <if test="element!=null and element!=''">
                and element like concat('%',#{element},'%')
            </if>
            <if test="father!=null">
            <if test="father!=null and father!=''">
                and father like concat('%',#{father},'%')
            </if>
        </where>