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 com.zy.common.service.erp.entity.WlzhVStRd; 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; public List selectPage(int pageSize, int pageNumber){ //String sql = "select * from wlzh_v_st_rd"; int rowNumber = pageSize*pageNumber; String sql = "select top " + pageSize + " * from ( select row_number() over(order by iquantity asc) as rownumber,* from wlzh_v_st_rd) temp_row where rownumber>"+ rowNumber +";"; return erpSqlServer.select(sql, WlzhVStRd.class); } //////////////////////成品、原材料入库通知单数据提取////////////////////////////////////////////////// /** * 获取GOODS表 */ public List 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 select = erpSqlServer.select(sql, Goods.class); if (Cools.isEmpty(select)) { return null; } else { return select.get(0); } } public List selectOrder(Integer state) { List list = new ArrayList<>(); List voucherList = this.selectVoucher(state); if (!Cools.isEmpty(voucherList)) { for (Voucher voucher : voucherList) { VoucherDto dto = new VoucherDto(); dto.setVoucher(voucher); List voucherDetails = this.selectVoucherDetail(voucher.getVoucherID()); if (!Cools.isEmpty(voucherDetails)) { dto.setDetails(voucherDetails); } list.add(dto); } } return list; } /** * 获取Voucher表 */ public List selectVoucher(Integer state) { String sql = "select * from Voucher where state = '" + state + "'"; return erpSqlServer.select(sql, Voucher.class); } /** * 获取VoucherDetail表 */ public List 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 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');