| package com.zy.common.service.erp;  | 
|   | 
| import com.core.common.Cools;  | 
| import com.core.common.DateUtils;  | 
| import com.zy.common.service.erp.dto.VoucherDto;  | 
| import com.zy.common.service.erp.entity.Goods;  | 
| import com.zy.common.service.erp.entity.Voucher;  | 
| import com.zy.common.service.erp.entity.VoucherDetail;  | 
| import lombok.extern.slf4j.Slf4j;  | 
| import org.springframework.beans.factory.annotation.Autowired;  | 
| import org.springframework.jdbc.core.JdbcTemplate;  | 
| import org.springframework.stereotype.Service;  | 
|   | 
| import java.text.MessageFormat;  | 
| import java.util.ArrayList;  | 
| import java.util.Date;  | 
| import java.util.List;  | 
|   | 
| /**  | 
|  * Created by vincent on 2020/11/27  | 
|  */  | 
| @Slf4j  | 
| @Service  | 
| public class ErpService {  | 
|   | 
|     @Autowired  | 
|     private ErpSqlServer erpSqlServer;  | 
|     @Autowired  | 
|     private JdbcTemplate jdbcTemplate;  | 
|   | 
|     //////////////////////成品、原材料入库通知单数据提取//////////////////////////////////////////////////  | 
|   | 
|     /**  | 
|      * 获取GOODS表  | 
|      */  | 
|     public List<Goods> selectGoods(Integer state) {  | 
|         String sql = "select * from Goods where state = '" + state + "'";  | 
|         return erpSqlServer.select(sql, Goods.class);  | 
|     }  | 
|   | 
|     public Goods selectGoodsOne(String barCode) {  | 
|         String sql = "select top 1 * from Goods where BarCode = '" + barCode + "'";  | 
|         List<Goods> select = erpSqlServer.select(sql, Goods.class);  | 
|         if (Cools.isEmpty(select)) {  | 
|             return null;  | 
|         } else {  | 
|             return select.get(0);  | 
|         }  | 
|     }  | 
|   | 
|     public List<VoucherDto> selectOrder(Integer state) {  | 
|         List<VoucherDto> list = new ArrayList<>();  | 
|         List<Voucher> voucherList = this.selectVoucher(state);  | 
|         if (!Cools.isEmpty(voucherList)) {  | 
|             for (Voucher voucher : voucherList) {  | 
|                 VoucherDto dto = new VoucherDto();  | 
|                 dto.setVoucher(voucher);  | 
|                 List<VoucherDetail> voucherDetails = this.selectVoucherDetail(voucher.getVoucherID());  | 
|                 if (!Cools.isEmpty(voucherDetails)) {  | 
|                     dto.setDetails(voucherDetails);  | 
|                 }  | 
|                 list.add(dto);  | 
|             }  | 
|         }  | 
|         return list;  | 
|     }  | 
|   | 
|   | 
|     /**  | 
|      * 获取Voucher表  | 
|      */  | 
|     public List<Voucher> selectVoucher(Integer state) {  | 
|         String sql = "select * from Voucher where state = '" + state + "'";  | 
|         return erpSqlServer.select(sql, Voucher.class);  | 
|     }  | 
|   | 
|     /**  | 
|      * 获取VoucherDetail表  | 
|      */  | 
|     public List<VoucherDetail> selectVoucherDetail(String VoucherID) {  | 
|         String sql = "select * from VoucherDetail where VoucherID = '" + VoucherID + "'";  | 
|         return erpSqlServer.select(sql, VoucherDetail.class);  | 
|     }  | 
|   | 
|     /**  | 
|      * 获取VoucherDetail表  | 
|      */  | 
|     public VoucherDetail selectVoucherDetail(String VoucherID, String Barcode) {  | 
|         String sql = "select top 1 * from VoucherDetail where VoucherID = '" + VoucherID + "' and Barcode = '" + Barcode + "';";  | 
|         List<VoucherDetail> result = erpSqlServer.select(sql, VoucherDetail.class);  | 
|         if (!Cools.isEmpty(result)) {  | 
|             return result.get(0);  | 
|         } else {  | 
|             return null;  | 
|         }  | 
|     }  | 
|   | 
|   | 
|   | 
|     /**  | 
|      * 修改 Goods 表 state  | 
|      */  | 
|     public boolean updateStateForGoods(String barcode, Integer state){  | 
|         String sql = "update Goods set State = ''{1}'', LastUpdatedDate = ''{2}'' where BarCode = ''{0}''";  | 
|         sql = MessageFormat.format(sql, barcode, state, DateUtils.convert(new Date()));  | 
|         return erpSqlServer.update(sql) > 0;  | 
|     }  | 
|   | 
|     /**  | 
|      * 修改 Goods 表 state, location  | 
|      */  | 
|     public boolean updateStateAndLocForGoods(String barcode, Integer state, String loc){  | 
|         String sql = "update Goods set State = ''{1}'', LastUpdatedDate = ''{2}'', Location = ''{3}'' where BarCode = ''{0}''";  | 
|         sql = MessageFormat.format(sql, barcode, state, DateUtils.convert(new Date()), loc);  | 
|         return erpSqlServer.update(sql) > 0;  | 
|     }  | 
|   | 
|     /**  | 
|      * 修改 Voucher 表 state  | 
|      */  | 
|     public boolean updateStateForVoucher(String voucherID, Integer state){  | 
|         String sql = "update Voucher set State = ''{1}'', LastUpdatedDate = ''{2}'' where VoucherID = ''{0}''";  | 
|         sql = MessageFormat.format(sql, voucherID, state, DateUtils.convert(new Date()));  | 
|         return erpSqlServer.update(sql) > 0;  | 
|     }  | 
|   | 
|     /**  | 
|      * 修改 Voucher 表 重量和数量  | 
|      */  | 
|     public boolean updateStateForVoucher(String voucherID, Double TotalNum, Integer TotalCount){  | 
|         String sql = "update Voucher set TotalNum = {1,number,#}, TotalCount = {2,number,#} where VoucherID = ''{0}''";  | 
|         sql = MessageFormat.format(sql, voucherID, TotalNum, TotalCount);  | 
|         return erpSqlServer.update(sql) > 0;  | 
|     }  | 
|   | 
|     /**  | 
|      * 修改 VoucherDetail 表  | 
|      */  | 
|     public boolean updateTimeForVoucherDetail(String voucherID){  | 
|         String sql = "update VoucherDetail set LastUpdatedDate = ''{1}'' where VoucherID = ''{0}''";  | 
|         sql = MessageFormat.format(sql, voucherID, DateUtils.convert(new Date()));  | 
|         return erpSqlServer.update(sql) > 0;  | 
|     }  | 
|   | 
|     /**  | 
|      * 新增 VoucherDetail 表  | 
|      */  | 
|     public boolean insertVoucherDetail(VoucherDetail voucherDetail){  | 
|         String sql = "insert [VoucherDetail] ([VoucherID], [Barcode], [PickID], [LastUpdatedDate]) values (''{0}'', ''{1}'', ''{2}'', ''{3}'');";  | 
|         sql = MessageFormat.format(sql  | 
|                 , voucherDetail.getVoucherID()  | 
|                 , voucherDetail.getBarcode()  | 
|                 , voucherDetail.getPickID()  | 
|                 , voucherDetail.getLastUpdatedDate());  | 
|         return erpSqlServer.update(sql) > 0;  | 
|     }  | 
|   | 
| }  | 
| // insert [VoucherDetail] ([VoucherID], [Barcode], [PickID], [LastUpdatedDate]) values ('P6012408220001', 'PL02A223460041 ', 'fepvnn0496', '2022-12-16 09:24:55');  |