package jnpf.service.impl; import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import jnpf.base.BillRuleApi; import jnpf.base.service.SuperServiceImpl; import jnpf.entity.SalesOrderEntity; import jnpf.entity.SalesOrderEntryEntity; import jnpf.mapper.SalesOrderEntryMapper; import jnpf.mapper.SalesOrderMapper; import jnpf.model.salesorder.SalesOrderEntryEntityInfoModel; import jnpf.model.salesorder.SalesOrderForm; import jnpf.service.SalesOrderService; import jnpf.util.JsonUtil; import jnpf.util.RandomUtil; import jnpf.util.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * 销售订单 * * @author JNPF开发平台组 * @version V3.1.0 * @copyright 引迈信息技术有限公司 * @date 2019年9月29日 上午9:18 */ @Service public class SalesOrderServiceImpl extends SuperServiceImpl implements SalesOrderService { @Autowired private BillRuleApi billRuleApi; @Autowired private SalesOrderEntryMapper salesOrderEntryMapper; @Override public List getSalesEntryList(String id) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SalesOrderEntryEntity::getSalesOrderId, id).orderByDesc(SalesOrderEntryEntity::getSortCode); return salesOrderEntryMapper.selectList(queryWrapper); } @Override public SalesOrderEntity getInfo(String id) { return this.baseMapper.getInfo(id); } @Override @DSTransactional public void save(String id, SalesOrderEntity entity, List salesOrderEntryEntityList, SalesOrderForm form) { //表单信息 if (StringUtil.isEmpty(entity.getId())) { entity.setId(id); for (int i = 0; i < salesOrderEntryEntityList.size(); i++) { salesOrderEntryEntityList.get(i).setId(RandomUtil.uuId()); salesOrderEntryEntityList.get(i).setSalesOrderId(entity.getId()); salesOrderEntryEntityList.get(i).setSortCode(Long.parseLong(i + "")); salesOrderEntryMapper.insert(salesOrderEntryEntityList.get(i)); } //创建 save(entity); billRuleApi.useBillNumber("WF_SalesOrderNo"); } else { entity.setId(id); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SalesOrderEntryEntity::getSalesOrderId, entity.getId()); salesOrderEntryMapper.delete(queryWrapper); for (int i = 0; i < salesOrderEntryEntityList.size(); i++) { salesOrderEntryEntityList.get(i).setId(RandomUtil.uuId()); salesOrderEntryEntityList.get(i).setSalesOrderId(entity.getId()); salesOrderEntryEntityList.get(i).setSortCode(Long.parseLong(i + "")); salesOrderEntryMapper.insert(salesOrderEntryEntityList.get(i)); } //编辑 updateById(entity); } } @Override @DSTransactional public void submit(String id, SalesOrderEntity entity, List salesOrderEntryEntityList, SalesOrderForm form) { //表单信息 if (StringUtil.isEmpty(entity.getId())) { entity.setId(id); for (int i = 0; i < salesOrderEntryEntityList.size(); i++) { salesOrderEntryEntityList.get(i).setId(RandomUtil.uuId()); salesOrderEntryEntityList.get(i).setSalesOrderId(entity.getId()); salesOrderEntryEntityList.get(i).setSortCode(Long.parseLong(i + "")); salesOrderEntryMapper.insert(salesOrderEntryEntityList.get(i)); } //创建 save(entity); billRuleApi.useBillNumber("WF_SalesOrderNo"); } else { entity.setId(id); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SalesOrderEntryEntity::getSalesOrderId, entity.getId()); salesOrderEntryMapper.delete(queryWrapper); for (int i = 0; i < salesOrderEntryEntityList.size(); i++) { salesOrderEntryEntityList.get(i).setId(RandomUtil.uuId()); salesOrderEntryEntityList.get(i).setSalesOrderId(entity.getId()); salesOrderEntryEntityList.get(i).setSortCode(Long.parseLong(i + "")); salesOrderEntryMapper.insert(salesOrderEntryEntityList.get(i)); } //编辑 updateById(entity); } } @Override public void data(String id, String data) { SalesOrderForm salesOrderForm = JsonUtil.getJsonToBean(data, SalesOrderForm.class); SalesOrderEntity entity = JsonUtil.getJsonToBean(salesOrderForm, SalesOrderEntity.class); List entryList = salesOrderForm.getEntryList() != null ? salesOrderForm.getEntryList() : new ArrayList<>(); List salesOrderEntryEntityList = JsonUtil.getJsonToList(entryList, SalesOrderEntryEntity.class); entity.setId(id); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SalesOrderEntryEntity::getSalesOrderId, entity.getId()); salesOrderEntryMapper.delete(queryWrapper); for (int i = 0; i < salesOrderEntryEntityList.size(); i++) { salesOrderEntryEntityList.get(i).setId(RandomUtil.uuId()); salesOrderEntryEntityList.get(i).setSalesOrderId(entity.getId()); salesOrderEntryEntityList.get(i).setSortCode(Long.parseLong(i + "")); salesOrderEntryMapper.insert(salesOrderEntryEntityList.get(i)); } //编辑 saveOrUpdate(entity); } @Override public void delete(SalesOrderEntity entity) { this.baseMapper.delete(entity); } }